pax_global_header00006660000000000000000000000064141226720150014512gustar00rootroot0000000000000052 comment=1d750214c25205863625bb3eb8190a51b2cef26d brotli-1.0.4/000077500000000000000000000000001412267201500130075ustar00rootroot00000000000000brotli-1.0.4/LICENSE000066400000000000000000000020741412267201500140170ustar00rootroot00000000000000Copyright (c) 2009, 2010, 2013-2016 by the Brotli Authors. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. brotli-1.0.4/README.md000066400000000000000000000005771412267201500142770ustar00rootroot00000000000000This package is a brotli compressor and decompressor implemented in Go. It was translated from the reference implementation (https://github.com/google/brotli) with the `c2go` tool at https://github.com/andybalholm/c2go. I am using it in production with https://github.com/andybalholm/redwood. API documentation is found at https://pkg.go.dev/github.com/andybalholm/brotli?tab=doc. brotli-1.0.4/backward_references.go000066400000000000000000000146311412267201500173220ustar00rootroot00000000000000package brotli import ( "sync" ) /* Copyright 2013 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* Function to find backward reference copies. */ func computeDistanceCode(distance uint, max_distance uint, dist_cache []int) uint { if distance <= max_distance { var distance_plus_3 uint = distance + 3 var offset0 uint = distance_plus_3 - uint(dist_cache[0]) var offset1 uint = distance_plus_3 - uint(dist_cache[1]) if distance == uint(dist_cache[0]) { return 0 } else if distance == uint(dist_cache[1]) { return 1 } else if offset0 < 7 { return (0x9750468 >> (4 * offset0)) & 0xF } else if offset1 < 7 { return (0xFDB1ACE >> (4 * offset1)) & 0xF } else if distance == uint(dist_cache[2]) { return 2 } else if distance == uint(dist_cache[3]) { return 3 } } return distance + numDistanceShortCodes - 1 } var hasherSearchResultPool sync.Pool func createBackwardReferences(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint, params *encoderParams, hasher hasherHandle, dist_cache []int, last_insert_len *uint, commands *[]command, num_literals *uint) { var max_backward_limit uint = maxBackwardLimit(params.lgwin) var insert_length uint = *last_insert_len var pos_end uint = position + num_bytes var store_end uint if num_bytes >= hasher.StoreLookahead() { store_end = position + num_bytes - hasher.StoreLookahead() + 1 } else { store_end = position } var random_heuristics_window_size uint = literalSpreeLengthForSparseSearch(params) var apply_random_heuristics uint = position + random_heuristics_window_size var gap uint = 0 /* Set maximum distance, see section 9.1. of the spec. */ const kMinScore uint = scoreBase + 100 /* For speed up heuristics for random data. */ /* Minimum score to accept a backward reference. */ hasher.PrepareDistanceCache(dist_cache) sr2, _ := hasherSearchResultPool.Get().(*hasherSearchResult) if sr2 == nil { sr2 = &hasherSearchResult{} } sr, _ := hasherSearchResultPool.Get().(*hasherSearchResult) if sr == nil { sr = &hasherSearchResult{} } for position+hasher.HashTypeLength() < pos_end { var max_length uint = pos_end - position var max_distance uint = brotli_min_size_t(position, max_backward_limit) sr.len = 0 sr.len_code_delta = 0 sr.distance = 0 sr.score = kMinScore hasher.FindLongestMatch(¶ms.dictionary, ringbuffer, ringbuffer_mask, dist_cache, position, max_length, max_distance, gap, params.dist.max_distance, sr) if sr.score > kMinScore { /* Found a match. Let's look for something even better ahead. */ var delayed_backward_references_in_row int = 0 max_length-- for ; ; max_length-- { var cost_diff_lazy uint = 175 if params.quality < minQualityForExtensiveReferenceSearch { sr2.len = brotli_min_size_t(sr.len-1, max_length) } else { sr2.len = 0 } sr2.len_code_delta = 0 sr2.distance = 0 sr2.score = kMinScore max_distance = brotli_min_size_t(position+1, max_backward_limit) hasher.FindLongestMatch(¶ms.dictionary, ringbuffer, ringbuffer_mask, dist_cache, position+1, max_length, max_distance, gap, params.dist.max_distance, sr2) if sr2.score >= sr.score+cost_diff_lazy { /* Ok, let's just write one byte for now and start a match from the next byte. */ position++ insert_length++ *sr = *sr2 delayed_backward_references_in_row++ if delayed_backward_references_in_row < 4 && position+hasher.HashTypeLength() < pos_end { continue } } break } apply_random_heuristics = position + 2*sr.len + random_heuristics_window_size max_distance = brotli_min_size_t(position, max_backward_limit) { /* The first 16 codes are special short-codes, and the minimum offset is 1. */ var distance_code uint = computeDistanceCode(sr.distance, max_distance+gap, dist_cache) if (sr.distance <= (max_distance + gap)) && distance_code > 0 { dist_cache[3] = dist_cache[2] dist_cache[2] = dist_cache[1] dist_cache[1] = dist_cache[0] dist_cache[0] = int(sr.distance) hasher.PrepareDistanceCache(dist_cache) } *commands = append(*commands, makeCommand(¶ms.dist, insert_length, sr.len, sr.len_code_delta, distance_code)) } *num_literals += insert_length insert_length = 0 /* Put the hash keys into the table, if there are enough bytes left. Depending on the hasher implementation, it can push all positions in the given range or only a subset of them. Avoid hash poisoning with RLE data. */ { var range_start uint = position + 2 var range_end uint = brotli_min_size_t(position+sr.len, store_end) if sr.distance < sr.len>>2 { range_start = brotli_min_size_t(range_end, brotli_max_size_t(range_start, position+sr.len-(sr.distance<<2))) } hasher.StoreRange(ringbuffer, ringbuffer_mask, range_start, range_end) } position += sr.len } else { insert_length++ position++ /* If we have not seen matches for a long time, we can skip some match lookups. Unsuccessful match lookups are very very expensive and this kind of a heuristic speeds up compression quite a lot. */ if position > apply_random_heuristics { /* Going through uncompressible data, jump. */ if position > apply_random_heuristics+4*random_heuristics_window_size { var kMargin uint = brotli_max_size_t(hasher.StoreLookahead()-1, 4) /* It is quite a long time since we saw a copy, so we assume that this data is not compressible, and store hashes less often. Hashes of non compressible data are less likely to turn out to be useful in the future, too, so we store less of them to not to flood out the hash table of good compressible data. */ var pos_jump uint = brotli_min_size_t(position+16, pos_end-kMargin) for ; position < pos_jump; position += 4 { hasher.Store(ringbuffer, ringbuffer_mask, position) insert_length += 4 } } else { var kMargin uint = brotli_max_size_t(hasher.StoreLookahead()-1, 2) var pos_jump uint = brotli_min_size_t(position+8, pos_end-kMargin) for ; position < pos_jump; position += 2 { hasher.Store(ringbuffer, ringbuffer_mask, position) insert_length += 2 } } } } } insert_length += pos_end - position *last_insert_len = insert_length hasherSearchResultPool.Put(sr) hasherSearchResultPool.Put(sr2) } brotli-1.0.4/backward_references_hq.go000066400000000000000000000656421412267201500200220ustar00rootroot00000000000000package brotli import "math" type zopfliNode struct { length uint32 distance uint32 dcode_insert_length uint32 u struct { cost float32 next uint32 shortcut uint32 } } const maxEffectiveDistanceAlphabetSize = 544 const kInfinity float32 = 1.7e38 /* ~= 2 ^ 127 */ var kDistanceCacheIndex = []uint32{0, 1, 2, 3, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1} var kDistanceCacheOffset = []int{0, 0, 0, 0, -1, 1, -2, 2, -3, 3, -1, 1, -2, 2, -3, 3} func initZopfliNodes(array []zopfliNode, length uint) { var stub zopfliNode var i uint stub.length = 1 stub.distance = 0 stub.dcode_insert_length = 0 stub.u.cost = kInfinity for i = 0; i < length; i++ { array[i] = stub } } func zopfliNodeCopyLength(self *zopfliNode) uint32 { return self.length & 0x1FFFFFF } func zopfliNodeLengthCode(self *zopfliNode) uint32 { var modifier uint32 = self.length >> 25 return zopfliNodeCopyLength(self) + 9 - modifier } func zopfliNodeCopyDistance(self *zopfliNode) uint32 { return self.distance } func zopfliNodeDistanceCode(self *zopfliNode) uint32 { var short_code uint32 = self.dcode_insert_length >> 27 if short_code == 0 { return zopfliNodeCopyDistance(self) + numDistanceShortCodes - 1 } else { return short_code - 1 } } func zopfliNodeCommandLength(self *zopfliNode) uint32 { return zopfliNodeCopyLength(self) + (self.dcode_insert_length & 0x7FFFFFF) } /* Histogram based cost model for zopflification. */ type zopfliCostModel struct { cost_cmd_ [numCommandSymbols]float32 cost_dist_ []float32 distance_histogram_size uint32 literal_costs_ []float32 min_cost_cmd_ float32 num_bytes_ uint } func initZopfliCostModel(self *zopfliCostModel, dist *distanceParams, num_bytes uint) { var distance_histogram_size uint32 = dist.alphabet_size if distance_histogram_size > maxEffectiveDistanceAlphabetSize { distance_histogram_size = maxEffectiveDistanceAlphabetSize } self.num_bytes_ = num_bytes self.literal_costs_ = make([]float32, (num_bytes + 2)) self.cost_dist_ = make([]float32, (dist.alphabet_size)) self.distance_histogram_size = distance_histogram_size } func cleanupZopfliCostModel(self *zopfliCostModel) { self.literal_costs_ = nil self.cost_dist_ = nil } func setCost(histogram []uint32, histogram_size uint, literal_histogram bool, cost []float32) { var sum uint = 0 var missing_symbol_sum uint var log2sum float32 var missing_symbol_cost float32 var i uint for i = 0; i < histogram_size; i++ { sum += uint(histogram[i]) } log2sum = float32(fastLog2(sum)) missing_symbol_sum = sum if !literal_histogram { for i = 0; i < histogram_size; i++ { if histogram[i] == 0 { missing_symbol_sum++ } } } missing_symbol_cost = float32(fastLog2(missing_symbol_sum)) + 2 for i = 0; i < histogram_size; i++ { if histogram[i] == 0 { cost[i] = missing_symbol_cost continue } /* Shannon bits for this symbol. */ cost[i] = log2sum - float32(fastLog2(uint(histogram[i]))) /* Cannot be coded with less than 1 bit */ if cost[i] < 1 { cost[i] = 1 } } } func zopfliCostModelSetFromCommands(self *zopfliCostModel, position uint, ringbuffer []byte, ringbuffer_mask uint, commands []command, last_insert_len uint) { var histogram_literal [numLiteralSymbols]uint32 var histogram_cmd [numCommandSymbols]uint32 var histogram_dist [maxEffectiveDistanceAlphabetSize]uint32 var cost_literal [numLiteralSymbols]float32 var pos uint = position - last_insert_len var min_cost_cmd float32 = kInfinity var cost_cmd []float32 = self.cost_cmd_[:] var literal_costs []float32 histogram_literal = [numLiteralSymbols]uint32{} histogram_cmd = [numCommandSymbols]uint32{} histogram_dist = [maxEffectiveDistanceAlphabetSize]uint32{} for i := range commands { var inslength uint = uint(commands[i].insert_len_) var copylength uint = uint(commandCopyLen(&commands[i])) var distcode uint = uint(commands[i].dist_prefix_) & 0x3FF var cmdcode uint = uint(commands[i].cmd_prefix_) var j uint histogram_cmd[cmdcode]++ if cmdcode >= 128 { histogram_dist[distcode]++ } for j = 0; j < inslength; j++ { histogram_literal[ringbuffer[(pos+j)&ringbuffer_mask]]++ } pos += inslength + copylength } setCost(histogram_literal[:], numLiteralSymbols, true, cost_literal[:]) setCost(histogram_cmd[:], numCommandSymbols, false, cost_cmd) setCost(histogram_dist[:], uint(self.distance_histogram_size), false, self.cost_dist_) for i := 0; i < numCommandSymbols; i++ { min_cost_cmd = brotli_min_float(min_cost_cmd, cost_cmd[i]) } self.min_cost_cmd_ = min_cost_cmd { literal_costs = self.literal_costs_ var literal_carry float32 = 0.0 num_bytes := int(self.num_bytes_) literal_costs[0] = 0.0 for i := 0; i < num_bytes; i++ { literal_carry += cost_literal[ringbuffer[(position+uint(i))&ringbuffer_mask]] literal_costs[i+1] = literal_costs[i] + literal_carry literal_carry -= literal_costs[i+1] - literal_costs[i] } } } func zopfliCostModelSetFromLiteralCosts(self *zopfliCostModel, position uint, ringbuffer []byte, ringbuffer_mask uint) { var literal_costs []float32 = self.literal_costs_ var literal_carry float32 = 0.0 var cost_dist []float32 = self.cost_dist_ var cost_cmd []float32 = self.cost_cmd_[:] var num_bytes uint = self.num_bytes_ var i uint estimateBitCostsForLiterals(position, num_bytes, ringbuffer_mask, ringbuffer, literal_costs[1:]) literal_costs[0] = 0.0 for i = 0; i < num_bytes; i++ { literal_carry += literal_costs[i+1] literal_costs[i+1] = literal_costs[i] + literal_carry literal_carry -= literal_costs[i+1] - literal_costs[i] } for i = 0; i < numCommandSymbols; i++ { cost_cmd[i] = float32(fastLog2(uint(11 + uint32(i)))) } for i = 0; uint32(i) < self.distance_histogram_size; i++ { cost_dist[i] = float32(fastLog2(uint(20 + uint32(i)))) } self.min_cost_cmd_ = float32(fastLog2(11)) } func zopfliCostModelGetCommandCost(self *zopfliCostModel, cmdcode uint16) float32 { return self.cost_cmd_[cmdcode] } func zopfliCostModelGetDistanceCost(self *zopfliCostModel, distcode uint) float32 { return self.cost_dist_[distcode] } func zopfliCostModelGetLiteralCosts(self *zopfliCostModel, from uint, to uint) float32 { return self.literal_costs_[to] - self.literal_costs_[from] } func zopfliCostModelGetMinCostCmd(self *zopfliCostModel) float32 { return self.min_cost_cmd_ } /* REQUIRES: len >= 2, start_pos <= pos */ /* REQUIRES: cost < kInfinity, nodes[start_pos].cost < kInfinity */ /* Maintains the "ZopfliNode array invariant". */ func updateZopfliNode(nodes []zopfliNode, pos uint, start_pos uint, len uint, len_code uint, dist uint, short_code uint, cost float32) { var next *zopfliNode = &nodes[pos+len] next.length = uint32(len | (len+9-len_code)<<25) next.distance = uint32(dist) next.dcode_insert_length = uint32(short_code<<27 | (pos - start_pos)) next.u.cost = cost } type posData struct { pos uint distance_cache [4]int costdiff float32 cost float32 } /* Maintains the smallest 8 cost difference together with their positions */ type startPosQueue struct { q_ [8]posData idx_ uint } func initStartPosQueue(self *startPosQueue) { self.idx_ = 0 } func startPosQueueSize(self *startPosQueue) uint { return brotli_min_size_t(self.idx_, 8) } func startPosQueuePush(self *startPosQueue, posdata *posData) { var offset uint = ^(self.idx_) & 7 self.idx_++ var len uint = startPosQueueSize(self) var i uint var q []posData = self.q_[:] q[offset] = *posdata /* Restore the sorted order. In the list of |len| items at most |len - 1| adjacent element comparisons / swaps are required. */ for i = 1; i < len; i++ { if q[offset&7].costdiff > q[(offset+1)&7].costdiff { var tmp posData = q[offset&7] q[offset&7] = q[(offset+1)&7] q[(offset+1)&7] = tmp } offset++ } } func startPosQueueAt(self *startPosQueue, k uint) *posData { return &self.q_[(k-self.idx_)&7] } /* Returns the minimum possible copy length that can improve the cost of any */ /* future position. */ func computeMinimumCopyLength(start_cost float32, nodes []zopfliNode, num_bytes uint, pos uint) uint { var min_cost float32 = start_cost var len uint = 2 var next_len_bucket uint = 4 /* Compute the minimum possible cost of reaching any future position. */ var next_len_offset uint = 10 for pos+len <= num_bytes && nodes[pos+len].u.cost <= min_cost { /* We already reached (pos + len) with no more cost than the minimum possible cost of reaching anything from this pos, so there is no point in looking for lengths <= len. */ len++ if len == next_len_offset { /* We reached the next copy length code bucket, so we add one more extra bit to the minimum cost. */ min_cost += 1.0 next_len_offset += next_len_bucket next_len_bucket *= 2 } } return uint(len) } /* REQUIRES: nodes[pos].cost < kInfinity REQUIRES: nodes[0..pos] satisfies that "ZopfliNode array invariant". */ func computeDistanceShortcut(block_start uint, pos uint, max_backward_limit uint, gap uint, nodes []zopfliNode) uint32 { var clen uint = uint(zopfliNodeCopyLength(&nodes[pos])) var ilen uint = uint(nodes[pos].dcode_insert_length & 0x7FFFFFF) var dist uint = uint(zopfliNodeCopyDistance(&nodes[pos])) /* Since |block_start + pos| is the end position of the command, the copy part starts from |block_start + pos - clen|. Distances that are greater than this or greater than |max_backward_limit| + |gap| are static dictionary references, and do not update the last distances. Also distance code 0 (last distance) does not update the last distances. */ if pos == 0 { return 0 } else if dist+clen <= block_start+pos+gap && dist <= max_backward_limit+gap && zopfliNodeDistanceCode(&nodes[pos]) > 0 { return uint32(pos) } else { return nodes[pos-clen-ilen].u.shortcut } } /* Fills in dist_cache[0..3] with the last four distances (as defined by Section 4. of the Spec) that would be used at (block_start + pos) if we used the shortest path of commands from block_start, computed from nodes[0..pos]. The last four distances at block_start are in starting_dist_cache[0..3]. REQUIRES: nodes[pos].cost < kInfinity REQUIRES: nodes[0..pos] satisfies that "ZopfliNode array invariant". */ func computeDistanceCache(pos uint, starting_dist_cache []int, nodes []zopfliNode, dist_cache []int) { var idx int = 0 var p uint = uint(nodes[pos].u.shortcut) for idx < 4 && p > 0 { var ilen uint = uint(nodes[p].dcode_insert_length & 0x7FFFFFF) var clen uint = uint(zopfliNodeCopyLength(&nodes[p])) var dist uint = uint(zopfliNodeCopyDistance(&nodes[p])) dist_cache[idx] = int(dist) idx++ /* Because of prerequisite, p >= clen + ilen >= 2. */ p = uint(nodes[p-clen-ilen].u.shortcut) } for ; idx < 4; idx++ { dist_cache[idx] = starting_dist_cache[0] starting_dist_cache = starting_dist_cache[1:] } } /* Maintains "ZopfliNode array invariant" and pushes node to the queue, if it is eligible. */ func evaluateNode(block_start uint, pos uint, max_backward_limit uint, gap uint, starting_dist_cache []int, model *zopfliCostModel, queue *startPosQueue, nodes []zopfliNode) { /* Save cost, because ComputeDistanceCache invalidates it. */ var node_cost float32 = nodes[pos].u.cost nodes[pos].u.shortcut = computeDistanceShortcut(block_start, pos, max_backward_limit, gap, nodes) if node_cost <= zopfliCostModelGetLiteralCosts(model, 0, pos) { var posdata posData posdata.pos = pos posdata.cost = node_cost posdata.costdiff = node_cost - zopfliCostModelGetLiteralCosts(model, 0, pos) computeDistanceCache(pos, starting_dist_cache, nodes, posdata.distance_cache[:]) startPosQueuePush(queue, &posdata) } } /* Returns longest copy length. */ func updateNodes(num_bytes uint, block_start uint, pos uint, ringbuffer []byte, ringbuffer_mask uint, params *encoderParams, max_backward_limit uint, starting_dist_cache []int, num_matches uint, matches []backwardMatch, model *zopfliCostModel, queue *startPosQueue, nodes []zopfliNode) uint { var cur_ix uint = block_start + pos var cur_ix_masked uint = cur_ix & ringbuffer_mask var max_distance uint = brotli_min_size_t(cur_ix, max_backward_limit) var max_len uint = num_bytes - pos var max_zopfli_len uint = maxZopfliLen(params) var max_iters uint = maxZopfliCandidates(params) var min_len uint var result uint = 0 var k uint var gap uint = 0 evaluateNode(block_start, pos, max_backward_limit, gap, starting_dist_cache, model, queue, nodes) { var posdata *posData = startPosQueueAt(queue, 0) var min_cost float32 = (posdata.cost + zopfliCostModelGetMinCostCmd(model) + zopfliCostModelGetLiteralCosts(model, posdata.pos, pos)) min_len = computeMinimumCopyLength(min_cost, nodes, num_bytes, pos) } /* Go over the command starting positions in order of increasing cost difference. */ for k = 0; k < max_iters && k < startPosQueueSize(queue); k++ { var posdata *posData = startPosQueueAt(queue, k) var start uint = posdata.pos var inscode uint16 = getInsertLengthCode(pos - start) var start_costdiff float32 = posdata.costdiff var base_cost float32 = start_costdiff + float32(getInsertExtra(inscode)) + zopfliCostModelGetLiteralCosts(model, 0, pos) var best_len uint = min_len - 1 var j uint = 0 /* Look for last distance matches using the distance cache from this starting position. */ for ; j < numDistanceShortCodes && best_len < max_len; j++ { var idx uint = uint(kDistanceCacheIndex[j]) var backward uint = uint(posdata.distance_cache[idx] + kDistanceCacheOffset[j]) var prev_ix uint = cur_ix - backward var len uint = 0 var continuation byte = ringbuffer[cur_ix_masked+best_len] if cur_ix_masked+best_len > ringbuffer_mask { break } if backward > max_distance+gap { /* Word dictionary -> ignore. */ continue } if backward <= max_distance { /* Regular backward reference. */ if prev_ix >= cur_ix { continue } prev_ix &= ringbuffer_mask if prev_ix+best_len > ringbuffer_mask || continuation != ringbuffer[prev_ix+best_len] { continue } len = findMatchLengthWithLimit(ringbuffer[prev_ix:], ringbuffer[cur_ix_masked:], max_len) } else { continue } { var dist_cost float32 = base_cost + zopfliCostModelGetDistanceCost(model, j) var l uint for l = best_len + 1; l <= len; l++ { var copycode uint16 = getCopyLengthCode(l) var cmdcode uint16 = combineLengthCodes(inscode, copycode, j == 0) var tmp float32 if cmdcode < 128 { tmp = base_cost } else { tmp = dist_cost } var cost float32 = tmp + float32(getCopyExtra(copycode)) + zopfliCostModelGetCommandCost(model, cmdcode) if cost < nodes[pos+l].u.cost { updateZopfliNode(nodes, pos, start, l, l, backward, j+1, cost) result = brotli_max_size_t(result, l) } best_len = l } } } /* At higher iterations look only for new last distance matches, since looking only for new command start positions with the same distances does not help much. */ if k >= 2 { continue } { /* Loop through all possible copy lengths at this position. */ var len uint = min_len for j = 0; j < num_matches; j++ { var match backwardMatch = matches[j] var dist uint = uint(match.distance) var is_dictionary_match bool = (dist > max_distance+gap) var dist_code uint = dist + numDistanceShortCodes - 1 var dist_symbol uint16 var distextra uint32 var distnumextra uint32 var dist_cost float32 var max_match_len uint /* We already tried all possible last distance matches, so we can use normal distance code here. */ prefixEncodeCopyDistance(dist_code, uint(params.dist.num_direct_distance_codes), uint(params.dist.distance_postfix_bits), &dist_symbol, &distextra) distnumextra = uint32(dist_symbol) >> 10 dist_cost = base_cost + float32(distnumextra) + zopfliCostModelGetDistanceCost(model, uint(dist_symbol)&0x3FF) /* Try all copy lengths up until the maximum copy length corresponding to this distance. If the distance refers to the static dictionary, or the maximum length is long enough, try only one maximum length. */ max_match_len = backwardMatchLength(&match) if len < max_match_len && (is_dictionary_match || max_match_len > max_zopfli_len) { len = max_match_len } for ; len <= max_match_len; len++ { var len_code uint if is_dictionary_match { len_code = backwardMatchLengthCode(&match) } else { len_code = len } var copycode uint16 = getCopyLengthCode(len_code) var cmdcode uint16 = combineLengthCodes(inscode, copycode, false) var cost float32 = dist_cost + float32(getCopyExtra(copycode)) + zopfliCostModelGetCommandCost(model, cmdcode) if cost < nodes[pos+len].u.cost { updateZopfliNode(nodes, pos, start, uint(len), len_code, dist, 0, cost) if len > result { result = len } } } } } } return result } func computeShortestPathFromNodes(num_bytes uint, nodes []zopfliNode) uint { var index uint = num_bytes var num_commands uint = 0 for nodes[index].dcode_insert_length&0x7FFFFFF == 0 && nodes[index].length == 1 { index-- } nodes[index].u.next = math.MaxUint32 for index != 0 { var len uint = uint(zopfliNodeCommandLength(&nodes[index])) index -= uint(len) nodes[index].u.next = uint32(len) num_commands++ } return num_commands } /* REQUIRES: nodes != NULL and len(nodes) >= num_bytes + 1 */ func zopfliCreateCommands(num_bytes uint, block_start uint, nodes []zopfliNode, dist_cache []int, last_insert_len *uint, params *encoderParams, commands *[]command, num_literals *uint) { var max_backward_limit uint = maxBackwardLimit(params.lgwin) var pos uint = 0 var offset uint32 = nodes[0].u.next var i uint var gap uint = 0 for i = 0; offset != math.MaxUint32; i++ { var next *zopfliNode = &nodes[uint32(pos)+offset] var copy_length uint = uint(zopfliNodeCopyLength(next)) var insert_length uint = uint(next.dcode_insert_length & 0x7FFFFFF) pos += insert_length offset = next.u.next if i == 0 { insert_length += *last_insert_len *last_insert_len = 0 } { var distance uint = uint(zopfliNodeCopyDistance(next)) var len_code uint = uint(zopfliNodeLengthCode(next)) var max_distance uint = brotli_min_size_t(block_start+pos, max_backward_limit) var is_dictionary bool = (distance > max_distance+gap) var dist_code uint = uint(zopfliNodeDistanceCode(next)) *commands = append(*commands, makeCommand(¶ms.dist, insert_length, copy_length, int(len_code)-int(copy_length), dist_code)) if !is_dictionary && dist_code > 0 { dist_cache[3] = dist_cache[2] dist_cache[2] = dist_cache[1] dist_cache[1] = dist_cache[0] dist_cache[0] = int(distance) } } *num_literals += insert_length pos += copy_length } *last_insert_len += num_bytes - pos } func zopfliIterate(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint, params *encoderParams, gap uint, dist_cache []int, model *zopfliCostModel, num_matches []uint32, matches []backwardMatch, nodes []zopfliNode) uint { var max_backward_limit uint = maxBackwardLimit(params.lgwin) var max_zopfli_len uint = maxZopfliLen(params) var queue startPosQueue var cur_match_pos uint = 0 var i uint nodes[0].length = 0 nodes[0].u.cost = 0 initStartPosQueue(&queue) for i = 0; i+3 < num_bytes; i++ { var skip uint = updateNodes(num_bytes, position, i, ringbuffer, ringbuffer_mask, params, max_backward_limit, dist_cache, uint(num_matches[i]), matches[cur_match_pos:], model, &queue, nodes) if skip < longCopyQuickStep { skip = 0 } cur_match_pos += uint(num_matches[i]) if num_matches[i] == 1 && backwardMatchLength(&matches[cur_match_pos-1]) > max_zopfli_len { skip = brotli_max_size_t(backwardMatchLength(&matches[cur_match_pos-1]), skip) } if skip > 1 { skip-- for skip != 0 { i++ if i+3 >= num_bytes { break } evaluateNode(position, i, max_backward_limit, gap, dist_cache, model, &queue, nodes) cur_match_pos += uint(num_matches[i]) skip-- } } } return computeShortestPathFromNodes(num_bytes, nodes) } /* Computes the shortest path of commands from position to at most position + num_bytes. On return, path->size() is the number of commands found and path[i] is the length of the i-th command (copy length plus insert length). Note that the sum of the lengths of all commands can be less than num_bytes. On return, the nodes[0..num_bytes] array will have the following "ZopfliNode array invariant": For each i in [1..num_bytes], if nodes[i].cost < kInfinity, then (1) nodes[i].copy_length() >= 2 (2) nodes[i].command_length() <= i and (3) nodes[i - nodes[i].command_length()].cost < kInfinity REQUIRES: nodes != nil and len(nodes) >= num_bytes + 1 */ func zopfliComputeShortestPath(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint, params *encoderParams, dist_cache []int, hasher *h10, nodes []zopfliNode) uint { var max_backward_limit uint = maxBackwardLimit(params.lgwin) var max_zopfli_len uint = maxZopfliLen(params) var model zopfliCostModel var queue startPosQueue var matches [2 * (maxNumMatchesH10 + 64)]backwardMatch var store_end uint if num_bytes >= hasher.StoreLookahead() { store_end = position + num_bytes - hasher.StoreLookahead() + 1 } else { store_end = position } var i uint var gap uint = 0 var lz_matches_offset uint = 0 nodes[0].length = 0 nodes[0].u.cost = 0 initZopfliCostModel(&model, ¶ms.dist, num_bytes) zopfliCostModelSetFromLiteralCosts(&model, position, ringbuffer, ringbuffer_mask) initStartPosQueue(&queue) for i = 0; i+hasher.HashTypeLength()-1 < num_bytes; i++ { var pos uint = position + i var max_distance uint = brotli_min_size_t(pos, max_backward_limit) var skip uint var num_matches uint num_matches = findAllMatchesH10(hasher, ¶ms.dictionary, ringbuffer, ringbuffer_mask, pos, num_bytes-i, max_distance, gap, params, matches[lz_matches_offset:]) if num_matches > 0 && backwardMatchLength(&matches[num_matches-1]) > max_zopfli_len { matches[0] = matches[num_matches-1] num_matches = 1 } skip = updateNodes(num_bytes, position, i, ringbuffer, ringbuffer_mask, params, max_backward_limit, dist_cache, num_matches, matches[:], &model, &queue, nodes) if skip < longCopyQuickStep { skip = 0 } if num_matches == 1 && backwardMatchLength(&matches[0]) > max_zopfli_len { skip = brotli_max_size_t(backwardMatchLength(&matches[0]), skip) } if skip > 1 { /* Add the tail of the copy to the hasher. */ hasher.StoreRange(ringbuffer, ringbuffer_mask, pos+1, brotli_min_size_t(pos+skip, store_end)) skip-- for skip != 0 { i++ if i+hasher.HashTypeLength()-1 >= num_bytes { break } evaluateNode(position, i, max_backward_limit, gap, dist_cache, &model, &queue, nodes) skip-- } } } cleanupZopfliCostModel(&model) return computeShortestPathFromNodes(num_bytes, nodes) } func createZopfliBackwardReferences(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint, params *encoderParams, hasher *h10, dist_cache []int, last_insert_len *uint, commands *[]command, num_literals *uint) { var nodes []zopfliNode nodes = make([]zopfliNode, (num_bytes + 1)) initZopfliNodes(nodes, num_bytes+1) zopfliComputeShortestPath(num_bytes, position, ringbuffer, ringbuffer_mask, params, dist_cache, hasher, nodes) zopfliCreateCommands(num_bytes, position, nodes, dist_cache, last_insert_len, params, commands, num_literals) nodes = nil } func createHqZopfliBackwardReferences(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint, params *encoderParams, hasher hasherHandle, dist_cache []int, last_insert_len *uint, commands *[]command, num_literals *uint) { var max_backward_limit uint = maxBackwardLimit(params.lgwin) var num_matches []uint32 = make([]uint32, num_bytes) var matches_size uint = 4 * num_bytes var store_end uint if num_bytes >= hasher.StoreLookahead() { store_end = position + num_bytes - hasher.StoreLookahead() + 1 } else { store_end = position } var cur_match_pos uint = 0 var i uint var orig_num_literals uint var orig_last_insert_len uint var orig_dist_cache [4]int var orig_num_commands int var model zopfliCostModel var nodes []zopfliNode var matches []backwardMatch = make([]backwardMatch, matches_size) var gap uint = 0 var shadow_matches uint = 0 var new_array []backwardMatch for i = 0; i+hasher.HashTypeLength()-1 < num_bytes; i++ { var pos uint = position + i var max_distance uint = brotli_min_size_t(pos, max_backward_limit) var max_length uint = num_bytes - i var num_found_matches uint var cur_match_end uint var j uint /* Ensure that we have enough free slots. */ if matches_size < cur_match_pos+maxNumMatchesH10+shadow_matches { var new_size uint = matches_size if new_size == 0 { new_size = cur_match_pos + maxNumMatchesH10 + shadow_matches } for new_size < cur_match_pos+maxNumMatchesH10+shadow_matches { new_size *= 2 } new_array = make([]backwardMatch, new_size) if matches_size != 0 { copy(new_array, matches[:matches_size]) } matches = new_array matches_size = new_size } num_found_matches = findAllMatchesH10(hasher.(*h10), ¶ms.dictionary, ringbuffer, ringbuffer_mask, pos, max_length, max_distance, gap, params, matches[cur_match_pos+shadow_matches:]) cur_match_end = cur_match_pos + num_found_matches for j = cur_match_pos; j+1 < cur_match_end; j++ { assert(backwardMatchLength(&matches[j]) <= backwardMatchLength(&matches[j+1])) } num_matches[i] = uint32(num_found_matches) if num_found_matches > 0 { var match_len uint = backwardMatchLength(&matches[cur_match_end-1]) if match_len > maxZopfliLenQuality11 { var skip uint = match_len - 1 matches[cur_match_pos] = matches[cur_match_end-1] cur_match_pos++ num_matches[i] = 1 /* Add the tail of the copy to the hasher. */ hasher.StoreRange(ringbuffer, ringbuffer_mask, pos+1, brotli_min_size_t(pos+match_len, store_end)) var pos uint = i for i := 0; i < int(skip); i++ { num_matches[pos+1:][i] = 0 } i += skip } else { cur_match_pos = cur_match_end } } } orig_num_literals = *num_literals orig_last_insert_len = *last_insert_len copy(orig_dist_cache[:], dist_cache[:4]) orig_num_commands = len(*commands) nodes = make([]zopfliNode, (num_bytes + 1)) initZopfliCostModel(&model, ¶ms.dist, num_bytes) for i = 0; i < 2; i++ { initZopfliNodes(nodes, num_bytes+1) if i == 0 { zopfliCostModelSetFromLiteralCosts(&model, position, ringbuffer, ringbuffer_mask) } else { zopfliCostModelSetFromCommands(&model, position, ringbuffer, ringbuffer_mask, (*commands)[orig_num_commands:], orig_last_insert_len) } *commands = (*commands)[:orig_num_commands] *num_literals = orig_num_literals *last_insert_len = orig_last_insert_len copy(dist_cache, orig_dist_cache[:4]) zopfliIterate(num_bytes, position, ringbuffer, ringbuffer_mask, params, gap, dist_cache, &model, num_matches, matches, nodes) zopfliCreateCommands(num_bytes, position, nodes, dist_cache, last_insert_len, params, commands, num_literals) } cleanupZopfliCostModel(&model) nodes = nil matches = nil num_matches = nil } brotli-1.0.4/bit_cost.go000066400000000000000000000252451412267201500151540ustar00rootroot00000000000000package brotli /* Copyright 2013 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* Functions to estimate the bit cost of Huffman trees. */ func shannonEntropy(population []uint32, size uint, total *uint) float64 { var sum uint = 0 var retval float64 = 0 var population_end []uint32 = population[size:] var p uint for -cap(population) < -cap(population_end) { p = uint(population[0]) population = population[1:] sum += p retval -= float64(p) * fastLog2(p) } if sum != 0 { retval += float64(sum) * fastLog2(sum) } *total = sum return retval } func bitsEntropy(population []uint32, size uint) float64 { var sum uint var retval float64 = shannonEntropy(population, size, &sum) if retval < float64(sum) { /* At least one bit per literal is needed. */ retval = float64(sum) } return retval } const kOneSymbolHistogramCost float64 = 12 const kTwoSymbolHistogramCost float64 = 20 const kThreeSymbolHistogramCost float64 = 28 const kFourSymbolHistogramCost float64 = 37 func populationCostLiteral(histogram *histogramLiteral) float64 { var data_size uint = histogramDataSizeLiteral() var count int = 0 var s [5]uint var bits float64 = 0.0 var i uint if histogram.total_count_ == 0 { return kOneSymbolHistogramCost } for i = 0; i < data_size; i++ { if histogram.data_[i] > 0 { s[count] = i count++ if count > 4 { break } } } if count == 1 { return kOneSymbolHistogramCost } if count == 2 { return kTwoSymbolHistogramCost + float64(histogram.total_count_) } if count == 3 { var histo0 uint32 = histogram.data_[s[0]] var histo1 uint32 = histogram.data_[s[1]] var histo2 uint32 = histogram.data_[s[2]] var histomax uint32 = brotli_max_uint32_t(histo0, brotli_max_uint32_t(histo1, histo2)) return kThreeSymbolHistogramCost + 2*(float64(histo0)+float64(histo1)+float64(histo2)) - float64(histomax) } if count == 4 { var histo [4]uint32 var h23 uint32 var histomax uint32 for i = 0; i < 4; i++ { histo[i] = histogram.data_[s[i]] } /* Sort */ for i = 0; i < 4; i++ { var j uint for j = i + 1; j < 4; j++ { if histo[j] > histo[i] { var tmp uint32 = histo[j] histo[j] = histo[i] histo[i] = tmp } } } h23 = histo[2] + histo[3] histomax = brotli_max_uint32_t(h23, histo[0]) return kFourSymbolHistogramCost + 3*float64(h23) + 2*(float64(histo[0])+float64(histo[1])) - float64(histomax) } { var max_depth uint = 1 var depth_histo = [codeLengthCodes]uint32{0} /* In this loop we compute the entropy of the histogram and simultaneously build a simplified histogram of the code length codes where we use the zero repeat code 17, but we don't use the non-zero repeat code 16. */ var log2total float64 = fastLog2(histogram.total_count_) for i = 0; i < data_size; { if histogram.data_[i] > 0 { var log2p float64 = log2total - fastLog2(uint(histogram.data_[i])) /* Compute -log2(P(symbol)) = -log2(count(symbol)/total_count) = = log2(total_count) - log2(count(symbol)) */ var depth uint = uint(log2p + 0.5) /* Approximate the bit depth by round(-log2(P(symbol))) */ bits += float64(histogram.data_[i]) * log2p if depth > 15 { depth = 15 } if depth > max_depth { max_depth = depth } depth_histo[depth]++ i++ } else { var reps uint32 = 1 /* Compute the run length of zeros and add the appropriate number of 0 and 17 code length codes to the code length code histogram. */ var k uint for k = i + 1; k < data_size && histogram.data_[k] == 0; k++ { reps++ } i += uint(reps) if i == data_size { /* Don't add any cost for the last zero run, since these are encoded only implicitly. */ break } if reps < 3 { depth_histo[0] += reps } else { reps -= 2 for reps > 0 { depth_histo[repeatZeroCodeLength]++ /* Add the 3 extra bits for the 17 code length code. */ bits += 3 reps >>= 3 } } } } /* Add the estimated encoding cost of the code length code histogram. */ bits += float64(18 + 2*max_depth) /* Add the entropy of the code length code histogram. */ bits += bitsEntropy(depth_histo[:], codeLengthCodes) } return bits } func populationCostCommand(histogram *histogramCommand) float64 { var data_size uint = histogramDataSizeCommand() var count int = 0 var s [5]uint var bits float64 = 0.0 var i uint if histogram.total_count_ == 0 { return kOneSymbolHistogramCost } for i = 0; i < data_size; i++ { if histogram.data_[i] > 0 { s[count] = i count++ if count > 4 { break } } } if count == 1 { return kOneSymbolHistogramCost } if count == 2 { return kTwoSymbolHistogramCost + float64(histogram.total_count_) } if count == 3 { var histo0 uint32 = histogram.data_[s[0]] var histo1 uint32 = histogram.data_[s[1]] var histo2 uint32 = histogram.data_[s[2]] var histomax uint32 = brotli_max_uint32_t(histo0, brotli_max_uint32_t(histo1, histo2)) return kThreeSymbolHistogramCost + 2*(float64(histo0)+float64(histo1)+float64(histo2)) - float64(histomax) } if count == 4 { var histo [4]uint32 var h23 uint32 var histomax uint32 for i = 0; i < 4; i++ { histo[i] = histogram.data_[s[i]] } /* Sort */ for i = 0; i < 4; i++ { var j uint for j = i + 1; j < 4; j++ { if histo[j] > histo[i] { var tmp uint32 = histo[j] histo[j] = histo[i] histo[i] = tmp } } } h23 = histo[2] + histo[3] histomax = brotli_max_uint32_t(h23, histo[0]) return kFourSymbolHistogramCost + 3*float64(h23) + 2*(float64(histo[0])+float64(histo[1])) - float64(histomax) } { var max_depth uint = 1 var depth_histo = [codeLengthCodes]uint32{0} /* In this loop we compute the entropy of the histogram and simultaneously build a simplified histogram of the code length codes where we use the zero repeat code 17, but we don't use the non-zero repeat code 16. */ var log2total float64 = fastLog2(histogram.total_count_) for i = 0; i < data_size; { if histogram.data_[i] > 0 { var log2p float64 = log2total - fastLog2(uint(histogram.data_[i])) /* Compute -log2(P(symbol)) = -log2(count(symbol)/total_count) = = log2(total_count) - log2(count(symbol)) */ var depth uint = uint(log2p + 0.5) /* Approximate the bit depth by round(-log2(P(symbol))) */ bits += float64(histogram.data_[i]) * log2p if depth > 15 { depth = 15 } if depth > max_depth { max_depth = depth } depth_histo[depth]++ i++ } else { var reps uint32 = 1 /* Compute the run length of zeros and add the appropriate number of 0 and 17 code length codes to the code length code histogram. */ var k uint for k = i + 1; k < data_size && histogram.data_[k] == 0; k++ { reps++ } i += uint(reps) if i == data_size { /* Don't add any cost for the last zero run, since these are encoded only implicitly. */ break } if reps < 3 { depth_histo[0] += reps } else { reps -= 2 for reps > 0 { depth_histo[repeatZeroCodeLength]++ /* Add the 3 extra bits for the 17 code length code. */ bits += 3 reps >>= 3 } } } } /* Add the estimated encoding cost of the code length code histogram. */ bits += float64(18 + 2*max_depth) /* Add the entropy of the code length code histogram. */ bits += bitsEntropy(depth_histo[:], codeLengthCodes) } return bits } func populationCostDistance(histogram *histogramDistance) float64 { var data_size uint = histogramDataSizeDistance() var count int = 0 var s [5]uint var bits float64 = 0.0 var i uint if histogram.total_count_ == 0 { return kOneSymbolHistogramCost } for i = 0; i < data_size; i++ { if histogram.data_[i] > 0 { s[count] = i count++ if count > 4 { break } } } if count == 1 { return kOneSymbolHistogramCost } if count == 2 { return kTwoSymbolHistogramCost + float64(histogram.total_count_) } if count == 3 { var histo0 uint32 = histogram.data_[s[0]] var histo1 uint32 = histogram.data_[s[1]] var histo2 uint32 = histogram.data_[s[2]] var histomax uint32 = brotli_max_uint32_t(histo0, brotli_max_uint32_t(histo1, histo2)) return kThreeSymbolHistogramCost + 2*(float64(histo0)+float64(histo1)+float64(histo2)) - float64(histomax) } if count == 4 { var histo [4]uint32 var h23 uint32 var histomax uint32 for i = 0; i < 4; i++ { histo[i] = histogram.data_[s[i]] } /* Sort */ for i = 0; i < 4; i++ { var j uint for j = i + 1; j < 4; j++ { if histo[j] > histo[i] { var tmp uint32 = histo[j] histo[j] = histo[i] histo[i] = tmp } } } h23 = histo[2] + histo[3] histomax = brotli_max_uint32_t(h23, histo[0]) return kFourSymbolHistogramCost + 3*float64(h23) + 2*(float64(histo[0])+float64(histo[1])) - float64(histomax) } { var max_depth uint = 1 var depth_histo = [codeLengthCodes]uint32{0} /* In this loop we compute the entropy of the histogram and simultaneously build a simplified histogram of the code length codes where we use the zero repeat code 17, but we don't use the non-zero repeat code 16. */ var log2total float64 = fastLog2(histogram.total_count_) for i = 0; i < data_size; { if histogram.data_[i] > 0 { var log2p float64 = log2total - fastLog2(uint(histogram.data_[i])) /* Compute -log2(P(symbol)) = -log2(count(symbol)/total_count) = = log2(total_count) - log2(count(symbol)) */ var depth uint = uint(log2p + 0.5) /* Approximate the bit depth by round(-log2(P(symbol))) */ bits += float64(histogram.data_[i]) * log2p if depth > 15 { depth = 15 } if depth > max_depth { max_depth = depth } depth_histo[depth]++ i++ } else { var reps uint32 = 1 /* Compute the run length of zeros and add the appropriate number of 0 and 17 code length codes to the code length code histogram. */ var k uint for k = i + 1; k < data_size && histogram.data_[k] == 0; k++ { reps++ } i += uint(reps) if i == data_size { /* Don't add any cost for the last zero run, since these are encoded only implicitly. */ break } if reps < 3 { depth_histo[0] += reps } else { reps -= 2 for reps > 0 { depth_histo[repeatZeroCodeLength]++ /* Add the 3 extra bits for the 17 code length code. */ bits += 3 reps >>= 3 } } } } /* Add the estimated encoding cost of the code length code histogram. */ bits += float64(18 + 2*max_depth) /* Add the entropy of the code length code histogram. */ bits += bitsEntropy(depth_histo[:], codeLengthCodes) } return bits } brotli-1.0.4/bit_reader.go000066400000000000000000000151611412267201500154420ustar00rootroot00000000000000package brotli import "encoding/binary" /* Copyright 2013 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* Bit reading helpers */ const shortFillBitWindowRead = (8 >> 1) var kBitMask = [33]uint32{ 0x00000000, 0x00000001, 0x00000003, 0x00000007, 0x0000000F, 0x0000001F, 0x0000003F, 0x0000007F, 0x000000FF, 0x000001FF, 0x000003FF, 0x000007FF, 0x00000FFF, 0x00001FFF, 0x00003FFF, 0x00007FFF, 0x0000FFFF, 0x0001FFFF, 0x0003FFFF, 0x0007FFFF, 0x000FFFFF, 0x001FFFFF, 0x003FFFFF, 0x007FFFFF, 0x00FFFFFF, 0x01FFFFFF, 0x03FFFFFF, 0x07FFFFFF, 0x0FFFFFFF, 0x1FFFFFFF, 0x3FFFFFFF, 0x7FFFFFFF, 0xFFFFFFFF, } func bitMask(n uint32) uint32 { return kBitMask[n] } type bitReader struct { val_ uint64 bit_pos_ uint32 input []byte input_len uint byte_pos uint } type bitReaderState struct { val_ uint64 bit_pos_ uint32 input []byte input_len uint byte_pos uint } /* Initializes the BrotliBitReader fields. */ /* Ensures that accumulator is not empty. May consume up to sizeof(brotli_reg_t) - 1 bytes of input. Returns false if data is required but there is no input available. For BROTLI_ALIGNED_READ this function also prepares bit reader for aligned reading. */ func bitReaderSaveState(from *bitReader, to *bitReaderState) { to.val_ = from.val_ to.bit_pos_ = from.bit_pos_ to.input = from.input to.input_len = from.input_len to.byte_pos = from.byte_pos } func bitReaderRestoreState(to *bitReader, from *bitReaderState) { to.val_ = from.val_ to.bit_pos_ = from.bit_pos_ to.input = from.input to.input_len = from.input_len to.byte_pos = from.byte_pos } func getAvailableBits(br *bitReader) uint32 { return 64 - br.bit_pos_ } /* Returns amount of unread bytes the bit reader still has buffered from the BrotliInput, including whole bytes in br->val_. */ func getRemainingBytes(br *bitReader) uint { return uint(uint32(br.input_len-br.byte_pos) + (getAvailableBits(br) >> 3)) } /* Checks if there is at least |num| bytes left in the input ring-buffer (excluding the bits remaining in br->val_). */ func checkInputAmount(br *bitReader, num uint) bool { return br.input_len-br.byte_pos >= num } /* Guarantees that there are at least |n_bits| + 1 bits in accumulator. Precondition: accumulator contains at least 1 bit. |n_bits| should be in the range [1..24] for regular build. For portable non-64-bit little-endian build only 16 bits are safe to request. */ func fillBitWindow(br *bitReader, n_bits uint32) { if br.bit_pos_ >= 32 { br.val_ >>= 32 br.bit_pos_ ^= 32 /* here same as -= 32 because of the if condition */ br.val_ |= (uint64(binary.LittleEndian.Uint32(br.input[br.byte_pos:]))) << 32 br.byte_pos += 4 } } /* Mostly like BrotliFillBitWindow, but guarantees only 16 bits and reads no more than BROTLI_SHORT_FILL_BIT_WINDOW_READ bytes of input. */ func fillBitWindow16(br *bitReader) { fillBitWindow(br, 17) } /* Tries to pull one byte of input to accumulator. Returns false if there is no input available. */ func pullByte(br *bitReader) bool { if br.byte_pos == br.input_len { return false } br.val_ >>= 8 br.val_ |= (uint64(br.input[br.byte_pos])) << 56 br.bit_pos_ -= 8 br.byte_pos++ return true } /* Returns currently available bits. The number of valid bits could be calculated by BrotliGetAvailableBits. */ func getBitsUnmasked(br *bitReader) uint64 { return br.val_ >> br.bit_pos_ } /* Like BrotliGetBits, but does not mask the result. The result contains at least 16 valid bits. */ func get16BitsUnmasked(br *bitReader) uint32 { fillBitWindow(br, 16) return uint32(getBitsUnmasked(br)) } /* Returns the specified number of bits from |br| without advancing bit position. */ func getBits(br *bitReader, n_bits uint32) uint32 { fillBitWindow(br, n_bits) return uint32(getBitsUnmasked(br)) & bitMask(n_bits) } /* Tries to peek the specified amount of bits. Returns false, if there is not enough input. */ func safeGetBits(br *bitReader, n_bits uint32, val *uint32) bool { for getAvailableBits(br) < n_bits { if !pullByte(br) { return false } } *val = uint32(getBitsUnmasked(br)) & bitMask(n_bits) return true } /* Advances the bit pos by |n_bits|. */ func dropBits(br *bitReader, n_bits uint32) { br.bit_pos_ += n_bits } func bitReaderUnload(br *bitReader) { var unused_bytes uint32 = getAvailableBits(br) >> 3 var unused_bits uint32 = unused_bytes << 3 br.byte_pos -= uint(unused_bytes) if unused_bits == 64 { br.val_ = 0 } else { br.val_ <<= unused_bits } br.bit_pos_ += unused_bits } /* Reads the specified number of bits from |br| and advances the bit pos. Precondition: accumulator MUST contain at least |n_bits|. */ func takeBits(br *bitReader, n_bits uint32, val *uint32) { *val = uint32(getBitsUnmasked(br)) & bitMask(n_bits) dropBits(br, n_bits) } /* Reads the specified number of bits from |br| and advances the bit pos. Assumes that there is enough input to perform BrotliFillBitWindow. */ func readBits(br *bitReader, n_bits uint32) uint32 { var val uint32 fillBitWindow(br, n_bits) takeBits(br, n_bits, &val) return val } /* Tries to read the specified amount of bits. Returns false, if there is not enough input. |n_bits| MUST be positive. */ func safeReadBits(br *bitReader, n_bits uint32, val *uint32) bool { for getAvailableBits(br) < n_bits { if !pullByte(br) { return false } } takeBits(br, n_bits, val) return true } /* Advances the bit reader position to the next byte boundary and verifies that any skipped bits are set to zero. */ func bitReaderJumpToByteBoundary(br *bitReader) bool { var pad_bits_count uint32 = getAvailableBits(br) & 0x7 var pad_bits uint32 = 0 if pad_bits_count != 0 { takeBits(br, pad_bits_count, &pad_bits) } return pad_bits == 0 } /* Copies remaining input bytes stored in the bit reader to the output. Value |num| may not be larger than BrotliGetRemainingBytes. The bit reader must be warmed up again after this. */ func copyBytes(dest []byte, br *bitReader, num uint) { for getAvailableBits(br) >= 8 && num > 0 { dest[0] = byte(getBitsUnmasked(br)) dropBits(br, 8) dest = dest[1:] num-- } copy(dest, br.input[br.byte_pos:][:num]) br.byte_pos += num } func initBitReader(br *bitReader) { br.val_ = 0 br.bit_pos_ = 64 } func warmupBitReader(br *bitReader) bool { /* Fixing alignment after unaligned BrotliFillWindow would result accumulator overflow. If unalignment is caused by BrotliSafeReadBits, then there is enough space in accumulator to fix alignment. */ if getAvailableBits(br) == 0 { if !pullByte(br) { return false } } return true } brotli-1.0.4/block_splitter.go000066400000000000000000000100141412267201500163520ustar00rootroot00000000000000package brotli /* Copyright 2013 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* Block split point selection utilities. */ type blockSplit struct { num_types uint num_blocks uint types []byte lengths []uint32 types_alloc_size uint lengths_alloc_size uint } const ( kMaxLiteralHistograms uint = 100 kMaxCommandHistograms uint = 50 kLiteralBlockSwitchCost float64 = 28.1 kCommandBlockSwitchCost float64 = 13.5 kDistanceBlockSwitchCost float64 = 14.6 kLiteralStrideLength uint = 70 kCommandStrideLength uint = 40 kSymbolsPerLiteralHistogram uint = 544 kSymbolsPerCommandHistogram uint = 530 kSymbolsPerDistanceHistogram uint = 544 kMinLengthForBlockSplitting uint = 128 kIterMulForRefining uint = 2 kMinItersForRefining uint = 100 ) func countLiterals(cmds []command) uint { var total_length uint = 0 /* Count how many we have. */ for i := range cmds { total_length += uint(cmds[i].insert_len_) } return total_length } func copyLiteralsToByteArray(cmds []command, data []byte, offset uint, mask uint, literals []byte) { var pos uint = 0 var from_pos uint = offset & mask for i := range cmds { var insert_len uint = uint(cmds[i].insert_len_) if from_pos+insert_len > mask { var head_size uint = mask + 1 - from_pos copy(literals[pos:], data[from_pos:][:head_size]) from_pos = 0 pos += head_size insert_len -= head_size } if insert_len > 0 { copy(literals[pos:], data[from_pos:][:insert_len]) pos += insert_len } from_pos = uint((uint32(from_pos+insert_len) + commandCopyLen(&cmds[i])) & uint32(mask)) } } func myRand(seed *uint32) uint32 { /* Initial seed should be 7. In this case, loop length is (1 << 29). */ *seed *= 16807 return *seed } func bitCost(count uint) float64 { if count == 0 { return -2.0 } else { return fastLog2(count) } } const histogramsPerBatch = 64 const clustersPerBatch = 16 func initBlockSplit(self *blockSplit) { self.num_types = 0 self.num_blocks = 0 self.types = self.types[:0] self.lengths = self.lengths[:0] self.types_alloc_size = 0 self.lengths_alloc_size = 0 } func splitBlock(cmds []command, data []byte, pos uint, mask uint, params *encoderParams, literal_split *blockSplit, insert_and_copy_split *blockSplit, dist_split *blockSplit) { { var literals_count uint = countLiterals(cmds) var literals []byte = make([]byte, literals_count) /* Create a continuous array of literals. */ copyLiteralsToByteArray(cmds, data, pos, mask, literals) /* Create the block split on the array of literals. Literal histograms have alphabet size 256. */ splitByteVectorLiteral(literals, literals_count, kSymbolsPerLiteralHistogram, kMaxLiteralHistograms, kLiteralStrideLength, kLiteralBlockSwitchCost, params, literal_split) literals = nil } { var insert_and_copy_codes []uint16 = make([]uint16, len(cmds)) /* Compute prefix codes for commands. */ for i := range cmds { insert_and_copy_codes[i] = cmds[i].cmd_prefix_ } /* Create the block split on the array of command prefixes. */ splitByteVectorCommand(insert_and_copy_codes, kSymbolsPerCommandHistogram, kMaxCommandHistograms, kCommandStrideLength, kCommandBlockSwitchCost, params, insert_and_copy_split) /* TODO: reuse for distances? */ insert_and_copy_codes = nil } { var distance_prefixes []uint16 = make([]uint16, len(cmds)) var j uint = 0 /* Create a continuous array of distance prefixes. */ for i := range cmds { var cmd *command = &cmds[i] if commandCopyLen(cmd) != 0 && cmd.cmd_prefix_ >= 128 { distance_prefixes[j] = cmd.dist_prefix_ & 0x3FF j++ } } /* Create the block split on the array of distance prefixes. */ splitByteVectorDistance(distance_prefixes, j, kSymbolsPerDistanceHistogram, kMaxCommandHistograms, kCommandStrideLength, kDistanceBlockSwitchCost, params, dist_split) distance_prefixes = nil } } brotli-1.0.4/block_splitter_command.go000066400000000000000000000327461412267201500200700ustar00rootroot00000000000000package brotli import "math" /* Copyright 2013 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ func initialEntropyCodesCommand(data []uint16, length uint, stride uint, num_histograms uint, histograms []histogramCommand) { var seed uint32 = 7 var block_length uint = length / num_histograms var i uint clearHistogramsCommand(histograms, num_histograms) for i = 0; i < num_histograms; i++ { var pos uint = length * i / num_histograms if i != 0 { pos += uint(myRand(&seed) % uint32(block_length)) } if pos+stride >= length { pos = length - stride - 1 } histogramAddVectorCommand(&histograms[i], data[pos:], stride) } } func randomSampleCommand(seed *uint32, data []uint16, length uint, stride uint, sample *histogramCommand) { var pos uint = 0 if stride >= length { stride = length } else { pos = uint(myRand(seed) % uint32(length-stride+1)) } histogramAddVectorCommand(sample, data[pos:], stride) } func refineEntropyCodesCommand(data []uint16, length uint, stride uint, num_histograms uint, histograms []histogramCommand) { var iters uint = kIterMulForRefining*length/stride + kMinItersForRefining var seed uint32 = 7 var iter uint iters = ((iters + num_histograms - 1) / num_histograms) * num_histograms for iter = 0; iter < iters; iter++ { var sample histogramCommand histogramClearCommand(&sample) randomSampleCommand(&seed, data, length, stride, &sample) histogramAddHistogramCommand(&histograms[iter%num_histograms], &sample) } } /* Assigns a block id from the range [0, num_histograms) to each data element in data[0..length) and fills in block_id[0..length) with the assigned values. Returns the number of blocks, i.e. one plus the number of block switches. */ func findBlocksCommand(data []uint16, length uint, block_switch_bitcost float64, num_histograms uint, histograms []histogramCommand, insert_cost []float64, cost []float64, switch_signal []byte, block_id []byte) uint { var data_size uint = histogramDataSizeCommand() var bitmaplen uint = (num_histograms + 7) >> 3 var num_blocks uint = 1 var i uint var j uint assert(num_histograms <= 256) if num_histograms <= 1 { for i = 0; i < length; i++ { block_id[i] = 0 } return 1 } for i := 0; i < int(data_size*num_histograms); i++ { insert_cost[i] = 0 } for i = 0; i < num_histograms; i++ { insert_cost[i] = fastLog2(uint(uint32(histograms[i].total_count_))) } for i = data_size; i != 0; { i-- for j = 0; j < num_histograms; j++ { insert_cost[i*num_histograms+j] = insert_cost[j] - bitCost(uint(histograms[j].data_[i])) } } for i := 0; i < int(num_histograms); i++ { cost[i] = 0 } for i := 0; i < int(length*bitmaplen); i++ { switch_signal[i] = 0 } /* After each iteration of this loop, cost[k] will contain the difference between the minimum cost of arriving at the current byte position using entropy code k, and the minimum cost of arriving at the current byte position. This difference is capped at the block switch cost, and if it reaches block switch cost, it means that when we trace back from the last position, we need to switch here. */ for i = 0; i < length; i++ { var byte_ix uint = i var ix uint = byte_ix * bitmaplen var insert_cost_ix uint = uint(data[byte_ix]) * num_histograms var min_cost float64 = 1e99 var block_switch_cost float64 = block_switch_bitcost var k uint for k = 0; k < num_histograms; k++ { /* We are coding the symbol in data[byte_ix] with entropy code k. */ cost[k] += insert_cost[insert_cost_ix+k] if cost[k] < min_cost { min_cost = cost[k] block_id[byte_ix] = byte(k) } } /* More blocks for the beginning. */ if byte_ix < 2000 { block_switch_cost *= 0.77 + 0.07*float64(byte_ix)/2000 } for k = 0; k < num_histograms; k++ { cost[k] -= min_cost if cost[k] >= block_switch_cost { var mask byte = byte(1 << (k & 7)) cost[k] = block_switch_cost assert(k>>3 < bitmaplen) switch_signal[ix+(k>>3)] |= mask /* Trace back from the last position and switch at the marked places. */ } } } { var byte_ix uint = length - 1 var ix uint = byte_ix * bitmaplen var cur_id byte = block_id[byte_ix] for byte_ix > 0 { var mask byte = byte(1 << (cur_id & 7)) assert(uint(cur_id)>>3 < bitmaplen) byte_ix-- ix -= bitmaplen if switch_signal[ix+uint(cur_id>>3)]&mask != 0 { if cur_id != block_id[byte_ix] { cur_id = block_id[byte_ix] num_blocks++ } } block_id[byte_ix] = cur_id } } return num_blocks } var remapBlockIdsCommand_kInvalidId uint16 = 256 func remapBlockIdsCommand(block_ids []byte, length uint, new_id []uint16, num_histograms uint) uint { var next_id uint16 = 0 var i uint for i = 0; i < num_histograms; i++ { new_id[i] = remapBlockIdsCommand_kInvalidId } for i = 0; i < length; i++ { assert(uint(block_ids[i]) < num_histograms) if new_id[block_ids[i]] == remapBlockIdsCommand_kInvalidId { new_id[block_ids[i]] = next_id next_id++ } } for i = 0; i < length; i++ { block_ids[i] = byte(new_id[block_ids[i]]) assert(uint(block_ids[i]) < num_histograms) } assert(uint(next_id) <= num_histograms) return uint(next_id) } func buildBlockHistogramsCommand(data []uint16, length uint, block_ids []byte, num_histograms uint, histograms []histogramCommand) { var i uint clearHistogramsCommand(histograms, num_histograms) for i = 0; i < length; i++ { histogramAddCommand(&histograms[block_ids[i]], uint(data[i])) } } var clusterBlocksCommand_kInvalidIndex uint32 = math.MaxUint32 func clusterBlocksCommand(data []uint16, length uint, num_blocks uint, block_ids []byte, split *blockSplit) { var histogram_symbols []uint32 = make([]uint32, num_blocks) var block_lengths []uint32 = make([]uint32, num_blocks) var expected_num_clusters uint = clustersPerBatch * (num_blocks + histogramsPerBatch - 1) / histogramsPerBatch var all_histograms_size uint = 0 var all_histograms_capacity uint = expected_num_clusters var all_histograms []histogramCommand = make([]histogramCommand, all_histograms_capacity) var cluster_size_size uint = 0 var cluster_size_capacity uint = expected_num_clusters var cluster_size []uint32 = make([]uint32, cluster_size_capacity) var num_clusters uint = 0 var histograms []histogramCommand = make([]histogramCommand, brotli_min_size_t(num_blocks, histogramsPerBatch)) var max_num_pairs uint = histogramsPerBatch * histogramsPerBatch / 2 var pairs_capacity uint = max_num_pairs + 1 var pairs []histogramPair = make([]histogramPair, pairs_capacity) var pos uint = 0 var clusters []uint32 var num_final_clusters uint var new_index []uint32 var i uint var sizes = [histogramsPerBatch]uint32{0} var new_clusters = [histogramsPerBatch]uint32{0} var symbols = [histogramsPerBatch]uint32{0} var remap = [histogramsPerBatch]uint32{0} for i := 0; i < int(num_blocks); i++ { block_lengths[i] = 0 } { var block_idx uint = 0 for i = 0; i < length; i++ { assert(block_idx < num_blocks) block_lengths[block_idx]++ if i+1 == length || block_ids[i] != block_ids[i+1] { block_idx++ } } assert(block_idx == num_blocks) } for i = 0; i < num_blocks; i += histogramsPerBatch { var num_to_combine uint = brotli_min_size_t(num_blocks-i, histogramsPerBatch) var num_new_clusters uint var j uint for j = 0; j < num_to_combine; j++ { var k uint histogramClearCommand(&histograms[j]) for k = 0; uint32(k) < block_lengths[i+j]; k++ { histogramAddCommand(&histograms[j], uint(data[pos])) pos++ } histograms[j].bit_cost_ = populationCostCommand(&histograms[j]) new_clusters[j] = uint32(j) symbols[j] = uint32(j) sizes[j] = 1 } num_new_clusters = histogramCombineCommand(histograms, sizes[:], symbols[:], new_clusters[:], []histogramPair(pairs), num_to_combine, num_to_combine, histogramsPerBatch, max_num_pairs) if all_histograms_capacity < (all_histograms_size + num_new_clusters) { var _new_size uint if all_histograms_capacity == 0 { _new_size = all_histograms_size + num_new_clusters } else { _new_size = all_histograms_capacity } var new_array []histogramCommand for _new_size < (all_histograms_size + num_new_clusters) { _new_size *= 2 } new_array = make([]histogramCommand, _new_size) if all_histograms_capacity != 0 { copy(new_array, all_histograms[:all_histograms_capacity]) } all_histograms = new_array all_histograms_capacity = _new_size } brotli_ensure_capacity_uint32_t(&cluster_size, &cluster_size_capacity, cluster_size_size+num_new_clusters) for j = 0; j < num_new_clusters; j++ { all_histograms[all_histograms_size] = histograms[new_clusters[j]] all_histograms_size++ cluster_size[cluster_size_size] = sizes[new_clusters[j]] cluster_size_size++ remap[new_clusters[j]] = uint32(j) } for j = 0; j < num_to_combine; j++ { histogram_symbols[i+j] = uint32(num_clusters) + remap[symbols[j]] } num_clusters += num_new_clusters assert(num_clusters == cluster_size_size) assert(num_clusters == all_histograms_size) } histograms = nil max_num_pairs = brotli_min_size_t(64*num_clusters, (num_clusters/2)*num_clusters) if pairs_capacity < max_num_pairs+1 { pairs = nil pairs = make([]histogramPair, (max_num_pairs + 1)) } clusters = make([]uint32, num_clusters) for i = 0; i < num_clusters; i++ { clusters[i] = uint32(i) } num_final_clusters = histogramCombineCommand(all_histograms, cluster_size, histogram_symbols, clusters, pairs, num_clusters, num_blocks, maxNumberOfBlockTypes, max_num_pairs) pairs = nil cluster_size = nil new_index = make([]uint32, num_clusters) for i = 0; i < num_clusters; i++ { new_index[i] = clusterBlocksCommand_kInvalidIndex } pos = 0 { var next_index uint32 = 0 for i = 0; i < num_blocks; i++ { var histo histogramCommand var j uint var best_out uint32 var best_bits float64 histogramClearCommand(&histo) for j = 0; uint32(j) < block_lengths[i]; j++ { histogramAddCommand(&histo, uint(data[pos])) pos++ } if i == 0 { best_out = histogram_symbols[0] } else { best_out = histogram_symbols[i-1] } best_bits = histogramBitCostDistanceCommand(&histo, &all_histograms[best_out]) for j = 0; j < num_final_clusters; j++ { var cur_bits float64 = histogramBitCostDistanceCommand(&histo, &all_histograms[clusters[j]]) if cur_bits < best_bits { best_bits = cur_bits best_out = clusters[j] } } histogram_symbols[i] = best_out if new_index[best_out] == clusterBlocksCommand_kInvalidIndex { new_index[best_out] = next_index next_index++ } } } clusters = nil all_histograms = nil brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, num_blocks) brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, num_blocks) { var cur_length uint32 = 0 var block_idx uint = 0 var max_type byte = 0 for i = 0; i < num_blocks; i++ { cur_length += block_lengths[i] if i+1 == num_blocks || histogram_symbols[i] != histogram_symbols[i+1] { var id byte = byte(new_index[histogram_symbols[i]]) split.types[block_idx] = id split.lengths[block_idx] = cur_length max_type = brotli_max_uint8_t(max_type, id) cur_length = 0 block_idx++ } } split.num_blocks = block_idx split.num_types = uint(max_type) + 1 } new_index = nil block_lengths = nil histogram_symbols = nil } func splitByteVectorCommand(data []uint16, literals_per_histogram uint, max_histograms uint, sampling_stride_length uint, block_switch_cost float64, params *encoderParams, split *blockSplit) { length := uint(len(data)) var data_size uint = histogramDataSizeCommand() var num_histograms uint = length/literals_per_histogram + 1 var histograms []histogramCommand if num_histograms > max_histograms { num_histograms = max_histograms } if length == 0 { split.num_types = 1 return } else if length < kMinLengthForBlockSplitting { brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, split.num_blocks+1) brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, split.num_blocks+1) split.num_types = 1 split.types[split.num_blocks] = 0 split.lengths[split.num_blocks] = uint32(length) split.num_blocks++ return } histograms = make([]histogramCommand, num_histograms) /* Find good entropy codes. */ initialEntropyCodesCommand(data, length, sampling_stride_length, num_histograms, histograms) refineEntropyCodesCommand(data, length, sampling_stride_length, num_histograms, histograms) { var block_ids []byte = make([]byte, length) var num_blocks uint = 0 var bitmaplen uint = (num_histograms + 7) >> 3 var insert_cost []float64 = make([]float64, (data_size * num_histograms)) var cost []float64 = make([]float64, num_histograms) var switch_signal []byte = make([]byte, (length * bitmaplen)) var new_id []uint16 = make([]uint16, num_histograms) var iters uint if params.quality < hqZopflificationQuality { iters = 3 } else { iters = 10 } /* Find a good path through literals with the good entropy codes. */ var i uint for i = 0; i < iters; i++ { num_blocks = findBlocksCommand(data, length, block_switch_cost, num_histograms, histograms, insert_cost, cost, switch_signal, block_ids) num_histograms = remapBlockIdsCommand(block_ids, length, new_id, num_histograms) buildBlockHistogramsCommand(data, length, block_ids, num_histograms, histograms) } insert_cost = nil cost = nil switch_signal = nil new_id = nil histograms = nil clusterBlocksCommand(data, length, num_blocks, block_ids, split) block_ids = nil } } brotli-1.0.4/block_splitter_distance.go000066400000000000000000000330161412267201500202330ustar00rootroot00000000000000package brotli import "math" /* Copyright 2013 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ func initialEntropyCodesDistance(data []uint16, length uint, stride uint, num_histograms uint, histograms []histogramDistance) { var seed uint32 = 7 var block_length uint = length / num_histograms var i uint clearHistogramsDistance(histograms, num_histograms) for i = 0; i < num_histograms; i++ { var pos uint = length * i / num_histograms if i != 0 { pos += uint(myRand(&seed) % uint32(block_length)) } if pos+stride >= length { pos = length - stride - 1 } histogramAddVectorDistance(&histograms[i], data[pos:], stride) } } func randomSampleDistance(seed *uint32, data []uint16, length uint, stride uint, sample *histogramDistance) { var pos uint = 0 if stride >= length { stride = length } else { pos = uint(myRand(seed) % uint32(length-stride+1)) } histogramAddVectorDistance(sample, data[pos:], stride) } func refineEntropyCodesDistance(data []uint16, length uint, stride uint, num_histograms uint, histograms []histogramDistance) { var iters uint = kIterMulForRefining*length/stride + kMinItersForRefining var seed uint32 = 7 var iter uint iters = ((iters + num_histograms - 1) / num_histograms) * num_histograms for iter = 0; iter < iters; iter++ { var sample histogramDistance histogramClearDistance(&sample) randomSampleDistance(&seed, data, length, stride, &sample) histogramAddHistogramDistance(&histograms[iter%num_histograms], &sample) } } /* Assigns a block id from the range [0, num_histograms) to each data element in data[0..length) and fills in block_id[0..length) with the assigned values. Returns the number of blocks, i.e. one plus the number of block switches. */ func findBlocksDistance(data []uint16, length uint, block_switch_bitcost float64, num_histograms uint, histograms []histogramDistance, insert_cost []float64, cost []float64, switch_signal []byte, block_id []byte) uint { var data_size uint = histogramDataSizeDistance() var bitmaplen uint = (num_histograms + 7) >> 3 var num_blocks uint = 1 var i uint var j uint assert(num_histograms <= 256) if num_histograms <= 1 { for i = 0; i < length; i++ { block_id[i] = 0 } return 1 } for i := 0; i < int(data_size*num_histograms); i++ { insert_cost[i] = 0 } for i = 0; i < num_histograms; i++ { insert_cost[i] = fastLog2(uint(uint32(histograms[i].total_count_))) } for i = data_size; i != 0; { i-- for j = 0; j < num_histograms; j++ { insert_cost[i*num_histograms+j] = insert_cost[j] - bitCost(uint(histograms[j].data_[i])) } } for i := 0; i < int(num_histograms); i++ { cost[i] = 0 } for i := 0; i < int(length*bitmaplen); i++ { switch_signal[i] = 0 } /* After each iteration of this loop, cost[k] will contain the difference between the minimum cost of arriving at the current byte position using entropy code k, and the minimum cost of arriving at the current byte position. This difference is capped at the block switch cost, and if it reaches block switch cost, it means that when we trace back from the last position, we need to switch here. */ for i = 0; i < length; i++ { var byte_ix uint = i var ix uint = byte_ix * bitmaplen var insert_cost_ix uint = uint(data[byte_ix]) * num_histograms var min_cost float64 = 1e99 var block_switch_cost float64 = block_switch_bitcost var k uint for k = 0; k < num_histograms; k++ { /* We are coding the symbol in data[byte_ix] with entropy code k. */ cost[k] += insert_cost[insert_cost_ix+k] if cost[k] < min_cost { min_cost = cost[k] block_id[byte_ix] = byte(k) } } /* More blocks for the beginning. */ if byte_ix < 2000 { block_switch_cost *= 0.77 + 0.07*float64(byte_ix)/2000 } for k = 0; k < num_histograms; k++ { cost[k] -= min_cost if cost[k] >= block_switch_cost { var mask byte = byte(1 << (k & 7)) cost[k] = block_switch_cost assert(k>>3 < bitmaplen) switch_signal[ix+(k>>3)] |= mask /* Trace back from the last position and switch at the marked places. */ } } } { var byte_ix uint = length - 1 var ix uint = byte_ix * bitmaplen var cur_id byte = block_id[byte_ix] for byte_ix > 0 { var mask byte = byte(1 << (cur_id & 7)) assert(uint(cur_id)>>3 < bitmaplen) byte_ix-- ix -= bitmaplen if switch_signal[ix+uint(cur_id>>3)]&mask != 0 { if cur_id != block_id[byte_ix] { cur_id = block_id[byte_ix] num_blocks++ } } block_id[byte_ix] = cur_id } } return num_blocks } var remapBlockIdsDistance_kInvalidId uint16 = 256 func remapBlockIdsDistance(block_ids []byte, length uint, new_id []uint16, num_histograms uint) uint { var next_id uint16 = 0 var i uint for i = 0; i < num_histograms; i++ { new_id[i] = remapBlockIdsDistance_kInvalidId } for i = 0; i < length; i++ { assert(uint(block_ids[i]) < num_histograms) if new_id[block_ids[i]] == remapBlockIdsDistance_kInvalidId { new_id[block_ids[i]] = next_id next_id++ } } for i = 0; i < length; i++ { block_ids[i] = byte(new_id[block_ids[i]]) assert(uint(block_ids[i]) < num_histograms) } assert(uint(next_id) <= num_histograms) return uint(next_id) } func buildBlockHistogramsDistance(data []uint16, length uint, block_ids []byte, num_histograms uint, histograms []histogramDistance) { var i uint clearHistogramsDistance(histograms, num_histograms) for i = 0; i < length; i++ { histogramAddDistance(&histograms[block_ids[i]], uint(data[i])) } } var clusterBlocksDistance_kInvalidIndex uint32 = math.MaxUint32 func clusterBlocksDistance(data []uint16, length uint, num_blocks uint, block_ids []byte, split *blockSplit) { var histogram_symbols []uint32 = make([]uint32, num_blocks) var block_lengths []uint32 = make([]uint32, num_blocks) var expected_num_clusters uint = clustersPerBatch * (num_blocks + histogramsPerBatch - 1) / histogramsPerBatch var all_histograms_size uint = 0 var all_histograms_capacity uint = expected_num_clusters var all_histograms []histogramDistance = make([]histogramDistance, all_histograms_capacity) var cluster_size_size uint = 0 var cluster_size_capacity uint = expected_num_clusters var cluster_size []uint32 = make([]uint32, cluster_size_capacity) var num_clusters uint = 0 var histograms []histogramDistance = make([]histogramDistance, brotli_min_size_t(num_blocks, histogramsPerBatch)) var max_num_pairs uint = histogramsPerBatch * histogramsPerBatch / 2 var pairs_capacity uint = max_num_pairs + 1 var pairs []histogramPair = make([]histogramPair, pairs_capacity) var pos uint = 0 var clusters []uint32 var num_final_clusters uint var new_index []uint32 var i uint var sizes = [histogramsPerBatch]uint32{0} var new_clusters = [histogramsPerBatch]uint32{0} var symbols = [histogramsPerBatch]uint32{0} var remap = [histogramsPerBatch]uint32{0} for i := 0; i < int(num_blocks); i++ { block_lengths[i] = 0 } { var block_idx uint = 0 for i = 0; i < length; i++ { assert(block_idx < num_blocks) block_lengths[block_idx]++ if i+1 == length || block_ids[i] != block_ids[i+1] { block_idx++ } } assert(block_idx == num_blocks) } for i = 0; i < num_blocks; i += histogramsPerBatch { var num_to_combine uint = brotli_min_size_t(num_blocks-i, histogramsPerBatch) var num_new_clusters uint var j uint for j = 0; j < num_to_combine; j++ { var k uint histogramClearDistance(&histograms[j]) for k = 0; uint32(k) < block_lengths[i+j]; k++ { histogramAddDistance(&histograms[j], uint(data[pos])) pos++ } histograms[j].bit_cost_ = populationCostDistance(&histograms[j]) new_clusters[j] = uint32(j) symbols[j] = uint32(j) sizes[j] = 1 } num_new_clusters = histogramCombineDistance(histograms, sizes[:], symbols[:], new_clusters[:], []histogramPair(pairs), num_to_combine, num_to_combine, histogramsPerBatch, max_num_pairs) if all_histograms_capacity < (all_histograms_size + num_new_clusters) { var _new_size uint if all_histograms_capacity == 0 { _new_size = all_histograms_size + num_new_clusters } else { _new_size = all_histograms_capacity } var new_array []histogramDistance for _new_size < (all_histograms_size + num_new_clusters) { _new_size *= 2 } new_array = make([]histogramDistance, _new_size) if all_histograms_capacity != 0 { copy(new_array, all_histograms[:all_histograms_capacity]) } all_histograms = new_array all_histograms_capacity = _new_size } brotli_ensure_capacity_uint32_t(&cluster_size, &cluster_size_capacity, cluster_size_size+num_new_clusters) for j = 0; j < num_new_clusters; j++ { all_histograms[all_histograms_size] = histograms[new_clusters[j]] all_histograms_size++ cluster_size[cluster_size_size] = sizes[new_clusters[j]] cluster_size_size++ remap[new_clusters[j]] = uint32(j) } for j = 0; j < num_to_combine; j++ { histogram_symbols[i+j] = uint32(num_clusters) + remap[symbols[j]] } num_clusters += num_new_clusters assert(num_clusters == cluster_size_size) assert(num_clusters == all_histograms_size) } histograms = nil max_num_pairs = brotli_min_size_t(64*num_clusters, (num_clusters/2)*num_clusters) if pairs_capacity < max_num_pairs+1 { pairs = nil pairs = make([]histogramPair, (max_num_pairs + 1)) } clusters = make([]uint32, num_clusters) for i = 0; i < num_clusters; i++ { clusters[i] = uint32(i) } num_final_clusters = histogramCombineDistance(all_histograms, cluster_size, histogram_symbols, clusters, pairs, num_clusters, num_blocks, maxNumberOfBlockTypes, max_num_pairs) pairs = nil cluster_size = nil new_index = make([]uint32, num_clusters) for i = 0; i < num_clusters; i++ { new_index[i] = clusterBlocksDistance_kInvalidIndex } pos = 0 { var next_index uint32 = 0 for i = 0; i < num_blocks; i++ { var histo histogramDistance var j uint var best_out uint32 var best_bits float64 histogramClearDistance(&histo) for j = 0; uint32(j) < block_lengths[i]; j++ { histogramAddDistance(&histo, uint(data[pos])) pos++ } if i == 0 { best_out = histogram_symbols[0] } else { best_out = histogram_symbols[i-1] } best_bits = histogramBitCostDistanceDistance(&histo, &all_histograms[best_out]) for j = 0; j < num_final_clusters; j++ { var cur_bits float64 = histogramBitCostDistanceDistance(&histo, &all_histograms[clusters[j]]) if cur_bits < best_bits { best_bits = cur_bits best_out = clusters[j] } } histogram_symbols[i] = best_out if new_index[best_out] == clusterBlocksDistance_kInvalidIndex { new_index[best_out] = next_index next_index++ } } } clusters = nil all_histograms = nil brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, num_blocks) brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, num_blocks) { var cur_length uint32 = 0 var block_idx uint = 0 var max_type byte = 0 for i = 0; i < num_blocks; i++ { cur_length += block_lengths[i] if i+1 == num_blocks || histogram_symbols[i] != histogram_symbols[i+1] { var id byte = byte(new_index[histogram_symbols[i]]) split.types[block_idx] = id split.lengths[block_idx] = cur_length max_type = brotli_max_uint8_t(max_type, id) cur_length = 0 block_idx++ } } split.num_blocks = block_idx split.num_types = uint(max_type) + 1 } new_index = nil block_lengths = nil histogram_symbols = nil } func splitByteVectorDistance(data []uint16, length uint, literals_per_histogram uint, max_histograms uint, sampling_stride_length uint, block_switch_cost float64, params *encoderParams, split *blockSplit) { var data_size uint = histogramDataSizeDistance() var num_histograms uint = length/literals_per_histogram + 1 var histograms []histogramDistance if num_histograms > max_histograms { num_histograms = max_histograms } if length == 0 { split.num_types = 1 return } else if length < kMinLengthForBlockSplitting { brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, split.num_blocks+1) brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, split.num_blocks+1) split.num_types = 1 split.types[split.num_blocks] = 0 split.lengths[split.num_blocks] = uint32(length) split.num_blocks++ return } histograms = make([]histogramDistance, num_histograms) /* Find good entropy codes. */ initialEntropyCodesDistance(data, length, sampling_stride_length, num_histograms, histograms) refineEntropyCodesDistance(data, length, sampling_stride_length, num_histograms, histograms) { var block_ids []byte = make([]byte, length) var num_blocks uint = 0 var bitmaplen uint = (num_histograms + 7) >> 3 var insert_cost []float64 = make([]float64, (data_size * num_histograms)) var cost []float64 = make([]float64, num_histograms) var switch_signal []byte = make([]byte, (length * bitmaplen)) var new_id []uint16 = make([]uint16, num_histograms) var iters uint if params.quality < hqZopflificationQuality { iters = 3 } else { iters = 10 } /* Find a good path through literals with the good entropy codes. */ var i uint for i = 0; i < iters; i++ { num_blocks = findBlocksDistance(data, length, block_switch_cost, num_histograms, histograms, insert_cost, cost, switch_signal, block_ids) num_histograms = remapBlockIdsDistance(block_ids, length, new_id, num_histograms) buildBlockHistogramsDistance(data, length, block_ids, num_histograms, histograms) } insert_cost = nil cost = nil switch_signal = nil new_id = nil histograms = nil clusterBlocksDistance(data, length, num_blocks, block_ids, split) block_ids = nil } } brotli-1.0.4/block_splitter_literal.go000066400000000000000000000327121412267201500200770ustar00rootroot00000000000000package brotli import "math" /* Copyright 2013 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ func initialEntropyCodesLiteral(data []byte, length uint, stride uint, num_histograms uint, histograms []histogramLiteral) { var seed uint32 = 7 var block_length uint = length / num_histograms var i uint clearHistogramsLiteral(histograms, num_histograms) for i = 0; i < num_histograms; i++ { var pos uint = length * i / num_histograms if i != 0 { pos += uint(myRand(&seed) % uint32(block_length)) } if pos+stride >= length { pos = length - stride - 1 } histogramAddVectorLiteral(&histograms[i], data[pos:], stride) } } func randomSampleLiteral(seed *uint32, data []byte, length uint, stride uint, sample *histogramLiteral) { var pos uint = 0 if stride >= length { stride = length } else { pos = uint(myRand(seed) % uint32(length-stride+1)) } histogramAddVectorLiteral(sample, data[pos:], stride) } func refineEntropyCodesLiteral(data []byte, length uint, stride uint, num_histograms uint, histograms []histogramLiteral) { var iters uint = kIterMulForRefining*length/stride + kMinItersForRefining var seed uint32 = 7 var iter uint iters = ((iters + num_histograms - 1) / num_histograms) * num_histograms for iter = 0; iter < iters; iter++ { var sample histogramLiteral histogramClearLiteral(&sample) randomSampleLiteral(&seed, data, length, stride, &sample) histogramAddHistogramLiteral(&histograms[iter%num_histograms], &sample) } } /* Assigns a block id from the range [0, num_histograms) to each data element in data[0..length) and fills in block_id[0..length) with the assigned values. Returns the number of blocks, i.e. one plus the number of block switches. */ func findBlocksLiteral(data []byte, length uint, block_switch_bitcost float64, num_histograms uint, histograms []histogramLiteral, insert_cost []float64, cost []float64, switch_signal []byte, block_id []byte) uint { var data_size uint = histogramDataSizeLiteral() var bitmaplen uint = (num_histograms + 7) >> 3 var num_blocks uint = 1 var i uint var j uint assert(num_histograms <= 256) if num_histograms <= 1 { for i = 0; i < length; i++ { block_id[i] = 0 } return 1 } for i := 0; i < int(data_size*num_histograms); i++ { insert_cost[i] = 0 } for i = 0; i < num_histograms; i++ { insert_cost[i] = fastLog2(uint(uint32(histograms[i].total_count_))) } for i = data_size; i != 0; { i-- for j = 0; j < num_histograms; j++ { insert_cost[i*num_histograms+j] = insert_cost[j] - bitCost(uint(histograms[j].data_[i])) } } for i := 0; i < int(num_histograms); i++ { cost[i] = 0 } for i := 0; i < int(length*bitmaplen); i++ { switch_signal[i] = 0 } /* After each iteration of this loop, cost[k] will contain the difference between the minimum cost of arriving at the current byte position using entropy code k, and the minimum cost of arriving at the current byte position. This difference is capped at the block switch cost, and if it reaches block switch cost, it means that when we trace back from the last position, we need to switch here. */ for i = 0; i < length; i++ { var byte_ix uint = i var ix uint = byte_ix * bitmaplen var insert_cost_ix uint = uint(data[byte_ix]) * num_histograms var min_cost float64 = 1e99 var block_switch_cost float64 = block_switch_bitcost var k uint for k = 0; k < num_histograms; k++ { /* We are coding the symbol in data[byte_ix] with entropy code k. */ cost[k] += insert_cost[insert_cost_ix+k] if cost[k] < min_cost { min_cost = cost[k] block_id[byte_ix] = byte(k) } } /* More blocks for the beginning. */ if byte_ix < 2000 { block_switch_cost *= 0.77 + 0.07*float64(byte_ix)/2000 } for k = 0; k < num_histograms; k++ { cost[k] -= min_cost if cost[k] >= block_switch_cost { var mask byte = byte(1 << (k & 7)) cost[k] = block_switch_cost assert(k>>3 < bitmaplen) switch_signal[ix+(k>>3)] |= mask /* Trace back from the last position and switch at the marked places. */ } } } { var byte_ix uint = length - 1 var ix uint = byte_ix * bitmaplen var cur_id byte = block_id[byte_ix] for byte_ix > 0 { var mask byte = byte(1 << (cur_id & 7)) assert(uint(cur_id)>>3 < bitmaplen) byte_ix-- ix -= bitmaplen if switch_signal[ix+uint(cur_id>>3)]&mask != 0 { if cur_id != block_id[byte_ix] { cur_id = block_id[byte_ix] num_blocks++ } } block_id[byte_ix] = cur_id } } return num_blocks } var remapBlockIdsLiteral_kInvalidId uint16 = 256 func remapBlockIdsLiteral(block_ids []byte, length uint, new_id []uint16, num_histograms uint) uint { var next_id uint16 = 0 var i uint for i = 0; i < num_histograms; i++ { new_id[i] = remapBlockIdsLiteral_kInvalidId } for i = 0; i < length; i++ { assert(uint(block_ids[i]) < num_histograms) if new_id[block_ids[i]] == remapBlockIdsLiteral_kInvalidId { new_id[block_ids[i]] = next_id next_id++ } } for i = 0; i < length; i++ { block_ids[i] = byte(new_id[block_ids[i]]) assert(uint(block_ids[i]) < num_histograms) } assert(uint(next_id) <= num_histograms) return uint(next_id) } func buildBlockHistogramsLiteral(data []byte, length uint, block_ids []byte, num_histograms uint, histograms []histogramLiteral) { var i uint clearHistogramsLiteral(histograms, num_histograms) for i = 0; i < length; i++ { histogramAddLiteral(&histograms[block_ids[i]], uint(data[i])) } } var clusterBlocksLiteral_kInvalidIndex uint32 = math.MaxUint32 func clusterBlocksLiteral(data []byte, length uint, num_blocks uint, block_ids []byte, split *blockSplit) { var histogram_symbols []uint32 = make([]uint32, num_blocks) var block_lengths []uint32 = make([]uint32, num_blocks) var expected_num_clusters uint = clustersPerBatch * (num_blocks + histogramsPerBatch - 1) / histogramsPerBatch var all_histograms_size uint = 0 var all_histograms_capacity uint = expected_num_clusters var all_histograms []histogramLiteral = make([]histogramLiteral, all_histograms_capacity) var cluster_size_size uint = 0 var cluster_size_capacity uint = expected_num_clusters var cluster_size []uint32 = make([]uint32, cluster_size_capacity) var num_clusters uint = 0 var histograms []histogramLiteral = make([]histogramLiteral, brotli_min_size_t(num_blocks, histogramsPerBatch)) var max_num_pairs uint = histogramsPerBatch * histogramsPerBatch / 2 var pairs_capacity uint = max_num_pairs + 1 var pairs []histogramPair = make([]histogramPair, pairs_capacity) var pos uint = 0 var clusters []uint32 var num_final_clusters uint var new_index []uint32 var i uint var sizes = [histogramsPerBatch]uint32{0} var new_clusters = [histogramsPerBatch]uint32{0} var symbols = [histogramsPerBatch]uint32{0} var remap = [histogramsPerBatch]uint32{0} for i := 0; i < int(num_blocks); i++ { block_lengths[i] = 0 } { var block_idx uint = 0 for i = 0; i < length; i++ { assert(block_idx < num_blocks) block_lengths[block_idx]++ if i+1 == length || block_ids[i] != block_ids[i+1] { block_idx++ } } assert(block_idx == num_blocks) } for i = 0; i < num_blocks; i += histogramsPerBatch { var num_to_combine uint = brotli_min_size_t(num_blocks-i, histogramsPerBatch) var num_new_clusters uint var j uint for j = 0; j < num_to_combine; j++ { var k uint histogramClearLiteral(&histograms[j]) for k = 0; uint32(k) < block_lengths[i+j]; k++ { histogramAddLiteral(&histograms[j], uint(data[pos])) pos++ } histograms[j].bit_cost_ = populationCostLiteral(&histograms[j]) new_clusters[j] = uint32(j) symbols[j] = uint32(j) sizes[j] = 1 } num_new_clusters = histogramCombineLiteral(histograms, sizes[:], symbols[:], new_clusters[:], []histogramPair(pairs), num_to_combine, num_to_combine, histogramsPerBatch, max_num_pairs) if all_histograms_capacity < (all_histograms_size + num_new_clusters) { var _new_size uint if all_histograms_capacity == 0 { _new_size = all_histograms_size + num_new_clusters } else { _new_size = all_histograms_capacity } var new_array []histogramLiteral for _new_size < (all_histograms_size + num_new_clusters) { _new_size *= 2 } new_array = make([]histogramLiteral, _new_size) if all_histograms_capacity != 0 { copy(new_array, all_histograms[:all_histograms_capacity]) } all_histograms = new_array all_histograms_capacity = _new_size } brotli_ensure_capacity_uint32_t(&cluster_size, &cluster_size_capacity, cluster_size_size+num_new_clusters) for j = 0; j < num_new_clusters; j++ { all_histograms[all_histograms_size] = histograms[new_clusters[j]] all_histograms_size++ cluster_size[cluster_size_size] = sizes[new_clusters[j]] cluster_size_size++ remap[new_clusters[j]] = uint32(j) } for j = 0; j < num_to_combine; j++ { histogram_symbols[i+j] = uint32(num_clusters) + remap[symbols[j]] } num_clusters += num_new_clusters assert(num_clusters == cluster_size_size) assert(num_clusters == all_histograms_size) } histograms = nil max_num_pairs = brotli_min_size_t(64*num_clusters, (num_clusters/2)*num_clusters) if pairs_capacity < max_num_pairs+1 { pairs = nil pairs = make([]histogramPair, (max_num_pairs + 1)) } clusters = make([]uint32, num_clusters) for i = 0; i < num_clusters; i++ { clusters[i] = uint32(i) } num_final_clusters = histogramCombineLiteral(all_histograms, cluster_size, histogram_symbols, clusters, pairs, num_clusters, num_blocks, maxNumberOfBlockTypes, max_num_pairs) pairs = nil cluster_size = nil new_index = make([]uint32, num_clusters) for i = 0; i < num_clusters; i++ { new_index[i] = clusterBlocksLiteral_kInvalidIndex } pos = 0 { var next_index uint32 = 0 for i = 0; i < num_blocks; i++ { var histo histogramLiteral var j uint var best_out uint32 var best_bits float64 histogramClearLiteral(&histo) for j = 0; uint32(j) < block_lengths[i]; j++ { histogramAddLiteral(&histo, uint(data[pos])) pos++ } if i == 0 { best_out = histogram_symbols[0] } else { best_out = histogram_symbols[i-1] } best_bits = histogramBitCostDistanceLiteral(&histo, &all_histograms[best_out]) for j = 0; j < num_final_clusters; j++ { var cur_bits float64 = histogramBitCostDistanceLiteral(&histo, &all_histograms[clusters[j]]) if cur_bits < best_bits { best_bits = cur_bits best_out = clusters[j] } } histogram_symbols[i] = best_out if new_index[best_out] == clusterBlocksLiteral_kInvalidIndex { new_index[best_out] = next_index next_index++ } } } clusters = nil all_histograms = nil brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, num_blocks) brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, num_blocks) { var cur_length uint32 = 0 var block_idx uint = 0 var max_type byte = 0 for i = 0; i < num_blocks; i++ { cur_length += block_lengths[i] if i+1 == num_blocks || histogram_symbols[i] != histogram_symbols[i+1] { var id byte = byte(new_index[histogram_symbols[i]]) split.types[block_idx] = id split.lengths[block_idx] = cur_length max_type = brotli_max_uint8_t(max_type, id) cur_length = 0 block_idx++ } } split.num_blocks = block_idx split.num_types = uint(max_type) + 1 } new_index = nil block_lengths = nil histogram_symbols = nil } func splitByteVectorLiteral(data []byte, length uint, literals_per_histogram uint, max_histograms uint, sampling_stride_length uint, block_switch_cost float64, params *encoderParams, split *blockSplit) { var data_size uint = histogramDataSizeLiteral() var num_histograms uint = length/literals_per_histogram + 1 var histograms []histogramLiteral if num_histograms > max_histograms { num_histograms = max_histograms } if length == 0 { split.num_types = 1 return } else if length < kMinLengthForBlockSplitting { brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, split.num_blocks+1) brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, split.num_blocks+1) split.num_types = 1 split.types[split.num_blocks] = 0 split.lengths[split.num_blocks] = uint32(length) split.num_blocks++ return } histograms = make([]histogramLiteral, num_histograms) /* Find good entropy codes. */ initialEntropyCodesLiteral(data, length, sampling_stride_length, num_histograms, histograms) refineEntropyCodesLiteral(data, length, sampling_stride_length, num_histograms, histograms) { var block_ids []byte = make([]byte, length) var num_blocks uint = 0 var bitmaplen uint = (num_histograms + 7) >> 3 var insert_cost []float64 = make([]float64, (data_size * num_histograms)) var cost []float64 = make([]float64, num_histograms) var switch_signal []byte = make([]byte, (length * bitmaplen)) var new_id []uint16 = make([]uint16, num_histograms) var iters uint if params.quality < hqZopflificationQuality { iters = 3 } else { iters = 10 } /* Find a good path through literals with the good entropy codes. */ var i uint for i = 0; i < iters; i++ { num_blocks = findBlocksLiteral(data, length, block_switch_cost, num_histograms, histograms, insert_cost, cost, switch_signal, block_ids) num_histograms = remapBlockIdsLiteral(block_ids, length, new_id, num_histograms) buildBlockHistogramsLiteral(data, length, block_ids, num_histograms, histograms) } insert_cost = nil cost = nil switch_signal = nil new_id = nil histograms = nil clusterBlocksLiteral(data, length, num_blocks, block_ids, split) block_ids = nil } } brotli-1.0.4/brotli_bit_stream.go000066400000000000000000001244141412267201500170500ustar00rootroot00000000000000package brotli import ( "math" "sync" ) const maxHuffmanTreeSize = (2*numCommandSymbols + 1) /* The maximum size of Huffman dictionary for distances assuming that NPOSTFIX = 0 and NDIRECT = 0. */ const maxSimpleDistanceAlphabetSize = 140 /* Represents the range of values belonging to a prefix code: [offset, offset + 2^nbits) */ type prefixCodeRange struct { offset uint32 nbits uint32 } var kBlockLengthPrefixCode = [numBlockLenSymbols]prefixCodeRange{ prefixCodeRange{1, 2}, prefixCodeRange{5, 2}, prefixCodeRange{9, 2}, prefixCodeRange{13, 2}, prefixCodeRange{17, 3}, prefixCodeRange{25, 3}, prefixCodeRange{33, 3}, prefixCodeRange{41, 3}, prefixCodeRange{49, 4}, prefixCodeRange{65, 4}, prefixCodeRange{81, 4}, prefixCodeRange{97, 4}, prefixCodeRange{113, 5}, prefixCodeRange{145, 5}, prefixCodeRange{177, 5}, prefixCodeRange{209, 5}, prefixCodeRange{241, 6}, prefixCodeRange{305, 6}, prefixCodeRange{369, 7}, prefixCodeRange{497, 8}, prefixCodeRange{753, 9}, prefixCodeRange{1265, 10}, prefixCodeRange{2289, 11}, prefixCodeRange{4337, 12}, prefixCodeRange{8433, 13}, prefixCodeRange{16625, 24}, } func blockLengthPrefixCode(len uint32) uint32 { var code uint32 if len >= 177 { if len >= 753 { code = 20 } else { code = 14 } } else if len >= 41 { code = 7 } else { code = 0 } for code < (numBlockLenSymbols-1) && len >= kBlockLengthPrefixCode[code+1].offset { code++ } return code } func getBlockLengthPrefixCode(len uint32, code *uint, n_extra *uint32, extra *uint32) { *code = uint(blockLengthPrefixCode(uint32(len))) *n_extra = kBlockLengthPrefixCode[*code].nbits *extra = len - kBlockLengthPrefixCode[*code].offset } type blockTypeCodeCalculator struct { last_type uint second_last_type uint } func initBlockTypeCodeCalculator(self *blockTypeCodeCalculator) { self.last_type = 1 self.second_last_type = 0 } func nextBlockTypeCode(calculator *blockTypeCodeCalculator, type_ byte) uint { var type_code uint if uint(type_) == calculator.last_type+1 { type_code = 1 } else if uint(type_) == calculator.second_last_type { type_code = 0 } else { type_code = uint(type_) + 2 } calculator.second_last_type = calculator.last_type calculator.last_type = uint(type_) return type_code } /* |nibblesbits| represents the 2 bits to encode MNIBBLES (0-3) REQUIRES: length > 0 REQUIRES: length <= (1 << 24) */ func encodeMlen(length uint, bits *uint64, numbits *uint, nibblesbits *uint64) { var lg uint if length == 1 { lg = 1 } else { lg = uint(log2FloorNonZero(uint(uint32(length-1)))) + 1 } var tmp uint if lg < 16 { tmp = 16 } else { tmp = (lg + 3) } var mnibbles uint = tmp / 4 assert(length > 0) assert(length <= 1<<24) assert(lg <= 24) *nibblesbits = uint64(mnibbles) - 4 *numbits = mnibbles * 4 *bits = uint64(length) - 1 } func storeCommandExtra(cmd *command, storage_ix *uint, storage []byte) { var copylen_code uint32 = commandCopyLenCode(cmd) var inscode uint16 = getInsertLengthCode(uint(cmd.insert_len_)) var copycode uint16 = getCopyLengthCode(uint(copylen_code)) var insnumextra uint32 = getInsertExtra(inscode) var insextraval uint64 = uint64(cmd.insert_len_) - uint64(getInsertBase(inscode)) var copyextraval uint64 = uint64(copylen_code) - uint64(getCopyBase(copycode)) var bits uint64 = copyextraval< 0 REQUIRES: length <= (1 << 24) */ func storeCompressedMetaBlockHeader(is_final_block bool, length uint, storage_ix *uint, storage []byte) { var lenbits uint64 var nlenbits uint var nibblesbits uint64 var is_final uint64 if is_final_block { is_final = 1 } else { is_final = 0 } /* Write ISLAST bit. */ writeBits(1, is_final, storage_ix, storage) /* Write ISEMPTY bit. */ if is_final_block { writeBits(1, 0, storage_ix, storage) } encodeMlen(length, &lenbits, &nlenbits, &nibblesbits) writeBits(2, nibblesbits, storage_ix, storage) writeBits(nlenbits, lenbits, storage_ix, storage) if !is_final_block { /* Write ISUNCOMPRESSED bit. */ writeBits(1, 0, storage_ix, storage) } } /* Stores the uncompressed meta-block header. REQUIRES: length > 0 REQUIRES: length <= (1 << 24) */ func storeUncompressedMetaBlockHeader(length uint, storage_ix *uint, storage []byte) { var lenbits uint64 var nlenbits uint var nibblesbits uint64 /* Write ISLAST bit. Uncompressed block cannot be the last one, so set to 0. */ writeBits(1, 0, storage_ix, storage) encodeMlen(length, &lenbits, &nlenbits, &nibblesbits) writeBits(2, nibblesbits, storage_ix, storage) writeBits(nlenbits, lenbits, storage_ix, storage) /* Write ISUNCOMPRESSED bit. */ writeBits(1, 1, storage_ix, storage) } var storeHuffmanTreeOfHuffmanTreeToBitMask_kStorageOrder = [codeLengthCodes]byte{1, 2, 3, 4, 0, 5, 17, 6, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15} var storeHuffmanTreeOfHuffmanTreeToBitMask_kHuffmanBitLengthHuffmanCodeSymbols = [6]byte{0, 7, 3, 2, 1, 15} var storeHuffmanTreeOfHuffmanTreeToBitMask_kHuffmanBitLengthHuffmanCodeBitLengths = [6]byte{2, 4, 3, 2, 2, 4} func storeHuffmanTreeOfHuffmanTreeToBitMask(num_codes int, code_length_bitdepth []byte, storage_ix *uint, storage []byte) { var skip_some uint = 0 var codes_to_store uint = codeLengthCodes /* The bit lengths of the Huffman code over the code length alphabet are compressed with the following static Huffman code: Symbol Code ------ ---- 0 00 1 1110 2 110 3 01 4 10 5 1111 */ /* Throw away trailing zeros: */ if num_codes > 1 { for ; codes_to_store > 0; codes_to_store-- { if code_length_bitdepth[storeHuffmanTreeOfHuffmanTreeToBitMask_kStorageOrder[codes_to_store-1]] != 0 { break } } } if code_length_bitdepth[storeHuffmanTreeOfHuffmanTreeToBitMask_kStorageOrder[0]] == 0 && code_length_bitdepth[storeHuffmanTreeOfHuffmanTreeToBitMask_kStorageOrder[1]] == 0 { skip_some = 2 /* skips two. */ if code_length_bitdepth[storeHuffmanTreeOfHuffmanTreeToBitMask_kStorageOrder[2]] == 0 { skip_some = 3 /* skips three. */ } } writeBits(2, uint64(skip_some), storage_ix, storage) { var i uint for i = skip_some; i < codes_to_store; i++ { var l uint = uint(code_length_bitdepth[storeHuffmanTreeOfHuffmanTreeToBitMask_kStorageOrder[i]]) writeBits(uint(storeHuffmanTreeOfHuffmanTreeToBitMask_kHuffmanBitLengthHuffmanCodeBitLengths[l]), uint64(storeHuffmanTreeOfHuffmanTreeToBitMask_kHuffmanBitLengthHuffmanCodeSymbols[l]), storage_ix, storage) } } } func storeHuffmanTreeToBitMask(huffman_tree_size uint, huffman_tree []byte, huffman_tree_extra_bits []byte, code_length_bitdepth []byte, code_length_bitdepth_symbols []uint16, storage_ix *uint, storage []byte) { var i uint for i = 0; i < huffman_tree_size; i++ { var ix uint = uint(huffman_tree[i]) writeBits(uint(code_length_bitdepth[ix]), uint64(code_length_bitdepth_symbols[ix]), storage_ix, storage) /* Extra bits */ switch ix { case repeatPreviousCodeLength: writeBits(2, uint64(huffman_tree_extra_bits[i]), storage_ix, storage) case repeatZeroCodeLength: writeBits(3, uint64(huffman_tree_extra_bits[i]), storage_ix, storage) } } } func storeSimpleHuffmanTree(depths []byte, symbols []uint, num_symbols uint, max_bits uint, storage_ix *uint, storage []byte) { /* value of 1 indicates a simple Huffman code */ writeBits(2, 1, storage_ix, storage) writeBits(2, uint64(num_symbols)-1, storage_ix, storage) /* NSYM - 1 */ { /* Sort */ var i uint for i = 0; i < num_symbols; i++ { var j uint for j = i + 1; j < num_symbols; j++ { if depths[symbols[j]] < depths[symbols[i]] { var tmp uint = symbols[j] symbols[j] = symbols[i] symbols[i] = tmp } } } } if num_symbols == 2 { writeBits(max_bits, uint64(symbols[0]), storage_ix, storage) writeBits(max_bits, uint64(symbols[1]), storage_ix, storage) } else if num_symbols == 3 { writeBits(max_bits, uint64(symbols[0]), storage_ix, storage) writeBits(max_bits, uint64(symbols[1]), storage_ix, storage) writeBits(max_bits, uint64(symbols[2]), storage_ix, storage) } else { writeBits(max_bits, uint64(symbols[0]), storage_ix, storage) writeBits(max_bits, uint64(symbols[1]), storage_ix, storage) writeBits(max_bits, uint64(symbols[2]), storage_ix, storage) writeBits(max_bits, uint64(symbols[3]), storage_ix, storage) /* tree-select */ var tmp int if depths[symbols[0]] == 1 { tmp = 1 } else { tmp = 0 } writeBits(1, uint64(tmp), storage_ix, storage) } } /* num = alphabet size depths = symbol depths */ func storeHuffmanTree(depths []byte, num uint, tree []huffmanTree, storage_ix *uint, storage []byte) { var huffman_tree [numCommandSymbols]byte var huffman_tree_extra_bits [numCommandSymbols]byte var huffman_tree_size uint = 0 var code_length_bitdepth = [codeLengthCodes]byte{0} var code_length_bitdepth_symbols [codeLengthCodes]uint16 var huffman_tree_histogram = [codeLengthCodes]uint32{0} var i uint var num_codes int = 0 /* Write the Huffman tree into the brotli-representation. The command alphabet is the largest, so this allocation will fit all alphabets. */ var code uint = 0 assert(num <= numCommandSymbols) writeHuffmanTree(depths, num, &huffman_tree_size, huffman_tree[:], huffman_tree_extra_bits[:]) /* Calculate the statistics of the Huffman tree in brotli-representation. */ for i = 0; i < huffman_tree_size; i++ { huffman_tree_histogram[huffman_tree[i]]++ } for i = 0; i < codeLengthCodes; i++ { if huffman_tree_histogram[i] != 0 { if num_codes == 0 { code = i num_codes = 1 } else if num_codes == 1 { num_codes = 2 break } } } /* Calculate another Huffman tree to use for compressing both the earlier Huffman tree with. */ createHuffmanTree(huffman_tree_histogram[:], codeLengthCodes, 5, tree, code_length_bitdepth[:]) convertBitDepthsToSymbols(code_length_bitdepth[:], codeLengthCodes, code_length_bitdepth_symbols[:]) /* Now, we have all the data, let's start storing it */ storeHuffmanTreeOfHuffmanTreeToBitMask(num_codes, code_length_bitdepth[:], storage_ix, storage) if num_codes == 1 { code_length_bitdepth[code] = 0 } /* Store the real Huffman tree now. */ storeHuffmanTreeToBitMask(huffman_tree_size, huffman_tree[:], huffman_tree_extra_bits[:], code_length_bitdepth[:], code_length_bitdepth_symbols[:], storage_ix, storage) } /* Builds a Huffman tree from histogram[0:length] into depth[0:length] and bits[0:length] and stores the encoded tree to the bit stream. */ func buildAndStoreHuffmanTree(histogram []uint32, histogram_length uint, alphabet_size uint, tree []huffmanTree, depth []byte, bits []uint16, storage_ix *uint, storage []byte) { var count uint = 0 var s4 = [4]uint{0} var i uint var max_bits uint = 0 for i = 0; i < histogram_length; i++ { if histogram[i] != 0 { if count < 4 { s4[count] = i } else if count > 4 { break } count++ } } { var max_bits_counter uint = alphabet_size - 1 for max_bits_counter != 0 { max_bits_counter >>= 1 max_bits++ } } if count <= 1 { writeBits(4, 1, storage_ix, storage) writeBits(max_bits, uint64(s4[0]), storage_ix, storage) depth[s4[0]] = 0 bits[s4[0]] = 0 return } for i := 0; i < int(histogram_length); i++ { depth[i] = 0 } createHuffmanTree(histogram, histogram_length, 15, tree, depth) convertBitDepthsToSymbols(depth, histogram_length, bits) if count <= 4 { storeSimpleHuffmanTree(depth, s4[:], count, max_bits, storage_ix, storage) } else { storeHuffmanTree(depth, histogram_length, tree, storage_ix, storage) } } func sortHuffmanTree1(v0 huffmanTree, v1 huffmanTree) bool { return v0.total_count_ < v1.total_count_ } var huffmanTreePool sync.Pool func buildAndStoreHuffmanTreeFast(histogram []uint32, histogram_total uint, max_bits uint, depth []byte, bits []uint16, storage_ix *uint, storage []byte) { var count uint = 0 var symbols = [4]uint{0} var length uint = 0 var total uint = histogram_total for total != 0 { if histogram[length] != 0 { if count < 4 { symbols[count] = length } count++ total -= uint(histogram[length]) } length++ } if count <= 1 { writeBits(4, 1, storage_ix, storage) writeBits(max_bits, uint64(symbols[0]), storage_ix, storage) depth[symbols[0]] = 0 bits[symbols[0]] = 0 return } for i := 0; i < int(length); i++ { depth[i] = 0 } { var max_tree_size uint = 2*length + 1 tree, _ := huffmanTreePool.Get().(*[]huffmanTree) if tree == nil || cap(*tree) < int(max_tree_size) { tmp := make([]huffmanTree, max_tree_size) tree = &tmp } else { *tree = (*tree)[:max_tree_size] } var count_limit uint32 for count_limit = 1; ; count_limit *= 2 { var node int = 0 var l uint for l = length; l != 0; { l-- if histogram[l] != 0 { if histogram[l] >= count_limit { initHuffmanTree(&(*tree)[node:][0], histogram[l], -1, int16(l)) } else { initHuffmanTree(&(*tree)[node:][0], count_limit, -1, int16(l)) } node++ } } { var n int = node /* Points to the next leaf node. */ /* Points to the next non-leaf node. */ var sentinel huffmanTree var i int = 0 var j int = n + 1 var k int sortHuffmanTreeItems(*tree, uint(n), huffmanTreeComparator(sortHuffmanTree1)) /* The nodes are: [0, n): the sorted leaf nodes that we start with. [n]: we add a sentinel here. [n + 1, 2n): new parent nodes are added here, starting from (n+1). These are naturally in ascending order. [2n]: we add a sentinel at the end as well. There will be (2n+1) elements at the end. */ initHuffmanTree(&sentinel, math.MaxUint32, -1, -1) (*tree)[node] = sentinel node++ (*tree)[node] = sentinel node++ for k = n - 1; k > 0; k-- { var left int var right int if (*tree)[i].total_count_ <= (*tree)[j].total_count_ { left = i i++ } else { left = j j++ } if (*tree)[i].total_count_ <= (*tree)[j].total_count_ { right = i i++ } else { right = j j++ } /* The sentinel node becomes the parent node. */ (*tree)[node-1].total_count_ = (*tree)[left].total_count_ + (*tree)[right].total_count_ (*tree)[node-1].index_left_ = int16(left) (*tree)[node-1].index_right_or_value_ = int16(right) /* Add back the last sentinel node. */ (*tree)[node] = sentinel node++ } if setDepth(2*n-1, *tree, depth, 14) { /* We need to pack the Huffman tree in 14 bits. If this was not successful, add fake entities to the lowest values and retry. */ break } } } huffmanTreePool.Put(tree) } convertBitDepthsToSymbols(depth, length, bits) if count <= 4 { var i uint /* value of 1 indicates a simple Huffman code */ writeBits(2, 1, storage_ix, storage) writeBits(2, uint64(count)-1, storage_ix, storage) /* NSYM - 1 */ /* Sort */ for i = 0; i < count; i++ { var j uint for j = i + 1; j < count; j++ { if depth[symbols[j]] < depth[symbols[i]] { var tmp uint = symbols[j] symbols[j] = symbols[i] symbols[i] = tmp } } } if count == 2 { writeBits(max_bits, uint64(symbols[0]), storage_ix, storage) writeBits(max_bits, uint64(symbols[1]), storage_ix, storage) } else if count == 3 { writeBits(max_bits, uint64(symbols[0]), storage_ix, storage) writeBits(max_bits, uint64(symbols[1]), storage_ix, storage) writeBits(max_bits, uint64(symbols[2]), storage_ix, storage) } else { writeBits(max_bits, uint64(symbols[0]), storage_ix, storage) writeBits(max_bits, uint64(symbols[1]), storage_ix, storage) writeBits(max_bits, uint64(symbols[2]), storage_ix, storage) writeBits(max_bits, uint64(symbols[3]), storage_ix, storage) /* tree-select */ var tmp int if depth[symbols[0]] == 1 { tmp = 1 } else { tmp = 0 } writeBits(1, uint64(tmp), storage_ix, storage) } } else { var previous_value byte = 8 var i uint /* Complex Huffman Tree */ storeStaticCodeLengthCode(storage_ix, storage) /* Actual RLE coding. */ for i = 0; i < length; { var value byte = depth[i] var reps uint = 1 var k uint for k = i + 1; k < length && depth[k] == value; k++ { reps++ } i += reps if value == 0 { writeBits(uint(kZeroRepsDepth[reps]), kZeroRepsBits[reps], storage_ix, storage) } else { if previous_value != value { writeBits(uint(kCodeLengthDepth[value]), uint64(kCodeLengthBits[value]), storage_ix, storage) reps-- } if reps < 3 { for reps != 0 { reps-- writeBits(uint(kCodeLengthDepth[value]), uint64(kCodeLengthBits[value]), storage_ix, storage) } } else { reps -= 3 writeBits(uint(kNonZeroRepsDepth[reps]), kNonZeroRepsBits[reps], storage_ix, storage) } previous_value = value } } } } func indexOf(v []byte, v_size uint, value byte) uint { var i uint = 0 for ; i < v_size; i++ { if v[i] == value { return i } } return i } func moveToFront(v []byte, index uint) { var value byte = v[index] var i uint for i = index; i != 0; i-- { v[i] = v[i-1] } v[0] = value } func moveToFrontTransform(v_in []uint32, v_size uint, v_out []uint32) { var i uint var mtf [256]byte var max_value uint32 if v_size == 0 { return } max_value = v_in[0] for i = 1; i < v_size; i++ { if v_in[i] > max_value { max_value = v_in[i] } } assert(max_value < 256) for i = 0; uint32(i) <= max_value; i++ { mtf[i] = byte(i) } { var mtf_size uint = uint(max_value + 1) for i = 0; i < v_size; i++ { var index uint = indexOf(mtf[:], mtf_size, byte(v_in[i])) assert(index < mtf_size) v_out[i] = uint32(index) moveToFront(mtf[:], index) } } } /* Finds runs of zeros in v[0..in_size) and replaces them with a prefix code of the run length plus extra bits (lower 9 bits is the prefix code and the rest are the extra bits). Non-zero values in v[] are shifted by *max_length_prefix. Will not create prefix codes bigger than the initial value of *max_run_length_prefix. The prefix code of run length L is simply Log2Floor(L) and the number of extra bits is the same as the prefix code. */ func runLengthCodeZeros(in_size uint, v []uint32, out_size *uint, max_run_length_prefix *uint32) { var max_reps uint32 = 0 var i uint var max_prefix uint32 for i = 0; i < in_size; { var reps uint32 = 0 for ; i < in_size && v[i] != 0; i++ { } for ; i < in_size && v[i] == 0; i++ { reps++ } max_reps = brotli_max_uint32_t(reps, max_reps) } if max_reps > 0 { max_prefix = log2FloorNonZero(uint(max_reps)) } else { max_prefix = 0 } max_prefix = brotli_min_uint32_t(max_prefix, *max_run_length_prefix) *max_run_length_prefix = max_prefix *out_size = 0 for i = 0; i < in_size; { assert(*out_size <= i) if v[i] != 0 { v[*out_size] = v[i] + *max_run_length_prefix i++ (*out_size)++ } else { var reps uint32 = 1 var k uint for k = i + 1; k < in_size && v[k] == 0; k++ { reps++ } i += uint(reps) for reps != 0 { if reps < 2< 0) writeSingleBit(use_rle, storage_ix, storage) if use_rle { writeBits(4, uint64(max_run_length_prefix)-1, storage_ix, storage) } } buildAndStoreHuffmanTree(histogram[:], uint(uint32(num_clusters)+max_run_length_prefix), uint(uint32(num_clusters)+max_run_length_prefix), tree, depths[:], bits[:], storage_ix, storage) for i = 0; i < num_rle_symbols; i++ { var rle_symbol uint32 = rle_symbols[i] & encodeContextMap_kSymbolMask var extra_bits_val uint32 = rle_symbols[i] >> symbolBits writeBits(uint(depths[rle_symbol]), uint64(bits[rle_symbol]), storage_ix, storage) if rle_symbol > 0 && rle_symbol <= max_run_length_prefix { writeBits(uint(rle_symbol), uint64(extra_bits_val), storage_ix, storage) } } writeBits(1, 1, storage_ix, storage) /* use move-to-front */ rle_symbols = nil } /* Stores the block switch command with index block_ix to the bit stream. */ func storeBlockSwitch(code *blockSplitCode, block_len uint32, block_type byte, is_first_block bool, storage_ix *uint, storage []byte) { var typecode uint = nextBlockTypeCode(&code.type_code_calculator, block_type) var lencode uint var len_nextra uint32 var len_extra uint32 if !is_first_block { writeBits(uint(code.type_depths[typecode]), uint64(code.type_bits[typecode]), storage_ix, storage) } getBlockLengthPrefixCode(block_len, &lencode, &len_nextra, &len_extra) writeBits(uint(code.length_depths[lencode]), uint64(code.length_bits[lencode]), storage_ix, storage) writeBits(uint(len_nextra), uint64(len_extra), storage_ix, storage) } /* Builds a BlockSplitCode data structure from the block split given by the vector of block types and block lengths and stores it to the bit stream. */ func buildAndStoreBlockSplitCode(types []byte, lengths []uint32, num_blocks uint, num_types uint, tree []huffmanTree, code *blockSplitCode, storage_ix *uint, storage []byte) { var type_histo [maxBlockTypeSymbols]uint32 var length_histo [numBlockLenSymbols]uint32 var i uint var type_code_calculator blockTypeCodeCalculator for i := 0; i < int(num_types+2); i++ { type_histo[i] = 0 } length_histo = [numBlockLenSymbols]uint32{} initBlockTypeCodeCalculator(&type_code_calculator) for i = 0; i < num_blocks; i++ { var type_code uint = nextBlockTypeCode(&type_code_calculator, types[i]) if i != 0 { type_histo[type_code]++ } length_histo[blockLengthPrefixCode(lengths[i])]++ } storeVarLenUint8(num_types-1, storage_ix, storage) if num_types > 1 { /* TODO: else? could StoreBlockSwitch occur? */ buildAndStoreHuffmanTree(type_histo[0:], num_types+2, num_types+2, tree, code.type_depths[0:], code.type_bits[0:], storage_ix, storage) buildAndStoreHuffmanTree(length_histo[0:], numBlockLenSymbols, numBlockLenSymbols, tree, code.length_depths[0:], code.length_bits[0:], storage_ix, storage) storeBlockSwitch(code, lengths[0], types[0], true, storage_ix, storage) } } /* Stores a context map where the histogram type is always the block type. */ func storeTrivialContextMap(num_types uint, context_bits uint, tree []huffmanTree, storage_ix *uint, storage []byte) { storeVarLenUint8(num_types-1, storage_ix, storage) if num_types > 1 { var repeat_code uint = context_bits - 1 var repeat_bits uint = (1 << repeat_code) - 1 var alphabet_size uint = num_types + repeat_code var histogram [maxContextMapSymbols]uint32 var depths [maxContextMapSymbols]byte var bits [maxContextMapSymbols]uint16 var i uint for i := 0; i < int(alphabet_size); i++ { histogram[i] = 0 } /* Write RLEMAX. */ writeBits(1, 1, storage_ix, storage) writeBits(4, uint64(repeat_code)-1, storage_ix, storage) histogram[repeat_code] = uint32(num_types) histogram[0] = 1 for i = context_bits; i < alphabet_size; i++ { histogram[i] = 1 } buildAndStoreHuffmanTree(histogram[:], alphabet_size, alphabet_size, tree, depths[:], bits[:], storage_ix, storage) for i = 0; i < num_types; i++ { var tmp uint if i == 0 { tmp = 0 } else { tmp = i + context_bits - 1 } var code uint = tmp writeBits(uint(depths[code]), uint64(bits[code]), storage_ix, storage) writeBits(uint(depths[repeat_code]), uint64(bits[repeat_code]), storage_ix, storage) writeBits(repeat_code, uint64(repeat_bits), storage_ix, storage) } /* Write IMTF (inverse-move-to-front) bit. */ writeBits(1, 1, storage_ix, storage) } } /* Manages the encoding of one block category (literal, command or distance). */ type blockEncoder struct { histogram_length_ uint num_block_types_ uint block_types_ []byte block_lengths_ []uint32 num_blocks_ uint block_split_code_ blockSplitCode block_ix_ uint block_len_ uint entropy_ix_ uint depths_ []byte bits_ []uint16 } var blockEncoderPool sync.Pool func getBlockEncoder(histogram_length uint, num_block_types uint, block_types []byte, block_lengths []uint32, num_blocks uint) *blockEncoder { self, _ := blockEncoderPool.Get().(*blockEncoder) if self != nil { self.block_ix_ = 0 self.entropy_ix_ = 0 self.depths_ = self.depths_[:0] self.bits_ = self.bits_[:0] } else { self = &blockEncoder{} } self.histogram_length_ = histogram_length self.num_block_types_ = num_block_types self.block_types_ = block_types self.block_lengths_ = block_lengths self.num_blocks_ = num_blocks initBlockTypeCodeCalculator(&self.block_split_code_.type_code_calculator) if num_blocks == 0 { self.block_len_ = 0 } else { self.block_len_ = uint(block_lengths[0]) } return self } func cleanupBlockEncoder(self *blockEncoder) { blockEncoderPool.Put(self) } /* Creates entropy codes of block lengths and block types and stores them to the bit stream. */ func buildAndStoreBlockSwitchEntropyCodes(self *blockEncoder, tree []huffmanTree, storage_ix *uint, storage []byte) { buildAndStoreBlockSplitCode(self.block_types_, self.block_lengths_, self.num_blocks_, self.num_block_types_, tree, &self.block_split_code_, storage_ix, storage) } /* Stores the next symbol with the entropy code of the current block type. Updates the block type and block length at block boundaries. */ func storeSymbol(self *blockEncoder, symbol uint, storage_ix *uint, storage []byte) { if self.block_len_ == 0 { self.block_ix_++ var block_ix uint = self.block_ix_ var block_len uint32 = self.block_lengths_[block_ix] var block_type byte = self.block_types_[block_ix] self.block_len_ = uint(block_len) self.entropy_ix_ = uint(block_type) * self.histogram_length_ storeBlockSwitch(&self.block_split_code_, block_len, block_type, false, storage_ix, storage) } self.block_len_-- { var ix uint = self.entropy_ix_ + symbol writeBits(uint(self.depths_[ix]), uint64(self.bits_[ix]), storage_ix, storage) } } /* Stores the next symbol with the entropy code of the current block type and context value. Updates the block type and block length at block boundaries. */ func storeSymbolWithContext(self *blockEncoder, symbol uint, context uint, context_map []uint32, storage_ix *uint, storage []byte, context_bits uint) { if self.block_len_ == 0 { self.block_ix_++ var block_ix uint = self.block_ix_ var block_len uint32 = self.block_lengths_[block_ix] var block_type byte = self.block_types_[block_ix] self.block_len_ = uint(block_len) self.entropy_ix_ = uint(block_type) << context_bits storeBlockSwitch(&self.block_split_code_, block_len, block_type, false, storage_ix, storage) } self.block_len_-- { var histo_ix uint = uint(context_map[self.entropy_ix_+context]) var ix uint = histo_ix*self.histogram_length_ + symbol writeBits(uint(self.depths_[ix]), uint64(self.bits_[ix]), storage_ix, storage) } } func buildAndStoreEntropyCodesLiteral(self *blockEncoder, histograms []histogramLiteral, histograms_size uint, alphabet_size uint, tree []huffmanTree, storage_ix *uint, storage []byte) { var table_size uint = histograms_size * self.histogram_length_ if cap(self.depths_) < int(table_size) { self.depths_ = make([]byte, table_size) } else { self.depths_ = self.depths_[:table_size] } if cap(self.bits_) < int(table_size) { self.bits_ = make([]uint16, table_size) } else { self.bits_ = self.bits_[:table_size] } { var i uint for i = 0; i < histograms_size; i++ { var ix uint = i * self.histogram_length_ buildAndStoreHuffmanTree(histograms[i].data_[0:], self.histogram_length_, alphabet_size, tree, self.depths_[ix:], self.bits_[ix:], storage_ix, storage) } } } func buildAndStoreEntropyCodesCommand(self *blockEncoder, histograms []histogramCommand, histograms_size uint, alphabet_size uint, tree []huffmanTree, storage_ix *uint, storage []byte) { var table_size uint = histograms_size * self.histogram_length_ if cap(self.depths_) < int(table_size) { self.depths_ = make([]byte, table_size) } else { self.depths_ = self.depths_[:table_size] } if cap(self.bits_) < int(table_size) { self.bits_ = make([]uint16, table_size) } else { self.bits_ = self.bits_[:table_size] } { var i uint for i = 0; i < histograms_size; i++ { var ix uint = i * self.histogram_length_ buildAndStoreHuffmanTree(histograms[i].data_[0:], self.histogram_length_, alphabet_size, tree, self.depths_[ix:], self.bits_[ix:], storage_ix, storage) } } } func buildAndStoreEntropyCodesDistance(self *blockEncoder, histograms []histogramDistance, histograms_size uint, alphabet_size uint, tree []huffmanTree, storage_ix *uint, storage []byte) { var table_size uint = histograms_size * self.histogram_length_ if cap(self.depths_) < int(table_size) { self.depths_ = make([]byte, table_size) } else { self.depths_ = self.depths_[:table_size] } if cap(self.bits_) < int(table_size) { self.bits_ = make([]uint16, table_size) } else { self.bits_ = self.bits_[:table_size] } { var i uint for i = 0; i < histograms_size; i++ { var ix uint = i * self.histogram_length_ buildAndStoreHuffmanTree(histograms[i].data_[0:], self.histogram_length_, alphabet_size, tree, self.depths_[ix:], self.bits_[ix:], storage_ix, storage) } } } func jumpToByteBoundary(storage_ix *uint, storage []byte) { *storage_ix = (*storage_ix + 7) &^ 7 storage[*storage_ix>>3] = 0 } func storeMetaBlock(input []byte, start_pos uint, length uint, mask uint, prev_byte byte, prev_byte2 byte, is_last bool, params *encoderParams, literal_context_mode int, commands []command, mb *metaBlockSplit, storage_ix *uint, storage []byte) { var pos uint = start_pos var i uint var num_distance_symbols uint32 = params.dist.alphabet_size var num_effective_distance_symbols uint32 = num_distance_symbols var tree []huffmanTree var literal_context_lut contextLUT = getContextLUT(literal_context_mode) var dist *distanceParams = ¶ms.dist if params.large_window && num_effective_distance_symbols > numHistogramDistanceSymbols { num_effective_distance_symbols = numHistogramDistanceSymbols } storeCompressedMetaBlockHeader(is_last, length, storage_ix, storage) tree = make([]huffmanTree, maxHuffmanTreeSize) literal_enc := getBlockEncoder(numLiteralSymbols, mb.literal_split.num_types, mb.literal_split.types, mb.literal_split.lengths, mb.literal_split.num_blocks) command_enc := getBlockEncoder(numCommandSymbols, mb.command_split.num_types, mb.command_split.types, mb.command_split.lengths, mb.command_split.num_blocks) distance_enc := getBlockEncoder(uint(num_effective_distance_symbols), mb.distance_split.num_types, mb.distance_split.types, mb.distance_split.lengths, mb.distance_split.num_blocks) buildAndStoreBlockSwitchEntropyCodes(literal_enc, tree, storage_ix, storage) buildAndStoreBlockSwitchEntropyCodes(command_enc, tree, storage_ix, storage) buildAndStoreBlockSwitchEntropyCodes(distance_enc, tree, storage_ix, storage) writeBits(2, uint64(dist.distance_postfix_bits), storage_ix, storage) writeBits(4, uint64(dist.num_direct_distance_codes)>>dist.distance_postfix_bits, storage_ix, storage) for i = 0; i < mb.literal_split.num_types; i++ { writeBits(2, uint64(literal_context_mode), storage_ix, storage) } if mb.literal_context_map_size == 0 { storeTrivialContextMap(mb.literal_histograms_size, literalContextBits, tree, storage_ix, storage) } else { encodeContextMap(mb.literal_context_map, mb.literal_context_map_size, mb.literal_histograms_size, tree, storage_ix, storage) } if mb.distance_context_map_size == 0 { storeTrivialContextMap(mb.distance_histograms_size, distanceContextBits, tree, storage_ix, storage) } else { encodeContextMap(mb.distance_context_map, mb.distance_context_map_size, mb.distance_histograms_size, tree, storage_ix, storage) } buildAndStoreEntropyCodesLiteral(literal_enc, mb.literal_histograms, mb.literal_histograms_size, numLiteralSymbols, tree, storage_ix, storage) buildAndStoreEntropyCodesCommand(command_enc, mb.command_histograms, mb.command_histograms_size, numCommandSymbols, tree, storage_ix, storage) buildAndStoreEntropyCodesDistance(distance_enc, mb.distance_histograms, mb.distance_histograms_size, uint(num_distance_symbols), tree, storage_ix, storage) tree = nil for _, cmd := range commands { var cmd_code uint = uint(cmd.cmd_prefix_) storeSymbol(command_enc, cmd_code, storage_ix, storage) storeCommandExtra(&cmd, storage_ix, storage) if mb.literal_context_map_size == 0 { var j uint for j = uint(cmd.insert_len_); j != 0; j-- { storeSymbol(literal_enc, uint(input[pos&mask]), storage_ix, storage) pos++ } } else { var j uint for j = uint(cmd.insert_len_); j != 0; j-- { var context uint = uint(getContext(prev_byte, prev_byte2, literal_context_lut)) var literal byte = input[pos&mask] storeSymbolWithContext(literal_enc, uint(literal), context, mb.literal_context_map, storage_ix, storage, literalContextBits) prev_byte2 = prev_byte prev_byte = literal pos++ } } pos += uint(commandCopyLen(&cmd)) if commandCopyLen(&cmd) != 0 { prev_byte2 = input[(pos-2)&mask] prev_byte = input[(pos-1)&mask] if cmd.cmd_prefix_ >= 128 { var dist_code uint = uint(cmd.dist_prefix_) & 0x3FF var distnumextra uint32 = uint32(cmd.dist_prefix_) >> 10 var distextra uint64 = uint64(cmd.dist_extra_) if mb.distance_context_map_size == 0 { storeSymbol(distance_enc, dist_code, storage_ix, storage) } else { var context uint = uint(commandDistanceContext(&cmd)) storeSymbolWithContext(distance_enc, dist_code, context, mb.distance_context_map, storage_ix, storage, distanceContextBits) } writeBits(uint(distnumextra), distextra, storage_ix, storage) } } } cleanupBlockEncoder(distance_enc) cleanupBlockEncoder(command_enc) cleanupBlockEncoder(literal_enc) if is_last { jumpToByteBoundary(storage_ix, storage) } } func buildHistograms(input []byte, start_pos uint, mask uint, commands []command, lit_histo *histogramLiteral, cmd_histo *histogramCommand, dist_histo *histogramDistance) { var pos uint = start_pos for _, cmd := range commands { var j uint histogramAddCommand(cmd_histo, uint(cmd.cmd_prefix_)) for j = uint(cmd.insert_len_); j != 0; j-- { histogramAddLiteral(lit_histo, uint(input[pos&mask])) pos++ } pos += uint(commandCopyLen(&cmd)) if commandCopyLen(&cmd) != 0 && cmd.cmd_prefix_ >= 128 { histogramAddDistance(dist_histo, uint(cmd.dist_prefix_)&0x3FF) } } } func storeDataWithHuffmanCodes(input []byte, start_pos uint, mask uint, commands []command, lit_depth []byte, lit_bits []uint16, cmd_depth []byte, cmd_bits []uint16, dist_depth []byte, dist_bits []uint16, storage_ix *uint, storage []byte) { var pos uint = start_pos for _, cmd := range commands { var cmd_code uint = uint(cmd.cmd_prefix_) var j uint writeBits(uint(cmd_depth[cmd_code]), uint64(cmd_bits[cmd_code]), storage_ix, storage) storeCommandExtra(&cmd, storage_ix, storage) for j = uint(cmd.insert_len_); j != 0; j-- { var literal byte = input[pos&mask] writeBits(uint(lit_depth[literal]), uint64(lit_bits[literal]), storage_ix, storage) pos++ } pos += uint(commandCopyLen(&cmd)) if commandCopyLen(&cmd) != 0 && cmd.cmd_prefix_ >= 128 { var dist_code uint = uint(cmd.dist_prefix_) & 0x3FF var distnumextra uint32 = uint32(cmd.dist_prefix_) >> 10 var distextra uint32 = cmd.dist_extra_ writeBits(uint(dist_depth[dist_code]), uint64(dist_bits[dist_code]), storage_ix, storage) writeBits(uint(distnumextra), uint64(distextra), storage_ix, storage) } } } func storeMetaBlockTrivial(input []byte, start_pos uint, length uint, mask uint, is_last bool, params *encoderParams, commands []command, storage_ix *uint, storage []byte) { var lit_histo histogramLiteral var cmd_histo histogramCommand var dist_histo histogramDistance var lit_depth [numLiteralSymbols]byte var lit_bits [numLiteralSymbols]uint16 var cmd_depth [numCommandSymbols]byte var cmd_bits [numCommandSymbols]uint16 var dist_depth [maxSimpleDistanceAlphabetSize]byte var dist_bits [maxSimpleDistanceAlphabetSize]uint16 var tree []huffmanTree var num_distance_symbols uint32 = params.dist.alphabet_size storeCompressedMetaBlockHeader(is_last, length, storage_ix, storage) histogramClearLiteral(&lit_histo) histogramClearCommand(&cmd_histo) histogramClearDistance(&dist_histo) buildHistograms(input, start_pos, mask, commands, &lit_histo, &cmd_histo, &dist_histo) writeBits(13, 0, storage_ix, storage) tree = make([]huffmanTree, maxHuffmanTreeSize) buildAndStoreHuffmanTree(lit_histo.data_[:], numLiteralSymbols, numLiteralSymbols, tree, lit_depth[:], lit_bits[:], storage_ix, storage) buildAndStoreHuffmanTree(cmd_histo.data_[:], numCommandSymbols, numCommandSymbols, tree, cmd_depth[:], cmd_bits[:], storage_ix, storage) buildAndStoreHuffmanTree(dist_histo.data_[:], maxSimpleDistanceAlphabetSize, uint(num_distance_symbols), tree, dist_depth[:], dist_bits[:], storage_ix, storage) tree = nil storeDataWithHuffmanCodes(input, start_pos, mask, commands, lit_depth[:], lit_bits[:], cmd_depth[:], cmd_bits[:], dist_depth[:], dist_bits[:], storage_ix, storage) if is_last { jumpToByteBoundary(storage_ix, storage) } } func storeMetaBlockFast(input []byte, start_pos uint, length uint, mask uint, is_last bool, params *encoderParams, commands []command, storage_ix *uint, storage []byte) { var num_distance_symbols uint32 = params.dist.alphabet_size var distance_alphabet_bits uint32 = log2FloorNonZero(uint(num_distance_symbols-1)) + 1 storeCompressedMetaBlockHeader(is_last, length, storage_ix, storage) writeBits(13, 0, storage_ix, storage) if len(commands) <= 128 { var histogram = [numLiteralSymbols]uint32{0} var pos uint = start_pos var num_literals uint = 0 var lit_depth [numLiteralSymbols]byte var lit_bits [numLiteralSymbols]uint16 for _, cmd := range commands { var j uint for j = uint(cmd.insert_len_); j != 0; j-- { histogram[input[pos&mask]]++ pos++ } num_literals += uint(cmd.insert_len_) pos += uint(commandCopyLen(&cmd)) } buildAndStoreHuffmanTreeFast(histogram[:], num_literals, /* max_bits = */ 8, lit_depth[:], lit_bits[:], storage_ix, storage) storeStaticCommandHuffmanTree(storage_ix, storage) storeStaticDistanceHuffmanTree(storage_ix, storage) storeDataWithHuffmanCodes(input, start_pos, mask, commands, lit_depth[:], lit_bits[:], kStaticCommandCodeDepth[:], kStaticCommandCodeBits[:], kStaticDistanceCodeDepth[:], kStaticDistanceCodeBits[:], storage_ix, storage) } else { var lit_histo histogramLiteral var cmd_histo histogramCommand var dist_histo histogramDistance var lit_depth [numLiteralSymbols]byte var lit_bits [numLiteralSymbols]uint16 var cmd_depth [numCommandSymbols]byte var cmd_bits [numCommandSymbols]uint16 var dist_depth [maxSimpleDistanceAlphabetSize]byte var dist_bits [maxSimpleDistanceAlphabetSize]uint16 histogramClearLiteral(&lit_histo) histogramClearCommand(&cmd_histo) histogramClearDistance(&dist_histo) buildHistograms(input, start_pos, mask, commands, &lit_histo, &cmd_histo, &dist_histo) buildAndStoreHuffmanTreeFast(lit_histo.data_[:], lit_histo.total_count_, /* max_bits = */ 8, lit_depth[:], lit_bits[:], storage_ix, storage) buildAndStoreHuffmanTreeFast(cmd_histo.data_[:], cmd_histo.total_count_, /* max_bits = */ 10, cmd_depth[:], cmd_bits[:], storage_ix, storage) buildAndStoreHuffmanTreeFast(dist_histo.data_[:], dist_histo.total_count_, /* max_bits = */ uint(distance_alphabet_bits), dist_depth[:], dist_bits[:], storage_ix, storage) storeDataWithHuffmanCodes(input, start_pos, mask, commands, lit_depth[:], lit_bits[:], cmd_depth[:], cmd_bits[:], dist_depth[:], dist_bits[:], storage_ix, storage) } if is_last { jumpToByteBoundary(storage_ix, storage) } } /* This is for storing uncompressed blocks (simple raw storage of bytes-as-bytes). */ func storeUncompressedMetaBlock(is_final_block bool, input []byte, position uint, mask uint, len uint, storage_ix *uint, storage []byte) { var masked_pos uint = position & mask storeUncompressedMetaBlockHeader(uint(len), storage_ix, storage) jumpToByteBoundary(storage_ix, storage) if masked_pos+len > mask+1 { var len1 uint = mask + 1 - masked_pos copy(storage[*storage_ix>>3:], input[masked_pos:][:len1]) *storage_ix += len1 << 3 len -= len1 masked_pos = 0 } copy(storage[*storage_ix>>3:], input[masked_pos:][:len]) *storage_ix += uint(len << 3) /* We need to clear the next 4 bytes to continue to be compatible with BrotliWriteBits. */ writeBitsPrepareStorage(*storage_ix, storage) /* Since the uncompressed block itself may not be the final block, add an empty one after this. */ if is_final_block { writeBits(1, 1, storage_ix, storage) /* islast */ writeBits(1, 1, storage_ix, storage) /* isempty */ jumpToByteBoundary(storage_ix, storage) } } brotli-1.0.4/brotli_test.go000066400000000000000000000330551412267201500156760ustar00rootroot00000000000000// Copyright 2016 Google Inc. All Rights Reserved. // // Distributed under MIT license. // See file LICENSE for detail or copy at https://opensource.org/licenses/MIT package brotli import ( "bytes" "compress/gzip" "fmt" "io" "io/ioutil" "math" "math/rand" "os" "testing" "time" ) func checkCompressedData(compressedData, wantOriginalData []byte) error { uncompressed, err := Decode(compressedData) if err != nil { return fmt.Errorf("brotli decompress failed: %v", err) } if !bytes.Equal(uncompressed, wantOriginalData) { if len(wantOriginalData) != len(uncompressed) { return fmt.Errorf(""+ "Data doesn't uncompress to the original value.\n"+ "Length of original: %v\n"+ "Length of uncompressed: %v", len(wantOriginalData), len(uncompressed)) } for i := range wantOriginalData { if wantOriginalData[i] != uncompressed[i] { return fmt.Errorf(""+ "Data doesn't uncompress to the original value.\n"+ "Original at %v is %v\n"+ "Uncompressed at %v is %v", i, wantOriginalData[i], i, uncompressed[i]) } } } return nil } func TestEncoderNoWrite(t *testing.T) { out := bytes.Buffer{} e := NewWriterOptions(&out, WriterOptions{Quality: 5}) if err := e.Close(); err != nil { t.Errorf("Close()=%v, want nil", err) } // Check Write after close. if _, err := e.Write([]byte("hi")); err == nil { t.Errorf("No error after Close() + Write()") } } func TestEncoderEmptyWrite(t *testing.T) { out := bytes.Buffer{} e := NewWriterOptions(&out, WriterOptions{Quality: 5}) n, err := e.Write([]byte("")) if n != 0 || err != nil { t.Errorf("Write()=%v,%v, want 0, nil", n, err) } if err := e.Close(); err != nil { t.Errorf("Close()=%v, want nil", err) } } func TestWriter(t *testing.T) { for level := BestSpeed; level <= BestCompression; level++ { // Test basic encoder usage. input := []byte("

Hello world

") out := bytes.Buffer{} e := NewWriterOptions(&out, WriterOptions{Quality: level}) in := bytes.NewReader([]byte(input)) n, err := io.Copy(e, in) if err != nil { t.Errorf("Copy Error: %v", err) } if int(n) != len(input) { t.Errorf("Copy() n=%v, want %v", n, len(input)) } if err := e.Close(); err != nil { t.Errorf("Close Error after copied %d bytes: %v", n, err) } if err := checkCompressedData(out.Bytes(), input); err != nil { t.Error(err) } out2 := bytes.Buffer{} e.Reset(&out2) n2, err := e.Write(input) if err != nil { t.Errorf("Write error after Reset: %v", err) } if n2 != len(input) { t.Errorf("Write() after Reset n=%d, want %d", n2, len(input)) } if err := e.Close(); err != nil { t.Errorf("Close error after Reset (copied %d) bytes: %v", n2, err) } if !bytes.Equal(out.Bytes(), out2.Bytes()) { t.Error("Compressed data after Reset doesn't equal first time") } } } func TestIssue22(t *testing.T) { f, err := os.Open("testdata/issue22.gz") if err != nil { t.Fatalf("Error opening test data file: %v", err) } defer f.Close() zr, err := gzip.NewReader(f) if err != nil { t.Fatalf("Error creating gzip reader: %v", err) } data, err := io.ReadAll(zr) if err != nil { t.Fatalf("Error reading test data: %v", err) } if len(data) != 2851073 { t.Fatalf("Wrong length for test data: got %d, want 2851073", len(data)) } for level := BestSpeed; level <= BestCompression; level++ { out := bytes.Buffer{} e := NewWriterOptions(&out, WriterOptions{Quality: level}) n, err := e.Write(data) if err != nil { t.Errorf("Error compressing data: %v", err) } if int(n) != len(data) { t.Errorf("Write() n=%v, want %v", n, len(data)) } if err := e.Close(); err != nil { t.Errorf("Close Error after writing %d bytes: %v", n, err) } if err := checkCompressedData(out.Bytes(), data); err != nil { t.Errorf("Error decompressing data at level %d: %v", level, err) } } } func TestEncoderStreams(t *testing.T) { // Test that output is streamed. // Adjust window size to ensure the encoder outputs at least enough bytes // to fill the window. const lgWin = 16 windowSize := int(math.Pow(2, lgWin)) input := make([]byte, 8*windowSize) rand.Read(input) out := bytes.Buffer{} e := NewWriterOptions(&out, WriterOptions{Quality: 11, LGWin: lgWin}) halfInput := input[:len(input)/2] in := bytes.NewReader(halfInput) n, err := io.Copy(e, in) if err != nil { t.Errorf("Copy Error: %v", err) } // We've fed more data than the sliding window size. Check that some // compressed data has been output. if out.Len() == 0 { t.Errorf("Output length is 0 after %d bytes written", n) } if err := e.Close(); err != nil { t.Errorf("Close Error after copied %d bytes: %v", n, err) } if err := checkCompressedData(out.Bytes(), halfInput); err != nil { t.Error(err) } } func TestEncoderLargeInput(t *testing.T) { for level := BestSpeed; level <= BestCompression; level++ { input := make([]byte, 1000000) rand.Read(input) out := bytes.Buffer{} e := NewWriterOptions(&out, WriterOptions{Quality: level}) in := bytes.NewReader(input) n, err := io.Copy(e, in) if err != nil { t.Errorf("Copy Error: %v", err) } if int(n) != len(input) { t.Errorf("Copy() n=%v, want %v", n, len(input)) } if err := e.Close(); err != nil { t.Errorf("Close Error after copied %d bytes: %v", n, err) } if err := checkCompressedData(out.Bytes(), input); err != nil { t.Error(err) } out2 := bytes.Buffer{} e.Reset(&out2) n2, err := e.Write(input) if err != nil { t.Errorf("Write error after Reset: %v", err) } if n2 != len(input) { t.Errorf("Write() after Reset n=%d, want %d", n2, len(input)) } if err := e.Close(); err != nil { t.Errorf("Close error after Reset (copied %d) bytes: %v", n2, err) } if !bytes.Equal(out.Bytes(), out2.Bytes()) { t.Error("Compressed data after Reset doesn't equal first time") } } } func TestEncoderFlush(t *testing.T) { input := make([]byte, 1000) rand.Read(input) out := bytes.Buffer{} e := NewWriterOptions(&out, WriterOptions{Quality: 5}) in := bytes.NewReader(input) _, err := io.Copy(e, in) if err != nil { t.Fatalf("Copy Error: %v", err) } if err := e.Flush(); err != nil { t.Fatalf("Flush(): %v", err) } if out.Len() == 0 { t.Fatalf("0 bytes written after Flush()") } decompressed := make([]byte, 1000) reader := NewReader(bytes.NewReader(out.Bytes())) n, err := reader.Read(decompressed) if n != len(decompressed) || err != nil { t.Errorf("Expected <%v, nil>, but <%v, %v>", len(decompressed), n, err) } if !bytes.Equal(decompressed, input) { t.Errorf(""+ "Decompress after flush: %v\n"+ "%q\n"+ "want:\n%q", err, decompressed, input) } if err := e.Close(); err != nil { t.Errorf("Close(): %v", err) } } type readerWithTimeout struct { io.Reader } func (r readerWithTimeout) Read(p []byte) (int, error) { type result struct { n int err error } ch := make(chan result) go func() { n, err := r.Reader.Read(p) ch <- result{n, err} }() select { case result := <-ch: return result.n, result.err case <-time.After(5 * time.Second): return 0, fmt.Errorf("read timed out") } } func TestDecoderStreaming(t *testing.T) { pr, pw := io.Pipe() writer := NewWriterOptions(pw, WriterOptions{Quality: 5, LGWin: 20}) reader := readerWithTimeout{NewReader(pr)} defer func() { go ioutil.ReadAll(pr) // swallow the "EOF" token from writer.Close if err := writer.Close(); err != nil { t.Errorf("writer.Close: %v", err) } }() ch := make(chan []byte) errch := make(chan error) go func() { for { segment, ok := <-ch if !ok { return } if n, err := writer.Write(segment); err != nil || n != len(segment) { errch <- fmt.Errorf("write=%v,%v, want %v,%v", n, err, len(segment), nil) return } if err := writer.Flush(); err != nil { errch <- fmt.Errorf("flush: %v", err) return } } }() defer close(ch) segments := [...][]byte{ []byte("first"), []byte("second"), []byte("third"), } for k, segment := range segments { t.Run(fmt.Sprintf("Segment%d", k), func(t *testing.T) { select { case ch <- segment: case err := <-errch: t.Fatalf("write: %v", err) case <-time.After(5 * time.Second): t.Fatalf("timed out") } wantLen := len(segment) got := make([]byte, wantLen) if n, err := reader.Read(got); err != nil || n != wantLen || !bytes.Equal(got, segment) { t.Fatalf("read[%d]=%q,%v,%v, want %q,%v,%v", k, got, n, err, segment, wantLen, nil) } }) } } func TestReader(t *testing.T) { content := bytes.Repeat([]byte("hello world!"), 10000) encoded, _ := Encode(content, WriterOptions{Quality: 5}) r := NewReader(bytes.NewReader(encoded)) var decodedOutput bytes.Buffer n, err := io.Copy(&decodedOutput, r) if err != nil { t.Fatalf("Copy(): n=%v, err=%v", n, err) } if got := decodedOutput.Bytes(); !bytes.Equal(got, content) { t.Errorf(""+ "Reader output:\n"+ "%q\n"+ "want:\n"+ "<%d bytes>", got, len(content)) } } func TestDecode(t *testing.T) { content := bytes.Repeat([]byte("hello world!"), 10000) encoded, _ := Encode(content, WriterOptions{Quality: 5}) decoded, err := Decode(encoded) if err != nil { t.Errorf("Decode: %v", err) } if !bytes.Equal(decoded, content) { t.Errorf(""+ "Decode content:\n"+ "%q\n"+ "want:\n"+ "<%d bytes>", decoded, len(content)) } } func TestQuality(t *testing.T) { content := bytes.Repeat([]byte("hello world!"), 10000) for q := 0; q < 12; q++ { encoded, _ := Encode(content, WriterOptions{Quality: q}) decoded, err := Decode(encoded) if err != nil { t.Errorf("Decode: %v", err) } if !bytes.Equal(decoded, content) { t.Errorf(""+ "Decode content:\n"+ "%q\n"+ "want:\n"+ "<%d bytes>", decoded, len(content)) } } } func TestDecodeFuzz(t *testing.T) { // Test that the decoder terminates with corrupted input. content := bytes.Repeat([]byte("hello world!"), 100) rnd := rand.New(rand.NewSource(0)) encoded, err := Encode(content, WriterOptions{Quality: 5}) if err != nil { t.Fatalf("Encode(<%d bytes>, _) = _, %s", len(content), err) } if len(encoded) == 0 { t.Fatalf("Encode(<%d bytes>, _) produced empty output", len(content)) } for i := 0; i < 100; i++ { enc := append([]byte{}, encoded...) for j := 0; j < 5; j++ { enc[rnd.Intn(len(enc))] = byte(rnd.Intn(256)) } Decode(enc) } } func TestDecodeTrailingData(t *testing.T) { content := bytes.Repeat([]byte("hello world!"), 100) encoded, _ := Encode(content, WriterOptions{Quality: 5}) _, err := Decode(append(encoded, 0)) if err == nil { t.Errorf("Expected 'excessive input' error") } } func TestEncodeDecode(t *testing.T) { for _, test := range []struct { data []byte repeats int }{ {nil, 0}, {[]byte("A"), 1}, {[]byte("

Hello world

"), 10}, {[]byte("

Hello world

"), 1000}, } { t.Logf("case %q x %d", test.data, test.repeats) input := bytes.Repeat(test.data, test.repeats) encoded, err := Encode(input, WriterOptions{Quality: 5}) if err != nil { t.Errorf("Encode: %v", err) } // Inputs are compressible, but may be too small to compress. if maxSize := len(input)/2 + 20; len(encoded) >= maxSize { t.Errorf(""+ "Encode returned %d bytes, want <%d\n"+ "Encoded=%q", len(encoded), maxSize, encoded) } decoded, err := Decode(encoded) if err != nil { t.Errorf("Decode: %v", err) } if !bytes.Equal(decoded, input) { var want string if len(input) > 320 { want = fmt.Sprintf("<%d bytes>", len(input)) } else { want = fmt.Sprintf("%q", input) } t.Errorf(""+ "Decode content:\n"+ "%q\n"+ "want:\n"+ "%s", decoded, want) } } } // Encode returns content encoded with Brotli. func Encode(content []byte, options WriterOptions) ([]byte, error) { var buf bytes.Buffer writer := NewWriterOptions(&buf, options) _, err := writer.Write(content) if closeErr := writer.Close(); err == nil { err = closeErr } return buf.Bytes(), err } // Decode decodes Brotli encoded data. func Decode(encodedData []byte) ([]byte, error) { r := NewReader(bytes.NewReader(encodedData)) return ioutil.ReadAll(r) } func BenchmarkEncodeLevels(b *testing.B) { opticks, err := ioutil.ReadFile("testdata/Isaac.Newton-Opticks.txt") if err != nil { b.Fatal(err) } for level := BestSpeed; level <= BestCompression; level++ { b.Run(fmt.Sprintf("%d", level), func(b *testing.B) { b.ReportAllocs() b.SetBytes(int64(len(opticks))) for i := 0; i < b.N; i++ { w := NewWriterLevel(ioutil.Discard, level) w.Write(opticks) w.Close() } }) } } func BenchmarkEncodeLevelsReset(b *testing.B) { opticks, err := ioutil.ReadFile("testdata/Isaac.Newton-Opticks.txt") if err != nil { b.Fatal(err) } for level := BestSpeed; level <= BestCompression; level++ { buf := new(bytes.Buffer) w := NewWriterLevel(buf, level) w.Write(opticks) w.Close() b.Run(fmt.Sprintf("%d", level), func(b *testing.B) { b.ReportAllocs() b.ReportMetric(float64(len(opticks))/float64(buf.Len()), "ratio") b.SetBytes(int64(len(opticks))) for i := 0; i < b.N; i++ { w.Reset(ioutil.Discard) w.Write(opticks) w.Close() } }) } } func BenchmarkDecodeLevels(b *testing.B) { opticks, err := ioutil.ReadFile("testdata/Isaac.Newton-Opticks.txt") if err != nil { b.Fatal(err) } for level := BestSpeed; level <= BestCompression; level++ { buf := new(bytes.Buffer) w := NewWriterLevel(buf, level) w.Write(opticks) w.Close() compressed := buf.Bytes() b.Run(fmt.Sprintf("%d", level), func(b *testing.B) { b.ReportAllocs() b.SetBytes(int64(len(opticks))) for i := 0; i < b.N; i++ { io.Copy(ioutil.Discard, NewReader(bytes.NewReader(compressed))) } }) } } brotli-1.0.4/cluster.go000066400000000000000000000015071412267201500150220ustar00rootroot00000000000000package brotli /* Copyright 2013 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* Functions for clustering similar histograms together. */ type histogramPair struct { idx1 uint32 idx2 uint32 cost_combo float64 cost_diff float64 } func histogramPairIsLess(p1 *histogramPair, p2 *histogramPair) bool { if p1.cost_diff != p2.cost_diff { return p1.cost_diff > p2.cost_diff } return (p1.idx2 - p1.idx1) > (p2.idx2 - p2.idx1) } /* Returns entropy reduction of the context map when we combine two clusters. */ func clusterCostDiff(size_a uint, size_b uint) float64 { var size_c uint = size_a + size_b return float64(size_a)*fastLog2(size_a) + float64(size_b)*fastLog2(size_b) - float64(size_c)*fastLog2(size_c) } brotli-1.0.4/cluster_command.go000066400000000000000000000110671412267201500165220ustar00rootroot00000000000000package brotli /* Copyright 2013 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* Computes the bit cost reduction by combining out[idx1] and out[idx2] and if it is below a threshold, stores the pair (idx1, idx2) in the *pairs queue. */ func compareAndPushToQueueCommand(out []histogramCommand, cluster_size []uint32, idx1 uint32, idx2 uint32, max_num_pairs uint, pairs []histogramPair, num_pairs *uint) { var is_good_pair bool = false var p histogramPair p.idx2 = 0 p.idx1 = p.idx2 p.cost_combo = 0 p.cost_diff = p.cost_combo if idx1 == idx2 { return } if idx2 < idx1 { var t uint32 = idx2 idx2 = idx1 idx1 = t } p.idx1 = idx1 p.idx2 = idx2 p.cost_diff = 0.5 * clusterCostDiff(uint(cluster_size[idx1]), uint(cluster_size[idx2])) p.cost_diff -= out[idx1].bit_cost_ p.cost_diff -= out[idx2].bit_cost_ if out[idx1].total_count_ == 0 { p.cost_combo = out[idx2].bit_cost_ is_good_pair = true } else if out[idx2].total_count_ == 0 { p.cost_combo = out[idx1].bit_cost_ is_good_pair = true } else { var threshold float64 if *num_pairs == 0 { threshold = 1e99 } else { threshold = brotli_max_double(0.0, pairs[0].cost_diff) } var combo histogramCommand = out[idx1] var cost_combo float64 histogramAddHistogramCommand(&combo, &out[idx2]) cost_combo = populationCostCommand(&combo) if cost_combo < threshold-p.cost_diff { p.cost_combo = cost_combo is_good_pair = true } } if is_good_pair { p.cost_diff += p.cost_combo if *num_pairs > 0 && histogramPairIsLess(&pairs[0], &p) { /* Replace the top of the queue if needed. */ if *num_pairs < max_num_pairs { pairs[*num_pairs] = pairs[0] (*num_pairs)++ } pairs[0] = p } else if *num_pairs < max_num_pairs { pairs[*num_pairs] = p (*num_pairs)++ } } } func histogramCombineCommand(out []histogramCommand, cluster_size []uint32, symbols []uint32, clusters []uint32, pairs []histogramPair, num_clusters uint, symbols_size uint, max_clusters uint, max_num_pairs uint) uint { var cost_diff_threshold float64 = 0.0 var min_cluster_size uint = 1 var num_pairs uint = 0 { /* We maintain a vector of histogram pairs, with the property that the pair with the maximum bit cost reduction is the first. */ var idx1 uint for idx1 = 0; idx1 < num_clusters; idx1++ { var idx2 uint for idx2 = idx1 + 1; idx2 < num_clusters; idx2++ { compareAndPushToQueueCommand(out, cluster_size, clusters[idx1], clusters[idx2], max_num_pairs, pairs[0:], &num_pairs) } } } for num_clusters > min_cluster_size { var best_idx1 uint32 var best_idx2 uint32 var i uint if pairs[0].cost_diff >= cost_diff_threshold { cost_diff_threshold = 1e99 min_cluster_size = max_clusters continue } /* Take the best pair from the top of heap. */ best_idx1 = pairs[0].idx1 best_idx2 = pairs[0].idx2 histogramAddHistogramCommand(&out[best_idx1], &out[best_idx2]) out[best_idx1].bit_cost_ = pairs[0].cost_combo cluster_size[best_idx1] += cluster_size[best_idx2] for i = 0; i < symbols_size; i++ { if symbols[i] == best_idx2 { symbols[i] = best_idx1 } } for i = 0; i < num_clusters; i++ { if clusters[i] == best_idx2 { copy(clusters[i:], clusters[i+1:][:num_clusters-i-1]) break } } num_clusters-- { /* Remove pairs intersecting the just combined best pair. */ var copy_to_idx uint = 0 for i = 0; i < num_pairs; i++ { var p *histogramPair = &pairs[i] if p.idx1 == best_idx1 || p.idx2 == best_idx1 || p.idx1 == best_idx2 || p.idx2 == best_idx2 { /* Remove invalid pair from the queue. */ continue } if histogramPairIsLess(&pairs[0], p) { /* Replace the top of the queue if needed. */ var front histogramPair = pairs[0] pairs[0] = *p pairs[copy_to_idx] = front } else { pairs[copy_to_idx] = *p } copy_to_idx++ } num_pairs = copy_to_idx } /* Push new pairs formed with the combined histogram to the heap. */ for i = 0; i < num_clusters; i++ { compareAndPushToQueueCommand(out, cluster_size, best_idx1, clusters[i], max_num_pairs, pairs[0:], &num_pairs) } } return num_clusters } /* What is the bit cost of moving histogram from cur_symbol to candidate. */ func histogramBitCostDistanceCommand(histogram *histogramCommand, candidate *histogramCommand) float64 { if histogram.total_count_ == 0 { return 0.0 } else { var tmp histogramCommand = *histogram histogramAddHistogramCommand(&tmp, candidate) return populationCostCommand(&tmp) - candidate.bit_cost_ } } brotli-1.0.4/cluster_distance.go000066400000000000000000000233071412267201500166760ustar00rootroot00000000000000package brotli import "math" /* Copyright 2013 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* Computes the bit cost reduction by combining out[idx1] and out[idx2] and if it is below a threshold, stores the pair (idx1, idx2) in the *pairs queue. */ func compareAndPushToQueueDistance(out []histogramDistance, cluster_size []uint32, idx1 uint32, idx2 uint32, max_num_pairs uint, pairs []histogramPair, num_pairs *uint) { var is_good_pair bool = false var p histogramPair p.idx2 = 0 p.idx1 = p.idx2 p.cost_combo = 0 p.cost_diff = p.cost_combo if idx1 == idx2 { return } if idx2 < idx1 { var t uint32 = idx2 idx2 = idx1 idx1 = t } p.idx1 = idx1 p.idx2 = idx2 p.cost_diff = 0.5 * clusterCostDiff(uint(cluster_size[idx1]), uint(cluster_size[idx2])) p.cost_diff -= out[idx1].bit_cost_ p.cost_diff -= out[idx2].bit_cost_ if out[idx1].total_count_ == 0 { p.cost_combo = out[idx2].bit_cost_ is_good_pair = true } else if out[idx2].total_count_ == 0 { p.cost_combo = out[idx1].bit_cost_ is_good_pair = true } else { var threshold float64 if *num_pairs == 0 { threshold = 1e99 } else { threshold = brotli_max_double(0.0, pairs[0].cost_diff) } var combo histogramDistance = out[idx1] var cost_combo float64 histogramAddHistogramDistance(&combo, &out[idx2]) cost_combo = populationCostDistance(&combo) if cost_combo < threshold-p.cost_diff { p.cost_combo = cost_combo is_good_pair = true } } if is_good_pair { p.cost_diff += p.cost_combo if *num_pairs > 0 && histogramPairIsLess(&pairs[0], &p) { /* Replace the top of the queue if needed. */ if *num_pairs < max_num_pairs { pairs[*num_pairs] = pairs[0] (*num_pairs)++ } pairs[0] = p } else if *num_pairs < max_num_pairs { pairs[*num_pairs] = p (*num_pairs)++ } } } func histogramCombineDistance(out []histogramDistance, cluster_size []uint32, symbols []uint32, clusters []uint32, pairs []histogramPair, num_clusters uint, symbols_size uint, max_clusters uint, max_num_pairs uint) uint { var cost_diff_threshold float64 = 0.0 var min_cluster_size uint = 1 var num_pairs uint = 0 { /* We maintain a vector of histogram pairs, with the property that the pair with the maximum bit cost reduction is the first. */ var idx1 uint for idx1 = 0; idx1 < num_clusters; idx1++ { var idx2 uint for idx2 = idx1 + 1; idx2 < num_clusters; idx2++ { compareAndPushToQueueDistance(out, cluster_size, clusters[idx1], clusters[idx2], max_num_pairs, pairs[0:], &num_pairs) } } } for num_clusters > min_cluster_size { var best_idx1 uint32 var best_idx2 uint32 var i uint if pairs[0].cost_diff >= cost_diff_threshold { cost_diff_threshold = 1e99 min_cluster_size = max_clusters continue } /* Take the best pair from the top of heap. */ best_idx1 = pairs[0].idx1 best_idx2 = pairs[0].idx2 histogramAddHistogramDistance(&out[best_idx1], &out[best_idx2]) out[best_idx1].bit_cost_ = pairs[0].cost_combo cluster_size[best_idx1] += cluster_size[best_idx2] for i = 0; i < symbols_size; i++ { if symbols[i] == best_idx2 { symbols[i] = best_idx1 } } for i = 0; i < num_clusters; i++ { if clusters[i] == best_idx2 { copy(clusters[i:], clusters[i+1:][:num_clusters-i-1]) break } } num_clusters-- { /* Remove pairs intersecting the just combined best pair. */ var copy_to_idx uint = 0 for i = 0; i < num_pairs; i++ { var p *histogramPair = &pairs[i] if p.idx1 == best_idx1 || p.idx2 == best_idx1 || p.idx1 == best_idx2 || p.idx2 == best_idx2 { /* Remove invalid pair from the queue. */ continue } if histogramPairIsLess(&pairs[0], p) { /* Replace the top of the queue if needed. */ var front histogramPair = pairs[0] pairs[0] = *p pairs[copy_to_idx] = front } else { pairs[copy_to_idx] = *p } copy_to_idx++ } num_pairs = copy_to_idx } /* Push new pairs formed with the combined histogram to the heap. */ for i = 0; i < num_clusters; i++ { compareAndPushToQueueDistance(out, cluster_size, best_idx1, clusters[i], max_num_pairs, pairs[0:], &num_pairs) } } return num_clusters } /* What is the bit cost of moving histogram from cur_symbol to candidate. */ func histogramBitCostDistanceDistance(histogram *histogramDistance, candidate *histogramDistance) float64 { if histogram.total_count_ == 0 { return 0.0 } else { var tmp histogramDistance = *histogram histogramAddHistogramDistance(&tmp, candidate) return populationCostDistance(&tmp) - candidate.bit_cost_ } } /* Find the best 'out' histogram for each of the 'in' histograms. When called, clusters[0..num_clusters) contains the unique values from symbols[0..in_size), but this property is not preserved in this function. Note: we assume that out[]->bit_cost_ is already up-to-date. */ func histogramRemapDistance(in []histogramDistance, in_size uint, clusters []uint32, num_clusters uint, out []histogramDistance, symbols []uint32) { var i uint for i = 0; i < in_size; i++ { var best_out uint32 if i == 0 { best_out = symbols[0] } else { best_out = symbols[i-1] } var best_bits float64 = histogramBitCostDistanceDistance(&in[i], &out[best_out]) var j uint for j = 0; j < num_clusters; j++ { var cur_bits float64 = histogramBitCostDistanceDistance(&in[i], &out[clusters[j]]) if cur_bits < best_bits { best_bits = cur_bits best_out = clusters[j] } } symbols[i] = best_out } /* Recompute each out based on raw and symbols. */ for i = 0; i < num_clusters; i++ { histogramClearDistance(&out[clusters[i]]) } for i = 0; i < in_size; i++ { histogramAddHistogramDistance(&out[symbols[i]], &in[i]) } } /* Reorders elements of the out[0..length) array and changes values in symbols[0..length) array in the following way: * when called, symbols[] contains indexes into out[], and has N unique values (possibly N < length) * on return, symbols'[i] = f(symbols[i]) and out'[symbols'[i]] = out[symbols[i]], for each 0 <= i < length, where f is a bijection between the range of symbols[] and [0..N), and the first occurrences of values in symbols'[i] come in consecutive increasing order. Returns N, the number of unique values in symbols[]. */ var histogramReindexDistance_kInvalidIndex uint32 = math.MaxUint32 func histogramReindexDistance(out []histogramDistance, symbols []uint32, length uint) uint { var new_index []uint32 = make([]uint32, length) var next_index uint32 var tmp []histogramDistance var i uint for i = 0; i < length; i++ { new_index[i] = histogramReindexDistance_kInvalidIndex } next_index = 0 for i = 0; i < length; i++ { if new_index[symbols[i]] == histogramReindexDistance_kInvalidIndex { new_index[symbols[i]] = next_index next_index++ } } /* TODO: by using idea of "cycle-sort" we can avoid allocation of tmp and reduce the number of copying by the factor of 2. */ tmp = make([]histogramDistance, next_index) next_index = 0 for i = 0; i < length; i++ { if new_index[symbols[i]] == next_index { tmp[next_index] = out[symbols[i]] next_index++ } symbols[i] = new_index[symbols[i]] } new_index = nil for i = 0; uint32(i) < next_index; i++ { out[i] = tmp[i] } tmp = nil return uint(next_index) } func clusterHistogramsDistance(in []histogramDistance, in_size uint, max_histograms uint, out []histogramDistance, out_size *uint, histogram_symbols []uint32) { var cluster_size []uint32 = make([]uint32, in_size) var clusters []uint32 = make([]uint32, in_size) var num_clusters uint = 0 var max_input_histograms uint = 64 var pairs_capacity uint = max_input_histograms * max_input_histograms / 2 var pairs []histogramPair = make([]histogramPair, (pairs_capacity + 1)) var i uint /* For the first pass of clustering, we allow all pairs. */ for i = 0; i < in_size; i++ { cluster_size[i] = 1 } for i = 0; i < in_size; i++ { out[i] = in[i] out[i].bit_cost_ = populationCostDistance(&in[i]) histogram_symbols[i] = uint32(i) } for i = 0; i < in_size; i += max_input_histograms { var num_to_combine uint = brotli_min_size_t(in_size-i, max_input_histograms) var num_new_clusters uint var j uint for j = 0; j < num_to_combine; j++ { clusters[num_clusters+j] = uint32(i + j) } num_new_clusters = histogramCombineDistance(out, cluster_size, histogram_symbols[i:], clusters[num_clusters:], pairs, num_to_combine, num_to_combine, max_histograms, pairs_capacity) num_clusters += num_new_clusters } { /* For the second pass, we limit the total number of histogram pairs. After this limit is reached, we only keep searching for the best pair. */ var max_num_pairs uint = brotli_min_size_t(64*num_clusters, (num_clusters/2)*num_clusters) if pairs_capacity < (max_num_pairs + 1) { var _new_size uint if pairs_capacity == 0 { _new_size = max_num_pairs + 1 } else { _new_size = pairs_capacity } var new_array []histogramPair for _new_size < (max_num_pairs + 1) { _new_size *= 2 } new_array = make([]histogramPair, _new_size) if pairs_capacity != 0 { copy(new_array, pairs[:pairs_capacity]) } pairs = new_array pairs_capacity = _new_size } /* Collapse similar histograms. */ num_clusters = histogramCombineDistance(out, cluster_size, histogram_symbols, clusters, pairs, num_clusters, in_size, max_histograms, max_num_pairs) } pairs = nil cluster_size = nil /* Find the optimal map from original histograms to the final ones. */ histogramRemapDistance(in, in_size, clusters, num_clusters, out, histogram_symbols) clusters = nil /* Convert the context map to a canonical form. */ *out_size = histogramReindexDistance(out, histogram_symbols, in_size) } brotli-1.0.4/cluster_literal.go000066400000000000000000000232411412267201500165350ustar00rootroot00000000000000package brotli import "math" /* Copyright 2013 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* Computes the bit cost reduction by combining out[idx1] and out[idx2] and if it is below a threshold, stores the pair (idx1, idx2) in the *pairs queue. */ func compareAndPushToQueueLiteral(out []histogramLiteral, cluster_size []uint32, idx1 uint32, idx2 uint32, max_num_pairs uint, pairs []histogramPair, num_pairs *uint) { var is_good_pair bool = false var p histogramPair p.idx2 = 0 p.idx1 = p.idx2 p.cost_combo = 0 p.cost_diff = p.cost_combo if idx1 == idx2 { return } if idx2 < idx1 { var t uint32 = idx2 idx2 = idx1 idx1 = t } p.idx1 = idx1 p.idx2 = idx2 p.cost_diff = 0.5 * clusterCostDiff(uint(cluster_size[idx1]), uint(cluster_size[idx2])) p.cost_diff -= out[idx1].bit_cost_ p.cost_diff -= out[idx2].bit_cost_ if out[idx1].total_count_ == 0 { p.cost_combo = out[idx2].bit_cost_ is_good_pair = true } else if out[idx2].total_count_ == 0 { p.cost_combo = out[idx1].bit_cost_ is_good_pair = true } else { var threshold float64 if *num_pairs == 0 { threshold = 1e99 } else { threshold = brotli_max_double(0.0, pairs[0].cost_diff) } var combo histogramLiteral = out[idx1] var cost_combo float64 histogramAddHistogramLiteral(&combo, &out[idx2]) cost_combo = populationCostLiteral(&combo) if cost_combo < threshold-p.cost_diff { p.cost_combo = cost_combo is_good_pair = true } } if is_good_pair { p.cost_diff += p.cost_combo if *num_pairs > 0 && histogramPairIsLess(&pairs[0], &p) { /* Replace the top of the queue if needed. */ if *num_pairs < max_num_pairs { pairs[*num_pairs] = pairs[0] (*num_pairs)++ } pairs[0] = p } else if *num_pairs < max_num_pairs { pairs[*num_pairs] = p (*num_pairs)++ } } } func histogramCombineLiteral(out []histogramLiteral, cluster_size []uint32, symbols []uint32, clusters []uint32, pairs []histogramPair, num_clusters uint, symbols_size uint, max_clusters uint, max_num_pairs uint) uint { var cost_diff_threshold float64 = 0.0 var min_cluster_size uint = 1 var num_pairs uint = 0 { /* We maintain a vector of histogram pairs, with the property that the pair with the maximum bit cost reduction is the first. */ var idx1 uint for idx1 = 0; idx1 < num_clusters; idx1++ { var idx2 uint for idx2 = idx1 + 1; idx2 < num_clusters; idx2++ { compareAndPushToQueueLiteral(out, cluster_size, clusters[idx1], clusters[idx2], max_num_pairs, pairs[0:], &num_pairs) } } } for num_clusters > min_cluster_size { var best_idx1 uint32 var best_idx2 uint32 var i uint if pairs[0].cost_diff >= cost_diff_threshold { cost_diff_threshold = 1e99 min_cluster_size = max_clusters continue } /* Take the best pair from the top of heap. */ best_idx1 = pairs[0].idx1 best_idx2 = pairs[0].idx2 histogramAddHistogramLiteral(&out[best_idx1], &out[best_idx2]) out[best_idx1].bit_cost_ = pairs[0].cost_combo cluster_size[best_idx1] += cluster_size[best_idx2] for i = 0; i < symbols_size; i++ { if symbols[i] == best_idx2 { symbols[i] = best_idx1 } } for i = 0; i < num_clusters; i++ { if clusters[i] == best_idx2 { copy(clusters[i:], clusters[i+1:][:num_clusters-i-1]) break } } num_clusters-- { /* Remove pairs intersecting the just combined best pair. */ var copy_to_idx uint = 0 for i = 0; i < num_pairs; i++ { var p *histogramPair = &pairs[i] if p.idx1 == best_idx1 || p.idx2 == best_idx1 || p.idx1 == best_idx2 || p.idx2 == best_idx2 { /* Remove invalid pair from the queue. */ continue } if histogramPairIsLess(&pairs[0], p) { /* Replace the top of the queue if needed. */ var front histogramPair = pairs[0] pairs[0] = *p pairs[copy_to_idx] = front } else { pairs[copy_to_idx] = *p } copy_to_idx++ } num_pairs = copy_to_idx } /* Push new pairs formed with the combined histogram to the heap. */ for i = 0; i < num_clusters; i++ { compareAndPushToQueueLiteral(out, cluster_size, best_idx1, clusters[i], max_num_pairs, pairs[0:], &num_pairs) } } return num_clusters } /* What is the bit cost of moving histogram from cur_symbol to candidate. */ func histogramBitCostDistanceLiteral(histogram *histogramLiteral, candidate *histogramLiteral) float64 { if histogram.total_count_ == 0 { return 0.0 } else { var tmp histogramLiteral = *histogram histogramAddHistogramLiteral(&tmp, candidate) return populationCostLiteral(&tmp) - candidate.bit_cost_ } } /* Find the best 'out' histogram for each of the 'in' histograms. When called, clusters[0..num_clusters) contains the unique values from symbols[0..in_size), but this property is not preserved in this function. Note: we assume that out[]->bit_cost_ is already up-to-date. */ func histogramRemapLiteral(in []histogramLiteral, in_size uint, clusters []uint32, num_clusters uint, out []histogramLiteral, symbols []uint32) { var i uint for i = 0; i < in_size; i++ { var best_out uint32 if i == 0 { best_out = symbols[0] } else { best_out = symbols[i-1] } var best_bits float64 = histogramBitCostDistanceLiteral(&in[i], &out[best_out]) var j uint for j = 0; j < num_clusters; j++ { var cur_bits float64 = histogramBitCostDistanceLiteral(&in[i], &out[clusters[j]]) if cur_bits < best_bits { best_bits = cur_bits best_out = clusters[j] } } symbols[i] = best_out } /* Recompute each out based on raw and symbols. */ for i = 0; i < num_clusters; i++ { histogramClearLiteral(&out[clusters[i]]) } for i = 0; i < in_size; i++ { histogramAddHistogramLiteral(&out[symbols[i]], &in[i]) } } /* Reorders elements of the out[0..length) array and changes values in symbols[0..length) array in the following way: * when called, symbols[] contains indexes into out[], and has N unique values (possibly N < length) * on return, symbols'[i] = f(symbols[i]) and out'[symbols'[i]] = out[symbols[i]], for each 0 <= i < length, where f is a bijection between the range of symbols[] and [0..N), and the first occurrences of values in symbols'[i] come in consecutive increasing order. Returns N, the number of unique values in symbols[]. */ var histogramReindexLiteral_kInvalidIndex uint32 = math.MaxUint32 func histogramReindexLiteral(out []histogramLiteral, symbols []uint32, length uint) uint { var new_index []uint32 = make([]uint32, length) var next_index uint32 var tmp []histogramLiteral var i uint for i = 0; i < length; i++ { new_index[i] = histogramReindexLiteral_kInvalidIndex } next_index = 0 for i = 0; i < length; i++ { if new_index[symbols[i]] == histogramReindexLiteral_kInvalidIndex { new_index[symbols[i]] = next_index next_index++ } } /* TODO: by using idea of "cycle-sort" we can avoid allocation of tmp and reduce the number of copying by the factor of 2. */ tmp = make([]histogramLiteral, next_index) next_index = 0 for i = 0; i < length; i++ { if new_index[symbols[i]] == next_index { tmp[next_index] = out[symbols[i]] next_index++ } symbols[i] = new_index[symbols[i]] } new_index = nil for i = 0; uint32(i) < next_index; i++ { out[i] = tmp[i] } tmp = nil return uint(next_index) } func clusterHistogramsLiteral(in []histogramLiteral, in_size uint, max_histograms uint, out []histogramLiteral, out_size *uint, histogram_symbols []uint32) { var cluster_size []uint32 = make([]uint32, in_size) var clusters []uint32 = make([]uint32, in_size) var num_clusters uint = 0 var max_input_histograms uint = 64 var pairs_capacity uint = max_input_histograms * max_input_histograms / 2 var pairs []histogramPair = make([]histogramPair, (pairs_capacity + 1)) var i uint /* For the first pass of clustering, we allow all pairs. */ for i = 0; i < in_size; i++ { cluster_size[i] = 1 } for i = 0; i < in_size; i++ { out[i] = in[i] out[i].bit_cost_ = populationCostLiteral(&in[i]) histogram_symbols[i] = uint32(i) } for i = 0; i < in_size; i += max_input_histograms { var num_to_combine uint = brotli_min_size_t(in_size-i, max_input_histograms) var num_new_clusters uint var j uint for j = 0; j < num_to_combine; j++ { clusters[num_clusters+j] = uint32(i + j) } num_new_clusters = histogramCombineLiteral(out, cluster_size, histogram_symbols[i:], clusters[num_clusters:], pairs, num_to_combine, num_to_combine, max_histograms, pairs_capacity) num_clusters += num_new_clusters } { /* For the second pass, we limit the total number of histogram pairs. After this limit is reached, we only keep searching for the best pair. */ var max_num_pairs uint = brotli_min_size_t(64*num_clusters, (num_clusters/2)*num_clusters) if pairs_capacity < (max_num_pairs + 1) { var _new_size uint if pairs_capacity == 0 { _new_size = max_num_pairs + 1 } else { _new_size = pairs_capacity } var new_array []histogramPair for _new_size < (max_num_pairs + 1) { _new_size *= 2 } new_array = make([]histogramPair, _new_size) if pairs_capacity != 0 { copy(new_array, pairs[:pairs_capacity]) } pairs = new_array pairs_capacity = _new_size } /* Collapse similar histograms. */ num_clusters = histogramCombineLiteral(out, cluster_size, histogram_symbols, clusters, pairs, num_clusters, in_size, max_histograms, max_num_pairs) } pairs = nil cluster_size = nil /* Find the optimal map from original histograms to the final ones. */ histogramRemapLiteral(in, in_size, clusters, num_clusters, out, histogram_symbols) clusters = nil /* Convert the context map to a canonical form. */ *out_size = histogramReindexLiteral(out, histogram_symbols, in_size) } brotli-1.0.4/command.go000066400000000000000000000125221412267201500147560ustar00rootroot00000000000000package brotli var kInsBase = []uint32{ 0, 1, 2, 3, 4, 5, 6, 8, 10, 14, 18, 26, 34, 50, 66, 98, 130, 194, 322, 578, 1090, 2114, 6210, 22594, } var kInsExtra = []uint32{ 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, 8, 9, 10, 12, 14, 24, } var kCopyBase = []uint32{ 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 18, 22, 30, 38, 54, 70, 102, 134, 198, 326, 582, 1094, 2118, } var kCopyExtra = []uint32{ 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, 8, 9, 10, 24, } func getInsertLengthCode(insertlen uint) uint16 { if insertlen < 6 { return uint16(insertlen) } else if insertlen < 130 { var nbits uint32 = log2FloorNonZero(insertlen-2) - 1 return uint16((nbits << 1) + uint32((insertlen-2)>>nbits) + 2) } else if insertlen < 2114 { return uint16(log2FloorNonZero(insertlen-66) + 10) } else if insertlen < 6210 { return 21 } else if insertlen < 22594 { return 22 } else { return 23 } } func getCopyLengthCode(copylen uint) uint16 { if copylen < 10 { return uint16(copylen - 2) } else if copylen < 134 { var nbits uint32 = log2FloorNonZero(copylen-6) - 1 return uint16((nbits << 1) + uint32((copylen-6)>>nbits) + 4) } else if copylen < 2118 { return uint16(log2FloorNonZero(copylen-70) + 12) } else { return 23 } } func combineLengthCodes(inscode uint16, copycode uint16, use_last_distance bool) uint16 { var bits64 uint16 = uint16(copycode&0x7 | (inscode&0x7)<<3) if use_last_distance && inscode < 8 && copycode < 16 { if copycode < 8 { return bits64 } else { return bits64 | 64 } } else { /* Specification: 5 Encoding of ... (last table) */ /* offset = 2 * index, where index is in range [0..8] */ var offset uint32 = 2 * ((uint32(copycode) >> 3) + 3*(uint32(inscode)>>3)) /* All values in specification are K * 64, where K = [2, 3, 6, 4, 5, 8, 7, 9, 10], i + 1 = [1, 2, 3, 4, 5, 6, 7, 8, 9], K - i - 1 = [1, 1, 3, 0, 0, 2, 0, 1, 2] = D. All values in D require only 2 bits to encode. Magic constant is shifted 6 bits left, to avoid final multiplication. */ offset = (offset << 5) + 0x40 + ((0x520D40 >> offset) & 0xC0) return uint16(offset | uint32(bits64)) } } func getLengthCode(insertlen uint, copylen uint, use_last_distance bool, code *uint16) { var inscode uint16 = getInsertLengthCode(insertlen) var copycode uint16 = getCopyLengthCode(copylen) *code = combineLengthCodes(inscode, copycode, use_last_distance) } func getInsertBase(inscode uint16) uint32 { return kInsBase[inscode] } func getInsertExtra(inscode uint16) uint32 { return kInsExtra[inscode] } func getCopyBase(copycode uint16) uint32 { return kCopyBase[copycode] } func getCopyExtra(copycode uint16) uint32 { return kCopyExtra[copycode] } type command struct { insert_len_ uint32 copy_len_ uint32 dist_extra_ uint32 cmd_prefix_ uint16 dist_prefix_ uint16 } /* distance_code is e.g. 0 for same-as-last short code, or 16 for offset 1. */ func makeCommand(dist *distanceParams, insertlen uint, copylen uint, copylen_code_delta int, distance_code uint) (cmd command) { /* Don't rely on signed int representation, use honest casts. */ var delta uint32 = uint32(byte(int8(copylen_code_delta))) cmd.insert_len_ = uint32(insertlen) cmd.copy_len_ = uint32(uint32(copylen) | delta<<25) /* The distance prefix and extra bits are stored in this Command as if npostfix and ndirect were 0, they are only recomputed later after the clustering if needed. */ prefixEncodeCopyDistance(distance_code, uint(dist.num_direct_distance_codes), uint(dist.distance_postfix_bits), &cmd.dist_prefix_, &cmd.dist_extra_) getLengthCode(insertlen, uint(int(copylen)+copylen_code_delta), (cmd.dist_prefix_&0x3FF == 0), &cmd.cmd_prefix_) return cmd } func makeInsertCommand(insertlen uint) (cmd command) { cmd.insert_len_ = uint32(insertlen) cmd.copy_len_ = 4 << 25 cmd.dist_extra_ = 0 cmd.dist_prefix_ = numDistanceShortCodes getLengthCode(insertlen, 4, false, &cmd.cmd_prefix_) return cmd } func commandRestoreDistanceCode(self *command, dist *distanceParams) uint32 { if uint32(self.dist_prefix_&0x3FF) < numDistanceShortCodes+dist.num_direct_distance_codes { return uint32(self.dist_prefix_) & 0x3FF } else { var dcode uint32 = uint32(self.dist_prefix_) & 0x3FF var nbits uint32 = uint32(self.dist_prefix_) >> 10 var extra uint32 = self.dist_extra_ var postfix_mask uint32 = (1 << dist.distance_postfix_bits) - 1 var hcode uint32 = (dcode - dist.num_direct_distance_codes - numDistanceShortCodes) >> dist.distance_postfix_bits var lcode uint32 = (dcode - dist.num_direct_distance_codes - numDistanceShortCodes) & postfix_mask var offset uint32 = ((2 + (hcode & 1)) << nbits) - 4 return ((offset + extra) << dist.distance_postfix_bits) + lcode + dist.num_direct_distance_codes + numDistanceShortCodes } } func commandDistanceContext(self *command) uint32 { var r uint32 = uint32(self.cmd_prefix_) >> 6 var c uint32 = uint32(self.cmd_prefix_) & 7 if (r == 0 || r == 2 || r == 4 || r == 7) && (c <= 2) { return c } return 3 } func commandCopyLen(self *command) uint32 { return self.copy_len_ & 0x1FFFFFF } func commandCopyLenCode(self *command) uint32 { var modifier uint32 = self.copy_len_ >> 25 var delta int32 = int32(int8(byte(modifier | (modifier&0x40)<<1))) return uint32(int32(self.copy_len_&0x1FFFFFF) + delta) } brotli-1.0.4/compress_fragment.go000066400000000000000000000650111412267201500170570ustar00rootroot00000000000000package brotli import "encoding/binary" /* Copyright 2015 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* Function for fast encoding of an input fragment, independently from the input history. This function uses one-pass processing: when we find a backward match, we immediately emit the corresponding command and literal codes to the bit stream. Adapted from the CompressFragment() function in https://github.com/google/snappy/blob/master/snappy.cc */ const maxDistance_compress_fragment = 262128 func hash5(p []byte, shift uint) uint32 { var h uint64 = (binary.LittleEndian.Uint64(p) << 24) * uint64(kHashMul32) return uint32(h >> shift) } func hashBytesAtOffset5(v uint64, offset int, shift uint) uint32 { assert(offset >= 0) assert(offset <= 3) { var h uint64 = ((v >> uint(8*offset)) << 24) * uint64(kHashMul32) return uint32(h >> shift) } } func isMatch5(p1 []byte, p2 []byte) bool { return binary.LittleEndian.Uint32(p1) == binary.LittleEndian.Uint32(p2) && p1[4] == p2[4] } /* Builds a literal prefix code into "depths" and "bits" based on the statistics of the "input" string and stores it into the bit stream. Note that the prefix code here is built from the pre-LZ77 input, therefore we can only approximate the statistics of the actual literal stream. Moreover, for long inputs we build a histogram from a sample of the input and thus have to assign a non-zero depth for each literal. Returns estimated compression ratio millibytes/char for encoding given input with generated code. */ func buildAndStoreLiteralPrefixCode(input []byte, input_size uint, depths []byte, bits []uint16, storage_ix *uint, storage []byte) uint { var histogram = [256]uint32{0} var histogram_total uint var i uint if input_size < 1<<15 { for i = 0; i < input_size; i++ { histogram[input[i]]++ } histogram_total = input_size for i = 0; i < 256; i++ { /* We weigh the first 11 samples with weight 3 to account for the balancing effect of the LZ77 phase on the histogram. */ var adjust uint32 = 2 * brotli_min_uint32_t(histogram[i], 11) histogram[i] += adjust histogram_total += uint(adjust) } } else { const kSampleRate uint = 29 for i = 0; i < input_size; i += kSampleRate { histogram[input[i]]++ } histogram_total = (input_size + kSampleRate - 1) / kSampleRate for i = 0; i < 256; i++ { /* We add 1 to each population count to avoid 0 bit depths (since this is only a sample and we don't know if the symbol appears or not), and we weigh the first 11 samples with weight 3 to account for the balancing effect of the LZ77 phase on the histogram (more frequent symbols are more likely to be in backward references instead as literals). */ var adjust uint32 = 1 + 2*brotli_min_uint32_t(histogram[i], 11) histogram[i] += adjust histogram_total += uint(adjust) } } buildAndStoreHuffmanTreeFast(histogram[:], histogram_total, /* max_bits = */ 8, depths, bits, storage_ix, storage) { var literal_ratio uint = 0 for i = 0; i < 256; i++ { if histogram[i] != 0 { literal_ratio += uint(histogram[i] * uint32(depths[i])) } } /* Estimated encoding ratio, millibytes per symbol. */ return (literal_ratio * 125) / histogram_total } } /* Builds a command and distance prefix code (each 64 symbols) into "depth" and "bits" based on "histogram" and stores it into the bit stream. */ func buildAndStoreCommandPrefixCode1(histogram []uint32, depth []byte, bits []uint16, storage_ix *uint, storage []byte) { var tree [129]huffmanTree var cmd_depth = [numCommandSymbols]byte{0} /* Tree size for building a tree over 64 symbols is 2 * 64 + 1. */ var cmd_bits [64]uint16 createHuffmanTree(histogram, 64, 15, tree[:], depth) createHuffmanTree(histogram[64:], 64, 14, tree[:], depth[64:]) /* We have to jump through a few hoops here in order to compute the command bits because the symbols are in a different order than in the full alphabet. This looks complicated, but having the symbols in this order in the command bits saves a few branches in the Emit* functions. */ copy(cmd_depth[:], depth[:24]) copy(cmd_depth[24:][:], depth[40:][:8]) copy(cmd_depth[32:][:], depth[24:][:8]) copy(cmd_depth[40:][:], depth[48:][:8]) copy(cmd_depth[48:][:], depth[32:][:8]) copy(cmd_depth[56:][:], depth[56:][:8]) convertBitDepthsToSymbols(cmd_depth[:], 64, cmd_bits[:]) copy(bits, cmd_bits[:24]) copy(bits[24:], cmd_bits[32:][:8]) copy(bits[32:], cmd_bits[48:][:8]) copy(bits[40:], cmd_bits[24:][:8]) copy(bits[48:], cmd_bits[40:][:8]) copy(bits[56:], cmd_bits[56:][:8]) convertBitDepthsToSymbols(depth[64:], 64, bits[64:]) { /* Create the bit length array for the full command alphabet. */ var i uint for i := 0; i < int(64); i++ { cmd_depth[i] = 0 } /* only 64 first values were used */ copy(cmd_depth[:], depth[:8]) copy(cmd_depth[64:][:], depth[8:][:8]) copy(cmd_depth[128:][:], depth[16:][:8]) copy(cmd_depth[192:][:], depth[24:][:8]) copy(cmd_depth[384:][:], depth[32:][:8]) for i = 0; i < 8; i++ { cmd_depth[128+8*i] = depth[40+i] cmd_depth[256+8*i] = depth[48+i] cmd_depth[448+8*i] = depth[56+i] } storeHuffmanTree(cmd_depth[:], numCommandSymbols, tree[:], storage_ix, storage) } storeHuffmanTree(depth[64:], 64, tree[:], storage_ix, storage) } /* REQUIRES: insertlen < 6210 */ func emitInsertLen1(insertlen uint, depth []byte, bits []uint16, histo []uint32, storage_ix *uint, storage []byte) { if insertlen < 6 { var code uint = insertlen + 40 writeBits(uint(depth[code]), uint64(bits[code]), storage_ix, storage) histo[code]++ } else if insertlen < 130 { var tail uint = insertlen - 2 var nbits uint32 = log2FloorNonZero(tail) - 1 var prefix uint = tail >> nbits var inscode uint = uint((nbits << 1) + uint32(prefix) + 42) writeBits(uint(depth[inscode]), uint64(bits[inscode]), storage_ix, storage) writeBits(uint(nbits), uint64(tail)-(uint64(prefix)<> nbits var code uint = uint((nbits << 1) + uint32(prefix) + 20) writeBits(uint(depth[code]), uint64(bits[code]), storage_ix, storage) writeBits(uint(nbits), uint64(tail)-(uint64(prefix)<> nbits var code uint = uint((nbits << 1) + uint32(prefix) + 4) writeBits(uint(depth[code]), uint64(bits[code]), storage_ix, storage) writeBits(uint(nbits), uint64(tail)-(uint64(prefix)<> 5) + 30 writeBits(uint(depth[code]), uint64(bits[code]), storage_ix, storage) writeBits(5, uint64(tail)&31, storage_ix, storage) writeBits(uint(depth[64]), uint64(bits[64]), storage_ix, storage) histo[code]++ histo[64]++ } else if copylen < 2120 { var tail uint = copylen - 72 var nbits uint32 = log2FloorNonZero(tail) var code uint = uint(nbits + 28) writeBits(uint(depth[code]), uint64(bits[code]), storage_ix, storage) writeBits(uint(nbits), uint64(tail)-(uint64(uint(1))<> nbits) & 1 var offset uint = (2 + prefix) << nbits var distcode uint = uint(2*(nbits-1) + uint32(prefix) + 80) writeBits(uint(depth[distcode]), uint64(bits[distcode]), storage_ix, storage) writeBits(uint(nbits), uint64(d)-uint64(offset), storage_ix, storage) histo[distcode]++ } func emitLiterals(input []byte, len uint, depth []byte, bits []uint16, storage_ix *uint, storage []byte) { var j uint for j = 0; j < len; j++ { var lit byte = input[j] writeBits(uint(depth[lit]), uint64(bits[lit]), storage_ix, storage) } } /* REQUIRES: len <= 1 << 24. */ func storeMetaBlockHeader1(len uint, is_uncompressed bool, storage_ix *uint, storage []byte) { var nibbles uint = 6 /* ISLAST */ writeBits(1, 0, storage_ix, storage) if len <= 1<<16 { nibbles = 4 } else if len <= 1<<20 { nibbles = 5 } writeBits(2, uint64(nibbles)-4, storage_ix, storage) writeBits(nibbles*4, uint64(len)-1, storage_ix, storage) /* ISUNCOMPRESSED */ writeSingleBit(is_uncompressed, storage_ix, storage) } func updateBits(n_bits uint, bits uint32, pos uint, array []byte) { for n_bits > 0 { var byte_pos uint = pos >> 3 var n_unchanged_bits uint = pos & 7 var n_changed_bits uint = brotli_min_size_t(n_bits, 8-n_unchanged_bits) var total_bits uint = n_unchanged_bits + n_changed_bits var mask uint32 = (^((1 << total_bits) - 1)) | ((1 << n_unchanged_bits) - 1) var unchanged_bits uint32 = uint32(array[byte_pos]) & mask var changed_bits uint32 = bits & ((1 << n_changed_bits) - 1) array[byte_pos] = byte(changed_bits<>= n_changed_bits pos += n_changed_bits } } func rewindBitPosition1(new_storage_ix uint, storage_ix *uint, storage []byte) { var bitpos uint = new_storage_ix & 7 var mask uint = (1 << bitpos) - 1 storage[new_storage_ix>>3] &= byte(mask) *storage_ix = new_storage_ix } var shouldMergeBlock_kSampleRate uint = 43 func shouldMergeBlock(data []byte, len uint, depths []byte) bool { var histo = [256]uint{0} var i uint for i = 0; i < len; i += shouldMergeBlock_kSampleRate { histo[data[i]]++ } { var total uint = (len + shouldMergeBlock_kSampleRate - 1) / shouldMergeBlock_kSampleRate var r float64 = (fastLog2(total)+0.5)*float64(total) + 200 for i = 0; i < 256; i++ { r -= float64(histo[i]) * (float64(depths[i]) + fastLog2(histo[i])) } return r >= 0.0 } } func shouldUseUncompressedMode(metablock_start []byte, next_emit []byte, insertlen uint, literal_ratio uint) bool { var compressed uint = uint(-cap(next_emit) + cap(metablock_start)) if compressed*50 > insertlen { return false } else { return literal_ratio > 980 } } func emitUncompressedMetaBlock1(begin []byte, end []byte, storage_ix_start uint, storage_ix *uint, storage []byte) { var len uint = uint(-cap(end) + cap(begin)) rewindBitPosition1(storage_ix_start, storage_ix, storage) storeMetaBlockHeader1(uint(len), true, storage_ix, storage) *storage_ix = (*storage_ix + 7) &^ 7 copy(storage[*storage_ix>>3:], begin[:len]) *storage_ix += uint(len << 3) storage[*storage_ix>>3] = 0 } var kCmdHistoSeed = [128]uint32{ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, } var compressFragmentFastImpl_kFirstBlockSize uint = 3 << 15 var compressFragmentFastImpl_kMergeBlockSize uint = 1 << 16 func compressFragmentFastImpl(in []byte, input_size uint, is_last bool, table []int, table_bits uint, cmd_depth []byte, cmd_bits []uint16, cmd_code_numbits *uint, cmd_code []byte, storage_ix *uint, storage []byte) { var cmd_histo [128]uint32 var ip_end int var next_emit int = 0 var base_ip int = 0 var input int = 0 const kInputMarginBytes uint = windowGap const kMinMatchLen uint = 5 var metablock_start int = input var block_size uint = brotli_min_size_t(input_size, compressFragmentFastImpl_kFirstBlockSize) var total_block_size uint = block_size var mlen_storage_ix uint = *storage_ix + 3 var lit_depth [256]byte var lit_bits [256]uint16 var literal_ratio uint var ip int var last_distance int var shift uint = 64 - table_bits /* "next_emit" is a pointer to the first byte that is not covered by a previous copy. Bytes between "next_emit" and the start of the next copy or the end of the input will be emitted as literal bytes. */ /* Save the start of the first block for position and distance computations. */ /* Save the bit position of the MLEN field of the meta-block header, so that we can update it later if we decide to extend this meta-block. */ storeMetaBlockHeader1(block_size, false, storage_ix, storage) /* No block splits, no contexts. */ writeBits(13, 0, storage_ix, storage) literal_ratio = buildAndStoreLiteralPrefixCode(in[input:], block_size, lit_depth[:], lit_bits[:], storage_ix, storage) { /* Store the pre-compressed command and distance prefix codes. */ var i uint for i = 0; i+7 < *cmd_code_numbits; i += 8 { writeBits(8, uint64(cmd_code[i>>3]), storage_ix, storage) } } writeBits(*cmd_code_numbits&7, uint64(cmd_code[*cmd_code_numbits>>3]), storage_ix, storage) /* Initialize the command and distance histograms. We will gather statistics of command and distance codes during the processing of this block and use it to update the command and distance prefix codes for the next block. */ emit_commands: copy(cmd_histo[:], kCmdHistoSeed[:]) /* "ip" is the input pointer. */ ip = input last_distance = -1 ip_end = int(uint(input) + block_size) if block_size >= kInputMarginBytes { var len_limit uint = brotli_min_size_t(block_size-kMinMatchLen, input_size-kInputMarginBytes) var ip_limit int = int(uint(input) + len_limit) /* For the last block, we need to keep a 16 bytes margin so that we can be sure that all distances are at most window size - 16. For all other blocks, we only need to keep a margin of 5 bytes so that we don't go over the block size with a copy. */ var next_hash uint32 ip++ for next_hash = hash5(in[ip:], shift); ; { var skip uint32 = 32 var next_ip int = ip /* Step 1: Scan forward in the input looking for a 5-byte-long match. If we get close to exhausting the input then goto emit_remainder. Heuristic match skipping: If 32 bytes are scanned with no matches found, start looking only at every other byte. If 32 more bytes are scanned, look at every third byte, etc.. When a match is found, immediately go back to looking at every byte. This is a small loss (~5% performance, ~0.1% density) for compressible data due to more bookkeeping, but for non-compressible data (such as JPEG) it's a huge win since the compressor quickly "realizes" the data is incompressible and doesn't bother looking for matches everywhere. The "skip" variable keeps track of how many bytes there are since the last match; dividing it by 32 (i.e. right-shifting by five) gives the number of bytes to move ahead for each iteration. */ var candidate int assert(next_emit < ip) trawl: for { var hash uint32 = next_hash var bytes_between_hash_lookups uint32 = skip >> 5 skip++ assert(hash == hash5(in[next_ip:], shift)) ip = next_ip next_ip = int(uint32(ip) + bytes_between_hash_lookups) if next_ip > ip_limit { goto emit_remainder } next_hash = hash5(in[next_ip:], shift) candidate = ip - last_distance if isMatch5(in[ip:], in[candidate:]) { if candidate < ip { table[hash] = int(ip - base_ip) break } } candidate = base_ip + table[hash] assert(candidate >= base_ip) assert(candidate < ip) table[hash] = int(ip - base_ip) if isMatch5(in[ip:], in[candidate:]) { break } } /* Check copy distance. If candidate is not feasible, continue search. Checking is done outside of hot loop to reduce overhead. */ if ip-candidate > maxDistance_compress_fragment { goto trawl } /* Step 2: Emit the found match together with the literal bytes from "next_emit" to the bit stream, and then see if we can find a next match immediately afterwards. Repeat until we find no match for the input without emitting some literal bytes. */ { var base int = ip /* > 0 */ var matched uint = 5 + findMatchLengthWithLimit(in[candidate+5:], in[ip+5:], uint(ip_end-ip)-5) var distance int = int(base - candidate) /* We have a 5-byte match at ip, and we need to emit bytes in [next_emit, ip). */ var insert uint = uint(base - next_emit) ip += int(matched) if insert < 6210 { emitInsertLen1(insert, cmd_depth, cmd_bits, cmd_histo[:], storage_ix, storage) } else if shouldUseUncompressedMode(in[metablock_start:], in[next_emit:], insert, literal_ratio) { emitUncompressedMetaBlock1(in[metablock_start:], in[base:], mlen_storage_ix-3, storage_ix, storage) input_size -= uint(base - input) input = base next_emit = input goto next_block } else { emitLongInsertLen(insert, cmd_depth, cmd_bits, cmd_histo[:], storage_ix, storage) } emitLiterals(in[next_emit:], insert, lit_depth[:], lit_bits[:], storage_ix, storage) if distance == last_distance { writeBits(uint(cmd_depth[64]), uint64(cmd_bits[64]), storage_ix, storage) cmd_histo[64]++ } else { emitDistance1(uint(distance), cmd_depth, cmd_bits, cmd_histo[:], storage_ix, storage) last_distance = distance } emitCopyLenLastDistance1(matched, cmd_depth, cmd_bits, cmd_histo[:], storage_ix, storage) next_emit = ip if ip >= ip_limit { goto emit_remainder } /* We could immediately start working at ip now, but to improve compression we first update "table" with the hashes of some positions within the last copy. */ { var input_bytes uint64 = binary.LittleEndian.Uint64(in[ip-3:]) var prev_hash uint32 = hashBytesAtOffset5(input_bytes, 0, shift) var cur_hash uint32 = hashBytesAtOffset5(input_bytes, 3, shift) table[prev_hash] = int(ip - base_ip - 3) prev_hash = hashBytesAtOffset5(input_bytes, 1, shift) table[prev_hash] = int(ip - base_ip - 2) prev_hash = hashBytesAtOffset5(input_bytes, 2, shift) table[prev_hash] = int(ip - base_ip - 1) candidate = base_ip + table[cur_hash] table[cur_hash] = int(ip - base_ip) } } for isMatch5(in[ip:], in[candidate:]) { var base int = ip /* We have a 5-byte match at ip, and no need to emit any literal bytes prior to ip. */ var matched uint = 5 + findMatchLengthWithLimit(in[candidate+5:], in[ip+5:], uint(ip_end-ip)-5) if ip-candidate > maxDistance_compress_fragment { break } ip += int(matched) last_distance = int(base - candidate) /* > 0 */ emitCopyLen1(matched, cmd_depth, cmd_bits, cmd_histo[:], storage_ix, storage) emitDistance1(uint(last_distance), cmd_depth, cmd_bits, cmd_histo[:], storage_ix, storage) next_emit = ip if ip >= ip_limit { goto emit_remainder } /* We could immediately start working at ip now, but to improve compression we first update "table" with the hashes of some positions within the last copy. */ { var input_bytes uint64 = binary.LittleEndian.Uint64(in[ip-3:]) var prev_hash uint32 = hashBytesAtOffset5(input_bytes, 0, shift) var cur_hash uint32 = hashBytesAtOffset5(input_bytes, 3, shift) table[prev_hash] = int(ip - base_ip - 3) prev_hash = hashBytesAtOffset5(input_bytes, 1, shift) table[prev_hash] = int(ip - base_ip - 2) prev_hash = hashBytesAtOffset5(input_bytes, 2, shift) table[prev_hash] = int(ip - base_ip - 1) candidate = base_ip + table[cur_hash] table[cur_hash] = int(ip - base_ip) } } ip++ next_hash = hash5(in[ip:], shift) } } emit_remainder: assert(next_emit <= ip_end) input += int(block_size) input_size -= block_size block_size = brotli_min_size_t(input_size, compressFragmentFastImpl_kMergeBlockSize) /* Decide if we want to continue this meta-block instead of emitting the last insert-only command. */ if input_size > 0 && total_block_size+block_size <= 1<<20 && shouldMergeBlock(in[input:], block_size, lit_depth[:]) { assert(total_block_size > 1<<16) /* Update the size of the current meta-block and continue emitting commands. We can do this because the current size and the new size both have 5 nibbles. */ total_block_size += block_size updateBits(20, uint32(total_block_size-1), mlen_storage_ix, storage) goto emit_commands } /* Emit the remaining bytes as literals. */ if next_emit < ip_end { var insert uint = uint(ip_end - next_emit) if insert < 6210 { emitInsertLen1(insert, cmd_depth, cmd_bits, cmd_histo[:], storage_ix, storage) emitLiterals(in[next_emit:], insert, lit_depth[:], lit_bits[:], storage_ix, storage) } else if shouldUseUncompressedMode(in[metablock_start:], in[next_emit:], insert, literal_ratio) { emitUncompressedMetaBlock1(in[metablock_start:], in[ip_end:], mlen_storage_ix-3, storage_ix, storage) } else { emitLongInsertLen(insert, cmd_depth, cmd_bits, cmd_histo[:], storage_ix, storage) emitLiterals(in[next_emit:], insert, lit_depth[:], lit_bits[:], storage_ix, storage) } } next_emit = ip_end /* If we have more data, write a new meta-block header and prefix codes and then continue emitting commands. */ next_block: if input_size > 0 { metablock_start = input block_size = brotli_min_size_t(input_size, compressFragmentFastImpl_kFirstBlockSize) total_block_size = block_size /* Save the bit position of the MLEN field of the meta-block header, so that we can update it later if we decide to extend this meta-block. */ mlen_storage_ix = *storage_ix + 3 storeMetaBlockHeader1(block_size, false, storage_ix, storage) /* No block splits, no contexts. */ writeBits(13, 0, storage_ix, storage) literal_ratio = buildAndStoreLiteralPrefixCode(in[input:], block_size, lit_depth[:], lit_bits[:], storage_ix, storage) buildAndStoreCommandPrefixCode1(cmd_histo[:], cmd_depth, cmd_bits, storage_ix, storage) goto emit_commands } if !is_last { /* If this is not the last block, update the command and distance prefix codes for the next block and store the compressed forms. */ cmd_code[0] = 0 *cmd_code_numbits = 0 buildAndStoreCommandPrefixCode1(cmd_histo[:], cmd_depth, cmd_bits, cmd_code_numbits, cmd_code) } } /* Compresses "input" string to the "*storage" buffer as one or more complete meta-blocks, and updates the "*storage_ix" bit position. If "is_last" is 1, emits an additional empty last meta-block. "cmd_depth" and "cmd_bits" contain the command and distance prefix codes (see comment in encode.h) used for the encoding of this input fragment. If "is_last" is 0, they are updated to reflect the statistics of this input fragment, to be used for the encoding of the next fragment. "*cmd_code_numbits" is the number of bits of the compressed representation of the command and distance prefix codes, and "cmd_code" is an array of at least "(*cmd_code_numbits + 7) >> 3" size that contains the compressed command and distance prefix codes. If "is_last" is 0, these are also updated to represent the updated "cmd_depth" and "cmd_bits". REQUIRES: "input_size" is greater than zero, or "is_last" is 1. REQUIRES: "input_size" is less or equal to maximal metablock size (1 << 24). REQUIRES: All elements in "table[0..table_size-1]" are initialized to zero. REQUIRES: "table_size" is an odd (9, 11, 13, 15) power of two OUTPUT: maximal copy distance <= |input_size| OUTPUT: maximal copy distance <= BROTLI_MAX_BACKWARD_LIMIT(18) */ func compressFragmentFast(input []byte, input_size uint, is_last bool, table []int, table_size uint, cmd_depth []byte, cmd_bits []uint16, cmd_code_numbits *uint, cmd_code []byte, storage_ix *uint, storage []byte) { var initial_storage_ix uint = *storage_ix var table_bits uint = uint(log2FloorNonZero(table_size)) if input_size == 0 { assert(is_last) writeBits(1, 1, storage_ix, storage) /* islast */ writeBits(1, 1, storage_ix, storage) /* isempty */ *storage_ix = (*storage_ix + 7) &^ 7 return } compressFragmentFastImpl(input, input_size, is_last, table, table_bits, cmd_depth, cmd_bits, cmd_code_numbits, cmd_code, storage_ix, storage) /* If output is larger than single uncompressed block, rewrite it. */ if *storage_ix-initial_storage_ix > 31+(input_size<<3) { emitUncompressedMetaBlock1(input, input[input_size:], initial_storage_ix, storage_ix, storage) } if is_last { writeBits(1, 1, storage_ix, storage) /* islast */ writeBits(1, 1, storage_ix, storage) /* isempty */ *storage_ix = (*storage_ix + 7) &^ 7 } } brotli-1.0.4/compress_fragment_two_pass.go000066400000000000000000000530431412267201500210000ustar00rootroot00000000000000package brotli import "encoding/binary" /* Copyright 2015 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* Function for fast encoding of an input fragment, independently from the input history. This function uses two-pass processing: in the first pass we save the found backward matches and literal bytes into a buffer, and in the second pass we emit them into the bit stream using prefix codes built based on the actual command and literal byte histograms. */ const kCompressFragmentTwoPassBlockSize uint = 1 << 17 func hash1(p []byte, shift uint, length uint) uint32 { var h uint64 = (binary.LittleEndian.Uint64(p) << ((8 - length) * 8)) * uint64(kHashMul32) return uint32(h >> shift) } func hashBytesAtOffset(v uint64, offset uint, shift uint, length uint) uint32 { assert(offset <= 8-length) { var h uint64 = ((v >> (8 * offset)) << ((8 - length) * 8)) * uint64(kHashMul32) return uint32(h >> shift) } } func isMatch1(p1 []byte, p2 []byte, length uint) bool { if binary.LittleEndian.Uint32(p1) != binary.LittleEndian.Uint32(p2) { return false } if length == 4 { return true } return p1[4] == p2[4] && p1[5] == p2[5] } /* Builds a command and distance prefix code (each 64 symbols) into "depth" and "bits" based on "histogram" and stores it into the bit stream. */ func buildAndStoreCommandPrefixCode(histogram []uint32, depth []byte, bits []uint16, storage_ix *uint, storage []byte) { var tree [129]huffmanTree var cmd_depth = [numCommandSymbols]byte{0} /* Tree size for building a tree over 64 symbols is 2 * 64 + 1. */ var cmd_bits [64]uint16 createHuffmanTree(histogram, 64, 15, tree[:], depth) createHuffmanTree(histogram[64:], 64, 14, tree[:], depth[64:]) /* We have to jump through a few hoops here in order to compute the command bits because the symbols are in a different order than in the full alphabet. This looks complicated, but having the symbols in this order in the command bits saves a few branches in the Emit* functions. */ copy(cmd_depth[:], depth[24:][:24]) copy(cmd_depth[24:][:], depth[:8]) copy(cmd_depth[32:][:], depth[48:][:8]) copy(cmd_depth[40:][:], depth[8:][:8]) copy(cmd_depth[48:][:], depth[56:][:8]) copy(cmd_depth[56:][:], depth[16:][:8]) convertBitDepthsToSymbols(cmd_depth[:], 64, cmd_bits[:]) copy(bits, cmd_bits[24:][:8]) copy(bits[8:], cmd_bits[40:][:8]) copy(bits[16:], cmd_bits[56:][:8]) copy(bits[24:], cmd_bits[:24]) copy(bits[48:], cmd_bits[32:][:8]) copy(bits[56:], cmd_bits[48:][:8]) convertBitDepthsToSymbols(depth[64:], 64, bits[64:]) { /* Create the bit length array for the full command alphabet. */ var i uint for i := 0; i < int(64); i++ { cmd_depth[i] = 0 } /* only 64 first values were used */ copy(cmd_depth[:], depth[24:][:8]) copy(cmd_depth[64:][:], depth[32:][:8]) copy(cmd_depth[128:][:], depth[40:][:8]) copy(cmd_depth[192:][:], depth[48:][:8]) copy(cmd_depth[384:][:], depth[56:][:8]) for i = 0; i < 8; i++ { cmd_depth[128+8*i] = depth[i] cmd_depth[256+8*i] = depth[8+i] cmd_depth[448+8*i] = depth[16+i] } storeHuffmanTree(cmd_depth[:], numCommandSymbols, tree[:], storage_ix, storage) } storeHuffmanTree(depth[64:], 64, tree[:], storage_ix, storage) } func emitInsertLen(insertlen uint32, commands *[]uint32) { if insertlen < 6 { (*commands)[0] = insertlen } else if insertlen < 130 { var tail uint32 = insertlen - 2 var nbits uint32 = log2FloorNonZero(uint(tail)) - 1 var prefix uint32 = tail >> nbits var inscode uint32 = (nbits << 1) + prefix + 2 var extra uint32 = tail - (prefix << nbits) (*commands)[0] = inscode | extra<<8 } else if insertlen < 2114 { var tail uint32 = insertlen - 66 var nbits uint32 = log2FloorNonZero(uint(tail)) var code uint32 = nbits + 10 var extra uint32 = tail - (1 << nbits) (*commands)[0] = code | extra<<8 } else if insertlen < 6210 { var extra uint32 = insertlen - 2114 (*commands)[0] = 21 | extra<<8 } else if insertlen < 22594 { var extra uint32 = insertlen - 6210 (*commands)[0] = 22 | extra<<8 } else { var extra uint32 = insertlen - 22594 (*commands)[0] = 23 | extra<<8 } *commands = (*commands)[1:] } func emitCopyLen(copylen uint, commands *[]uint32) { if copylen < 10 { (*commands)[0] = uint32(copylen + 38) } else if copylen < 134 { var tail uint = copylen - 6 var nbits uint = uint(log2FloorNonZero(tail) - 1) var prefix uint = tail >> nbits var code uint = (nbits << 1) + prefix + 44 var extra uint = tail - (prefix << nbits) (*commands)[0] = uint32(code | extra<<8) } else if copylen < 2118 { var tail uint = copylen - 70 var nbits uint = uint(log2FloorNonZero(tail)) var code uint = nbits + 52 var extra uint = tail - (uint(1) << nbits) (*commands)[0] = uint32(code | extra<<8) } else { var extra uint = copylen - 2118 (*commands)[0] = uint32(63 | extra<<8) } *commands = (*commands)[1:] } func emitCopyLenLastDistance(copylen uint, commands *[]uint32) { if copylen < 12 { (*commands)[0] = uint32(copylen + 20) *commands = (*commands)[1:] } else if copylen < 72 { var tail uint = copylen - 8 var nbits uint = uint(log2FloorNonZero(tail) - 1) var prefix uint = tail >> nbits var code uint = (nbits << 1) + prefix + 28 var extra uint = tail - (prefix << nbits) (*commands)[0] = uint32(code | extra<<8) *commands = (*commands)[1:] } else if copylen < 136 { var tail uint = copylen - 8 var code uint = (tail >> 5) + 54 var extra uint = tail & 31 (*commands)[0] = uint32(code | extra<<8) *commands = (*commands)[1:] (*commands)[0] = 64 *commands = (*commands)[1:] } else if copylen < 2120 { var tail uint = copylen - 72 var nbits uint = uint(log2FloorNonZero(tail)) var code uint = nbits + 52 var extra uint = tail - (uint(1) << nbits) (*commands)[0] = uint32(code | extra<<8) *commands = (*commands)[1:] (*commands)[0] = 64 *commands = (*commands)[1:] } else { var extra uint = copylen - 2120 (*commands)[0] = uint32(63 | extra<<8) *commands = (*commands)[1:] (*commands)[0] = 64 *commands = (*commands)[1:] } } func emitDistance(distance uint32, commands *[]uint32) { var d uint32 = distance + 3 var nbits uint32 = log2FloorNonZero(uint(d)) - 1 var prefix uint32 = (d >> nbits) & 1 var offset uint32 = (2 + prefix) << nbits var distcode uint32 = 2*(nbits-1) + prefix + 80 var extra uint32 = d - offset (*commands)[0] = distcode | extra<<8 *commands = (*commands)[1:] } /* REQUIRES: len <= 1 << 24. */ func storeMetaBlockHeader(len uint, is_uncompressed bool, storage_ix *uint, storage []byte) { var nibbles uint = 6 /* ISLAST */ writeBits(1, 0, storage_ix, storage) if len <= 1<<16 { nibbles = 4 } else if len <= 1<<20 { nibbles = 5 } writeBits(2, uint64(nibbles)-4, storage_ix, storage) writeBits(nibbles*4, uint64(len)-1, storage_ix, storage) /* ISUNCOMPRESSED */ writeSingleBit(is_uncompressed, storage_ix, storage) } func createCommands(input []byte, block_size uint, input_size uint, base_ip_ptr []byte, table []int, table_bits uint, min_match uint, literals *[]byte, commands *[]uint32) { var ip int = 0 var shift uint = 64 - table_bits var ip_end int = int(block_size) var base_ip int = -cap(base_ip_ptr) + cap(input) var next_emit int = 0 var last_distance int = -1 /* "ip" is the input pointer. */ const kInputMarginBytes uint = windowGap /* "next_emit" is a pointer to the first byte that is not covered by a previous copy. Bytes between "next_emit" and the start of the next copy or the end of the input will be emitted as literal bytes. */ if block_size >= kInputMarginBytes { var len_limit uint = brotli_min_size_t(block_size-min_match, input_size-kInputMarginBytes) var ip_limit int = int(len_limit) /* For the last block, we need to keep a 16 bytes margin so that we can be sure that all distances are at most window size - 16. For all other blocks, we only need to keep a margin of 5 bytes so that we don't go over the block size with a copy. */ var next_hash uint32 ip++ for next_hash = hash1(input[ip:], shift, min_match); ; { var skip uint32 = 32 var next_ip int = ip /* Step 1: Scan forward in the input looking for a 6-byte-long match. If we get close to exhausting the input then goto emit_remainder. Heuristic match skipping: If 32 bytes are scanned with no matches found, start looking only at every other byte. If 32 more bytes are scanned, look at every third byte, etc.. When a match is found, immediately go back to looking at every byte. This is a small loss (~5% performance, ~0.1% density) for compressible data due to more bookkeeping, but for non-compressible data (such as JPEG) it's a huge win since the compressor quickly "realizes" the data is incompressible and doesn't bother looking for matches everywhere. The "skip" variable keeps track of how many bytes there are since the last match; dividing it by 32 (ie. right-shifting by five) gives the number of bytes to move ahead for each iteration. */ var candidate int assert(next_emit < ip) trawl: for { var hash uint32 = next_hash var bytes_between_hash_lookups uint32 = skip >> 5 skip++ ip = next_ip assert(hash == hash1(input[ip:], shift, min_match)) next_ip = int(uint32(ip) + bytes_between_hash_lookups) if next_ip > ip_limit { goto emit_remainder } next_hash = hash1(input[next_ip:], shift, min_match) candidate = ip - last_distance if isMatch1(input[ip:], base_ip_ptr[candidate-base_ip:], min_match) { if candidate < ip { table[hash] = int(ip - base_ip) break } } candidate = base_ip + table[hash] assert(candidate >= base_ip) assert(candidate < ip) table[hash] = int(ip - base_ip) if isMatch1(input[ip:], base_ip_ptr[candidate-base_ip:], min_match) { break } } /* Check copy distance. If candidate is not feasible, continue search. Checking is done outside of hot loop to reduce overhead. */ if ip-candidate > maxDistance_compress_fragment { goto trawl } /* Step 2: Emit the found match together with the literal bytes from "next_emit", and then see if we can find a next match immediately afterwards. Repeat until we find no match for the input without emitting some literal bytes. */ { var base int = ip /* > 0 */ var matched uint = min_match + findMatchLengthWithLimit(base_ip_ptr[uint(candidate-base_ip)+min_match:], input[uint(ip)+min_match:], uint(ip_end-ip)-min_match) var distance int = int(base - candidate) /* We have a 6-byte match at ip, and we need to emit bytes in [next_emit, ip). */ var insert int = int(base - next_emit) ip += int(matched) emitInsertLen(uint32(insert), commands) copy(*literals, input[next_emit:][:uint(insert)]) *literals = (*literals)[insert:] if distance == last_distance { (*commands)[0] = 64 *commands = (*commands)[1:] } else { emitDistance(uint32(distance), commands) last_distance = distance } emitCopyLenLastDistance(matched, commands) next_emit = ip if ip >= ip_limit { goto emit_remainder } { var input_bytes uint64 var cur_hash uint32 /* We could immediately start working at ip now, but to improve compression we first update "table" with the hashes of some positions within the last copy. */ var prev_hash uint32 if min_match == 4 { input_bytes = binary.LittleEndian.Uint64(input[ip-3:]) cur_hash = hashBytesAtOffset(input_bytes, 3, shift, min_match) prev_hash = hashBytesAtOffset(input_bytes, 0, shift, min_match) table[prev_hash] = int(ip - base_ip - 3) prev_hash = hashBytesAtOffset(input_bytes, 1, shift, min_match) table[prev_hash] = int(ip - base_ip - 2) prev_hash = hashBytesAtOffset(input_bytes, 0, shift, min_match) table[prev_hash] = int(ip - base_ip - 1) } else { input_bytes = binary.LittleEndian.Uint64(input[ip-5:]) prev_hash = hashBytesAtOffset(input_bytes, 0, shift, min_match) table[prev_hash] = int(ip - base_ip - 5) prev_hash = hashBytesAtOffset(input_bytes, 1, shift, min_match) table[prev_hash] = int(ip - base_ip - 4) prev_hash = hashBytesAtOffset(input_bytes, 2, shift, min_match) table[prev_hash] = int(ip - base_ip - 3) input_bytes = binary.LittleEndian.Uint64(input[ip-2:]) cur_hash = hashBytesAtOffset(input_bytes, 2, shift, min_match) prev_hash = hashBytesAtOffset(input_bytes, 0, shift, min_match) table[prev_hash] = int(ip - base_ip - 2) prev_hash = hashBytesAtOffset(input_bytes, 1, shift, min_match) table[prev_hash] = int(ip - base_ip - 1) } candidate = base_ip + table[cur_hash] table[cur_hash] = int(ip - base_ip) } } for ip-candidate <= maxDistance_compress_fragment && isMatch1(input[ip:], base_ip_ptr[candidate-base_ip:], min_match) { var base int = ip /* We have a 6-byte match at ip, and no need to emit any literal bytes prior to ip. */ var matched uint = min_match + findMatchLengthWithLimit(base_ip_ptr[uint(candidate-base_ip)+min_match:], input[uint(ip)+min_match:], uint(ip_end-ip)-min_match) ip += int(matched) last_distance = int(base - candidate) /* > 0 */ emitCopyLen(matched, commands) emitDistance(uint32(last_distance), commands) next_emit = ip if ip >= ip_limit { goto emit_remainder } { var input_bytes uint64 var cur_hash uint32 /* We could immediately start working at ip now, but to improve compression we first update "table" with the hashes of some positions within the last copy. */ var prev_hash uint32 if min_match == 4 { input_bytes = binary.LittleEndian.Uint64(input[ip-3:]) cur_hash = hashBytesAtOffset(input_bytes, 3, shift, min_match) prev_hash = hashBytesAtOffset(input_bytes, 0, shift, min_match) table[prev_hash] = int(ip - base_ip - 3) prev_hash = hashBytesAtOffset(input_bytes, 1, shift, min_match) table[prev_hash] = int(ip - base_ip - 2) prev_hash = hashBytesAtOffset(input_bytes, 2, shift, min_match) table[prev_hash] = int(ip - base_ip - 1) } else { input_bytes = binary.LittleEndian.Uint64(input[ip-5:]) prev_hash = hashBytesAtOffset(input_bytes, 0, shift, min_match) table[prev_hash] = int(ip - base_ip - 5) prev_hash = hashBytesAtOffset(input_bytes, 1, shift, min_match) table[prev_hash] = int(ip - base_ip - 4) prev_hash = hashBytesAtOffset(input_bytes, 2, shift, min_match) table[prev_hash] = int(ip - base_ip - 3) input_bytes = binary.LittleEndian.Uint64(input[ip-2:]) cur_hash = hashBytesAtOffset(input_bytes, 2, shift, min_match) prev_hash = hashBytesAtOffset(input_bytes, 0, shift, min_match) table[prev_hash] = int(ip - base_ip - 2) prev_hash = hashBytesAtOffset(input_bytes, 1, shift, min_match) table[prev_hash] = int(ip - base_ip - 1) } candidate = base_ip + table[cur_hash] table[cur_hash] = int(ip - base_ip) } } ip++ next_hash = hash1(input[ip:], shift, min_match) } } emit_remainder: assert(next_emit <= ip_end) /* Emit the remaining bytes as literals. */ if next_emit < ip_end { var insert uint32 = uint32(ip_end - next_emit) emitInsertLen(insert, commands) copy(*literals, input[next_emit:][:insert]) *literals = (*literals)[insert:] } } var storeCommands_kNumExtraBits = [128]uint32{ 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, 8, 9, 10, 12, 14, 24, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 7, 8, 9, 10, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, } var storeCommands_kInsertOffset = [24]uint32{ 0, 1, 2, 3, 4, 5, 6, 8, 10, 14, 18, 26, 34, 50, 66, 98, 130, 194, 322, 578, 1090, 2114, 6210, 22594, } func storeCommands(literals []byte, num_literals uint, commands []uint32, num_commands uint, storage_ix *uint, storage []byte) { var lit_depths [256]byte var lit_bits [256]uint16 var lit_histo = [256]uint32{0} var cmd_depths = [128]byte{0} var cmd_bits = [128]uint16{0} var cmd_histo = [128]uint32{0} var i uint for i = 0; i < num_literals; i++ { lit_histo[literals[i]]++ } buildAndStoreHuffmanTreeFast(lit_histo[:], num_literals, /* max_bits = */ 8, lit_depths[:], lit_bits[:], storage_ix, storage) for i = 0; i < num_commands; i++ { var code uint32 = commands[i] & 0xFF assert(code < 128) cmd_histo[code]++ } cmd_histo[1] += 1 cmd_histo[2] += 1 cmd_histo[64] += 1 cmd_histo[84] += 1 buildAndStoreCommandPrefixCode(cmd_histo[:], cmd_depths[:], cmd_bits[:], storage_ix, storage) for i = 0; i < num_commands; i++ { var cmd uint32 = commands[i] var code uint32 = cmd & 0xFF var extra uint32 = cmd >> 8 assert(code < 128) writeBits(uint(cmd_depths[code]), uint64(cmd_bits[code]), storage_ix, storage) writeBits(uint(storeCommands_kNumExtraBits[code]), uint64(extra), storage_ix, storage) if code < 24 { var insert uint32 = storeCommands_kInsertOffset[code] + extra var j uint32 for j = 0; j < insert; j++ { var lit byte = literals[0] writeBits(uint(lit_depths[lit]), uint64(lit_bits[lit]), storage_ix, storage) literals = literals[1:] } } } } /* Acceptable loss for uncompressible speedup is 2% */ const minRatio = 0.98 const sampleRate = 43 func shouldCompress(input []byte, input_size uint, num_literals uint) bool { var corpus_size float64 = float64(input_size) if float64(num_literals) < minRatio*corpus_size { return true } else { var literal_histo = [256]uint32{0} var max_total_bit_cost float64 = corpus_size * 8 * minRatio / sampleRate var i uint for i = 0; i < input_size; i += sampleRate { literal_histo[input[i]]++ } return bitsEntropy(literal_histo[:], 256) < max_total_bit_cost } } func rewindBitPosition(new_storage_ix uint, storage_ix *uint, storage []byte) { var bitpos uint = new_storage_ix & 7 var mask uint = (1 << bitpos) - 1 storage[new_storage_ix>>3] &= byte(mask) *storage_ix = new_storage_ix } func emitUncompressedMetaBlock(input []byte, input_size uint, storage_ix *uint, storage []byte) { storeMetaBlockHeader(input_size, true, storage_ix, storage) *storage_ix = (*storage_ix + 7) &^ 7 copy(storage[*storage_ix>>3:], input[:input_size]) *storage_ix += input_size << 3 storage[*storage_ix>>3] = 0 } func compressFragmentTwoPassImpl(input []byte, input_size uint, is_last bool, command_buf []uint32, literal_buf []byte, table []int, table_bits uint, min_match uint, storage_ix *uint, storage []byte) { /* Save the start of the first block for position and distance computations. */ var base_ip []byte = input for input_size > 0 { var block_size uint = brotli_min_size_t(input_size, kCompressFragmentTwoPassBlockSize) var commands []uint32 = command_buf var literals []byte = literal_buf var num_literals uint createCommands(input, block_size, input_size, base_ip, table, table_bits, min_match, &literals, &commands) num_literals = uint(-cap(literals) + cap(literal_buf)) if shouldCompress(input, block_size, num_literals) { var num_commands uint = uint(-cap(commands) + cap(command_buf)) storeMetaBlockHeader(block_size, false, storage_ix, storage) /* No block splits, no contexts. */ writeBits(13, 0, storage_ix, storage) storeCommands(literal_buf, num_literals, command_buf, num_commands, storage_ix, storage) } else { /* Since we did not find many backward references and the entropy of the data is close to 8 bits, we can simply emit an uncompressed block. This makes compression speed of uncompressible data about 3x faster. */ emitUncompressedMetaBlock(input, block_size, storage_ix, storage) } input = input[block_size:] input_size -= block_size } } /* Compresses "input" string to the "*storage" buffer as one or more complete meta-blocks, and updates the "*storage_ix" bit position. If "is_last" is 1, emits an additional empty last meta-block. REQUIRES: "input_size" is greater than zero, or "is_last" is 1. REQUIRES: "input_size" is less or equal to maximal metablock size (1 << 24). REQUIRES: "command_buf" and "literal_buf" point to at least kCompressFragmentTwoPassBlockSize long arrays. REQUIRES: All elements in "table[0..table_size-1]" are initialized to zero. REQUIRES: "table_size" is a power of two OUTPUT: maximal copy distance <= |input_size| OUTPUT: maximal copy distance <= BROTLI_MAX_BACKWARD_LIMIT(18) */ func compressFragmentTwoPass(input []byte, input_size uint, is_last bool, command_buf []uint32, literal_buf []byte, table []int, table_size uint, storage_ix *uint, storage []byte) { var initial_storage_ix uint = *storage_ix var table_bits uint = uint(log2FloorNonZero(table_size)) var min_match uint if table_bits <= 15 { min_match = 4 } else { min_match = 6 } compressFragmentTwoPassImpl(input, input_size, is_last, command_buf, literal_buf, table, table_bits, min_match, storage_ix, storage) /* If output is larger than single uncompressed block, rewrite it. */ if *storage_ix-initial_storage_ix > 31+(input_size<<3) { rewindBitPosition(initial_storage_ix, storage_ix, storage) emitUncompressedMetaBlock(input, input_size, storage_ix, storage) } if is_last { writeBits(1, 1, storage_ix, storage) /* islast */ writeBits(1, 1, storage_ix, storage) /* isempty */ *storage_ix = (*storage_ix + 7) &^ 7 } } brotli-1.0.4/constants.go000066400000000000000000000035521412267201500153570ustar00rootroot00000000000000package brotli /* Copyright 2016 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* Specification: 7.3. Encoding of the context map */ const contextMapMaxRle = 16 /* Specification: 2. Compressed representation overview */ const maxNumberOfBlockTypes = 256 /* Specification: 3.3. Alphabet sizes: insert-and-copy length */ const numLiteralSymbols = 256 const numCommandSymbols = 704 const numBlockLenSymbols = 26 const maxContextMapSymbols = (maxNumberOfBlockTypes + contextMapMaxRle) const maxBlockTypeSymbols = (maxNumberOfBlockTypes + 2) /* Specification: 3.5. Complex prefix codes */ const repeatPreviousCodeLength = 16 const repeatZeroCodeLength = 17 const codeLengthCodes = (repeatZeroCodeLength + 1) /* "code length of 8 is repeated" */ const initialRepeatedCodeLength = 8 /* "Large Window Brotli" */ const largeMaxDistanceBits = 62 const largeMinWbits = 10 const largeMaxWbits = 30 /* Specification: 4. Encoding of distances */ const numDistanceShortCodes = 16 const maxNpostfix = 3 const maxNdirect = 120 const maxDistanceBits = 24 func distanceAlphabetSize(NPOSTFIX uint, NDIRECT uint, MAXNBITS uint) uint { return numDistanceShortCodes + NDIRECT + uint(MAXNBITS<<(NPOSTFIX+1)) } /* numDistanceSymbols == 1128 */ const numDistanceSymbols = 1128 const maxDistance = 0x3FFFFFC const maxAllowedDistance = 0x7FFFFFFC /* 7.1. Context modes and context ID lookup for literals */ /* "context IDs for literals are in the range of 0..63" */ const literalContextBits = 6 /* 7.2. Context ID for distances */ const distanceContextBits = 2 /* 9.1. Format of the Stream Header */ /* Number of slack bytes for window size. Don't confuse with BROTLI_NUM_DISTANCE_SHORT_CODES. */ const windowGap = 16 func maxBackwardLimit(W uint) uint { return (uint(1) << W) - windowGap } brotli-1.0.4/context.go000066400000000000000000000322511412267201500150250ustar00rootroot00000000000000package brotli /* Lookup table to map the previous two bytes to a context id. There are four different context modeling modes defined here: contextLSB6: context id is the least significant 6 bits of the last byte, contextMSB6: context id is the most significant 6 bits of the last byte, contextUTF8: second-order context model tuned for UTF8-encoded text, contextSigned: second-order context model tuned for signed integers. If |p1| and |p2| are the previous two bytes, and |mode| is current context mode, we calculate the context as: context = ContextLut(mode)[p1] | ContextLut(mode)[p2 + 256]. For contextUTF8 mode, if the previous two bytes are ASCII characters (i.e. < 128), this will be equivalent to context = 4 * context1(p1) + context2(p2), where context1 is based on the previous byte in the following way: 0 : non-ASCII control 1 : \t, \n, \r 2 : space 3 : other punctuation 4 : " ' 5 : % 6 : ( < [ { 7 : ) > ] } 8 : , ; : 9 : . 10 : = 11 : number 12 : upper-case vowel 13 : upper-case consonant 14 : lower-case vowel 15 : lower-case consonant and context2 is based on the second last byte: 0 : control, space 1 : punctuation 2 : upper-case letter, number 3 : lower-case letter If the last byte is ASCII, and the second last byte is not (in a valid UTF8 stream it will be a continuation byte, value between 128 and 191), the context is the same as if the second last byte was an ASCII control or space. If the last byte is a UTF8 lead byte (value >= 192), then the next byte will be a continuation byte and the context id is 2 or 3 depending on the LSB of the last byte and to a lesser extent on the second last byte if it is ASCII. If the last byte is a UTF8 continuation byte, the second last byte can be: - continuation byte: the next byte is probably ASCII or lead byte (assuming 4-byte UTF8 characters are rare) and the context id is 0 or 1. - lead byte (192 - 207): next byte is ASCII or lead byte, context is 0 or 1 - lead byte (208 - 255): next byte is continuation byte, context is 2 or 3 The possible value combinations of the previous two bytes, the range of context ids and the type of the next byte is summarized in the table below: |--------\-----------------------------------------------------------------| | \ Last byte | | Second \---------------------------------------------------------------| | last byte \ ASCII | cont. byte | lead byte | | \ (0-127) | (128-191) | (192-) | |=============|===================|=====================|==================| | ASCII | next: ASCII/lead | not valid | next: cont. | | (0-127) | context: 4 - 63 | | context: 2 - 3 | |-------------|-------------------|---------------------|------------------| | cont. byte | next: ASCII/lead | next: ASCII/lead | next: cont. | | (128-191) | context: 4 - 63 | context: 0 - 1 | context: 2 - 3 | |-------------|-------------------|---------------------|------------------| | lead byte | not valid | next: ASCII/lead | not valid | | (192-207) | | context: 0 - 1 | | |-------------|-------------------|---------------------|------------------| | lead byte | not valid | next: cont. | not valid | | (208-) | | context: 2 - 3 | | |-------------|-------------------|---------------------|------------------| */ const ( contextLSB6 = 0 contextMSB6 = 1 contextUTF8 = 2 contextSigned = 3 ) /* Common context lookup table for all context modes. */ var kContextLookup = [2048]byte{ /* CONTEXT_LSB6, last byte. */ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, /* CONTEXT_LSB6, second last byte, */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* CONTEXT_MSB6, last byte. */ 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 22, 22, 22, 22, 23, 23, 23, 23, 24, 24, 24, 24, 25, 25, 25, 25, 26, 26, 26, 26, 27, 27, 27, 27, 28, 28, 28, 28, 29, 29, 29, 29, 30, 30, 30, 30, 31, 31, 31, 31, 32, 32, 32, 32, 33, 33, 33, 33, 34, 34, 34, 34, 35, 35, 35, 35, 36, 36, 36, 36, 37, 37, 37, 37, 38, 38, 38, 38, 39, 39, 39, 39, 40, 40, 40, 40, 41, 41, 41, 41, 42, 42, 42, 42, 43, 43, 43, 43, 44, 44, 44, 44, 45, 45, 45, 45, 46, 46, 46, 46, 47, 47, 47, 47, 48, 48, 48, 48, 49, 49, 49, 49, 50, 50, 50, 50, 51, 51, 51, 51, 52, 52, 52, 52, 53, 53, 53, 53, 54, 54, 54, 54, 55, 55, 55, 55, 56, 56, 56, 56, 57, 57, 57, 57, 58, 58, 58, 58, 59, 59, 59, 59, 60, 60, 60, 60, 61, 61, 61, 61, 62, 62, 62, 62, 63, 63, 63, 63, /* CONTEXT_MSB6, second last byte, */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* CONTEXT_UTF8, last byte. */ /* ASCII range. */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 12, 16, 12, 12, 20, 12, 16, 24, 28, 12, 12, 32, 12, 36, 12, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 32, 32, 24, 40, 28, 12, 12, 48, 52, 52, 52, 48, 52, 52, 52, 48, 52, 52, 52, 52, 52, 48, 52, 52, 52, 52, 52, 48, 52, 52, 52, 52, 52, 24, 12, 28, 12, 12, 12, 56, 60, 60, 60, 56, 60, 60, 60, 56, 60, 60, 60, 60, 60, 56, 60, 60, 60, 60, 60, 56, 60, 60, 60, 60, 60, 24, 12, 28, 12, 0, /* UTF8 continuation byte range. */ 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, /* UTF8 lead byte range. */ 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, /* CONTEXT_UTF8 second last byte. */ /* ASCII range. */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, 1, 1, 1, 0, /* UTF8 continuation byte range. */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* UTF8 lead byte range. */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, /* CONTEXT_SIGNED, last byte, same as the above values shifted by 3 bits. */ 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 56, /* CONTEXT_SIGNED, second last byte. */ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, } type contextLUT []byte func getContextLUT(mode int) contextLUT { return kContextLookup[mode<<9:] } func getContext(p1 byte, p2 byte, lut contextLUT) byte { return lut[p1] | lut[256+int(p2)] } brotli-1.0.4/decode.go000066400000000000000000002067101412267201500145670ustar00rootroot00000000000000package brotli /* Copyright 2013 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ const ( decoderResultError = 0 decoderResultSuccess = 1 decoderResultNeedsMoreInput = 2 decoderResultNeedsMoreOutput = 3 ) /** * Error code for detailed logging / production debugging. * * See ::BrotliDecoderGetErrorCode and ::BROTLI_LAST_ERROR_CODE. */ const ( decoderNoError = 0 decoderSuccess = 1 decoderNeedsMoreInput = 2 decoderNeedsMoreOutput = 3 decoderErrorFormatExuberantNibble = -1 decoderErrorFormatReserved = -2 decoderErrorFormatExuberantMetaNibble = -3 decoderErrorFormatSimpleHuffmanAlphabet = -4 decoderErrorFormatSimpleHuffmanSame = -5 decoderErrorFormatClSpace = -6 decoderErrorFormatHuffmanSpace = -7 decoderErrorFormatContextMapRepeat = -8 decoderErrorFormatBlockLength1 = -9 decoderErrorFormatBlockLength2 = -10 decoderErrorFormatTransform = -11 decoderErrorFormatDictionary = -12 decoderErrorFormatWindowBits = -13 decoderErrorFormatPadding1 = -14 decoderErrorFormatPadding2 = -15 decoderErrorFormatDistance = -16 decoderErrorDictionaryNotSet = -19 decoderErrorInvalidArguments = -20 decoderErrorAllocContextModes = -21 decoderErrorAllocTreeGroups = -22 decoderErrorAllocContextMap = -25 decoderErrorAllocRingBuffer1 = -26 decoderErrorAllocRingBuffer2 = -27 decoderErrorAllocBlockTypeTrees = -30 decoderErrorUnreachable = -31 ) const huffmanTableBits = 8 const huffmanTableMask = 0xFF /* We need the slack region for the following reasons: - doing up to two 16-byte copies for fast backward copying - inserting transformed dictionary word (5 prefix + 24 base + 8 suffix) */ const kRingBufferWriteAheadSlack uint32 = 42 var kCodeLengthCodeOrder = [codeLengthCodes]byte{1, 2, 3, 4, 0, 5, 17, 6, 16, 7, 8, 9, 10, 11, 12, 13, 14, 15} /* Static prefix code for the complex code length code lengths. */ var kCodeLengthPrefixLength = [16]byte{2, 2, 2, 3, 2, 2, 2, 4, 2, 2, 2, 3, 2, 2, 2, 4} var kCodeLengthPrefixValue = [16]byte{0, 4, 3, 2, 0, 4, 3, 1, 0, 4, 3, 2, 0, 4, 3, 5} /* Saves error code and converts it to BrotliDecoderResult. */ func saveErrorCode(s *Reader, e int) int { s.error_code = int(e) switch e { case decoderSuccess: return decoderResultSuccess case decoderNeedsMoreInput: return decoderResultNeedsMoreInput case decoderNeedsMoreOutput: return decoderResultNeedsMoreOutput default: return decoderResultError } } /* Decodes WBITS by reading 1 - 7 bits, or 0x11 for "Large Window Brotli". Precondition: bit-reader accumulator has at least 8 bits. */ func decodeWindowBits(s *Reader, br *bitReader) int { var n uint32 var large_window bool = s.large_window s.large_window = false takeBits(br, 1, &n) if n == 0 { s.window_bits = 16 return decoderSuccess } takeBits(br, 3, &n) if n != 0 { s.window_bits = 17 + n return decoderSuccess } takeBits(br, 3, &n) if n == 1 { if large_window { takeBits(br, 1, &n) if n == 1 { return decoderErrorFormatWindowBits } s.large_window = true return decoderSuccess } else { return decoderErrorFormatWindowBits } } if n != 0 { s.window_bits = 8 + n return decoderSuccess } s.window_bits = 17 return decoderSuccess } /* Decodes a number in the range [0..255], by reading 1 - 11 bits. */ func decodeVarLenUint8(s *Reader, br *bitReader, value *uint32) int { var bits uint32 switch s.substate_decode_uint8 { case stateDecodeUint8None: if !safeReadBits(br, 1, &bits) { return decoderNeedsMoreInput } if bits == 0 { *value = 0 return decoderSuccess } fallthrough /* Fall through. */ case stateDecodeUint8Short: if !safeReadBits(br, 3, &bits) { s.substate_decode_uint8 = stateDecodeUint8Short return decoderNeedsMoreInput } if bits == 0 { *value = 1 s.substate_decode_uint8 = stateDecodeUint8None return decoderSuccess } /* Use output value as a temporary storage. It MUST be persisted. */ *value = bits fallthrough /* Fall through. */ case stateDecodeUint8Long: if !safeReadBits(br, *value, &bits) { s.substate_decode_uint8 = stateDecodeUint8Long return decoderNeedsMoreInput } *value = (1 << *value) + bits s.substate_decode_uint8 = stateDecodeUint8None return decoderSuccess default: return decoderErrorUnreachable } } /* Decodes a metablock length and flags by reading 2 - 31 bits. */ func decodeMetaBlockLength(s *Reader, br *bitReader) int { var bits uint32 var i int for { switch s.substate_metablock_header { case stateMetablockHeaderNone: if !safeReadBits(br, 1, &bits) { return decoderNeedsMoreInput } if bits != 0 { s.is_last_metablock = 1 } else { s.is_last_metablock = 0 } s.meta_block_remaining_len = 0 s.is_uncompressed = 0 s.is_metadata = 0 if s.is_last_metablock == 0 { s.substate_metablock_header = stateMetablockHeaderNibbles break } s.substate_metablock_header = stateMetablockHeaderEmpty fallthrough /* Fall through. */ case stateMetablockHeaderEmpty: if !safeReadBits(br, 1, &bits) { return decoderNeedsMoreInput } if bits != 0 { s.substate_metablock_header = stateMetablockHeaderNone return decoderSuccess } s.substate_metablock_header = stateMetablockHeaderNibbles fallthrough /* Fall through. */ case stateMetablockHeaderNibbles: if !safeReadBits(br, 2, &bits) { return decoderNeedsMoreInput } s.size_nibbles = uint(byte(bits + 4)) s.loop_counter = 0 if bits == 3 { s.is_metadata = 1 s.substate_metablock_header = stateMetablockHeaderReserved break } s.substate_metablock_header = stateMetablockHeaderSize fallthrough /* Fall through. */ case stateMetablockHeaderSize: i = s.loop_counter for ; i < int(s.size_nibbles); i++ { if !safeReadBits(br, 4, &bits) { s.loop_counter = i return decoderNeedsMoreInput } if uint(i+1) == s.size_nibbles && s.size_nibbles > 4 && bits == 0 { return decoderErrorFormatExuberantNibble } s.meta_block_remaining_len |= int(bits << uint(i*4)) } s.substate_metablock_header = stateMetablockHeaderUncompressed fallthrough /* Fall through. */ case stateMetablockHeaderUncompressed: if s.is_last_metablock == 0 { if !safeReadBits(br, 1, &bits) { return decoderNeedsMoreInput } if bits != 0 { s.is_uncompressed = 1 } else { s.is_uncompressed = 0 } } s.meta_block_remaining_len++ s.substate_metablock_header = stateMetablockHeaderNone return decoderSuccess case stateMetablockHeaderReserved: if !safeReadBits(br, 1, &bits) { return decoderNeedsMoreInput } if bits != 0 { return decoderErrorFormatReserved } s.substate_metablock_header = stateMetablockHeaderBytes fallthrough /* Fall through. */ case stateMetablockHeaderBytes: if !safeReadBits(br, 2, &bits) { return decoderNeedsMoreInput } if bits == 0 { s.substate_metablock_header = stateMetablockHeaderNone return decoderSuccess } s.size_nibbles = uint(byte(bits)) s.substate_metablock_header = stateMetablockHeaderMetadata fallthrough /* Fall through. */ case stateMetablockHeaderMetadata: i = s.loop_counter for ; i < int(s.size_nibbles); i++ { if !safeReadBits(br, 8, &bits) { s.loop_counter = i return decoderNeedsMoreInput } if uint(i+1) == s.size_nibbles && s.size_nibbles > 1 && bits == 0 { return decoderErrorFormatExuberantMetaNibble } s.meta_block_remaining_len |= int(bits << uint(i*8)) } s.meta_block_remaining_len++ s.substate_metablock_header = stateMetablockHeaderNone return decoderSuccess default: return decoderErrorUnreachable } } } /* Decodes the Huffman code. This method doesn't read data from the bit reader, BUT drops the amount of bits that correspond to the decoded symbol. bits MUST contain at least 15 (BROTLI_HUFFMAN_MAX_CODE_LENGTH) valid bits. */ func decodeSymbol(bits uint32, table []huffmanCode, br *bitReader) uint32 { table = table[bits&huffmanTableMask:] if table[0].bits > huffmanTableBits { var nbits uint32 = uint32(table[0].bits) - huffmanTableBits dropBits(br, huffmanTableBits) table = table[uint32(table[0].value)+((bits>>huffmanTableBits)&bitMask(nbits)):] } dropBits(br, uint32(table[0].bits)) return uint32(table[0].value) } /* Reads and decodes the next Huffman code from bit-stream. This method peeks 16 bits of input and drops 0 - 15 of them. */ func readSymbol(table []huffmanCode, br *bitReader) uint32 { return decodeSymbol(get16BitsUnmasked(br), table, br) } /* Same as DecodeSymbol, but it is known that there is less than 15 bits of input are currently available. */ func safeDecodeSymbol(table []huffmanCode, br *bitReader, result *uint32) bool { var val uint32 var available_bits uint32 = getAvailableBits(br) if available_bits == 0 { if table[0].bits == 0 { *result = uint32(table[0].value) return true } return false /* No valid bits at all. */ } val = uint32(getBitsUnmasked(br)) table = table[val&huffmanTableMask:] if table[0].bits <= huffmanTableBits { if uint32(table[0].bits) <= available_bits { dropBits(br, uint32(table[0].bits)) *result = uint32(table[0].value) return true } else { return false /* Not enough bits for the first level. */ } } if available_bits <= huffmanTableBits { return false /* Not enough bits to move to the second level. */ } /* Speculatively drop HUFFMAN_TABLE_BITS. */ val = (val & bitMask(uint32(table[0].bits))) >> huffmanTableBits available_bits -= huffmanTableBits table = table[uint32(table[0].value)+val:] if available_bits < uint32(table[0].bits) { return false /* Not enough bits for the second level. */ } dropBits(br, huffmanTableBits+uint32(table[0].bits)) *result = uint32(table[0].value) return true } func safeReadSymbol(table []huffmanCode, br *bitReader, result *uint32) bool { var val uint32 if safeGetBits(br, 15, &val) { *result = decodeSymbol(val, table, br) return true } return safeDecodeSymbol(table, br, result) } /* Makes a look-up in first level Huffman table. Peeks 8 bits. */ func preloadSymbol(safe int, table []huffmanCode, br *bitReader, bits *uint32, value *uint32) { if safe != 0 { return } table = table[getBits(br, huffmanTableBits):] *bits = uint32(table[0].bits) *value = uint32(table[0].value) } /* Decodes the next Huffman code using data prepared by PreloadSymbol. Reads 0 - 15 bits. Also peeks 8 following bits. */ func readPreloadedSymbol(table []huffmanCode, br *bitReader, bits *uint32, value *uint32) uint32 { var result uint32 = *value var ext []huffmanCode if *bits > huffmanTableBits { var val uint32 = get16BitsUnmasked(br) ext = table[val&huffmanTableMask:][*value:] var mask uint32 = bitMask((*bits - huffmanTableBits)) dropBits(br, huffmanTableBits) ext = ext[(val>>huffmanTableBits)&mask:] dropBits(br, uint32(ext[0].bits)) result = uint32(ext[0].value) } else { dropBits(br, *bits) } preloadSymbol(0, table, br, bits, value) return result } func log2Floor(x uint32) uint32 { var result uint32 = 0 for x != 0 { x >>= 1 result++ } return result } /* Reads (s->symbol + 1) symbols. Totally 1..4 symbols are read, 1..11 bits each. The list of symbols MUST NOT contain duplicates. */ func readSimpleHuffmanSymbols(alphabet_size uint32, max_symbol uint32, s *Reader) int { var br *bitReader = &s.br var max_bits uint32 = log2Floor(alphabet_size - 1) var i uint32 = s.sub_loop_counter /* max_bits == 1..11; symbol == 0..3; 1..44 bits will be read. */ var num_symbols uint32 = s.symbol for i <= num_symbols { var v uint32 if !safeReadBits(br, max_bits, &v) { s.sub_loop_counter = i s.substate_huffman = stateHuffmanSimpleRead return decoderNeedsMoreInput } if v >= max_symbol { return decoderErrorFormatSimpleHuffmanAlphabet } s.symbols_lists_array[i] = uint16(v) i++ } for i = 0; i < num_symbols; i++ { var k uint32 = i + 1 for ; k <= num_symbols; k++ { if s.symbols_lists_array[i] == s.symbols_lists_array[k] { return decoderErrorFormatSimpleHuffmanSame } } } return decoderSuccess } /* Process single decoded symbol code length: A) reset the repeat variable B) remember code length (if it is not 0) C) extend corresponding index-chain D) reduce the Huffman space E) update the histogram */ func processSingleCodeLength(code_len uint32, symbol *uint32, repeat *uint32, space *uint32, prev_code_len *uint32, symbol_lists symbolList, code_length_histo []uint16, next_symbol []int) { *repeat = 0 if code_len != 0 { /* code_len == 1..15 */ symbolListPut(symbol_lists, next_symbol[code_len], uint16(*symbol)) next_symbol[code_len] = int(*symbol) *prev_code_len = code_len *space -= 32768 >> code_len code_length_histo[code_len]++ } (*symbol)++ } /* Process repeated symbol code length. A) Check if it is the extension of previous repeat sequence; if the decoded value is not BROTLI_REPEAT_PREVIOUS_CODE_LENGTH, then it is a new symbol-skip B) Update repeat variable C) Check if operation is feasible (fits alphabet) D) For each symbol do the same operations as in ProcessSingleCodeLength PRECONDITION: code_len == BROTLI_REPEAT_PREVIOUS_CODE_LENGTH or code_len == BROTLI_REPEAT_ZERO_CODE_LENGTH */ func processRepeatedCodeLength(code_len uint32, repeat_delta uint32, alphabet_size uint32, symbol *uint32, repeat *uint32, space *uint32, prev_code_len *uint32, repeat_code_len *uint32, symbol_lists symbolList, code_length_histo []uint16, next_symbol []int) { var old_repeat uint32 /* for BROTLI_REPEAT_ZERO_CODE_LENGTH */ /* for BROTLI_REPEAT_ZERO_CODE_LENGTH */ var extra_bits uint32 = 3 var new_len uint32 = 0 if code_len == repeatPreviousCodeLength { new_len = *prev_code_len extra_bits = 2 } if *repeat_code_len != new_len { *repeat = 0 *repeat_code_len = new_len } old_repeat = *repeat if *repeat > 0 { *repeat -= 2 *repeat <<= extra_bits } *repeat += repeat_delta + 3 repeat_delta = *repeat - old_repeat if *symbol+repeat_delta > alphabet_size { *symbol = alphabet_size *space = 0xFFFFF return } if *repeat_code_len != 0 { var last uint = uint(*symbol + repeat_delta) var next int = next_symbol[*repeat_code_len] for { symbolListPut(symbol_lists, next, uint16(*symbol)) next = int(*symbol) (*symbol)++ if (*symbol) == uint32(last) { break } } next_symbol[*repeat_code_len] = next *space -= repeat_delta << (15 - *repeat_code_len) code_length_histo[*repeat_code_len] = uint16(uint32(code_length_histo[*repeat_code_len]) + repeat_delta) } else { *symbol += repeat_delta } } /* Reads and decodes symbol codelengths. */ func readSymbolCodeLengths(alphabet_size uint32, s *Reader) int { var br *bitReader = &s.br var symbol uint32 = s.symbol var repeat uint32 = s.repeat var space uint32 = s.space var prev_code_len uint32 = s.prev_code_len var repeat_code_len uint32 = s.repeat_code_len var symbol_lists symbolList = s.symbol_lists var code_length_histo []uint16 = s.code_length_histo[:] var next_symbol []int = s.next_symbol[:] if !warmupBitReader(br) { return decoderNeedsMoreInput } var p []huffmanCode for symbol < alphabet_size && space > 0 { p = s.table[:] var code_len uint32 if !checkInputAmount(br, shortFillBitWindowRead) { s.symbol = symbol s.repeat = repeat s.prev_code_len = prev_code_len s.repeat_code_len = repeat_code_len s.space = space return decoderNeedsMoreInput } fillBitWindow16(br) p = p[getBitsUnmasked(br)&uint64(bitMask(huffmanMaxCodeLengthCodeLength)):] dropBits(br, uint32(p[0].bits)) /* Use 1..5 bits. */ code_len = uint32(p[0].value) /* code_len == 0..17 */ if code_len < repeatPreviousCodeLength { processSingleCodeLength(code_len, &symbol, &repeat, &space, &prev_code_len, symbol_lists, code_length_histo, next_symbol) /* code_len == 16..17, extra_bits == 2..3 */ } else { var extra_bits uint32 if code_len == repeatPreviousCodeLength { extra_bits = 2 } else { extra_bits = 3 } var repeat_delta uint32 = uint32(getBitsUnmasked(br)) & bitMask(extra_bits) dropBits(br, extra_bits) processRepeatedCodeLength(code_len, repeat_delta, alphabet_size, &symbol, &repeat, &space, &prev_code_len, &repeat_code_len, symbol_lists, code_length_histo, next_symbol) } } s.space = space return decoderSuccess } func safeReadSymbolCodeLengths(alphabet_size uint32, s *Reader) int { var br *bitReader = &s.br var get_byte bool = false var p []huffmanCode for s.symbol < alphabet_size && s.space > 0 { p = s.table[:] var code_len uint32 var available_bits uint32 var bits uint32 = 0 if get_byte && !pullByte(br) { return decoderNeedsMoreInput } get_byte = false available_bits = getAvailableBits(br) if available_bits != 0 { bits = uint32(getBitsUnmasked(br)) } p = p[bits&bitMask(huffmanMaxCodeLengthCodeLength):] if uint32(p[0].bits) > available_bits { get_byte = true continue } code_len = uint32(p[0].value) /* code_len == 0..17 */ if code_len < repeatPreviousCodeLength { dropBits(br, uint32(p[0].bits)) processSingleCodeLength(code_len, &s.symbol, &s.repeat, &s.space, &s.prev_code_len, s.symbol_lists, s.code_length_histo[:], s.next_symbol[:]) /* code_len == 16..17, extra_bits == 2..3 */ } else { var extra_bits uint32 = code_len - 14 var repeat_delta uint32 = (bits >> p[0].bits) & bitMask(extra_bits) if available_bits < uint32(p[0].bits)+extra_bits { get_byte = true continue } dropBits(br, uint32(p[0].bits)+extra_bits) processRepeatedCodeLength(code_len, repeat_delta, alphabet_size, &s.symbol, &s.repeat, &s.space, &s.prev_code_len, &s.repeat_code_len, s.symbol_lists, s.code_length_histo[:], s.next_symbol[:]) } } return decoderSuccess } /* Reads and decodes 15..18 codes using static prefix code. Each code is 2..4 bits long. In total 30..72 bits are used. */ func readCodeLengthCodeLengths(s *Reader) int { var br *bitReader = &s.br var num_codes uint32 = s.repeat var space uint32 = s.space var i uint32 = s.sub_loop_counter for ; i < codeLengthCodes; i++ { var code_len_idx byte = kCodeLengthCodeOrder[i] var ix uint32 var v uint32 if !safeGetBits(br, 4, &ix) { var available_bits uint32 = getAvailableBits(br) if available_bits != 0 { ix = uint32(getBitsUnmasked(br) & 0xF) } else { ix = 0 } if uint32(kCodeLengthPrefixLength[ix]) > available_bits { s.sub_loop_counter = i s.repeat = num_codes s.space = space s.substate_huffman = stateHuffmanComplex return decoderNeedsMoreInput } } v = uint32(kCodeLengthPrefixValue[ix]) dropBits(br, uint32(kCodeLengthPrefixLength[ix])) s.code_length_code_lengths[code_len_idx] = byte(v) if v != 0 { space = space - (32 >> v) num_codes++ s.code_length_histo[v]++ if space-1 >= 32 { /* space is 0 or wrapped around. */ break } } } if num_codes != 1 && space != 0 { return decoderErrorFormatClSpace } return decoderSuccess } /* Decodes the Huffman tables. There are 2 scenarios: A) Huffman code contains only few symbols (1..4). Those symbols are read directly; their code lengths are defined by the number of symbols. For this scenario 4 - 49 bits will be read. B) 2-phase decoding: B.1) Small Huffman table is decoded; it is specified with code lengths encoded with predefined entropy code. 32 - 74 bits are used. B.2) Decoded table is used to decode code lengths of symbols in resulting Huffman table. In worst case 3520 bits are read. */ func readHuffmanCode(alphabet_size uint32, max_symbol uint32, table []huffmanCode, opt_table_size *uint32, s *Reader) int { var br *bitReader = &s.br /* Unnecessary masking, but might be good for safety. */ alphabet_size &= 0x7FF /* State machine. */ for { switch s.substate_huffman { case stateHuffmanNone: if !safeReadBits(br, 2, &s.sub_loop_counter) { return decoderNeedsMoreInput } /* The value is used as follows: 1 for simple code; 0 for no skipping, 2 skips 2 code lengths, 3 skips 3 code lengths */ if s.sub_loop_counter != 1 { s.space = 32 s.repeat = 0 /* num_codes */ var i int for i = 0; i <= huffmanMaxCodeLengthCodeLength; i++ { s.code_length_histo[i] = 0 } for i = 0; i < codeLengthCodes; i++ { s.code_length_code_lengths[i] = 0 } s.substate_huffman = stateHuffmanComplex continue } fallthrough /* Read symbols, codes & code lengths directly. */ case stateHuffmanSimpleSize: if !safeReadBits(br, 2, &s.symbol) { /* num_symbols */ s.substate_huffman = stateHuffmanSimpleSize return decoderNeedsMoreInput } s.sub_loop_counter = 0 fallthrough case stateHuffmanSimpleRead: { var result int = readSimpleHuffmanSymbols(alphabet_size, max_symbol, s) if result != decoderSuccess { return result } } fallthrough case stateHuffmanSimpleBuild: var table_size uint32 if s.symbol == 3 { var bits uint32 if !safeReadBits(br, 1, &bits) { s.substate_huffman = stateHuffmanSimpleBuild return decoderNeedsMoreInput } s.symbol += bits } table_size = buildSimpleHuffmanTable(table, huffmanTableBits, s.symbols_lists_array[:], s.symbol) if opt_table_size != nil { *opt_table_size = table_size } s.substate_huffman = stateHuffmanNone return decoderSuccess /* Decode Huffman-coded code lengths. */ case stateHuffmanComplex: { var i uint32 var result int = readCodeLengthCodeLengths(s) if result != decoderSuccess { return result } buildCodeLengthsHuffmanTable(s.table[:], s.code_length_code_lengths[:], s.code_length_histo[:]) for i = 0; i < 16; i++ { s.code_length_histo[i] = 0 } for i = 0; i <= huffmanMaxCodeLength; i++ { s.next_symbol[i] = int(i) - (huffmanMaxCodeLength + 1) symbolListPut(s.symbol_lists, s.next_symbol[i], 0xFFFF) } s.symbol = 0 s.prev_code_len = initialRepeatedCodeLength s.repeat = 0 s.repeat_code_len = 0 s.space = 32768 s.substate_huffman = stateHuffmanLengthSymbols } fallthrough case stateHuffmanLengthSymbols: var table_size uint32 var result int = readSymbolCodeLengths(max_symbol, s) if result == decoderNeedsMoreInput { result = safeReadSymbolCodeLengths(max_symbol, s) } if result != decoderSuccess { return result } if s.space != 0 { return decoderErrorFormatHuffmanSpace } table_size = buildHuffmanTable(table, huffmanTableBits, s.symbol_lists, s.code_length_histo[:]) if opt_table_size != nil { *opt_table_size = table_size } s.substate_huffman = stateHuffmanNone return decoderSuccess default: return decoderErrorUnreachable } } } /* Decodes a block length by reading 3..39 bits. */ func readBlockLength(table []huffmanCode, br *bitReader) uint32 { var code uint32 var nbits uint32 code = readSymbol(table, br) nbits = kBlockLengthPrefixCode[code].nbits /* nbits == 2..24 */ return kBlockLengthPrefixCode[code].offset + readBits(br, nbits) } /* WARNING: if state is not BROTLI_STATE_READ_BLOCK_LENGTH_NONE, then reading can't be continued with ReadBlockLength. */ func safeReadBlockLength(s *Reader, result *uint32, table []huffmanCode, br *bitReader) bool { var index uint32 if s.substate_read_block_length == stateReadBlockLengthNone { if !safeReadSymbol(table, br, &index) { return false } } else { index = s.block_length_index } { var bits uint32 /* nbits == 2..24 */ var nbits uint32 = kBlockLengthPrefixCode[index].nbits if !safeReadBits(br, nbits, &bits) { s.block_length_index = index s.substate_read_block_length = stateReadBlockLengthSuffix return false } *result = kBlockLengthPrefixCode[index].offset + bits s.substate_read_block_length = stateReadBlockLengthNone return true } } /* Transform: 1) initialize list L with values 0, 1,... 255 2) For each input element X: 2.1) let Y = L[X] 2.2) remove X-th element from L 2.3) prepend Y to L 2.4) append Y to output In most cases max(Y) <= 7, so most of L remains intact. To reduce the cost of initialization, we reuse L, remember the upper bound of Y values, and reinitialize only first elements in L. Most of input values are 0 and 1. To reduce number of branches, we replace inner for loop with do-while. */ func inverseMoveToFrontTransform(v []byte, v_len uint32, state *Reader) { var mtf [256]byte var i int for i = 1; i < 256; i++ { mtf[i] = byte(i) } var mtf_1 byte /* Transform the input. */ for i = 0; uint32(i) < v_len; i++ { var index int = int(v[i]) var value byte = mtf[index] v[i] = value mtf_1 = value for index >= 1 { index-- mtf[index+1] = mtf[index] } mtf[0] = mtf_1 } } /* Decodes a series of Huffman table using ReadHuffmanCode function. */ func huffmanTreeGroupDecode(group *huffmanTreeGroup, s *Reader) int { if s.substate_tree_group != stateTreeGroupLoop { s.next = group.codes s.htree_index = 0 s.substate_tree_group = stateTreeGroupLoop } for s.htree_index < int(group.num_htrees) { var table_size uint32 var result int = readHuffmanCode(uint32(group.alphabet_size), uint32(group.max_symbol), s.next, &table_size, s) if result != decoderSuccess { return result } group.htrees[s.htree_index] = s.next s.next = s.next[table_size:] s.htree_index++ } s.substate_tree_group = stateTreeGroupNone return decoderSuccess } /* Decodes a context map. Decoding is done in 4 phases: 1) Read auxiliary information (6..16 bits) and allocate memory. In case of trivial context map, decoding is finished at this phase. 2) Decode Huffman table using ReadHuffmanCode function. This table will be used for reading context map items. 3) Read context map items; "0" values could be run-length encoded. 4) Optionally, apply InverseMoveToFront transform to the resulting map. */ func decodeContextMap(context_map_size uint32, num_htrees *uint32, context_map_arg *[]byte, s *Reader) int { var br *bitReader = &s.br var result int = decoderSuccess switch int(s.substate_context_map) { case stateContextMapNone: result = decodeVarLenUint8(s, br, num_htrees) if result != decoderSuccess { return result } (*num_htrees)++ s.context_index = 0 *context_map_arg = make([]byte, uint(context_map_size)) if *context_map_arg == nil { return decoderErrorAllocContextMap } if *num_htrees <= 1 { for i := 0; i < int(context_map_size); i++ { (*context_map_arg)[i] = 0 } return decoderSuccess } s.substate_context_map = stateContextMapReadPrefix fallthrough /* Fall through. */ case stateContextMapReadPrefix: { var bits uint32 /* In next stage ReadHuffmanCode uses at least 4 bits, so it is safe to peek 4 bits ahead. */ if !safeGetBits(br, 5, &bits) { return decoderNeedsMoreInput } if bits&1 != 0 { /* Use RLE for zeros. */ s.max_run_length_prefix = (bits >> 1) + 1 dropBits(br, 5) } else { s.max_run_length_prefix = 0 dropBits(br, 1) } s.substate_context_map = stateContextMapHuffman } fallthrough /* Fall through. */ case stateContextMapHuffman: { var alphabet_size uint32 = *num_htrees + s.max_run_length_prefix result = readHuffmanCode(alphabet_size, alphabet_size, s.context_map_table[:], nil, s) if result != decoderSuccess { return result } s.code = 0xFFFF s.substate_context_map = stateContextMapDecode } fallthrough /* Fall through. */ case stateContextMapDecode: { var context_index uint32 = s.context_index var max_run_length_prefix uint32 = s.max_run_length_prefix var context_map []byte = *context_map_arg var code uint32 = s.code var skip_preamble bool = (code != 0xFFFF) for context_index < context_map_size || skip_preamble { if !skip_preamble { if !safeReadSymbol(s.context_map_table[:], br, &code) { s.code = 0xFFFF s.context_index = context_index return decoderNeedsMoreInput } if code == 0 { context_map[context_index] = 0 context_index++ continue } if code > max_run_length_prefix { context_map[context_index] = byte(code - max_run_length_prefix) context_index++ continue } } else { skip_preamble = false } /* RLE sub-stage. */ { var reps uint32 if !safeReadBits(br, code, &reps) { s.code = code s.context_index = context_index return decoderNeedsMoreInput } reps += 1 << code if context_index+reps > context_map_size { return decoderErrorFormatContextMapRepeat } for { context_map[context_index] = 0 context_index++ reps-- if reps == 0 { break } } } } } fallthrough case stateContextMapTransform: var bits uint32 if !safeReadBits(br, 1, &bits) { s.substate_context_map = stateContextMapTransform return decoderNeedsMoreInput } if bits != 0 { inverseMoveToFrontTransform(*context_map_arg, context_map_size, s) } s.substate_context_map = stateContextMapNone return decoderSuccess default: return decoderErrorUnreachable } } /* Decodes a command or literal and updates block type ring-buffer. Reads 3..54 bits. */ func decodeBlockTypeAndLength(safe int, s *Reader, tree_type int) bool { var max_block_type uint32 = s.num_block_types[tree_type] type_tree := s.block_type_trees[tree_type*huffmanMaxSize258:] len_tree := s.block_len_trees[tree_type*huffmanMaxSize26:] var br *bitReader = &s.br var ringbuffer []uint32 = s.block_type_rb[tree_type*2:] var block_type uint32 if max_block_type <= 1 { return false } /* Read 0..15 + 3..39 bits. */ if safe == 0 { block_type = readSymbol(type_tree, br) s.block_length[tree_type] = readBlockLength(len_tree, br) } else { var memento bitReaderState bitReaderSaveState(br, &memento) if !safeReadSymbol(type_tree, br, &block_type) { return false } if !safeReadBlockLength(s, &s.block_length[tree_type], len_tree, br) { s.substate_read_block_length = stateReadBlockLengthNone bitReaderRestoreState(br, &memento) return false } } if block_type == 1 { block_type = ringbuffer[1] + 1 } else if block_type == 0 { block_type = ringbuffer[0] } else { block_type -= 2 } if block_type >= max_block_type { block_type -= max_block_type } ringbuffer[0] = ringbuffer[1] ringbuffer[1] = block_type return true } func detectTrivialLiteralBlockTypes(s *Reader) { var i uint for i = 0; i < 8; i++ { s.trivial_literal_contexts[i] = 0 } for i = 0; uint32(i) < s.num_block_types[0]; i++ { var offset uint = i << literalContextBits var error uint = 0 var sample uint = uint(s.context_map[offset]) var j uint for j = 0; j < 1<>5] |= 1 << (i & 31) } } } func prepareLiteralDecoding(s *Reader) { var context_mode byte var trivial uint var block_type uint32 = s.block_type_rb[1] var context_offset uint32 = block_type << literalContextBits s.context_map_slice = s.context_map[context_offset:] trivial = uint(s.trivial_literal_contexts[block_type>>5]) s.trivial_literal_context = int((trivial >> (block_type & 31)) & 1) s.literal_htree = []huffmanCode(s.literal_hgroup.htrees[s.context_map_slice[0]]) context_mode = s.context_modes[block_type] & 3 s.context_lookup = getContextLUT(int(context_mode)) } /* Decodes the block type and updates the state for literal context. Reads 3..54 bits. */ func decodeLiteralBlockSwitchInternal(safe int, s *Reader) bool { if !decodeBlockTypeAndLength(safe, s, 0) { return false } prepareLiteralDecoding(s) return true } func decodeLiteralBlockSwitch(s *Reader) { decodeLiteralBlockSwitchInternal(0, s) } func safeDecodeLiteralBlockSwitch(s *Reader) bool { return decodeLiteralBlockSwitchInternal(1, s) } /* Block switch for insert/copy length. Reads 3..54 bits. */ func decodeCommandBlockSwitchInternal(safe int, s *Reader) bool { if !decodeBlockTypeAndLength(safe, s, 1) { return false } s.htree_command = []huffmanCode(s.insert_copy_hgroup.htrees[s.block_type_rb[3]]) return true } func decodeCommandBlockSwitch(s *Reader) { decodeCommandBlockSwitchInternal(0, s) } func safeDecodeCommandBlockSwitch(s *Reader) bool { return decodeCommandBlockSwitchInternal(1, s) } /* Block switch for distance codes. Reads 3..54 bits. */ func decodeDistanceBlockSwitchInternal(safe int, s *Reader) bool { if !decodeBlockTypeAndLength(safe, s, 2) { return false } s.dist_context_map_slice = s.dist_context_map[s.block_type_rb[5]< s.ringbuffer_size { pos = uint(s.ringbuffer_size) } else { pos = uint(s.pos) } var partial_pos_rb uint = (s.rb_roundtrips * uint(s.ringbuffer_size)) + pos return partial_pos_rb - s.partial_pos_out } /* Dumps output. Returns BROTLI_DECODER_NEEDS_MORE_OUTPUT only if there is more output to push and either ring-buffer is as big as window size, or |force| is true. */ func writeRingBuffer(s *Reader, available_out *uint, next_out *[]byte, total_out *uint, force bool) int { start := s.ringbuffer[s.partial_pos_out&uint(s.ringbuffer_mask):] var to_write uint = unwrittenBytes(s, true) var num_written uint = *available_out if num_written > to_write { num_written = to_write } if s.meta_block_remaining_len < 0 { return decoderErrorFormatBlockLength1 } if next_out != nil && *next_out == nil { *next_out = start } else { if next_out != nil { copy(*next_out, start[:num_written]) *next_out = (*next_out)[num_written:] } } *available_out -= num_written s.partial_pos_out += num_written if total_out != nil { *total_out = s.partial_pos_out } if num_written < to_write { if s.ringbuffer_size == 1<= s.ringbuffer_size { s.pos -= s.ringbuffer_size s.rb_roundtrips++ if uint(s.pos) != 0 { s.should_wrap_ringbuffer = 1 } else { s.should_wrap_ringbuffer = 0 } } return decoderSuccess } func wrapRingBuffer(s *Reader) { if s.should_wrap_ringbuffer != 0 { copy(s.ringbuffer, s.ringbuffer_end[:uint(s.pos)]) s.should_wrap_ringbuffer = 0 } } /* Allocates ring-buffer. s->ringbuffer_size MUST be updated by BrotliCalculateRingBufferSize before this function is called. Last two bytes of ring-buffer are initialized to 0, so context calculation could be done uniformly for the first two and all other positions. */ func ensureRingBuffer(s *Reader) bool { var old_ringbuffer []byte = s.ringbuffer if s.ringbuffer_size == s.new_ringbuffer_size { return true } s.ringbuffer = make([]byte, uint(s.new_ringbuffer_size)+uint(kRingBufferWriteAheadSlack)) if s.ringbuffer == nil { /* Restore previous value. */ s.ringbuffer = old_ringbuffer return false } s.ringbuffer[s.new_ringbuffer_size-2] = 0 s.ringbuffer[s.new_ringbuffer_size-1] = 0 if !(old_ringbuffer == nil) { copy(s.ringbuffer, old_ringbuffer[:uint(s.pos)]) old_ringbuffer = nil } s.ringbuffer_size = s.new_ringbuffer_size s.ringbuffer_mask = s.new_ringbuffer_size - 1 s.ringbuffer_end = s.ringbuffer[s.ringbuffer_size:] return true } func copyUncompressedBlockToOutput(available_out *uint, next_out *[]byte, total_out *uint, s *Reader) int { /* TODO: avoid allocation for single uncompressed block. */ if !ensureRingBuffer(s) { return decoderErrorAllocRingBuffer1 } /* State machine */ for { switch s.substate_uncompressed { case stateUncompressedNone: { var nbytes int = int(getRemainingBytes(&s.br)) if nbytes > s.meta_block_remaining_len { nbytes = s.meta_block_remaining_len } if s.pos+nbytes > s.ringbuffer_size { nbytes = s.ringbuffer_size - s.pos } /* Copy remaining bytes from s->br.buf_ to ring-buffer. */ copyBytes(s.ringbuffer[s.pos:], &s.br, uint(nbytes)) s.pos += nbytes s.meta_block_remaining_len -= nbytes if s.pos < 1<>1 >= min_size { new_ringbuffer_size >>= 1 } } s.new_ringbuffer_size = new_ringbuffer_size } /* Reads 1..256 2-bit context modes. */ func readContextModes(s *Reader) int { var br *bitReader = &s.br var i int = s.loop_counter for i < int(s.num_block_types[0]) { var bits uint32 if !safeReadBits(br, 2, &bits) { s.loop_counter = i return decoderNeedsMoreInput } s.context_modes[i] = byte(bits) i++ } return decoderSuccess } func takeDistanceFromRingBuffer(s *Reader) { if s.distance_code == 0 { s.dist_rb_idx-- s.distance_code = s.dist_rb[s.dist_rb_idx&3] /* Compensate double distance-ring-buffer roll for dictionary items. */ s.distance_context = 1 } else { var distance_code int = s.distance_code << 1 const kDistanceShortCodeIndexOffset uint32 = 0xAAAFFF1B const kDistanceShortCodeValueOffset uint32 = 0xFA5FA500 var v int = (s.dist_rb_idx + int(kDistanceShortCodeIndexOffset>>uint(distance_code))) & 0x3 /* kDistanceShortCodeIndexOffset has 2-bit values from LSB: 3, 2, 1, 0, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2 */ /* kDistanceShortCodeValueOffset has 2-bit values from LSB: -0, 0,-0, 0,-1, 1,-2, 2,-3, 3,-1, 1,-2, 2,-3, 3 */ s.distance_code = s.dist_rb[v] v = int(kDistanceShortCodeValueOffset>>uint(distance_code)) & 0x3 if distance_code&0x3 != 0 { s.distance_code += v } else { s.distance_code -= v if s.distance_code <= 0 { /* A huge distance will cause a () soon. This is a little faster than failing here. */ s.distance_code = 0x7FFFFFFF } } } } func safeReadBitsMaybeZero(br *bitReader, n_bits uint32, val *uint32) bool { if n_bits != 0 { return safeReadBits(br, n_bits, val) } else { *val = 0 return true } } /* Precondition: s->distance_code < 0. */ func readDistanceInternal(safe int, s *Reader, br *bitReader) bool { var distval int var memento bitReaderState var distance_tree []huffmanCode = []huffmanCode(s.distance_hgroup.htrees[s.dist_htree_index]) if safe == 0 { s.distance_code = int(readSymbol(distance_tree, br)) } else { var code uint32 bitReaderSaveState(br, &memento) if !safeReadSymbol(distance_tree, br, &code) { return false } s.distance_code = int(code) } /* Convert the distance code to the actual distance by possibly looking up past distances from the s->ringbuffer. */ s.distance_context = 0 if s.distance_code&^0xF == 0 { takeDistanceFromRingBuffer(s) s.block_length[2]-- return true } distval = s.distance_code - int(s.num_direct_distance_codes) if distval >= 0 { var nbits uint32 var postfix int var offset int if safe == 0 && (s.distance_postfix_bits == 0) { nbits = (uint32(distval) >> 1) + 1 offset = ((2 + (distval & 1)) << nbits) - 4 s.distance_code = int(s.num_direct_distance_codes) + offset + int(readBits(br, nbits)) } else { /* This branch also works well when s->distance_postfix_bits == 0. */ var bits uint32 postfix = distval & s.distance_postfix_mask distval >>= s.distance_postfix_bits nbits = (uint32(distval) >> 1) + 1 if safe != 0 { if !safeReadBitsMaybeZero(br, nbits, &bits) { s.distance_code = -1 /* Restore precondition. */ bitReaderRestoreState(br, &memento) return false } } else { bits = readBits(br, nbits) } offset = ((2 + (distval & 1)) << nbits) - 4 s.distance_code = int(s.num_direct_distance_codes) + ((offset + int(bits)) << s.distance_postfix_bits) + postfix } } s.distance_code = s.distance_code - numDistanceShortCodes + 1 s.block_length[2]-- return true } func readDistance(s *Reader, br *bitReader) { readDistanceInternal(0, s, br) } func safeReadDistance(s *Reader, br *bitReader) bool { return readDistanceInternal(1, s, br) } func readCommandInternal(safe int, s *Reader, br *bitReader, insert_length *int) bool { var cmd_code uint32 var insert_len_extra uint32 = 0 var copy_length uint32 var v cmdLutElement var memento bitReaderState if safe == 0 { cmd_code = readSymbol(s.htree_command, br) } else { bitReaderSaveState(br, &memento) if !safeReadSymbol(s.htree_command, br, &cmd_code) { return false } } v = kCmdLut[cmd_code] s.distance_code = int(v.distance_code) s.distance_context = int(v.context) s.dist_htree_index = s.dist_context_map_slice[s.distance_context] *insert_length = int(v.insert_len_offset) if safe == 0 { if v.insert_len_extra_bits != 0 { insert_len_extra = readBits(br, uint32(v.insert_len_extra_bits)) } copy_length = readBits(br, uint32(v.copy_len_extra_bits)) } else { if !safeReadBitsMaybeZero(br, uint32(v.insert_len_extra_bits), &insert_len_extra) || !safeReadBitsMaybeZero(br, uint32(v.copy_len_extra_bits), ©_length) { bitReaderRestoreState(br, &memento) return false } } s.copy_length = int(copy_length) + int(v.copy_len_offset) s.block_length[1]-- *insert_length += int(insert_len_extra) return true } func readCommand(s *Reader, br *bitReader, insert_length *int) { readCommandInternal(0, s, br, insert_length) } func safeReadCommand(s *Reader, br *bitReader, insert_length *int) bool { return readCommandInternal(1, s, br, insert_length) } func checkInputAmountMaybeSafe(safe int, br *bitReader, num uint) bool { if safe != 0 { return true } return checkInputAmount(br, num) } func processCommandsInternal(safe int, s *Reader) int { var pos int = s.pos var i int = s.loop_counter var result int = decoderSuccess var br *bitReader = &s.br var hc []huffmanCode if !checkInputAmountMaybeSafe(safe, br, 28) { result = decoderNeedsMoreInput goto saveStateAndReturn } if safe == 0 { warmupBitReader(br) } /* Jump into state machine. */ if s.state == stateCommandBegin { goto CommandBegin } else if s.state == stateCommandInner { goto CommandInner } else if s.state == stateCommandPostDecodeLiterals { goto CommandPostDecodeLiterals } else if s.state == stateCommandPostWrapCopy { goto CommandPostWrapCopy } else { return decoderErrorUnreachable } CommandBegin: if safe != 0 { s.state = stateCommandBegin } if !checkInputAmountMaybeSafe(safe, br, 28) { /* 156 bits + 7 bytes */ s.state = stateCommandBegin result = decoderNeedsMoreInput goto saveStateAndReturn } if s.block_length[1] == 0 { if safe != 0 { if !safeDecodeCommandBlockSwitch(s) { result = decoderNeedsMoreInput goto saveStateAndReturn } } else { decodeCommandBlockSwitch(s) } goto CommandBegin } /* Read the insert/copy length in the command. */ if safe != 0 { if !safeReadCommand(s, br, &i) { result = decoderNeedsMoreInput goto saveStateAndReturn } } else { readCommand(s, br, &i) } if i == 0 { goto CommandPostDecodeLiterals } s.meta_block_remaining_len -= i CommandInner: if safe != 0 { s.state = stateCommandInner } /* Read the literals in the command. */ if s.trivial_literal_context != 0 { var bits uint32 var value uint32 preloadSymbol(safe, s.literal_htree, br, &bits, &value) for { if !checkInputAmountMaybeSafe(safe, br, 28) { /* 162 bits + 7 bytes */ s.state = stateCommandInner result = decoderNeedsMoreInput goto saveStateAndReturn } if s.block_length[0] == 0 { if safe != 0 { if !safeDecodeLiteralBlockSwitch(s) { result = decoderNeedsMoreInput goto saveStateAndReturn } } else { decodeLiteralBlockSwitch(s) } preloadSymbol(safe, s.literal_htree, br, &bits, &value) if s.trivial_literal_context == 0 { goto CommandInner } } if safe == 0 { s.ringbuffer[pos] = byte(readPreloadedSymbol(s.literal_htree, br, &bits, &value)) } else { var literal uint32 if !safeReadSymbol(s.literal_htree, br, &literal) { result = decoderNeedsMoreInput goto saveStateAndReturn } s.ringbuffer[pos] = byte(literal) } s.block_length[0]-- pos++ if pos == s.ringbuffer_size { s.state = stateCommandInnerWrite i-- goto saveStateAndReturn } i-- if i == 0 { break } } } else { var p1 byte = s.ringbuffer[(pos-1)&s.ringbuffer_mask] var p2 byte = s.ringbuffer[(pos-2)&s.ringbuffer_mask] for { var context byte if !checkInputAmountMaybeSafe(safe, br, 28) { /* 162 bits + 7 bytes */ s.state = stateCommandInner result = decoderNeedsMoreInput goto saveStateAndReturn } if s.block_length[0] == 0 { if safe != 0 { if !safeDecodeLiteralBlockSwitch(s) { result = decoderNeedsMoreInput goto saveStateAndReturn } } else { decodeLiteralBlockSwitch(s) } if s.trivial_literal_context != 0 { goto CommandInner } } context = getContext(p1, p2, s.context_lookup) hc = []huffmanCode(s.literal_hgroup.htrees[s.context_map_slice[context]]) p2 = p1 if safe == 0 { p1 = byte(readSymbol(hc, br)) } else { var literal uint32 if !safeReadSymbol(hc, br, &literal) { result = decoderNeedsMoreInput goto saveStateAndReturn } p1 = byte(literal) } s.ringbuffer[pos] = p1 s.block_length[0]-- pos++ if pos == s.ringbuffer_size { s.state = stateCommandInnerWrite i-- goto saveStateAndReturn } i-- if i == 0 { break } } } if s.meta_block_remaining_len <= 0 { s.state = stateMetablockDone goto saveStateAndReturn } CommandPostDecodeLiterals: if safe != 0 { s.state = stateCommandPostDecodeLiterals } if s.distance_code >= 0 { /* Implicit distance case. */ if s.distance_code != 0 { s.distance_context = 0 } else { s.distance_context = 1 } s.dist_rb_idx-- s.distance_code = s.dist_rb[s.dist_rb_idx&3] } else { /* Read distance code in the command, unless it was implicitly zero. */ if s.block_length[2] == 0 { if safe != 0 { if !safeDecodeDistanceBlockSwitch(s) { result = decoderNeedsMoreInput goto saveStateAndReturn } } else { decodeDistanceBlockSwitch(s) } } if safe != 0 { if !safeReadDistance(s, br) { result = decoderNeedsMoreInput goto saveStateAndReturn } } else { readDistance(s, br) } } if s.max_distance != s.max_backward_distance { if pos < s.max_backward_distance { s.max_distance = pos } else { s.max_distance = s.max_backward_distance } } i = s.copy_length /* Apply copy of LZ77 back-reference, or static dictionary reference if the distance is larger than the max LZ77 distance */ if s.distance_code > s.max_distance { /* The maximum allowed distance is BROTLI_MAX_ALLOWED_DISTANCE = 0x7FFFFFFC. With this choice, no signed overflow can occur after decoding a special distance code (e.g., after adding 3 to the last distance). */ if s.distance_code > maxAllowedDistance { return decoderErrorFormatDistance } if i >= minDictionaryWordLength && i <= maxDictionaryWordLength { var address int = s.distance_code - s.max_distance - 1 var words *dictionary = s.dictionary var trans *transforms = s.transforms var offset int = int(s.dictionary.offsets_by_length[i]) var shift uint32 = uint32(s.dictionary.size_bits_by_length[i]) var mask int = int(bitMask(shift)) var word_idx int = address & mask var transform_idx int = address >> shift /* Compensate double distance-ring-buffer roll. */ s.dist_rb_idx += s.distance_context offset += word_idx * i if words.data == nil { return decoderErrorDictionaryNotSet } if transform_idx < int(trans.num_transforms) { word := words.data[offset:] var len int = i if transform_idx == int(trans.cutOffTransforms[0]) { copy(s.ringbuffer[pos:], word[:uint(len)]) } else { len = transformDictionaryWord(s.ringbuffer[pos:], word, int(len), trans, transform_idx) } pos += int(len) s.meta_block_remaining_len -= int(len) if pos >= s.ringbuffer_size { s.state = stateCommandPostWrite1 goto saveStateAndReturn } } else { return decoderErrorFormatTransform } } else { return decoderErrorFormatDictionary } } else { var src_start int = (pos - s.distance_code) & s.ringbuffer_mask copy_dst := s.ringbuffer[pos:] copy_src := s.ringbuffer[src_start:] var dst_end int = pos + i var src_end int = src_start + i /* Update the recent distances cache. */ s.dist_rb[s.dist_rb_idx&3] = s.distance_code s.dist_rb_idx++ s.meta_block_remaining_len -= i /* There are 32+ bytes of slack in the ring-buffer allocation. Also, we have 16 short codes, that make these 16 bytes irrelevant in the ring-buffer. Let's copy over them as a first guess. */ copy(copy_dst, copy_src[:16]) if src_end > pos && dst_end > src_start { /* Regions intersect. */ goto CommandPostWrapCopy } if dst_end >= s.ringbuffer_size || src_end >= s.ringbuffer_size { /* At least one region wraps. */ goto CommandPostWrapCopy } pos += i if i > 16 { if i > 32 { copy(copy_dst[16:], copy_src[16:][:uint(i-16)]) } else { /* This branch covers about 45% cases. Fixed size short copy allows more compiler optimizations. */ copy(copy_dst[16:], copy_src[16:][:16]) } } } if s.meta_block_remaining_len <= 0 { /* Next metablock, if any. */ s.state = stateMetablockDone goto saveStateAndReturn } else { goto CommandBegin } CommandPostWrapCopy: { var wrap_guard int = s.ringbuffer_size - pos for { i-- if i < 0 { break } s.ringbuffer[pos] = s.ringbuffer[(pos-s.distance_code)&s.ringbuffer_mask] pos++ wrap_guard-- if wrap_guard == 0 { s.state = stateCommandPostWrite2 goto saveStateAndReturn } } } if s.meta_block_remaining_len <= 0 { /* Next metablock, if any. */ s.state = stateMetablockDone goto saveStateAndReturn } else { goto CommandBegin } saveStateAndReturn: s.pos = pos s.loop_counter = i return result } func processCommands(s *Reader) int { return processCommandsInternal(0, s) } func safeProcessCommands(s *Reader) int { return processCommandsInternal(1, s) } /* Returns the maximum number of distance symbols which can only represent distances not exceeding BROTLI_MAX_ALLOWED_DISTANCE. */ var maxDistanceSymbol_bound = [maxNpostfix + 1]uint32{0, 4, 12, 28} var maxDistanceSymbol_diff = [maxNpostfix + 1]uint32{73, 126, 228, 424} func maxDistanceSymbol(ndirect uint32, npostfix uint32) uint32 { var postfix uint32 = 1 << npostfix if ndirect < maxDistanceSymbol_bound[npostfix] { return ndirect + maxDistanceSymbol_diff[npostfix] + postfix } else if ndirect > maxDistanceSymbol_bound[npostfix]+postfix { return ndirect + maxDistanceSymbol_diff[npostfix] } else { return maxDistanceSymbol_bound[npostfix] + maxDistanceSymbol_diff[npostfix] + postfix } } /* Invariant: input stream is never overconsumed: - invalid input implies that the whole stream is invalid -> any amount of input could be read and discarded - when result is "needs more input", then at least one more byte is REQUIRED to complete decoding; all input data MUST be consumed by decoder, so client could swap the input buffer - when result is "needs more output" decoder MUST ensure that it doesn't hold more than 7 bits in bit reader; this saves client from swapping input buffer ahead of time - when result is "success" decoder MUST return all unused data back to input buffer; this is possible because the invariant is held on enter */ func decoderDecompressStream(s *Reader, available_in *uint, next_in *[]byte, available_out *uint, next_out *[]byte) int { var result int = decoderSuccess var br *bitReader = &s.br /* Do not try to process further in a case of unrecoverable error. */ if int(s.error_code) < 0 { return decoderResultError } if *available_out != 0 && (next_out == nil || *next_out == nil) { return saveErrorCode(s, decoderErrorInvalidArguments) } if *available_out == 0 { next_out = nil } if s.buffer_length == 0 { /* Just connect bit reader to input stream. */ br.input_len = *available_in br.input = *next_in br.byte_pos = 0 } else { /* At least one byte of input is required. More than one byte of input may be required to complete the transaction -> reading more data must be done in a loop -> do it in a main loop. */ result = decoderNeedsMoreInput br.input = s.buffer.u8[:] br.byte_pos = 0 } /* State machine */ for { if result != decoderSuccess { /* Error, needs more input/output. */ if result == decoderNeedsMoreInput { if s.ringbuffer != nil { /* Pro-actively push output. */ var intermediate_result int = writeRingBuffer(s, available_out, next_out, nil, true) /* WriteRingBuffer checks s->meta_block_remaining_len validity. */ if int(intermediate_result) < 0 { result = intermediate_result break } } if s.buffer_length != 0 { /* Used with internal buffer. */ if br.byte_pos == br.input_len { /* Successfully finished read transaction. Accumulator contains less than 8 bits, because internal buffer is expanded byte-by-byte until it is enough to complete read. */ s.buffer_length = 0 /* Switch to input stream and restart. */ result = decoderSuccess br.input_len = *available_in br.input = *next_in br.byte_pos = 0 continue } else if *available_in != 0 { /* Not enough data in buffer, but can take one more byte from input stream. */ result = decoderSuccess s.buffer.u8[s.buffer_length] = (*next_in)[0] s.buffer_length++ br.input_len = uint(s.buffer_length) *next_in = (*next_in)[1:] (*available_in)-- /* Retry with more data in buffer. */ continue } /* Can't finish reading and no more input. */ break /* Input stream doesn't contain enough input. */ } else { /* Copy tail to internal buffer and return. */ *next_in = br.input[br.byte_pos:] *available_in = br.input_len - br.byte_pos for *available_in != 0 { s.buffer.u8[s.buffer_length] = (*next_in)[0] s.buffer_length++ *next_in = (*next_in)[1:] (*available_in)-- } break } } /* Unreachable. */ /* Fail or needs more output. */ if s.buffer_length != 0 { /* Just consumed the buffered input and produced some output. Otherwise it would result in "needs more input". Reset internal buffer. */ s.buffer_length = 0 } else { /* Using input stream in last iteration. When decoder switches to input stream it has less than 8 bits in accumulator, so it is safe to return unused accumulator bits there. */ bitReaderUnload(br) *available_in = br.input_len - br.byte_pos *next_in = br.input[br.byte_pos:] } break } switch s.state { /* Prepare to the first read. */ case stateUninited: if !warmupBitReader(br) { result = decoderNeedsMoreInput break } /* Decode window size. */ result = decodeWindowBits(s, br) /* Reads 1..8 bits. */ if result != decoderSuccess { break } if s.large_window { s.state = stateLargeWindowBits break } s.state = stateInitialize case stateLargeWindowBits: if !safeReadBits(br, 6, &s.window_bits) { result = decoderNeedsMoreInput break } if s.window_bits < largeMinWbits || s.window_bits > largeMaxWbits { result = decoderErrorFormatWindowBits break } s.state = stateInitialize fallthrough /* Maximum distance, see section 9.1. of the spec. */ /* Fall through. */ case stateInitialize: s.max_backward_distance = (1 << s.window_bits) - windowGap /* Allocate memory for both block_type_trees and block_len_trees. */ s.block_type_trees = make([]huffmanCode, (3 * (huffmanMaxSize258 + huffmanMaxSize26))) if s.block_type_trees == nil { result = decoderErrorAllocBlockTypeTrees break } s.block_len_trees = s.block_type_trees[3*huffmanMaxSize258:] s.state = stateMetablockBegin fallthrough /* Fall through. */ case stateMetablockBegin: decoderStateMetablockBegin(s) s.state = stateMetablockHeader fallthrough /* Fall through. */ case stateMetablockHeader: result = decodeMetaBlockLength(s, br) /* Reads 2 - 31 bits. */ if result != decoderSuccess { break } if s.is_metadata != 0 || s.is_uncompressed != 0 { if !bitReaderJumpToByteBoundary(br) { result = decoderErrorFormatPadding1 break } } if s.is_metadata != 0 { s.state = stateMetadata break } if s.meta_block_remaining_len == 0 { s.state = stateMetablockDone break } calculateRingBufferSize(s) if s.is_uncompressed != 0 { s.state = stateUncompressed break } s.loop_counter = 0 s.state = stateHuffmanCode0 case stateUncompressed: result = copyUncompressedBlockToOutput(available_out, next_out, nil, s) if result == decoderSuccess { s.state = stateMetablockDone } case stateMetadata: for ; s.meta_block_remaining_len > 0; s.meta_block_remaining_len-- { var bits uint32 /* Read one byte and ignore it. */ if !safeReadBits(br, 8, &bits) { result = decoderNeedsMoreInput break } } if result == decoderSuccess { s.state = stateMetablockDone } case stateHuffmanCode0: if s.loop_counter >= 3 { s.state = stateMetablockHeader2 break } /* Reads 1..11 bits. */ result = decodeVarLenUint8(s, br, &s.num_block_types[s.loop_counter]) if result != decoderSuccess { break } s.num_block_types[s.loop_counter]++ if s.num_block_types[s.loop_counter] < 2 { s.loop_counter++ break } s.state = stateHuffmanCode1 fallthrough case stateHuffmanCode1: { var alphabet_size uint32 = s.num_block_types[s.loop_counter] + 2 var tree_offset int = s.loop_counter * huffmanMaxSize258 result = readHuffmanCode(alphabet_size, alphabet_size, s.block_type_trees[tree_offset:], nil, s) if result != decoderSuccess { break } s.state = stateHuffmanCode2 } fallthrough case stateHuffmanCode2: { var alphabet_size uint32 = numBlockLenSymbols var tree_offset int = s.loop_counter * huffmanMaxSize26 result = readHuffmanCode(alphabet_size, alphabet_size, s.block_len_trees[tree_offset:], nil, s) if result != decoderSuccess { break } s.state = stateHuffmanCode3 } fallthrough case stateHuffmanCode3: var tree_offset int = s.loop_counter * huffmanMaxSize26 if !safeReadBlockLength(s, &s.block_length[s.loop_counter], s.block_len_trees[tree_offset:], br) { result = decoderNeedsMoreInput break } s.loop_counter++ s.state = stateHuffmanCode0 case stateMetablockHeader2: { var bits uint32 if !safeReadBits(br, 6, &bits) { result = decoderNeedsMoreInput break } s.distance_postfix_bits = bits & bitMask(2) bits >>= 2 s.num_direct_distance_codes = numDistanceShortCodes + (bits << s.distance_postfix_bits) s.distance_postfix_mask = int(bitMask(s.distance_postfix_bits)) s.context_modes = make([]byte, uint(s.num_block_types[0])) if s.context_modes == nil { result = decoderErrorAllocContextModes break } s.loop_counter = 0 s.state = stateContextModes } fallthrough case stateContextModes: result = readContextModes(s) if result != decoderSuccess { break } s.state = stateContextMap1 fallthrough case stateContextMap1: result = decodeContextMap(s.num_block_types[0]<= 3 { prepareLiteralDecoding(s) s.dist_context_map_slice = s.dist_context_map s.htree_command = []huffmanCode(s.insert_copy_hgroup.htrees[0]) if !ensureRingBuffer(s) { result = decoderErrorAllocRingBuffer2 break } s.state = stateCommandBegin } case stateCommandBegin, stateCommandInner, stateCommandPostDecodeLiterals, stateCommandPostWrapCopy: result = processCommands(s) if result == decoderNeedsMoreInput { result = safeProcessCommands(s) } case stateCommandInnerWrite, stateCommandPostWrite1, stateCommandPostWrite2: result = writeRingBuffer(s, available_out, next_out, nil, false) if result != decoderSuccess { break } wrapRingBuffer(s) if s.ringbuffer_size == 1<= uint64(block_size) { return 0 } return block_size - uint(delta) } /* Wraps 64-bit input position to 32-bit ring-buffer position preserving "not-a-first-lap" feature. */ func wrapPosition(position uint64) uint32 { var result uint32 = uint32(position) var gb uint64 = position >> 30 if gb > 2 { /* Wrap every 2GiB; The first 3GB are continuous. */ result = result&((1<<30)-1) | (uint32((gb-1)&1)+1)<<30 } return result } func (s *Writer) getStorage(size int) []byte { if len(s.storage) < size { s.storage = make([]byte, size) } return s.storage } func hashTableSize(max_table_size uint, input_size uint) uint { var htsize uint = 256 for htsize < max_table_size && htsize < input_size { htsize <<= 1 } return htsize } func getHashTable(s *Writer, quality int, input_size uint, table_size *uint) []int { var max_table_size uint = maxHashTableSize(quality) var htsize uint = hashTableSize(max_table_size, input_size) /* Use smaller hash table when input.size() is smaller, since we fill the table, incurring O(hash table size) overhead for compression, and if the input is short, we won't need that many hash table entries anyway. */ var table []int assert(max_table_size >= 256) if quality == fastOnePassCompressionQuality { /* Only odd shifts are supported by fast-one-pass. */ if htsize&0xAAAAA == 0 { htsize <<= 1 } } if htsize <= uint(len(s.small_table_)) { table = s.small_table_[:] } else { if htsize > s.large_table_size_ { s.large_table_size_ = htsize s.large_table_ = nil s.large_table_ = make([]int, htsize) } table = s.large_table_ } *table_size = htsize for i := 0; i < int(htsize); i++ { table[i] = 0 } return table } func encodeWindowBits(lgwin int, large_window bool, last_bytes *uint16, last_bytes_bits *byte) { if large_window { *last_bytes = uint16((lgwin&0x3F)<<8 | 0x11) *last_bytes_bits = 14 } else { if lgwin == 16 { *last_bytes = 0 *last_bytes_bits = 1 } else if lgwin == 17 { *last_bytes = 1 *last_bytes_bits = 7 } else if lgwin > 17 { *last_bytes = uint16((lgwin-17)<<1 | 0x01) *last_bytes_bits = 4 } else { *last_bytes = uint16((lgwin-8)<<4 | 0x01) *last_bytes_bits = 7 } } } /* Decide about the context map based on the ability of the prediction ability of the previous byte UTF8-prefix on the next byte. The prediction ability is calculated as Shannon entropy. Here we need Shannon entropy instead of 'BitsEntropy' since the prefix will be encoded with the remaining 6 bits of the following byte, and BitsEntropy will assume that symbol to be stored alone using Huffman coding. */ var kStaticContextMapContinuation = [64]uint32{ 1, 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } var kStaticContextMapSimpleUTF8 = [64]uint32{ 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } func chooseContextMap(quality int, bigram_histo []uint32, num_literal_contexts *uint, literal_context_map *[]uint32) { var monogram_histo = [3]uint32{0} var two_prefix_histo = [6]uint32{0} var total uint var i uint var dummy uint var entropy [4]float64 for i = 0; i < 9; i++ { monogram_histo[i%3] += bigram_histo[i] two_prefix_histo[i%6] += bigram_histo[i] } entropy[1] = shannonEntropy(monogram_histo[:], 3, &dummy) entropy[2] = (shannonEntropy(two_prefix_histo[:], 3, &dummy) + shannonEntropy(two_prefix_histo[3:], 3, &dummy)) entropy[3] = 0 for i = 0; i < 3; i++ { entropy[3] += shannonEntropy(bigram_histo[3*i:], 3, &dummy) } total = uint(monogram_histo[0] + monogram_histo[1] + monogram_histo[2]) assert(total != 0) entropy[0] = 1.0 / float64(total) entropy[1] *= entropy[0] entropy[2] *= entropy[0] entropy[3] *= entropy[0] if quality < minQualityForHqContextModeling { /* 3 context models is a bit slower, don't use it at lower qualities. */ entropy[3] = entropy[1] * 10 } /* If expected savings by symbol are less than 0.2 bits, skip the context modeling -- in exchange for faster decoding speed. */ if entropy[1]-entropy[2] < 0.2 && entropy[1]-entropy[3] < 0.2 { *num_literal_contexts = 1 } else if entropy[2]-entropy[3] < 0.02 { *num_literal_contexts = 2 *literal_context_map = kStaticContextMapSimpleUTF8[:] } else { *num_literal_contexts = 3 *literal_context_map = kStaticContextMapContinuation[:] } } /* Decide if we want to use a more complex static context map containing 13 context values, based on the entropy reduction of histograms over the first 5 bits of literals. */ var kStaticContextMapComplexUTF8 = [64]uint32{ 11, 11, 12, 12, /* 0 special */ 0, 0, 0, 0, /* 4 lf */ 1, 1, 9, 9, /* 8 space */ 2, 2, 2, 2, /* !, first after space/lf and after something else. */ 1, 1, 1, 1, /* " */ 8, 3, 3, 3, /* % */ 1, 1, 1, 1, /* ({[ */ 2, 2, 2, 2, /* }]) */ 8, 4, 4, 4, /* :; */ 8, 7, 4, 4, /* . */ 8, 0, 0, 0, /* > */ 3, 3, 3, 3, /* [0..9] */ 5, 5, 10, 5, /* [A-Z] */ 5, 5, 10, 5, 6, 6, 6, 6, /* [a-z] */ 6, 6, 6, 6, } func shouldUseComplexStaticContextMap(input []byte, start_pos uint, length uint, mask uint, quality int, size_hint uint, num_literal_contexts *uint, literal_context_map *[]uint32) bool { /* Try the more complex static context map only for long data. */ if size_hint < 1<<20 { return false } else { var end_pos uint = start_pos + length var combined_histo = [32]uint32{0} var context_histo = [13][32]uint32{[32]uint32{0}} var total uint32 = 0 var entropy [3]float64 var dummy uint var i uint var utf8_lut contextLUT = getContextLUT(contextUTF8) /* To make entropy calculations faster and to fit on the stack, we collect histograms over the 5 most significant bits of literals. One histogram without context and 13 additional histograms for each context value. */ for ; start_pos+64 <= end_pos; start_pos += 4096 { var stride_end_pos uint = start_pos + 64 var prev2 byte = input[start_pos&mask] var prev1 byte = input[(start_pos+1)&mask] var pos uint /* To make the analysis of the data faster we only examine 64 byte long strides at every 4kB intervals. */ for pos = start_pos + 2; pos < stride_end_pos; pos++ { var literal byte = input[pos&mask] var context byte = byte(kStaticContextMapComplexUTF8[getContext(prev1, prev2, utf8_lut)]) total++ combined_histo[literal>>3]++ context_histo[context][literal>>3]++ prev2 = prev1 prev1 = literal } } entropy[1] = shannonEntropy(combined_histo[:], 32, &dummy) entropy[2] = 0 for i = 0; i < 13; i++ { entropy[2] += shannonEntropy(context_histo[i][0:], 32, &dummy) } entropy[0] = 1.0 / float64(total) entropy[1] *= entropy[0] entropy[2] *= entropy[0] /* The triggering heuristics below were tuned by compressing the individual files of the silesia corpus. If we skip this kind of context modeling for not very well compressible input (i.e. entropy using context modeling is 60% of maximal entropy) or if expected savings by symbol are less than 0.2 bits, then in every case when it triggers, the final compression ratio is improved. Note however that this heuristics might be too strict for some cases and could be tuned further. */ if entropy[2] > 3.0 || entropy[1]-entropy[2] < 0.2 { return false } else { *num_literal_contexts = 13 *literal_context_map = kStaticContextMapComplexUTF8[:] return true } } } func decideOverLiteralContextModeling(input []byte, start_pos uint, length uint, mask uint, quality int, size_hint uint, num_literal_contexts *uint, literal_context_map *[]uint32) { if quality < minQualityForContextModeling || length < 64 { return } else if shouldUseComplexStaticContextMap(input, start_pos, length, mask, quality, size_hint, num_literal_contexts, literal_context_map) { } else /* Context map was already set, nothing else to do. */ { var end_pos uint = start_pos + length /* Gather bi-gram data of the UTF8 byte prefixes. To make the analysis of UTF8 data faster we only examine 64 byte long strides at every 4kB intervals. */ var bigram_prefix_histo = [9]uint32{0} for ; start_pos+64 <= end_pos; start_pos += 4096 { var lut = [4]int{0, 0, 1, 2} var stride_end_pos uint = start_pos + 64 var prev int = lut[input[start_pos&mask]>>6] * 3 var pos uint for pos = start_pos + 1; pos < stride_end_pos; pos++ { var literal byte = input[pos&mask] bigram_prefix_histo[prev+lut[literal>>6]]++ prev = lut[literal>>6] * 3 } } chooseContextMap(quality, bigram_prefix_histo[0:], num_literal_contexts, literal_context_map) } } func shouldCompress_encode(data []byte, mask uint, last_flush_pos uint64, bytes uint, num_literals uint, num_commands uint) bool { /* TODO: find more precise minimal block overhead. */ if bytes <= 2 { return false } if num_commands < (bytes>>8)+2 { if float64(num_literals) > 0.99*float64(bytes) { var literal_histo = [256]uint32{0} const kSampleRate uint32 = 13 const kMinEntropy float64 = 7.92 var bit_cost_threshold float64 = float64(bytes) * kMinEntropy / float64(kSampleRate) var t uint = uint((uint32(bytes) + kSampleRate - 1) / kSampleRate) var pos uint32 = uint32(last_flush_pos) var i uint for i = 0; i < t; i++ { literal_histo[data[pos&uint32(mask)]]++ pos += kSampleRate } if bitsEntropy(literal_histo[:], 256) > bit_cost_threshold { return false } } } return true } /* Chooses the literal context mode for a metablock */ func chooseContextMode(params *encoderParams, data []byte, pos uint, mask uint, length uint) int { /* We only do the computation for the option of something else than CONTEXT_UTF8 for the highest qualities */ if params.quality >= minQualityForHqBlockSplitting && !isMostlyUTF8(data, pos, mask, length, kMinUTF8Ratio) { return contextSigned } return contextUTF8 } func writeMetaBlockInternal(data []byte, mask uint, last_flush_pos uint64, bytes uint, is_last bool, literal_context_mode int, params *encoderParams, prev_byte byte, prev_byte2 byte, num_literals uint, commands []command, saved_dist_cache []int, dist_cache []int, storage_ix *uint, storage []byte) { var wrapped_last_flush_pos uint32 = wrapPosition(last_flush_pos) var last_bytes uint16 var last_bytes_bits byte var literal_context_lut contextLUT = getContextLUT(literal_context_mode) var block_params encoderParams = *params if bytes == 0 { /* Write the ISLAST and ISEMPTY bits. */ writeBits(2, 3, storage_ix, storage) *storage_ix = (*storage_ix + 7) &^ 7 return } if !shouldCompress_encode(data, mask, last_flush_pos, bytes, num_literals, uint(len(commands))) { /* Restore the distance cache, as its last update by CreateBackwardReferences is now unused. */ copy(dist_cache, saved_dist_cache[:4]) storeUncompressedMetaBlock(is_last, data, uint(wrapped_last_flush_pos), mask, bytes, storage_ix, storage) return } assert(*storage_ix <= 14) last_bytes = uint16(storage[1])<<8 | uint16(storage[0]) last_bytes_bits = byte(*storage_ix) if params.quality <= maxQualityForStaticEntropyCodes { storeMetaBlockFast(data, uint(wrapped_last_flush_pos), bytes, mask, is_last, params, commands, storage_ix, storage) } else if params.quality < minQualityForBlockSplit { storeMetaBlockTrivial(data, uint(wrapped_last_flush_pos), bytes, mask, is_last, params, commands, storage_ix, storage) } else { mb := getMetaBlockSplit() if params.quality < minQualityForHqBlockSplitting { var num_literal_contexts uint = 1 var literal_context_map []uint32 = nil if !params.disable_literal_context_modeling { decideOverLiteralContextModeling(data, uint(wrapped_last_flush_pos), bytes, mask, params.quality, params.size_hint, &num_literal_contexts, &literal_context_map) } buildMetaBlockGreedy(data, uint(wrapped_last_flush_pos), mask, prev_byte, prev_byte2, literal_context_lut, num_literal_contexts, literal_context_map, commands, mb) } else { buildMetaBlock(data, uint(wrapped_last_flush_pos), mask, &block_params, prev_byte, prev_byte2, commands, literal_context_mode, mb) } if params.quality >= minQualityForOptimizeHistograms { /* The number of distance symbols effectively used for distance histograms. It might be less than distance alphabet size for "Large Window Brotli" (32-bit). */ var num_effective_dist_codes uint32 = block_params.dist.alphabet_size if num_effective_dist_codes > numHistogramDistanceSymbols { num_effective_dist_codes = numHistogramDistanceSymbols } optimizeHistograms(num_effective_dist_codes, mb) } storeMetaBlock(data, uint(wrapped_last_flush_pos), bytes, mask, prev_byte, prev_byte2, is_last, &block_params, literal_context_mode, commands, mb, storage_ix, storage) freeMetaBlockSplit(mb) } if bytes+4 < *storage_ix>>3 { /* Restore the distance cache and last byte. */ copy(dist_cache, saved_dist_cache[:4]) storage[0] = byte(last_bytes) storage[1] = byte(last_bytes >> 8) *storage_ix = uint(last_bytes_bits) storeUncompressedMetaBlock(is_last, data, uint(wrapped_last_flush_pos), mask, bytes, storage_ix, storage) } } func chooseDistanceParams(params *encoderParams) { var distance_postfix_bits uint32 = 0 var num_direct_distance_codes uint32 = 0 if params.quality >= minQualityForNonzeroDistanceParams { var ndirect_msb uint32 if params.mode == modeFont { distance_postfix_bits = 1 num_direct_distance_codes = 12 } else { distance_postfix_bits = params.dist.distance_postfix_bits num_direct_distance_codes = params.dist.num_direct_distance_codes } ndirect_msb = (num_direct_distance_codes >> distance_postfix_bits) & 0x0F if distance_postfix_bits > maxNpostfix || num_direct_distance_codes > maxNdirect || ndirect_msb<>25)), (last_command.dist_prefix_&0x3FF == 0), &last_command.cmd_prefix_) } } /* Processes the accumulated input data and writes the new output meta-block to s.dest, if one has been created (otherwise the processed input data is buffered internally). If |is_last| or |force_flush| is true, an output meta-block is always created. However, until |is_last| is true encoder may retain up to 7 bits of the last byte of output. To force encoder to dump the remaining bits use WriteMetadata() to append an empty meta-data block. Returns false if the size of the input data is larger than input_block_size(). */ func encodeData(s *Writer, is_last bool, force_flush bool) bool { var delta uint64 = unprocessedInputSize(s) var bytes uint32 = uint32(delta) var wrapped_last_processed_pos uint32 = wrapPosition(s.last_processed_pos_) var data []byte var mask uint32 var literal_context_mode int data = s.ringbuffer_.buffer_ mask = s.ringbuffer_.mask_ /* Adding more blocks after "last" block is forbidden. */ if s.is_last_block_emitted_ { return false } if is_last { s.is_last_block_emitted_ = true } if delta > uint64(inputBlockSize(s)) { return false } if s.params.quality == fastTwoPassCompressionQuality { if s.command_buf_ == nil || cap(s.command_buf_) < int(kCompressFragmentTwoPassBlockSize) { s.command_buf_ = make([]uint32, kCompressFragmentTwoPassBlockSize) s.literal_buf_ = make([]byte, kCompressFragmentTwoPassBlockSize) } else { s.command_buf_ = s.command_buf_[:kCompressFragmentTwoPassBlockSize] s.literal_buf_ = s.literal_buf_[:kCompressFragmentTwoPassBlockSize] } } if s.params.quality == fastOnePassCompressionQuality || s.params.quality == fastTwoPassCompressionQuality { var storage []byte var storage_ix uint = uint(s.last_bytes_bits_) var table_size uint var table []int if delta == 0 && !is_last { /* We have no new input data and we don't have to finish the stream, so nothing to do. */ return true } storage = s.getStorage(int(2*bytes + 503)) storage[0] = byte(s.last_bytes_) storage[1] = byte(s.last_bytes_ >> 8) table = getHashTable(s, s.params.quality, uint(bytes), &table_size) if s.params.quality == fastOnePassCompressionQuality { compressFragmentFast(data[wrapped_last_processed_pos&mask:], uint(bytes), is_last, table, table_size, s.cmd_depths_[:], s.cmd_bits_[:], &s.cmd_code_numbits_, s.cmd_code_[:], &storage_ix, storage) } else { compressFragmentTwoPass(data[wrapped_last_processed_pos&mask:], uint(bytes), is_last, s.command_buf_, s.literal_buf_, table, table_size, &storage_ix, storage) } s.last_bytes_ = uint16(storage[storage_ix>>3]) s.last_bytes_bits_ = byte(storage_ix & 7) updateLastProcessedPos(s) s.writeOutput(storage[:storage_ix>>3]) return true } { /* Theoretical max number of commands is 1 per 2 bytes. */ newsize := len(s.commands) + int(bytes)/2 + 1 if newsize > cap(s.commands) { /* Reserve a bit more memory to allow merging with a next block without reallocation: that would impact speed. */ newsize += int(bytes/4) + 16 new_commands := make([]command, len(s.commands), newsize) if s.commands != nil { copy(new_commands, s.commands) } s.commands = new_commands } } initOrStitchToPreviousBlock(&s.hasher_, data, uint(mask), &s.params, uint(wrapped_last_processed_pos), uint(bytes), is_last) literal_context_mode = chooseContextMode(&s.params, data, uint(wrapPosition(s.last_flush_pos_)), uint(mask), uint(s.input_pos_-s.last_flush_pos_)) if len(s.commands) != 0 && s.last_insert_len_ == 0 { extendLastCommand(s, &bytes, &wrapped_last_processed_pos) } if s.params.quality == zopflificationQuality { assert(s.params.hasher.type_ == 10) createZopfliBackwardReferences(uint(bytes), uint(wrapped_last_processed_pos), data, uint(mask), &s.params, s.hasher_.(*h10), s.dist_cache_[:], &s.last_insert_len_, &s.commands, &s.num_literals_) } else if s.params.quality == hqZopflificationQuality { assert(s.params.hasher.type_ == 10) createHqZopfliBackwardReferences(uint(bytes), uint(wrapped_last_processed_pos), data, uint(mask), &s.params, s.hasher_, s.dist_cache_[:], &s.last_insert_len_, &s.commands, &s.num_literals_) } else { createBackwardReferences(uint(bytes), uint(wrapped_last_processed_pos), data, uint(mask), &s.params, s.hasher_, s.dist_cache_[:], &s.last_insert_len_, &s.commands, &s.num_literals_) } { var max_length uint = maxMetablockSize(&s.params) var max_literals uint = max_length / 8 max_commands := int(max_length / 8) var processed_bytes uint = uint(s.input_pos_ - s.last_flush_pos_) var next_input_fits_metablock bool = (processed_bytes+inputBlockSize(s) <= max_length) var should_flush bool = (s.params.quality < minQualityForBlockSplit && s.num_literals_+uint(len(s.commands)) >= maxNumDelayedSymbols) /* If maximal possible additional block doesn't fit metablock, flush now. */ /* TODO: Postpone decision until next block arrives? */ /* If block splitting is not used, then flush as soon as there is some amount of commands / literals produced. */ if !is_last && !force_flush && !should_flush && next_input_fits_metablock && s.num_literals_ < max_literals && len(s.commands) < max_commands { /* Merge with next input block. Everything will happen later. */ if updateLastProcessedPos(s) { hasherReset(s.hasher_) } return true } } /* Create the last insert-only command. */ if s.last_insert_len_ > 0 { s.commands = append(s.commands, makeInsertCommand(s.last_insert_len_)) s.num_literals_ += s.last_insert_len_ s.last_insert_len_ = 0 } if !is_last && s.input_pos_ == s.last_flush_pos_ { /* We have no new input data and we don't have to finish the stream, so nothing to do. */ return true } assert(s.input_pos_ >= s.last_flush_pos_) assert(s.input_pos_ > s.last_flush_pos_ || is_last) assert(s.input_pos_-s.last_flush_pos_ <= 1<<24) { var metablock_size uint32 = uint32(s.input_pos_ - s.last_flush_pos_) var storage []byte = s.getStorage(int(2*metablock_size + 503)) var storage_ix uint = uint(s.last_bytes_bits_) storage[0] = byte(s.last_bytes_) storage[1] = byte(s.last_bytes_ >> 8) writeMetaBlockInternal(data, uint(mask), s.last_flush_pos_, uint(metablock_size), is_last, literal_context_mode, &s.params, s.prev_byte_, s.prev_byte2_, s.num_literals_, s.commands, s.saved_dist_cache_[:], s.dist_cache_[:], &storage_ix, storage) s.last_bytes_ = uint16(storage[storage_ix>>3]) s.last_bytes_bits_ = byte(storage_ix & 7) s.last_flush_pos_ = s.input_pos_ if updateLastProcessedPos(s) { hasherReset(s.hasher_) } if s.last_flush_pos_ > 0 { s.prev_byte_ = data[(uint32(s.last_flush_pos_)-1)&mask] } if s.last_flush_pos_ > 1 { s.prev_byte2_ = data[uint32(s.last_flush_pos_-2)&mask] } s.commands = s.commands[:0] s.num_literals_ = 0 /* Save the state of the distance cache in case we need to restore it for emitting an uncompressed block. */ copy(s.saved_dist_cache_[:], s.dist_cache_[:]) s.writeOutput(storage[:storage_ix>>3]) return true } } /* Dumps remaining output bits and metadata header to |header|. Returns number of produced bytes. REQUIRED: |header| should be 8-byte aligned and at least 16 bytes long. REQUIRED: |block_size| <= (1 << 24). */ func writeMetadataHeader(s *Writer, block_size uint, header []byte) uint { storage_ix := uint(s.last_bytes_bits_) header[0] = byte(s.last_bytes_) header[1] = byte(s.last_bytes_ >> 8) s.last_bytes_ = 0 s.last_bytes_bits_ = 0 writeBits(1, 0, &storage_ix, header) writeBits(2, 3, &storage_ix, header) writeBits(1, 0, &storage_ix, header) if block_size == 0 { writeBits(2, 0, &storage_ix, header) } else { var nbits uint32 if block_size == 1 { nbits = 0 } else { nbits = log2FloorNonZero(uint(uint32(block_size)-1)) + 1 } var nbytes uint32 = (nbits + 7) / 8 writeBits(2, uint64(nbytes), &storage_ix, header) writeBits(uint(8*nbytes), uint64(block_size)-1, &storage_ix, header) } return (storage_ix + 7) >> 3 } func injectBytePaddingBlock(s *Writer) { var seal uint32 = uint32(s.last_bytes_) var seal_bits uint = uint(s.last_bytes_bits_) s.last_bytes_ = 0 s.last_bytes_bits_ = 0 /* is_last = 0, data_nibbles = 11, reserved = 0, meta_nibbles = 00 */ seal |= 0x6 << seal_bits seal_bits += 6 destination := s.tiny_buf_.u8[:] destination[0] = byte(seal) if seal_bits > 8 { destination[1] = byte(seal >> 8) } if seal_bits > 16 { destination[2] = byte(seal >> 16) } s.writeOutput(destination[:(seal_bits+7)>>3]) } func checkFlushComplete(s *Writer) { if s.stream_state_ == streamFlushRequested && s.err == nil { s.stream_state_ = streamProcessing } } func encoderCompressStreamFast(s *Writer, op int, available_in *uint, next_in *[]byte) bool { var block_size_limit uint = uint(1) << s.params.lgwin var buf_size uint = brotli_min_size_t(kCompressFragmentTwoPassBlockSize, brotli_min_size_t(*available_in, block_size_limit)) var command_buf []uint32 = nil var literal_buf []byte = nil if s.params.quality != fastOnePassCompressionQuality && s.params.quality != fastTwoPassCompressionQuality { return false } if s.params.quality == fastTwoPassCompressionQuality { if s.command_buf_ == nil || cap(s.command_buf_) < int(buf_size) { s.command_buf_ = make([]uint32, buf_size) s.literal_buf_ = make([]byte, buf_size) } else { s.command_buf_ = s.command_buf_[:buf_size] s.literal_buf_ = s.literal_buf_[:buf_size] } command_buf = s.command_buf_ literal_buf = s.literal_buf_ } for { if s.stream_state_ == streamFlushRequested && s.last_bytes_bits_ != 0 { injectBytePaddingBlock(s) continue } /* Compress block only when stream is not finished, there is no pending flush request, and there is either additional input or pending operation. */ if s.stream_state_ == streamProcessing && (*available_in != 0 || op != int(operationProcess)) { var block_size uint = brotli_min_size_t(block_size_limit, *available_in) var is_last bool = (*available_in == block_size) && (op == int(operationFinish)) var force_flush bool = (*available_in == block_size) && (op == int(operationFlush)) var max_out_size uint = 2*block_size + 503 var storage []byte = nil var storage_ix uint = uint(s.last_bytes_bits_) var table_size uint var table []int if force_flush && block_size == 0 { s.stream_state_ = streamFlushRequested continue } storage = s.getStorage(int(max_out_size)) storage[0] = byte(s.last_bytes_) storage[1] = byte(s.last_bytes_ >> 8) table = getHashTable(s, s.params.quality, block_size, &table_size) if s.params.quality == fastOnePassCompressionQuality { compressFragmentFast(*next_in, block_size, is_last, table, table_size, s.cmd_depths_[:], s.cmd_bits_[:], &s.cmd_code_numbits_, s.cmd_code_[:], &storage_ix, storage) } else { compressFragmentTwoPass(*next_in, block_size, is_last, command_buf, literal_buf, table, table_size, &storage_ix, storage) } *next_in = (*next_in)[block_size:] *available_in -= block_size var out_bytes uint = storage_ix >> 3 s.writeOutput(storage[:out_bytes]) s.last_bytes_ = uint16(storage[storage_ix>>3]) s.last_bytes_bits_ = byte(storage_ix & 7) if force_flush { s.stream_state_ = streamFlushRequested } if is_last { s.stream_state_ = streamFinished } continue } break } checkFlushComplete(s) return true } func processMetadata(s *Writer, available_in *uint, next_in *[]byte) bool { if *available_in > 1<<24 { return false } /* Switch to metadata block workflow, if required. */ if s.stream_state_ == streamProcessing { s.remaining_metadata_bytes_ = uint32(*available_in) s.stream_state_ = streamMetadataHead } if s.stream_state_ != streamMetadataHead && s.stream_state_ != streamMetadataBody { return false } for { if s.stream_state_ == streamFlushRequested && s.last_bytes_bits_ != 0 { injectBytePaddingBlock(s) continue } if s.input_pos_ != s.last_flush_pos_ { var result bool = encodeData(s, false, true) if !result { return false } continue } if s.stream_state_ == streamMetadataHead { n := writeMetadataHeader(s, uint(s.remaining_metadata_bytes_), s.tiny_buf_.u8[:]) s.writeOutput(s.tiny_buf_.u8[:n]) s.stream_state_ = streamMetadataBody continue } else { /* Exit workflow only when there is no more input and no more output. Otherwise client may continue producing empty metadata blocks. */ if s.remaining_metadata_bytes_ == 0 { s.remaining_metadata_bytes_ = math.MaxUint32 s.stream_state_ = streamProcessing break } /* This guarantees progress in "TakeOutput" workflow. */ var c uint32 = brotli_min_uint32_t(s.remaining_metadata_bytes_, 16) copy(s.tiny_buf_.u8[:], (*next_in)[:c]) *next_in = (*next_in)[c:] *available_in -= uint(c) s.remaining_metadata_bytes_ -= c s.writeOutput(s.tiny_buf_.u8[:c]) continue } } return true } func updateSizeHint(s *Writer, available_in uint) { if s.params.size_hint == 0 { var delta uint64 = unprocessedInputSize(s) var tail uint64 = uint64(available_in) var limit uint32 = 1 << 30 var total uint32 if (delta >= uint64(limit)) || (tail >= uint64(limit)) || ((delta + tail) >= uint64(limit)) { total = limit } else { total = uint32(delta + tail) } s.params.size_hint = uint(total) } } func encoderCompressStream(s *Writer, op int, available_in *uint, next_in *[]byte) bool { if !ensureInitialized(s) { return false } /* Unfinished metadata block; check requirements. */ if s.remaining_metadata_bytes_ != math.MaxUint32 { if uint32(*available_in) != s.remaining_metadata_bytes_ { return false } if op != int(operationEmitMetadata) { return false } } if op == int(operationEmitMetadata) { updateSizeHint(s, 0) /* First data metablock might be emitted here. */ return processMetadata(s, available_in, next_in) } if s.stream_state_ == streamMetadataHead || s.stream_state_ == streamMetadataBody { return false } if s.stream_state_ != streamProcessing && *available_in != 0 { return false } if s.params.quality == fastOnePassCompressionQuality || s.params.quality == fastTwoPassCompressionQuality { return encoderCompressStreamFast(s, op, available_in, next_in) } for { var remaining_block_size uint = remainingInputBlockSize(s) if remaining_block_size != 0 && *available_in != 0 { var copy_input_size uint = brotli_min_size_t(remaining_block_size, *available_in) copyInputToRingBuffer(s, copy_input_size, *next_in) *next_in = (*next_in)[copy_input_size:] *available_in -= copy_input_size continue } if s.stream_state_ == streamFlushRequested && s.last_bytes_bits_ != 0 { injectBytePaddingBlock(s) continue } /* Compress data only when stream is not finished and there is no pending flush request. */ if s.stream_state_ == streamProcessing { if remaining_block_size == 0 || op != int(operationProcess) { var is_last bool = ((*available_in == 0) && op == int(operationFinish)) var force_flush bool = ((*available_in == 0) && op == int(operationFlush)) var result bool updateSizeHint(s, *available_in) result = encodeData(s, is_last, force_flush) if !result { return false } if force_flush { s.stream_state_ = streamFlushRequested } if is_last { s.stream_state_ = streamFinished } continue } } break } checkFlushComplete(s) return true } func (w *Writer) writeOutput(data []byte) { if w.err != nil { return } _, w.err = w.dst.Write(data) if w.err == nil { checkFlushComplete(w) } } brotli-1.0.4/encoder_dict.go000066400000000000000000000011651412267201500157630ustar00rootroot00000000000000package brotli /* Dictionary data (words and transforms) for 1 possible context */ type encoderDictionary struct { words *dictionary cutoffTransformsCount uint32 cutoffTransforms uint64 hash_table []uint16 buckets []uint16 dict_words []dictWord } func initEncoderDictionary(dict *encoderDictionary) { dict.words = getDictionary() dict.hash_table = kStaticDictionaryHash[:] dict.buckets = kStaticDictionaryBuckets[:] dict.dict_words = kStaticDictionaryWords[:] dict.cutoffTransformsCount = kCutoffTransformsCount dict.cutoffTransforms = kCutoffTransforms } brotli-1.0.4/entropy_encode.go000066400000000000000000000333521412267201500163610ustar00rootroot00000000000000package brotli import "math" /* Copyright 2010 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* Entropy encoding (Huffman) utilities. */ /* A node of a Huffman tree. */ type huffmanTree struct { total_count_ uint32 index_left_ int16 index_right_or_value_ int16 } func initHuffmanTree(self *huffmanTree, count uint32, left int16, right int16) { self.total_count_ = count self.index_left_ = left self.index_right_or_value_ = right } /* Input size optimized Shell sort. */ type huffmanTreeComparator func(huffmanTree, huffmanTree) bool var sortHuffmanTreeItems_gaps = []uint{132, 57, 23, 10, 4, 1} func sortHuffmanTreeItems(items []huffmanTree, n uint, comparator huffmanTreeComparator) { if n < 13 { /* Insertion sort. */ var i uint for i = 1; i < n; i++ { var tmp huffmanTree = items[i] var k uint = i var j uint = i - 1 for comparator(tmp, items[j]) { items[k] = items[j] k = j if j == 0 { break } j-- } items[k] = tmp } return } else { var g int if n < 57 { g = 2 } else { g = 0 } for ; g < 6; g++ { var gap uint = sortHuffmanTreeItems_gaps[g] var i uint for i = gap; i < n; i++ { var j uint = i var tmp huffmanTree = items[i] for ; j >= gap && comparator(tmp, items[j-gap]); j -= gap { items[j] = items[j-gap] } items[j] = tmp } } } } /* Returns 1 if assignment of depths succeeded, otherwise 0. */ func setDepth(p0 int, pool []huffmanTree, depth []byte, max_depth int) bool { var stack [16]int var level int = 0 var p int = p0 assert(max_depth <= 15) stack[0] = -1 for { if pool[p].index_left_ >= 0 { level++ if level > max_depth { return false } stack[level] = int(pool[p].index_right_or_value_) p = int(pool[p].index_left_) continue } else { depth[pool[p].index_right_or_value_] = byte(level) } for level >= 0 && stack[level] == -1 { level-- } if level < 0 { return true } p = stack[level] stack[level] = -1 } } /* Sort the root nodes, least popular first. */ func sortHuffmanTree(v0 huffmanTree, v1 huffmanTree) bool { if v0.total_count_ != v1.total_count_ { return v0.total_count_ < v1.total_count_ } return v0.index_right_or_value_ > v1.index_right_or_value_ } /* This function will create a Huffman tree. The catch here is that the tree cannot be arbitrarily deep. Brotli specifies a maximum depth of 15 bits for "code trees" and 7 bits for "code length code trees." count_limit is the value that is to be faked as the minimum value and this minimum value is raised until the tree matches the maximum length requirement. This algorithm is not of excellent performance for very long data blocks, especially when population counts are longer than 2**tree_limit, but we are not planning to use this with extremely long blocks. See http://en.wikipedia.org/wiki/Huffman_coding */ func createHuffmanTree(data []uint32, length uint, tree_limit int, tree []huffmanTree, depth []byte) { var count_limit uint32 var sentinel huffmanTree initHuffmanTree(&sentinel, math.MaxUint32, -1, -1) /* For block sizes below 64 kB, we never need to do a second iteration of this loop. Probably all of our block sizes will be smaller than that, so this loop is mostly of academic interest. If we actually would need this, we would be better off with the Katajainen algorithm. */ for count_limit = 1; ; count_limit *= 2 { var n uint = 0 var i uint var j uint var k uint for i = length; i != 0; { i-- if data[i] != 0 { var count uint32 = brotli_max_uint32_t(data[i], count_limit) initHuffmanTree(&tree[n], count, -1, int16(i)) n++ } } if n == 1 { depth[tree[0].index_right_or_value_] = 1 /* Only one element. */ break } sortHuffmanTreeItems(tree, n, huffmanTreeComparator(sortHuffmanTree)) /* The nodes are: [0, n): the sorted leaf nodes that we start with. [n]: we add a sentinel here. [n + 1, 2n): new parent nodes are added here, starting from (n+1). These are naturally in ascending order. [2n]: we add a sentinel at the end as well. There will be (2n+1) elements at the end. */ tree[n] = sentinel tree[n+1] = sentinel i = 0 /* Points to the next leaf node. */ j = n + 1 /* Points to the next non-leaf node. */ for k = n - 1; k != 0; k-- { var left uint var right uint if tree[i].total_count_ <= tree[j].total_count_ { left = i i++ } else { left = j j++ } if tree[i].total_count_ <= tree[j].total_count_ { right = i i++ } else { right = j j++ } { /* The sentinel node becomes the parent node. */ var j_end uint = 2*n - k tree[j_end].total_count_ = tree[left].total_count_ + tree[right].total_count_ tree[j_end].index_left_ = int16(left) tree[j_end].index_right_or_value_ = int16(right) /* Add back the last sentinel node. */ tree[j_end+1] = sentinel } } if setDepth(int(2*n-1), tree[0:], depth, tree_limit) { /* We need to pack the Huffman tree in tree_limit bits. If this was not successful, add fake entities to the lowest values and retry. */ break } } } func reverse(v []byte, start uint, end uint) { end-- for start < end { var tmp byte = v[start] v[start] = v[end] v[end] = tmp start++ end-- } } func writeHuffmanTreeRepetitions(previous_value byte, value byte, repetitions uint, tree_size *uint, tree []byte, extra_bits_data []byte) { assert(repetitions > 0) if previous_value != value { tree[*tree_size] = value extra_bits_data[*tree_size] = 0 (*tree_size)++ repetitions-- } if repetitions == 7 { tree[*tree_size] = value extra_bits_data[*tree_size] = 0 (*tree_size)++ repetitions-- } if repetitions < 3 { var i uint for i = 0; i < repetitions; i++ { tree[*tree_size] = value extra_bits_data[*tree_size] = 0 (*tree_size)++ } } else { var start uint = *tree_size repetitions -= 3 for { tree[*tree_size] = repeatPreviousCodeLength extra_bits_data[*tree_size] = byte(repetitions & 0x3) (*tree_size)++ repetitions >>= 2 if repetitions == 0 { break } repetitions-- } reverse(tree, start, *tree_size) reverse(extra_bits_data, start, *tree_size) } } func writeHuffmanTreeRepetitionsZeros(repetitions uint, tree_size *uint, tree []byte, extra_bits_data []byte) { if repetitions == 11 { tree[*tree_size] = 0 extra_bits_data[*tree_size] = 0 (*tree_size)++ repetitions-- } if repetitions < 3 { var i uint for i = 0; i < repetitions; i++ { tree[*tree_size] = 0 extra_bits_data[*tree_size] = 0 (*tree_size)++ } } else { var start uint = *tree_size repetitions -= 3 for { tree[*tree_size] = repeatZeroCodeLength extra_bits_data[*tree_size] = byte(repetitions & 0x7) (*tree_size)++ repetitions >>= 3 if repetitions == 0 { break } repetitions-- } reverse(tree, start, *tree_size) reverse(extra_bits_data, start, *tree_size) } } /* Change the population counts in a way that the consequent Huffman tree compression, especially its RLE-part will be more likely to compress this data more efficiently. length contains the size of the histogram. counts contains the population counts. good_for_rle is a buffer of at least length size */ func optimizeHuffmanCountsForRLE(length uint, counts []uint32, good_for_rle []byte) { var nonzero_count uint = 0 var stride uint var limit uint var sum uint var streak_limit uint = 1240 var i uint /* Let's make the Huffman code more compatible with RLE encoding. */ for i = 0; i < length; i++ { if counts[i] != 0 { nonzero_count++ } } if nonzero_count < 16 { return } for length != 0 && counts[length-1] == 0 { length-- } if length == 0 { return /* All zeros. */ } /* Now counts[0..length - 1] does not have trailing zeros. */ { var nonzeros uint = 0 var smallest_nonzero uint32 = 1 << 30 for i = 0; i < length; i++ { if counts[i] != 0 { nonzeros++ if smallest_nonzero > counts[i] { smallest_nonzero = counts[i] } } } if nonzeros < 5 { /* Small histogram will model it well. */ return } if smallest_nonzero < 4 { var zeros uint = length - nonzeros if zeros < 6 { for i = 1; i < length-1; i++ { if counts[i-1] != 0 && counts[i] == 0 && counts[i+1] != 0 { counts[i] = 1 } } } } if nonzeros < 28 { return } } /* 2) Let's mark all population counts that already can be encoded with an RLE code. */ for i := 0; i < int(length); i++ { good_for_rle[i] = 0 } { var symbol uint32 = counts[0] /* Let's not spoil any of the existing good RLE codes. Mark any seq of 0's that is longer as 5 as a good_for_rle. Mark any seq of non-0's that is longer as 7 as a good_for_rle. */ var step uint = 0 for i = 0; i <= length; i++ { if i == length || counts[i] != symbol { if (symbol == 0 && step >= 5) || (symbol != 0 && step >= 7) { var k uint for k = 0; k < step; k++ { good_for_rle[i-k-1] = 1 } } step = 1 if i != length { symbol = counts[i] } } else { step++ } } } /* 3) Let's replace those population counts that lead to more RLE codes. Math here is in 24.8 fixed point representation. */ stride = 0 limit = uint(256*(counts[0]+counts[1]+counts[2])/3 + 420) sum = 0 for i = 0; i <= length; i++ { if i == length || good_for_rle[i] != 0 || (i != 0 && good_for_rle[i-1] != 0) || (256*counts[i]-uint32(limit)+uint32(streak_limit)) >= uint32(2*streak_limit) { if stride >= 4 || (stride >= 3 && sum == 0) { var k uint var count uint = (sum + stride/2) / stride /* The stride must end, collapse what we have, if we have enough (4). */ if count == 0 { count = 1 } if sum == 0 { /* Don't make an all zeros stride to be upgraded to ones. */ count = 0 } for k = 0; k < stride; k++ { /* We don't want to change value at counts[i], that is already belonging to the next stride. Thus - 1. */ counts[i-k-1] = uint32(count) } } stride = 0 sum = 0 if i < length-2 { /* All interesting strides have a count of at least 4, */ /* at least when non-zeros. */ limit = uint(256*(counts[i]+counts[i+1]+counts[i+2])/3 + 420) } else if i < length { limit = uint(256 * counts[i]) } else { limit = 0 } } stride++ if i != length { sum += uint(counts[i]) if stride >= 4 { limit = (256*sum + stride/2) / stride } if stride == 4 { limit += 120 } } } } func decideOverRLEUse(depth []byte, length uint, use_rle_for_non_zero *bool, use_rle_for_zero *bool) { var total_reps_zero uint = 0 var total_reps_non_zero uint = 0 var count_reps_zero uint = 1 var count_reps_non_zero uint = 1 var i uint for i = 0; i < length; { var value byte = depth[i] var reps uint = 1 var k uint for k = i + 1; k < length && depth[k] == value; k++ { reps++ } if reps >= 3 && value == 0 { total_reps_zero += reps count_reps_zero++ } if reps >= 4 && value != 0 { total_reps_non_zero += reps count_reps_non_zero++ } i += reps } *use_rle_for_non_zero = total_reps_non_zero > count_reps_non_zero*2 *use_rle_for_zero = total_reps_zero > count_reps_zero*2 } /* Write a Huffman tree from bit depths into the bit-stream representation of a Huffman tree. The generated Huffman tree is to be compressed once more using a Huffman tree */ func writeHuffmanTree(depth []byte, length uint, tree_size *uint, tree []byte, extra_bits_data []byte) { var previous_value byte = initialRepeatedCodeLength var i uint var use_rle_for_non_zero bool = false var use_rle_for_zero bool = false var new_length uint = length /* Throw away trailing zeros. */ for i = 0; i < length; i++ { if depth[length-i-1] == 0 { new_length-- } else { break } } /* First gather statistics on if it is a good idea to do RLE. */ if length > 50 { /* Find RLE coding for longer codes. Shorter codes seem not to benefit from RLE. */ decideOverRLEUse(depth, new_length, &use_rle_for_non_zero, &use_rle_for_zero) } /* Actual RLE coding. */ for i = 0; i < new_length; { var value byte = depth[i] var reps uint = 1 if (value != 0 && use_rle_for_non_zero) || (value == 0 && use_rle_for_zero) { var k uint for k = i + 1; k < new_length && depth[k] == value; k++ { reps++ } } if value == 0 { writeHuffmanTreeRepetitionsZeros(reps, tree_size, tree, extra_bits_data) } else { writeHuffmanTreeRepetitions(previous_value, value, reps, tree_size, tree, extra_bits_data) previous_value = value } i += reps } } var reverseBits_kLut = [16]uint{ 0x00, 0x08, 0x04, 0x0C, 0x02, 0x0A, 0x06, 0x0E, 0x01, 0x09, 0x05, 0x0D, 0x03, 0x0B, 0x07, 0x0F, } func reverseBits(num_bits uint, bits uint16) uint16 { var retval uint = reverseBits_kLut[bits&0x0F] var i uint for i = 4; i < num_bits; i += 4 { retval <<= 4 bits = uint16(bits >> 4) retval |= reverseBits_kLut[bits&0x0F] } retval >>= ((0 - num_bits) & 0x03) return uint16(retval) } /* 0..15 are values for bits */ const maxHuffmanBits = 16 /* Get the actual bit values for a tree of bit depths. */ func convertBitDepthsToSymbols(depth []byte, len uint, bits []uint16) { var bl_count = [maxHuffmanBits]uint16{0} var next_code [maxHuffmanBits]uint16 var i uint /* In Brotli, all bit depths are [1..15] 0 bit depth means that the symbol does not exist. */ var code int = 0 for i = 0; i < len; i++ { bl_count[depth[i]]++ } bl_count[0] = 0 next_code[0] = 0 for i = 1; i < maxHuffmanBits; i++ { code = (code + int(bl_count[i-1])) << 1 next_code[i] = uint16(code) } for i = 0; i < len; i++ { if depth[i] != 0 { bits[i] = reverseBits(uint(depth[i]), next_code[depth[i]]) next_code[depth[i]]++ } } } brotli-1.0.4/entropy_encode_static.go000066400000000000000000001027051412267201500177270ustar00rootroot00000000000000package brotli var kCodeLengthDepth = [18]byte{4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 0, 4, 4} var kStaticCommandCodeDepth = [numCommandSymbols]byte{ 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, } var kStaticDistanceCodeDepth = [64]byte{ 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, } var kCodeLengthBits = [18]uint32{0, 8, 4, 12, 2, 10, 6, 14, 1, 9, 5, 13, 3, 15, 31, 0, 11, 7} func storeStaticCodeLengthCode(storage_ix *uint, storage []byte) { writeBits(40, 0x0000FF55555554, storage_ix, storage) } var kZeroRepsBits = [numCommandSymbols]uint64{ 0x00000000, 0x00000000, 0x00000000, 0x00000007, 0x00000017, 0x00000027, 0x00000037, 0x00000047, 0x00000057, 0x00000067, 0x00000077, 0x00000770, 0x00000b87, 0x00001387, 0x00001b87, 0x00002387, 0x00002b87, 0x00003387, 0x00003b87, 0x00000397, 0x00000b97, 0x00001397, 0x00001b97, 0x00002397, 0x00002b97, 0x00003397, 0x00003b97, 0x000003a7, 0x00000ba7, 0x000013a7, 0x00001ba7, 0x000023a7, 0x00002ba7, 0x000033a7, 0x00003ba7, 0x000003b7, 0x00000bb7, 0x000013b7, 0x00001bb7, 0x000023b7, 0x00002bb7, 0x000033b7, 0x00003bb7, 0x000003c7, 0x00000bc7, 0x000013c7, 0x00001bc7, 0x000023c7, 0x00002bc7, 0x000033c7, 0x00003bc7, 0x000003d7, 0x00000bd7, 0x000013d7, 0x00001bd7, 0x000023d7, 0x00002bd7, 0x000033d7, 0x00003bd7, 0x000003e7, 0x00000be7, 0x000013e7, 0x00001be7, 0x000023e7, 0x00002be7, 0x000033e7, 0x00003be7, 0x000003f7, 0x00000bf7, 0x000013f7, 0x00001bf7, 0x000023f7, 0x00002bf7, 0x000033f7, 0x00003bf7, 0x0001c387, 0x0005c387, 0x0009c387, 0x000dc387, 0x0011c387, 0x0015c387, 0x0019c387, 0x001dc387, 0x0001cb87, 0x0005cb87, 0x0009cb87, 0x000dcb87, 0x0011cb87, 0x0015cb87, 0x0019cb87, 0x001dcb87, 0x0001d387, 0x0005d387, 0x0009d387, 0x000dd387, 0x0011d387, 0x0015d387, 0x0019d387, 0x001dd387, 0x0001db87, 0x0005db87, 0x0009db87, 0x000ddb87, 0x0011db87, 0x0015db87, 0x0019db87, 0x001ddb87, 0x0001e387, 0x0005e387, 0x0009e387, 0x000de387, 0x0011e387, 0x0015e387, 0x0019e387, 0x001de387, 0x0001eb87, 0x0005eb87, 0x0009eb87, 0x000deb87, 0x0011eb87, 0x0015eb87, 0x0019eb87, 0x001deb87, 0x0001f387, 0x0005f387, 0x0009f387, 0x000df387, 0x0011f387, 0x0015f387, 0x0019f387, 0x001df387, 0x0001fb87, 0x0005fb87, 0x0009fb87, 0x000dfb87, 0x0011fb87, 0x0015fb87, 0x0019fb87, 0x001dfb87, 0x0001c397, 0x0005c397, 0x0009c397, 0x000dc397, 0x0011c397, 0x0015c397, 0x0019c397, 0x001dc397, 0x0001cb97, 0x0005cb97, 0x0009cb97, 0x000dcb97, 0x0011cb97, 0x0015cb97, 0x0019cb97, 0x001dcb97, 0x0001d397, 0x0005d397, 0x0009d397, 0x000dd397, 0x0011d397, 0x0015d397, 0x0019d397, 0x001dd397, 0x0001db97, 0x0005db97, 0x0009db97, 0x000ddb97, 0x0011db97, 0x0015db97, 0x0019db97, 0x001ddb97, 0x0001e397, 0x0005e397, 0x0009e397, 0x000de397, 0x0011e397, 0x0015e397, 0x0019e397, 0x001de397, 0x0001eb97, 0x0005eb97, 0x0009eb97, 0x000deb97, 0x0011eb97, 0x0015eb97, 0x0019eb97, 0x001deb97, 0x0001f397, 0x0005f397, 0x0009f397, 0x000df397, 0x0011f397, 0x0015f397, 0x0019f397, 0x001df397, 0x0001fb97, 0x0005fb97, 0x0009fb97, 0x000dfb97, 0x0011fb97, 0x0015fb97, 0x0019fb97, 0x001dfb97, 0x0001c3a7, 0x0005c3a7, 0x0009c3a7, 0x000dc3a7, 0x0011c3a7, 0x0015c3a7, 0x0019c3a7, 0x001dc3a7, 0x0001cba7, 0x0005cba7, 0x0009cba7, 0x000dcba7, 0x0011cba7, 0x0015cba7, 0x0019cba7, 0x001dcba7, 0x0001d3a7, 0x0005d3a7, 0x0009d3a7, 0x000dd3a7, 0x0011d3a7, 0x0015d3a7, 0x0019d3a7, 0x001dd3a7, 0x0001dba7, 0x0005dba7, 0x0009dba7, 0x000ddba7, 0x0011dba7, 0x0015dba7, 0x0019dba7, 0x001ddba7, 0x0001e3a7, 0x0005e3a7, 0x0009e3a7, 0x000de3a7, 0x0011e3a7, 0x0015e3a7, 0x0019e3a7, 0x001de3a7, 0x0001eba7, 0x0005eba7, 0x0009eba7, 0x000deba7, 0x0011eba7, 0x0015eba7, 0x0019eba7, 0x001deba7, 0x0001f3a7, 0x0005f3a7, 0x0009f3a7, 0x000df3a7, 0x0011f3a7, 0x0015f3a7, 0x0019f3a7, 0x001df3a7, 0x0001fba7, 0x0005fba7, 0x0009fba7, 0x000dfba7, 0x0011fba7, 0x0015fba7, 0x0019fba7, 0x001dfba7, 0x0001c3b7, 0x0005c3b7, 0x0009c3b7, 0x000dc3b7, 0x0011c3b7, 0x0015c3b7, 0x0019c3b7, 0x001dc3b7, 0x0001cbb7, 0x0005cbb7, 0x0009cbb7, 0x000dcbb7, 0x0011cbb7, 0x0015cbb7, 0x0019cbb7, 0x001dcbb7, 0x0001d3b7, 0x0005d3b7, 0x0009d3b7, 0x000dd3b7, 0x0011d3b7, 0x0015d3b7, 0x0019d3b7, 0x001dd3b7, 0x0001dbb7, 0x0005dbb7, 0x0009dbb7, 0x000ddbb7, 0x0011dbb7, 0x0015dbb7, 0x0019dbb7, 0x001ddbb7, 0x0001e3b7, 0x0005e3b7, 0x0009e3b7, 0x000de3b7, 0x0011e3b7, 0x0015e3b7, 0x0019e3b7, 0x001de3b7, 0x0001ebb7, 0x0005ebb7, 0x0009ebb7, 0x000debb7, 0x0011ebb7, 0x0015ebb7, 0x0019ebb7, 0x001debb7, 0x0001f3b7, 0x0005f3b7, 0x0009f3b7, 0x000df3b7, 0x0011f3b7, 0x0015f3b7, 0x0019f3b7, 0x001df3b7, 0x0001fbb7, 0x0005fbb7, 0x0009fbb7, 0x000dfbb7, 0x0011fbb7, 0x0015fbb7, 0x0019fbb7, 0x001dfbb7, 0x0001c3c7, 0x0005c3c7, 0x0009c3c7, 0x000dc3c7, 0x0011c3c7, 0x0015c3c7, 0x0019c3c7, 0x001dc3c7, 0x0001cbc7, 0x0005cbc7, 0x0009cbc7, 0x000dcbc7, 0x0011cbc7, 0x0015cbc7, 0x0019cbc7, 0x001dcbc7, 0x0001d3c7, 0x0005d3c7, 0x0009d3c7, 0x000dd3c7, 0x0011d3c7, 0x0015d3c7, 0x0019d3c7, 0x001dd3c7, 0x0001dbc7, 0x0005dbc7, 0x0009dbc7, 0x000ddbc7, 0x0011dbc7, 0x0015dbc7, 0x0019dbc7, 0x001ddbc7, 0x0001e3c7, 0x0005e3c7, 0x0009e3c7, 0x000de3c7, 0x0011e3c7, 0x0015e3c7, 0x0019e3c7, 0x001de3c7, 0x0001ebc7, 0x0005ebc7, 0x0009ebc7, 0x000debc7, 0x0011ebc7, 0x0015ebc7, 0x0019ebc7, 0x001debc7, 0x0001f3c7, 0x0005f3c7, 0x0009f3c7, 0x000df3c7, 0x0011f3c7, 0x0015f3c7, 0x0019f3c7, 0x001df3c7, 0x0001fbc7, 0x0005fbc7, 0x0009fbc7, 0x000dfbc7, 0x0011fbc7, 0x0015fbc7, 0x0019fbc7, 0x001dfbc7, 0x0001c3d7, 0x0005c3d7, 0x0009c3d7, 0x000dc3d7, 0x0011c3d7, 0x0015c3d7, 0x0019c3d7, 0x001dc3d7, 0x0001cbd7, 0x0005cbd7, 0x0009cbd7, 0x000dcbd7, 0x0011cbd7, 0x0015cbd7, 0x0019cbd7, 0x001dcbd7, 0x0001d3d7, 0x0005d3d7, 0x0009d3d7, 0x000dd3d7, 0x0011d3d7, 0x0015d3d7, 0x0019d3d7, 0x001dd3d7, 0x0001dbd7, 0x0005dbd7, 0x0009dbd7, 0x000ddbd7, 0x0011dbd7, 0x0015dbd7, 0x0019dbd7, 0x001ddbd7, 0x0001e3d7, 0x0005e3d7, 0x0009e3d7, 0x000de3d7, 0x0011e3d7, 0x0015e3d7, 0x0019e3d7, 0x001de3d7, 0x0001ebd7, 0x0005ebd7, 0x0009ebd7, 0x000debd7, 0x0011ebd7, 0x0015ebd7, 0x0019ebd7, 0x001debd7, 0x0001f3d7, 0x0005f3d7, 0x0009f3d7, 0x000df3d7, 0x0011f3d7, 0x0015f3d7, 0x0019f3d7, 0x001df3d7, 0x0001fbd7, 0x0005fbd7, 0x0009fbd7, 0x000dfbd7, 0x0011fbd7, 0x0015fbd7, 0x0019fbd7, 0x001dfbd7, 0x0001c3e7, 0x0005c3e7, 0x0009c3e7, 0x000dc3e7, 0x0011c3e7, 0x0015c3e7, 0x0019c3e7, 0x001dc3e7, 0x0001cbe7, 0x0005cbe7, 0x0009cbe7, 0x000dcbe7, 0x0011cbe7, 0x0015cbe7, 0x0019cbe7, 0x001dcbe7, 0x0001d3e7, 0x0005d3e7, 0x0009d3e7, 0x000dd3e7, 0x0011d3e7, 0x0015d3e7, 0x0019d3e7, 0x001dd3e7, 0x0001dbe7, 0x0005dbe7, 0x0009dbe7, 0x000ddbe7, 0x0011dbe7, 0x0015dbe7, 0x0019dbe7, 0x001ddbe7, 0x0001e3e7, 0x0005e3e7, 0x0009e3e7, 0x000de3e7, 0x0011e3e7, 0x0015e3e7, 0x0019e3e7, 0x001de3e7, 0x0001ebe7, 0x0005ebe7, 0x0009ebe7, 0x000debe7, 0x0011ebe7, 0x0015ebe7, 0x0019ebe7, 0x001debe7, 0x0001f3e7, 0x0005f3e7, 0x0009f3e7, 0x000df3e7, 0x0011f3e7, 0x0015f3e7, 0x0019f3e7, 0x001df3e7, 0x0001fbe7, 0x0005fbe7, 0x0009fbe7, 0x000dfbe7, 0x0011fbe7, 0x0015fbe7, 0x0019fbe7, 0x001dfbe7, 0x0001c3f7, 0x0005c3f7, 0x0009c3f7, 0x000dc3f7, 0x0011c3f7, 0x0015c3f7, 0x0019c3f7, 0x001dc3f7, 0x0001cbf7, 0x0005cbf7, 0x0009cbf7, 0x000dcbf7, 0x0011cbf7, 0x0015cbf7, 0x0019cbf7, 0x001dcbf7, 0x0001d3f7, 0x0005d3f7, 0x0009d3f7, 0x000dd3f7, 0x0011d3f7, 0x0015d3f7, 0x0019d3f7, 0x001dd3f7, 0x0001dbf7, 0x0005dbf7, 0x0009dbf7, 0x000ddbf7, 0x0011dbf7, 0x0015dbf7, 0x0019dbf7, 0x001ddbf7, 0x0001e3f7, 0x0005e3f7, 0x0009e3f7, 0x000de3f7, 0x0011e3f7, 0x0015e3f7, 0x0019e3f7, 0x001de3f7, 0x0001ebf7, 0x0005ebf7, 0x0009ebf7, 0x000debf7, 0x0011ebf7, 0x0015ebf7, 0x0019ebf7, 0x001debf7, 0x0001f3f7, 0x0005f3f7, 0x0009f3f7, 0x000df3f7, 0x0011f3f7, 0x0015f3f7, 0x0019f3f7, 0x001df3f7, 0x0001fbf7, 0x0005fbf7, 0x0009fbf7, 0x000dfbf7, 0x0011fbf7, 0x0015fbf7, 0x0019fbf7, 0x001dfbf7, 0x00e1c387, 0x02e1c387, 0x04e1c387, 0x06e1c387, 0x08e1c387, 0x0ae1c387, 0x0ce1c387, 0x0ee1c387, 0x00e5c387, 0x02e5c387, 0x04e5c387, 0x06e5c387, 0x08e5c387, 0x0ae5c387, 0x0ce5c387, 0x0ee5c387, 0x00e9c387, 0x02e9c387, 0x04e9c387, 0x06e9c387, 0x08e9c387, 0x0ae9c387, 0x0ce9c387, 0x0ee9c387, 0x00edc387, 0x02edc387, 0x04edc387, 0x06edc387, 0x08edc387, 0x0aedc387, 0x0cedc387, 0x0eedc387, 0x00f1c387, 0x02f1c387, 0x04f1c387, 0x06f1c387, 0x08f1c387, 0x0af1c387, 0x0cf1c387, 0x0ef1c387, 0x00f5c387, 0x02f5c387, 0x04f5c387, 0x06f5c387, 0x08f5c387, 0x0af5c387, 0x0cf5c387, 0x0ef5c387, 0x00f9c387, 0x02f9c387, 0x04f9c387, 0x06f9c387, 0x08f9c387, 0x0af9c387, 0x0cf9c387, 0x0ef9c387, 0x00fdc387, 0x02fdc387, 0x04fdc387, 0x06fdc387, 0x08fdc387, 0x0afdc387, 0x0cfdc387, 0x0efdc387, 0x00e1cb87, 0x02e1cb87, 0x04e1cb87, 0x06e1cb87, 0x08e1cb87, 0x0ae1cb87, 0x0ce1cb87, 0x0ee1cb87, 0x00e5cb87, 0x02e5cb87, 0x04e5cb87, 0x06e5cb87, 0x08e5cb87, 0x0ae5cb87, 0x0ce5cb87, 0x0ee5cb87, 0x00e9cb87, 0x02e9cb87, 0x04e9cb87, 0x06e9cb87, 0x08e9cb87, 0x0ae9cb87, 0x0ce9cb87, 0x0ee9cb87, 0x00edcb87, 0x02edcb87, 0x04edcb87, 0x06edcb87, 0x08edcb87, 0x0aedcb87, 0x0cedcb87, 0x0eedcb87, 0x00f1cb87, 0x02f1cb87, 0x04f1cb87, 0x06f1cb87, 0x08f1cb87, 0x0af1cb87, 0x0cf1cb87, 0x0ef1cb87, 0x00f5cb87, 0x02f5cb87, 0x04f5cb87, 0x06f5cb87, 0x08f5cb87, 0x0af5cb87, 0x0cf5cb87, 0x0ef5cb87, 0x00f9cb87, 0x02f9cb87, 0x04f9cb87, 0x06f9cb87, 0x08f9cb87, } var kZeroRepsDepth = [numCommandSymbols]uint32{ 0, 4, 8, 7, 7, 7, 7, 7, 7, 7, 7, 11, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, } var kNonZeroRepsBits = [numCommandSymbols]uint64{ 0x0000000b, 0x0000001b, 0x0000002b, 0x0000003b, 0x000002cb, 0x000006cb, 0x00000acb, 0x00000ecb, 0x000002db, 0x000006db, 0x00000adb, 0x00000edb, 0x000002eb, 0x000006eb, 0x00000aeb, 0x00000eeb, 0x000002fb, 0x000006fb, 0x00000afb, 0x00000efb, 0x0000b2cb, 0x0001b2cb, 0x0002b2cb, 0x0003b2cb, 0x0000b6cb, 0x0001b6cb, 0x0002b6cb, 0x0003b6cb, 0x0000bacb, 0x0001bacb, 0x0002bacb, 0x0003bacb, 0x0000becb, 0x0001becb, 0x0002becb, 0x0003becb, 0x0000b2db, 0x0001b2db, 0x0002b2db, 0x0003b2db, 0x0000b6db, 0x0001b6db, 0x0002b6db, 0x0003b6db, 0x0000badb, 0x0001badb, 0x0002badb, 0x0003badb, 0x0000bedb, 0x0001bedb, 0x0002bedb, 0x0003bedb, 0x0000b2eb, 0x0001b2eb, 0x0002b2eb, 0x0003b2eb, 0x0000b6eb, 0x0001b6eb, 0x0002b6eb, 0x0003b6eb, 0x0000baeb, 0x0001baeb, 0x0002baeb, 0x0003baeb, 0x0000beeb, 0x0001beeb, 0x0002beeb, 0x0003beeb, 0x0000b2fb, 0x0001b2fb, 0x0002b2fb, 0x0003b2fb, 0x0000b6fb, 0x0001b6fb, 0x0002b6fb, 0x0003b6fb, 0x0000bafb, 0x0001bafb, 0x0002bafb, 0x0003bafb, 0x0000befb, 0x0001befb, 0x0002befb, 0x0003befb, 0x002cb2cb, 0x006cb2cb, 0x00acb2cb, 0x00ecb2cb, 0x002db2cb, 0x006db2cb, 0x00adb2cb, 0x00edb2cb, 0x002eb2cb, 0x006eb2cb, 0x00aeb2cb, 0x00eeb2cb, 0x002fb2cb, 0x006fb2cb, 0x00afb2cb, 0x00efb2cb, 0x002cb6cb, 0x006cb6cb, 0x00acb6cb, 0x00ecb6cb, 0x002db6cb, 0x006db6cb, 0x00adb6cb, 0x00edb6cb, 0x002eb6cb, 0x006eb6cb, 0x00aeb6cb, 0x00eeb6cb, 0x002fb6cb, 0x006fb6cb, 0x00afb6cb, 0x00efb6cb, 0x002cbacb, 0x006cbacb, 0x00acbacb, 0x00ecbacb, 0x002dbacb, 0x006dbacb, 0x00adbacb, 0x00edbacb, 0x002ebacb, 0x006ebacb, 0x00aebacb, 0x00eebacb, 0x002fbacb, 0x006fbacb, 0x00afbacb, 0x00efbacb, 0x002cbecb, 0x006cbecb, 0x00acbecb, 0x00ecbecb, 0x002dbecb, 0x006dbecb, 0x00adbecb, 0x00edbecb, 0x002ebecb, 0x006ebecb, 0x00aebecb, 0x00eebecb, 0x002fbecb, 0x006fbecb, 0x00afbecb, 0x00efbecb, 0x002cb2db, 0x006cb2db, 0x00acb2db, 0x00ecb2db, 0x002db2db, 0x006db2db, 0x00adb2db, 0x00edb2db, 0x002eb2db, 0x006eb2db, 0x00aeb2db, 0x00eeb2db, 0x002fb2db, 0x006fb2db, 0x00afb2db, 0x00efb2db, 0x002cb6db, 0x006cb6db, 0x00acb6db, 0x00ecb6db, 0x002db6db, 0x006db6db, 0x00adb6db, 0x00edb6db, 0x002eb6db, 0x006eb6db, 0x00aeb6db, 0x00eeb6db, 0x002fb6db, 0x006fb6db, 0x00afb6db, 0x00efb6db, 0x002cbadb, 0x006cbadb, 0x00acbadb, 0x00ecbadb, 0x002dbadb, 0x006dbadb, 0x00adbadb, 0x00edbadb, 0x002ebadb, 0x006ebadb, 0x00aebadb, 0x00eebadb, 0x002fbadb, 0x006fbadb, 0x00afbadb, 0x00efbadb, 0x002cbedb, 0x006cbedb, 0x00acbedb, 0x00ecbedb, 0x002dbedb, 0x006dbedb, 0x00adbedb, 0x00edbedb, 0x002ebedb, 0x006ebedb, 0x00aebedb, 0x00eebedb, 0x002fbedb, 0x006fbedb, 0x00afbedb, 0x00efbedb, 0x002cb2eb, 0x006cb2eb, 0x00acb2eb, 0x00ecb2eb, 0x002db2eb, 0x006db2eb, 0x00adb2eb, 0x00edb2eb, 0x002eb2eb, 0x006eb2eb, 0x00aeb2eb, 0x00eeb2eb, 0x002fb2eb, 0x006fb2eb, 0x00afb2eb, 0x00efb2eb, 0x002cb6eb, 0x006cb6eb, 0x00acb6eb, 0x00ecb6eb, 0x002db6eb, 0x006db6eb, 0x00adb6eb, 0x00edb6eb, 0x002eb6eb, 0x006eb6eb, 0x00aeb6eb, 0x00eeb6eb, 0x002fb6eb, 0x006fb6eb, 0x00afb6eb, 0x00efb6eb, 0x002cbaeb, 0x006cbaeb, 0x00acbaeb, 0x00ecbaeb, 0x002dbaeb, 0x006dbaeb, 0x00adbaeb, 0x00edbaeb, 0x002ebaeb, 0x006ebaeb, 0x00aebaeb, 0x00eebaeb, 0x002fbaeb, 0x006fbaeb, 0x00afbaeb, 0x00efbaeb, 0x002cbeeb, 0x006cbeeb, 0x00acbeeb, 0x00ecbeeb, 0x002dbeeb, 0x006dbeeb, 0x00adbeeb, 0x00edbeeb, 0x002ebeeb, 0x006ebeeb, 0x00aebeeb, 0x00eebeeb, 0x002fbeeb, 0x006fbeeb, 0x00afbeeb, 0x00efbeeb, 0x002cb2fb, 0x006cb2fb, 0x00acb2fb, 0x00ecb2fb, 0x002db2fb, 0x006db2fb, 0x00adb2fb, 0x00edb2fb, 0x002eb2fb, 0x006eb2fb, 0x00aeb2fb, 0x00eeb2fb, 0x002fb2fb, 0x006fb2fb, 0x00afb2fb, 0x00efb2fb, 0x002cb6fb, 0x006cb6fb, 0x00acb6fb, 0x00ecb6fb, 0x002db6fb, 0x006db6fb, 0x00adb6fb, 0x00edb6fb, 0x002eb6fb, 0x006eb6fb, 0x00aeb6fb, 0x00eeb6fb, 0x002fb6fb, 0x006fb6fb, 0x00afb6fb, 0x00efb6fb, 0x002cbafb, 0x006cbafb, 0x00acbafb, 0x00ecbafb, 0x002dbafb, 0x006dbafb, 0x00adbafb, 0x00edbafb, 0x002ebafb, 0x006ebafb, 0x00aebafb, 0x00eebafb, 0x002fbafb, 0x006fbafb, 0x00afbafb, 0x00efbafb, 0x002cbefb, 0x006cbefb, 0x00acbefb, 0x00ecbefb, 0x002dbefb, 0x006dbefb, 0x00adbefb, 0x00edbefb, 0x002ebefb, 0x006ebefb, 0x00aebefb, 0x00eebefb, 0x002fbefb, 0x006fbefb, 0x00afbefb, 0x00efbefb, 0x0b2cb2cb, 0x1b2cb2cb, 0x2b2cb2cb, 0x3b2cb2cb, 0x0b6cb2cb, 0x1b6cb2cb, 0x2b6cb2cb, 0x3b6cb2cb, 0x0bacb2cb, 0x1bacb2cb, 0x2bacb2cb, 0x3bacb2cb, 0x0becb2cb, 0x1becb2cb, 0x2becb2cb, 0x3becb2cb, 0x0b2db2cb, 0x1b2db2cb, 0x2b2db2cb, 0x3b2db2cb, 0x0b6db2cb, 0x1b6db2cb, 0x2b6db2cb, 0x3b6db2cb, 0x0badb2cb, 0x1badb2cb, 0x2badb2cb, 0x3badb2cb, 0x0bedb2cb, 0x1bedb2cb, 0x2bedb2cb, 0x3bedb2cb, 0x0b2eb2cb, 0x1b2eb2cb, 0x2b2eb2cb, 0x3b2eb2cb, 0x0b6eb2cb, 0x1b6eb2cb, 0x2b6eb2cb, 0x3b6eb2cb, 0x0baeb2cb, 0x1baeb2cb, 0x2baeb2cb, 0x3baeb2cb, 0x0beeb2cb, 0x1beeb2cb, 0x2beeb2cb, 0x3beeb2cb, 0x0b2fb2cb, 0x1b2fb2cb, 0x2b2fb2cb, 0x3b2fb2cb, 0x0b6fb2cb, 0x1b6fb2cb, 0x2b6fb2cb, 0x3b6fb2cb, 0x0bafb2cb, 0x1bafb2cb, 0x2bafb2cb, 0x3bafb2cb, 0x0befb2cb, 0x1befb2cb, 0x2befb2cb, 0x3befb2cb, 0x0b2cb6cb, 0x1b2cb6cb, 0x2b2cb6cb, 0x3b2cb6cb, 0x0b6cb6cb, 0x1b6cb6cb, 0x2b6cb6cb, 0x3b6cb6cb, 0x0bacb6cb, 0x1bacb6cb, 0x2bacb6cb, 0x3bacb6cb, 0x0becb6cb, 0x1becb6cb, 0x2becb6cb, 0x3becb6cb, 0x0b2db6cb, 0x1b2db6cb, 0x2b2db6cb, 0x3b2db6cb, 0x0b6db6cb, 0x1b6db6cb, 0x2b6db6cb, 0x3b6db6cb, 0x0badb6cb, 0x1badb6cb, 0x2badb6cb, 0x3badb6cb, 0x0bedb6cb, 0x1bedb6cb, 0x2bedb6cb, 0x3bedb6cb, 0x0b2eb6cb, 0x1b2eb6cb, 0x2b2eb6cb, 0x3b2eb6cb, 0x0b6eb6cb, 0x1b6eb6cb, 0x2b6eb6cb, 0x3b6eb6cb, 0x0baeb6cb, 0x1baeb6cb, 0x2baeb6cb, 0x3baeb6cb, 0x0beeb6cb, 0x1beeb6cb, 0x2beeb6cb, 0x3beeb6cb, 0x0b2fb6cb, 0x1b2fb6cb, 0x2b2fb6cb, 0x3b2fb6cb, 0x0b6fb6cb, 0x1b6fb6cb, 0x2b6fb6cb, 0x3b6fb6cb, 0x0bafb6cb, 0x1bafb6cb, 0x2bafb6cb, 0x3bafb6cb, 0x0befb6cb, 0x1befb6cb, 0x2befb6cb, 0x3befb6cb, 0x0b2cbacb, 0x1b2cbacb, 0x2b2cbacb, 0x3b2cbacb, 0x0b6cbacb, 0x1b6cbacb, 0x2b6cbacb, 0x3b6cbacb, 0x0bacbacb, 0x1bacbacb, 0x2bacbacb, 0x3bacbacb, 0x0becbacb, 0x1becbacb, 0x2becbacb, 0x3becbacb, 0x0b2dbacb, 0x1b2dbacb, 0x2b2dbacb, 0x3b2dbacb, 0x0b6dbacb, 0x1b6dbacb, 0x2b6dbacb, 0x3b6dbacb, 0x0badbacb, 0x1badbacb, 0x2badbacb, 0x3badbacb, 0x0bedbacb, 0x1bedbacb, 0x2bedbacb, 0x3bedbacb, 0x0b2ebacb, 0x1b2ebacb, 0x2b2ebacb, 0x3b2ebacb, 0x0b6ebacb, 0x1b6ebacb, 0x2b6ebacb, 0x3b6ebacb, 0x0baebacb, 0x1baebacb, 0x2baebacb, 0x3baebacb, 0x0beebacb, 0x1beebacb, 0x2beebacb, 0x3beebacb, 0x0b2fbacb, 0x1b2fbacb, 0x2b2fbacb, 0x3b2fbacb, 0x0b6fbacb, 0x1b6fbacb, 0x2b6fbacb, 0x3b6fbacb, 0x0bafbacb, 0x1bafbacb, 0x2bafbacb, 0x3bafbacb, 0x0befbacb, 0x1befbacb, 0x2befbacb, 0x3befbacb, 0x0b2cbecb, 0x1b2cbecb, 0x2b2cbecb, 0x3b2cbecb, 0x0b6cbecb, 0x1b6cbecb, 0x2b6cbecb, 0x3b6cbecb, 0x0bacbecb, 0x1bacbecb, 0x2bacbecb, 0x3bacbecb, 0x0becbecb, 0x1becbecb, 0x2becbecb, 0x3becbecb, 0x0b2dbecb, 0x1b2dbecb, 0x2b2dbecb, 0x3b2dbecb, 0x0b6dbecb, 0x1b6dbecb, 0x2b6dbecb, 0x3b6dbecb, 0x0badbecb, 0x1badbecb, 0x2badbecb, 0x3badbecb, 0x0bedbecb, 0x1bedbecb, 0x2bedbecb, 0x3bedbecb, 0x0b2ebecb, 0x1b2ebecb, 0x2b2ebecb, 0x3b2ebecb, 0x0b6ebecb, 0x1b6ebecb, 0x2b6ebecb, 0x3b6ebecb, 0x0baebecb, 0x1baebecb, 0x2baebecb, 0x3baebecb, 0x0beebecb, 0x1beebecb, 0x2beebecb, 0x3beebecb, 0x0b2fbecb, 0x1b2fbecb, 0x2b2fbecb, 0x3b2fbecb, 0x0b6fbecb, 0x1b6fbecb, 0x2b6fbecb, 0x3b6fbecb, 0x0bafbecb, 0x1bafbecb, 0x2bafbecb, 0x3bafbecb, 0x0befbecb, 0x1befbecb, 0x2befbecb, 0x3befbecb, 0x0b2cb2db, 0x1b2cb2db, 0x2b2cb2db, 0x3b2cb2db, 0x0b6cb2db, 0x1b6cb2db, 0x2b6cb2db, 0x3b6cb2db, 0x0bacb2db, 0x1bacb2db, 0x2bacb2db, 0x3bacb2db, 0x0becb2db, 0x1becb2db, 0x2becb2db, 0x3becb2db, 0x0b2db2db, 0x1b2db2db, 0x2b2db2db, 0x3b2db2db, 0x0b6db2db, 0x1b6db2db, 0x2b6db2db, 0x3b6db2db, 0x0badb2db, 0x1badb2db, 0x2badb2db, 0x3badb2db, 0x0bedb2db, 0x1bedb2db, 0x2bedb2db, 0x3bedb2db, 0x0b2eb2db, 0x1b2eb2db, 0x2b2eb2db, 0x3b2eb2db, 0x0b6eb2db, 0x1b6eb2db, 0x2b6eb2db, 0x3b6eb2db, 0x0baeb2db, 0x1baeb2db, 0x2baeb2db, 0x3baeb2db, 0x0beeb2db, 0x1beeb2db, 0x2beeb2db, 0x3beeb2db, 0x0b2fb2db, 0x1b2fb2db, 0x2b2fb2db, 0x3b2fb2db, 0x0b6fb2db, 0x1b6fb2db, 0x2b6fb2db, 0x3b6fb2db, 0x0bafb2db, 0x1bafb2db, 0x2bafb2db, 0x3bafb2db, 0x0befb2db, 0x1befb2db, 0x2befb2db, 0x3befb2db, 0x0b2cb6db, 0x1b2cb6db, 0x2b2cb6db, 0x3b2cb6db, 0x0b6cb6db, 0x1b6cb6db, 0x2b6cb6db, 0x3b6cb6db, 0x0bacb6db, 0x1bacb6db, 0x2bacb6db, 0x3bacb6db, 0x0becb6db, 0x1becb6db, 0x2becb6db, 0x3becb6db, 0x0b2db6db, 0x1b2db6db, 0x2b2db6db, 0x3b2db6db, 0x0b6db6db, 0x1b6db6db, 0x2b6db6db, 0x3b6db6db, 0x0badb6db, 0x1badb6db, 0x2badb6db, 0x3badb6db, 0x0bedb6db, 0x1bedb6db, 0x2bedb6db, 0x3bedb6db, 0x0b2eb6db, 0x1b2eb6db, 0x2b2eb6db, 0x3b2eb6db, 0x0b6eb6db, 0x1b6eb6db, 0x2b6eb6db, 0x3b6eb6db, 0x0baeb6db, 0x1baeb6db, 0x2baeb6db, 0x3baeb6db, } var kNonZeroRepsDepth = [numCommandSymbols]uint32{ 6, 6, 6, 6, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, } var kStaticCommandCodeBits = [numCommandSymbols]uint16{ 0, 256, 128, 384, 64, 320, 192, 448, 32, 288, 160, 416, 96, 352, 224, 480, 16, 272, 144, 400, 80, 336, 208, 464, 48, 304, 176, 432, 112, 368, 240, 496, 8, 264, 136, 392, 72, 328, 200, 456, 40, 296, 168, 424, 104, 360, 232, 488, 24, 280, 152, 408, 88, 344, 216, 472, 56, 312, 184, 440, 120, 376, 248, 504, 4, 260, 132, 388, 68, 324, 196, 452, 36, 292, 164, 420, 100, 356, 228, 484, 20, 276, 148, 404, 84, 340, 212, 468, 52, 308, 180, 436, 116, 372, 244, 500, 12, 268, 140, 396, 76, 332, 204, 460, 44, 300, 172, 428, 108, 364, 236, 492, 28, 284, 156, 412, 92, 348, 220, 476, 60, 316, 188, 444, 124, 380, 252, 508, 2, 258, 130, 386, 66, 322, 194, 450, 34, 290, 162, 418, 98, 354, 226, 482, 18, 274, 146, 402, 82, 338, 210, 466, 50, 306, 178, 434, 114, 370, 242, 498, 10, 266, 138, 394, 74, 330, 202, 458, 42, 298, 170, 426, 106, 362, 234, 490, 26, 282, 154, 410, 90, 346, 218, 474, 58, 314, 186, 442, 122, 378, 250, 506, 6, 262, 134, 390, 70, 326, 198, 454, 38, 294, 166, 422, 102, 358, 230, 486, 22, 278, 150, 406, 86, 342, 214, 470, 54, 310, 182, 438, 118, 374, 246, 502, 14, 270, 142, 398, 78, 334, 206, 462, 46, 302, 174, 430, 110, 366, 238, 494, 30, 286, 158, 414, 94, 350, 222, 478, 62, 318, 190, 446, 126, 382, 254, 510, 1, 257, 129, 385, 65, 321, 193, 449, 33, 289, 161, 417, 97, 353, 225, 481, 17, 273, 145, 401, 81, 337, 209, 465, 49, 305, 177, 433, 113, 369, 241, 497, 9, 265, 137, 393, 73, 329, 201, 457, 41, 297, 169, 425, 105, 361, 233, 489, 25, 281, 153, 409, 89, 345, 217, 473, 57, 313, 185, 441, 121, 377, 249, 505, 5, 261, 133, 389, 69, 325, 197, 453, 37, 293, 165, 421, 101, 357, 229, 485, 21, 277, 149, 405, 85, 341, 213, 469, 53, 309, 181, 437, 117, 373, 245, 501, 13, 269, 141, 397, 77, 333, 205, 461, 45, 301, 173, 429, 109, 365, 237, 493, 29, 285, 157, 413, 93, 349, 221, 477, 61, 317, 189, 445, 125, 381, 253, 509, 3, 259, 131, 387, 67, 323, 195, 451, 35, 291, 163, 419, 99, 355, 227, 483, 19, 275, 147, 403, 83, 339, 211, 467, 51, 307, 179, 435, 115, 371, 243, 499, 11, 267, 139, 395, 75, 331, 203, 459, 43, 299, 171, 427, 107, 363, 235, 491, 27, 283, 155, 411, 91, 347, 219, 475, 59, 315, 187, 443, 123, 379, 251, 507, 7, 1031, 519, 1543, 263, 1287, 775, 1799, 135, 1159, 647, 1671, 391, 1415, 903, 1927, 71, 1095, 583, 1607, 327, 1351, 839, 1863, 199, 1223, 711, 1735, 455, 1479, 967, 1991, 39, 1063, 551, 1575, 295, 1319, 807, 1831, 167, 1191, 679, 1703, 423, 1447, 935, 1959, 103, 1127, 615, 1639, 359, 1383, 871, 1895, 231, 1255, 743, 1767, 487, 1511, 999, 2023, 23, 1047, 535, 1559, 279, 1303, 791, 1815, 151, 1175, 663, 1687, 407, 1431, 919, 1943, 87, 1111, 599, 1623, 343, 1367, 855, 1879, 215, 1239, 727, 1751, 471, 1495, 983, 2007, 55, 1079, 567, 1591, 311, 1335, 823, 1847, 183, 1207, 695, 1719, 439, 1463, 951, 1975, 119, 1143, 631, 1655, 375, 1399, 887, 1911, 247, 1271, 759, 1783, 503, 1527, 1015, 2039, 15, 1039, 527, 1551, 271, 1295, 783, 1807, 143, 1167, 655, 1679, 399, 1423, 911, 1935, 79, 1103, 591, 1615, 335, 1359, 847, 1871, 207, 1231, 719, 1743, 463, 1487, 975, 1999, 47, 1071, 559, 1583, 303, 1327, 815, 1839, 175, 1199, 687, 1711, 431, 1455, 943, 1967, 111, 1135, 623, 1647, 367, 1391, 879, 1903, 239, 1263, 751, 1775, 495, 1519, 1007, 2031, 31, 1055, 543, 1567, 287, 1311, 799, 1823, 159, 1183, 671, 1695, 415, 1439, 927, 1951, 95, 1119, 607, 1631, 351, 1375, 863, 1887, 223, 1247, 735, 1759, 479, 1503, 991, 2015, 63, 1087, 575, 1599, 319, 1343, 831, 1855, 191, 1215, 703, 1727, 447, 1471, 959, 1983, 127, 1151, 639, 1663, 383, 1407, 895, 1919, 255, 1279, 767, 1791, 511, 1535, 1023, 2047, } func storeStaticCommandHuffmanTree(storage_ix *uint, storage []byte) { writeBits(56, 0x92624416307003, storage_ix, storage) writeBits(3, 0x00000000, storage_ix, storage) } var kStaticDistanceCodeBits = [64]uint16{ 0, 32, 16, 48, 8, 40, 24, 56, 4, 36, 20, 52, 12, 44, 28, 60, 2, 34, 18, 50, 10, 42, 26, 58, 6, 38, 22, 54, 14, 46, 30, 62, 1, 33, 17, 49, 9, 41, 25, 57, 5, 37, 21, 53, 13, 45, 29, 61, 3, 35, 19, 51, 11, 43, 27, 59, 7, 39, 23, 55, 15, 47, 31, 63, } func storeStaticDistanceHuffmanTree(storage_ix *uint, storage []byte) { writeBits(28, 0x0369DC03, storage_ix, storage) } brotli-1.0.4/fast_log.go000066400000000000000000000137601412267201500151430ustar00rootroot00000000000000package brotli import ( "math" "math/bits" ) /* Copyright 2013 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* Utilities for fast computation of logarithms. */ func log2FloorNonZero(n uint) uint32 { return uint32(bits.Len(n)) - 1 } /* A lookup table for small values of log2(int) to be used in entropy computation. ", ".join(["%.16ff" % x for x in [0.0]+[log2(x) for x in range(1, 256)]]) */ var kLog2Table = []float32{ 0.0000000000000000, 0.0000000000000000, 1.0000000000000000, 1.5849625007211563, 2.0000000000000000, 2.3219280948873622, 2.5849625007211561, 2.8073549220576042, 3.0000000000000000, 3.1699250014423126, 3.3219280948873626, 3.4594316186372978, 3.5849625007211565, 3.7004397181410922, 3.8073549220576037, 3.9068905956085187, 4.0000000000000000, 4.0874628412503400, 4.1699250014423122, 4.2479275134435852, 4.3219280948873626, 4.3923174227787607, 4.4594316186372973, 4.5235619560570131, 4.5849625007211570, 4.6438561897747244, 4.7004397181410926, 4.7548875021634691, 4.8073549220576037, 4.8579809951275728, 4.9068905956085187, 4.9541963103868758, 5.0000000000000000, 5.0443941193584534, 5.0874628412503400, 5.1292830169449664, 5.1699250014423122, 5.2094533656289501, 5.2479275134435852, 5.2854022188622487, 5.3219280948873626, 5.3575520046180838, 5.3923174227787607, 5.4262647547020979, 5.4594316186372973, 5.4918530963296748, 5.5235619560570131, 5.5545888516776376, 5.5849625007211570, 5.6147098441152083, 5.6438561897747244, 5.6724253419714961, 5.7004397181410926, 5.7279204545631996, 5.7548875021634691, 5.7813597135246599, 5.8073549220576046, 5.8328900141647422, 5.8579809951275719, 5.8826430493618416, 5.9068905956085187, 5.9307373375628867, 5.9541963103868758, 5.9772799234999168, 6.0000000000000000, 6.0223678130284544, 6.0443941193584534, 6.0660891904577721, 6.0874628412503400, 6.1085244567781700, 6.1292830169449672, 6.1497471195046822, 6.1699250014423122, 6.1898245588800176, 6.2094533656289510, 6.2288186904958804, 6.2479275134435861, 6.2667865406949019, 6.2854022188622487, 6.3037807481771031, 6.3219280948873617, 6.3398500028846252, 6.3575520046180847, 6.3750394313469254, 6.3923174227787598, 6.4093909361377026, 6.4262647547020979, 6.4429434958487288, 6.4594316186372982, 6.4757334309663976, 6.4918530963296748, 6.5077946401986964, 6.5235619560570131, 6.5391588111080319, 6.5545888516776376, 6.5698556083309478, 6.5849625007211561, 6.5999128421871278, 6.6147098441152092, 6.6293566200796095, 6.6438561897747253, 6.6582114827517955, 6.6724253419714952, 6.6865005271832185, 6.7004397181410917, 6.7142455176661224, 6.7279204545631988, 6.7414669864011465, 6.7548875021634691, 6.7681843247769260, 6.7813597135246599, 6.7944158663501062, 6.8073549220576037, 6.8201789624151887, 6.8328900141647422, 6.8454900509443757, 6.8579809951275719, 6.8703647195834048, 6.8826430493618416, 6.8948177633079437, 6.9068905956085187, 6.9188632372745955, 6.9307373375628867, 6.9425145053392399, 6.9541963103868758, 6.9657842846620879, 6.9772799234999168, 6.9886846867721664, 7.0000000000000000, 7.0112272554232540, 7.0223678130284544, 7.0334230015374501, 7.0443941193584534, 7.0552824355011898, 7.0660891904577721, 7.0768155970508317, 7.0874628412503400, 7.0980320829605272, 7.1085244567781700, 7.1189410727235076, 7.1292830169449664, 7.1395513523987937, 7.1497471195046822, 7.1598713367783891, 7.1699250014423130, 7.1799090900149345, 7.1898245588800176, 7.1996723448363644, 7.2094533656289492, 7.2191685204621621, 7.2288186904958804, 7.2384047393250794, 7.2479275134435861, 7.2573878426926521, 7.2667865406949019, 7.2761244052742384, 7.2854022188622487, 7.2946207488916270, 7.3037807481771031, 7.3128829552843557, 7.3219280948873617, 7.3309168781146177, 7.3398500028846243, 7.3487281542310781, 7.3575520046180847, 7.3663222142458151, 7.3750394313469254, 7.3837042924740528, 7.3923174227787607, 7.4008794362821844, 7.4093909361377026, 7.4178525148858991, 7.4262647547020979, 7.4346282276367255, 7.4429434958487288, 7.4512111118323299, 7.4594316186372973, 7.4676055500829976, 7.4757334309663976, 7.4838157772642564, 7.4918530963296748, 7.4998458870832057, 7.5077946401986964, 7.5156998382840436, 7.5235619560570131, 7.5313814605163119, 7.5391588111080319, 7.5468944598876373, 7.5545888516776376, 7.5622424242210728, 7.5698556083309478, 7.5774288280357487, 7.5849625007211561, 7.5924570372680806, 7.5999128421871278, 7.6073303137496113, 7.6147098441152075, 7.6220518194563764, 7.6293566200796095, 7.6366246205436488, 7.6438561897747244, 7.6510516911789290, 7.6582114827517955, 7.6653359171851765, 7.6724253419714952, 7.6794800995054464, 7.6865005271832185, 7.6934869574993252, 7.7004397181410926, 7.7073591320808825, 7.7142455176661224, 7.7210991887071856, 7.7279204545631996, 7.7347096202258392, 7.7414669864011465, 7.7481928495894596, 7.7548875021634691, 7.7615512324444795, 7.7681843247769260, 7.7747870596011737, 7.7813597135246608, 7.7879025593914317, 7.7944158663501062, 7.8008998999203047, 7.8073549220576037, 7.8137811912170374, 7.8201789624151887, 7.8265484872909159, 7.8328900141647422, 7.8392037880969445, 7.8454900509443757, 7.8517490414160571, 7.8579809951275719, 7.8641861446542798, 7.8703647195834048, 7.8765169465650002, 7.8826430493618425, 7.8887432488982601, 7.8948177633079446, 7.9008668079807496, 7.9068905956085187, 7.9128893362299619, 7.9188632372745955, 7.9248125036057813, 7.9307373375628867, 7.9366379390025719, 7.9425145053392399, 7.9483672315846778, 7.9541963103868758, 7.9600019320680806, 7.9657842846620870, 7.9715435539507720, 7.9772799234999168, 7.9829935746943104, 7.9886846867721664, 7.9943534368588578, } /* Faster logarithm for small integers, with the property of log2(0) == 0. */ func fastLog2(v uint) float64 { if v < uint(len(kLog2Table)) { return float64(kLog2Table[v]) } return math.Log2(float64(v)) } brotli-1.0.4/find_match_length.go000066400000000000000000000021201412267201500167660ustar00rootroot00000000000000package brotli import ( "encoding/binary" "math/bits" "runtime" ) /* Copyright 2010 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* Function to find maximal matching prefixes of strings. */ func findMatchLengthWithLimit(s1 []byte, s2 []byte, limit uint) uint { var matched uint = 0 _, _ = s1[limit-1], s2[limit-1] // bounds check switch runtime.GOARCH { case "amd64": // Compare 8 bytes at at time. for matched+8 <= limit { w1 := binary.LittleEndian.Uint64(s1[matched:]) w2 := binary.LittleEndian.Uint64(s2[matched:]) if w1 != w2 { return matched + uint(bits.TrailingZeros64(w1^w2)>>3) } matched += 8 } case "386": // Compare 4 bytes at at time. for matched+4 <= limit { w1 := binary.LittleEndian.Uint32(s1[matched:]) w2 := binary.LittleEndian.Uint32(s2[matched:]) if w1 != w2 { return matched + uint(bits.TrailingZeros32(w1^w2)>>3) } matched += 4 } } for matched < limit && s1[matched] == s2[matched] { matched++ } return matched } brotli-1.0.4/go.mod000066400000000000000000000001471412267201500141170ustar00rootroot00000000000000module github.com/andybalholm/brotli go 1.12 retract v1.0.1 // occasional panics and data corruption brotli-1.0.4/go.sum000066400000000000000000000000001412267201500141300ustar00rootroot00000000000000brotli-1.0.4/h10.go000066400000000000000000000230151412267201500137270ustar00rootroot00000000000000package brotli import "encoding/binary" /* Copyright 2016 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ func (*h10) HashTypeLength() uint { return 4 } func (*h10) StoreLookahead() uint { return 128 } func hashBytesH10(data []byte) uint32 { var h uint32 = binary.LittleEndian.Uint32(data) * kHashMul32 /* The higher bits contain more mixture from the multiplication, so we take our results from there. */ return h >> (32 - 17) } /* A (forgetful) hash table where each hash bucket contains a binary tree of sequences whose first 4 bytes share the same hash code. Each sequence is 128 long and is identified by its starting position in the input data. The binary tree is sorted by the lexicographic order of the sequences, and it is also a max-heap with respect to the starting positions. */ type h10 struct { hasherCommon window_mask_ uint buckets_ [1 << 17]uint32 invalid_pos_ uint32 forest []uint32 } func (h *h10) Initialize(params *encoderParams) { h.window_mask_ = (1 << params.lgwin) - 1 h.invalid_pos_ = uint32(0 - h.window_mask_) var num_nodes uint = uint(1) << params.lgwin h.forest = make([]uint32, 2*num_nodes) } func (h *h10) Prepare(one_shot bool, input_size uint, data []byte) { var invalid_pos uint32 = h.invalid_pos_ var i uint32 for i = 0; i < 1<<17; i++ { h.buckets_[i] = invalid_pos } } func leftChildIndexH10(self *h10, pos uint) uint { return 2 * (pos & self.window_mask_) } func rightChildIndexH10(self *h10, pos uint) uint { return 2*(pos&self.window_mask_) + 1 } /* Stores the hash of the next 4 bytes and in a single tree-traversal, the hash bucket's binary tree is searched for matches and is re-rooted at the current position. If less than 128 data is available, the hash bucket of the current position is searched for matches, but the state of the hash table is not changed, since we can not know the final sorting order of the current (incomplete) sequence. This function must be called with increasing cur_ix positions. */ func storeAndFindMatchesH10(self *h10, data []byte, cur_ix uint, ring_buffer_mask uint, max_length uint, max_backward uint, best_len *uint, matches []backwardMatch) []backwardMatch { var cur_ix_masked uint = cur_ix & ring_buffer_mask var max_comp_len uint = brotli_min_size_t(max_length, 128) var should_reroot_tree bool = (max_length >= 128) var key uint32 = hashBytesH10(data[cur_ix_masked:]) var forest []uint32 = self.forest var prev_ix uint = uint(self.buckets_[key]) var node_left uint = leftChildIndexH10(self, cur_ix) var node_right uint = rightChildIndexH10(self, cur_ix) var best_len_left uint = 0 var best_len_right uint = 0 var depth_remaining uint /* The forest index of the rightmost node of the left subtree of the new root, updated as we traverse and re-root the tree of the hash bucket. */ /* The forest index of the leftmost node of the right subtree of the new root, updated as we traverse and re-root the tree of the hash bucket. */ /* The match length of the rightmost node of the left subtree of the new root, updated as we traverse and re-root the tree of the hash bucket. */ /* The match length of the leftmost node of the right subtree of the new root, updated as we traverse and re-root the tree of the hash bucket. */ if should_reroot_tree { self.buckets_[key] = uint32(cur_ix) } for depth_remaining = 64; ; depth_remaining-- { var backward uint = cur_ix - prev_ix var prev_ix_masked uint = prev_ix & ring_buffer_mask if backward == 0 || backward > max_backward || depth_remaining == 0 { if should_reroot_tree { forest[node_left] = self.invalid_pos_ forest[node_right] = self.invalid_pos_ } break } { var cur_len uint = brotli_min_size_t(best_len_left, best_len_right) var len uint assert(cur_len <= 128) len = cur_len + findMatchLengthWithLimit(data[cur_ix_masked+cur_len:], data[prev_ix_masked+cur_len:], max_length-cur_len) if matches != nil && len > *best_len { *best_len = uint(len) initBackwardMatch(&matches[0], backward, uint(len)) matches = matches[1:] } if len >= max_comp_len { if should_reroot_tree { forest[node_left] = forest[leftChildIndexH10(self, prev_ix)] forest[node_right] = forest[rightChildIndexH10(self, prev_ix)] } break } if data[cur_ix_masked+len] > data[prev_ix_masked+len] { best_len_left = uint(len) if should_reroot_tree { forest[node_left] = uint32(prev_ix) } node_left = rightChildIndexH10(self, prev_ix) prev_ix = uint(forest[node_left]) } else { best_len_right = uint(len) if should_reroot_tree { forest[node_right] = uint32(prev_ix) } node_right = leftChildIndexH10(self, prev_ix) prev_ix = uint(forest[node_right]) } } } return matches } /* Finds all backward matches of &data[cur_ix & ring_buffer_mask] up to the length of max_length and stores the position cur_ix in the hash table. Sets *num_matches to the number of matches found, and stores the found matches in matches[0] to matches[*num_matches - 1]. The matches will be sorted by strictly increasing length and (non-strictly) increasing distance. */ func findAllMatchesH10(handle *h10, dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, cur_ix uint, max_length uint, max_backward uint, gap uint, params *encoderParams, matches []backwardMatch) uint { var orig_matches []backwardMatch = matches var cur_ix_masked uint = cur_ix & ring_buffer_mask var best_len uint = 1 var short_match_max_backward uint if params.quality != hqZopflificationQuality { short_match_max_backward = 16 } else { short_match_max_backward = 64 } var stop uint = cur_ix - short_match_max_backward var dict_matches [maxStaticDictionaryMatchLen + 1]uint32 var i uint if cur_ix < short_match_max_backward { stop = 0 } for i = cur_ix - 1; i > stop && best_len <= 2; i-- { var prev_ix uint = i var backward uint = cur_ix - prev_ix if backward > max_backward { break } prev_ix &= ring_buffer_mask if data[cur_ix_masked] != data[prev_ix] || data[cur_ix_masked+1] != data[prev_ix+1] { continue } { var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) if len > best_len { best_len = uint(len) initBackwardMatch(&matches[0], backward, uint(len)) matches = matches[1:] } } } if best_len < max_length { matches = storeAndFindMatchesH10(handle, data, cur_ix, ring_buffer_mask, max_length, max_backward, &best_len, matches) } for i = 0; i <= maxStaticDictionaryMatchLen; i++ { dict_matches[i] = kInvalidMatch } { var minlen uint = brotli_max_size_t(4, best_len+1) if findAllStaticDictionaryMatches(dictionary, data[cur_ix_masked:], minlen, max_length, dict_matches[0:]) { var maxlen uint = brotli_min_size_t(maxStaticDictionaryMatchLen, max_length) var l uint for l = minlen; l <= maxlen; l++ { var dict_id uint32 = dict_matches[l] if dict_id < kInvalidMatch { var distance uint = max_backward + gap + uint(dict_id>>5) + 1 if distance <= params.dist.max_distance { initDictionaryBackwardMatch(&matches[0], distance, l, uint(dict_id&31)) matches = matches[1:] } } } } } return uint(-cap(matches) + cap(orig_matches)) } /* Stores the hash of the next 4 bytes and re-roots the binary tree at the current sequence, without returning any matches. REQUIRES: ix + 128 <= end-of-current-block */ func (h *h10) Store(data []byte, mask uint, ix uint) { var max_backward uint = h.window_mask_ - windowGap + 1 /* Maximum distance is window size - 16, see section 9.1. of the spec. */ storeAndFindMatchesH10(h, data, ix, mask, 128, max_backward, nil, nil) } func (h *h10) StoreRange(data []byte, mask uint, ix_start uint, ix_end uint) { var i uint = ix_start var j uint = ix_start if ix_start+63 <= ix_end { i = ix_end - 63 } if ix_start+512 <= i { for ; j < i; j += 8 { h.Store(data, mask, j) } } for ; i < ix_end; i++ { h.Store(data, mask, i) } } func (h *h10) StitchToPreviousBlock(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint) { if num_bytes >= h.HashTypeLength()-1 && position >= 128 { var i_start uint = position - 128 + 1 var i_end uint = brotli_min_size_t(position, i_start+num_bytes) /* Store the last `128 - 1` positions in the hasher. These could not be calculated before, since they require knowledge of both the previous and the current block. */ var i uint for i = i_start; i < i_end; i++ { /* Maximum distance is window size - 16, see section 9.1. of the spec. Furthermore, we have to make sure that we don't look further back from the start of the next block than the window size, otherwise we could access already overwritten areas of the ring-buffer. */ var max_backward uint = h.window_mask_ - brotli_max_size_t(windowGap-1, position-i) /* We know that i + 128 <= position + num_bytes, i.e. the end of the current block and that we have at least 128 tail in the ring-buffer. */ storeAndFindMatchesH10(h, ringbuffer, i, ringbuffer_mask, 128, max_backward, nil, nil) } } } /* MAX_NUM_MATCHES == 64 + MAX_TREE_SEARCH_DEPTH */ const maxNumMatchesH10 = 128 func (*h10) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) { panic("unimplemented") } func (*h10) PrepareDistanceCache(distance_cache []int) { panic("unimplemented") } brotli-1.0.4/h5.go000066400000000000000000000155071412267201500136620ustar00rootroot00000000000000package brotli import "encoding/binary" /* Copyright 2010 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* A (forgetful) hash table to the data seen by the compressor, to help create backward references to previous data. This is a hash map of fixed size (bucket_size_) to a ring buffer of fixed size (block_size_). The ring buffer contains the last block_size_ index positions of the given hash key in the compressed data. */ func (*h5) HashTypeLength() uint { return 4 } func (*h5) StoreLookahead() uint { return 4 } /* HashBytes is the function that chooses the bucket to place the address in. */ func hashBytesH5(data []byte, shift int) uint32 { var h uint32 = binary.LittleEndian.Uint32(data) * kHashMul32 /* The higher bits contain more mixture from the multiplication, so we take our results from there. */ return uint32(h >> uint(shift)) } type h5 struct { hasherCommon bucket_size_ uint block_size_ uint hash_shift_ int block_mask_ uint32 num []uint16 buckets []uint32 } func (h *h5) Initialize(params *encoderParams) { h.hash_shift_ = 32 - h.params.bucket_bits h.bucket_size_ = uint(1) << uint(h.params.bucket_bits) h.block_size_ = uint(1) << uint(h.params.block_bits) h.block_mask_ = uint32(h.block_size_ - 1) h.num = make([]uint16, h.bucket_size_) h.buckets = make([]uint32, h.block_size_*h.bucket_size_) } func (h *h5) Prepare(one_shot bool, input_size uint, data []byte) { var num []uint16 = h.num var partial_prepare_threshold uint = h.bucket_size_ >> 6 /* Partial preparation is 100 times slower (per socket). */ if one_shot && input_size <= partial_prepare_threshold { var i uint for i = 0; i < input_size; i++ { var key uint32 = hashBytesH5(data[i:], h.hash_shift_) num[key] = 0 } } else { for i := 0; i < int(h.bucket_size_); i++ { num[i] = 0 } } } /* Look at 4 bytes at &data[ix & mask]. Compute a hash from these, and store the value of ix at that position. */ func (h *h5) Store(data []byte, mask uint, ix uint) { var num []uint16 = h.num var key uint32 = hashBytesH5(data[ix&mask:], h.hash_shift_) var minor_ix uint = uint(num[key]) & uint(h.block_mask_) var offset uint = minor_ix + uint(key<= h.HashTypeLength()-1 && position >= 3 { /* Prepare the hashes for three last bytes of the last write. These could not be calculated before, since they require knowledge of both the previous and the current block. */ h.Store(ringbuffer, ringbuffer_mask, position-3) h.Store(ringbuffer, ringbuffer_mask, position-2) h.Store(ringbuffer, ringbuffer_mask, position-1) } } func (h *h5) PrepareDistanceCache(distance_cache []int) { prepareDistanceCache(distance_cache, h.params.num_last_distances_to_check) } /* Find a longest backward match of &data[cur_ix] up to the length of max_length and stores the position cur_ix in the hash table. REQUIRES: PrepareDistanceCacheH5 must be invoked for current distance cache values; if this method is invoked repeatedly with the same distance cache values, it is enough to invoke PrepareDistanceCacheH5 once. Does not look for matches longer than max_length. Does not look for matches further away than max_backward. Writes the best match into |out|. |out|->score is updated only if a better match is found. */ func (h *h5) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) { var num []uint16 = h.num var buckets []uint32 = h.buckets var cur_ix_masked uint = cur_ix & ring_buffer_mask var min_score uint = out.score var best_score uint = out.score var best_len uint = out.len var i uint var bucket []uint32 /* Don't accept a short copy from far away. */ out.len = 0 out.len_code_delta = 0 /* Try last distance first. */ for i = 0; i < uint(h.params.num_last_distances_to_check); i++ { var backward uint = uint(distance_cache[i]) var prev_ix uint = uint(cur_ix - backward) if prev_ix >= cur_ix { continue } if backward > max_backward { continue } prev_ix &= ring_buffer_mask if cur_ix_masked+best_len > ring_buffer_mask || prev_ix+best_len > ring_buffer_mask || data[cur_ix_masked+best_len] != data[prev_ix+best_len] { continue } { var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) if len >= 3 || (len == 2 && i < 2) { /* Comparing for >= 2 does not change the semantics, but just saves for a few unnecessary binary logarithms in backward reference score, since we are not interested in such short matches. */ var score uint = backwardReferenceScoreUsingLastDistance(uint(len)) if best_score < score { if i != 0 { score -= backwardReferencePenaltyUsingLastDistance(i) } if best_score < score { best_score = score best_len = uint(len) out.len = best_len out.distance = backward out.score = best_score } } } } } { var key uint32 = hashBytesH5(data[cur_ix_masked:], h.hash_shift_) bucket = buckets[key< h.block_size_ { down = uint(num[key]) - h.block_size_ } else { down = 0 } for i = uint(num[key]); i > down; { var prev_ix uint i-- prev_ix = uint(bucket[uint32(i)&h.block_mask_]) var backward uint = cur_ix - prev_ix if backward > max_backward { break } prev_ix &= ring_buffer_mask if cur_ix_masked+best_len > ring_buffer_mask || prev_ix+best_len > ring_buffer_mask || data[cur_ix_masked+best_len] != data[prev_ix+best_len] { continue } { var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) if len >= 4 { /* Comparing for >= 3 does not change the semantics, but just saves for a few unnecessary binary logarithms in backward reference score, since we are not interested in such short matches. */ var score uint = backwardReferenceScore(uint(len), backward) if best_score < score { best_score = score best_len = uint(len) out.len = best_len out.distance = backward out.score = best_score } } } } bucket[uint32(num[key])&h.block_mask_] = uint32(cur_ix) num[key]++ } if min_score == out.score { searchInStaticDictionary(dictionary, h, data[cur_ix_masked:], max_length, max_backward+gap, max_distance, out, false) } } brotli-1.0.4/h6.go000066400000000000000000000157371412267201500136700ustar00rootroot00000000000000package brotli import "encoding/binary" /* Copyright 2010 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* A (forgetful) hash table to the data seen by the compressor, to help create backward references to previous data. This is a hash map of fixed size (bucket_size_) to a ring buffer of fixed size (block_size_). The ring buffer contains the last block_size_ index positions of the given hash key in the compressed data. */ func (*h6) HashTypeLength() uint { return 8 } func (*h6) StoreLookahead() uint { return 8 } /* HashBytes is the function that chooses the bucket to place the address in. */ func hashBytesH6(data []byte, mask uint64, shift int) uint32 { var h uint64 = (binary.LittleEndian.Uint64(data) & mask) * kHashMul64Long /* The higher bits contain more mixture from the multiplication, so we take our results from there. */ return uint32(h >> uint(shift)) } type h6 struct { hasherCommon bucket_size_ uint block_size_ uint hash_shift_ int hash_mask_ uint64 block_mask_ uint32 num []uint16 buckets []uint32 } func (h *h6) Initialize(params *encoderParams) { h.hash_shift_ = 64 - h.params.bucket_bits h.hash_mask_ = (^(uint64(0))) >> uint(64-8*h.params.hash_len) h.bucket_size_ = uint(1) << uint(h.params.bucket_bits) h.block_size_ = uint(1) << uint(h.params.block_bits) h.block_mask_ = uint32(h.block_size_ - 1) h.num = make([]uint16, h.bucket_size_) h.buckets = make([]uint32, h.block_size_*h.bucket_size_) } func (h *h6) Prepare(one_shot bool, input_size uint, data []byte) { var num []uint16 = h.num var partial_prepare_threshold uint = h.bucket_size_ >> 6 /* Partial preparation is 100 times slower (per socket). */ if one_shot && input_size <= partial_prepare_threshold { var i uint for i = 0; i < input_size; i++ { var key uint32 = hashBytesH6(data[i:], h.hash_mask_, h.hash_shift_) num[key] = 0 } } else { for i := 0; i < int(h.bucket_size_); i++ { num[i] = 0 } } } /* Look at 4 bytes at &data[ix & mask]. Compute a hash from these, and store the value of ix at that position. */ func (h *h6) Store(data []byte, mask uint, ix uint) { var num []uint16 = h.num var key uint32 = hashBytesH6(data[ix&mask:], h.hash_mask_, h.hash_shift_) var minor_ix uint = uint(num[key]) & uint(h.block_mask_) var offset uint = minor_ix + uint(key<= h.HashTypeLength()-1 && position >= 3 { /* Prepare the hashes for three last bytes of the last write. These could not be calculated before, since they require knowledge of both the previous and the current block. */ h.Store(ringbuffer, ringbuffer_mask, position-3) h.Store(ringbuffer, ringbuffer_mask, position-2) h.Store(ringbuffer, ringbuffer_mask, position-1) } } func (h *h6) PrepareDistanceCache(distance_cache []int) { prepareDistanceCache(distance_cache, h.params.num_last_distances_to_check) } /* Find a longest backward match of &data[cur_ix] up to the length of max_length and stores the position cur_ix in the hash table. REQUIRES: PrepareDistanceCacheH6 must be invoked for current distance cache values; if this method is invoked repeatedly with the same distance cache values, it is enough to invoke PrepareDistanceCacheH6 once. Does not look for matches longer than max_length. Does not look for matches further away than max_backward. Writes the best match into |out|. |out|->score is updated only if a better match is found. */ func (h *h6) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) { var num []uint16 = h.num var buckets []uint32 = h.buckets var cur_ix_masked uint = cur_ix & ring_buffer_mask var min_score uint = out.score var best_score uint = out.score var best_len uint = out.len var i uint var bucket []uint32 /* Don't accept a short copy from far away. */ out.len = 0 out.len_code_delta = 0 /* Try last distance first. */ for i = 0; i < uint(h.params.num_last_distances_to_check); i++ { var backward uint = uint(distance_cache[i]) var prev_ix uint = uint(cur_ix - backward) if prev_ix >= cur_ix { continue } if backward > max_backward { continue } prev_ix &= ring_buffer_mask if cur_ix_masked+best_len > ring_buffer_mask || prev_ix+best_len > ring_buffer_mask || data[cur_ix_masked+best_len] != data[prev_ix+best_len] { continue } { var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) if len >= 3 || (len == 2 && i < 2) { /* Comparing for >= 2 does not change the semantics, but just saves for a few unnecessary binary logarithms in backward reference score, since we are not interested in such short matches. */ var score uint = backwardReferenceScoreUsingLastDistance(uint(len)) if best_score < score { if i != 0 { score -= backwardReferencePenaltyUsingLastDistance(i) } if best_score < score { best_score = score best_len = uint(len) out.len = best_len out.distance = backward out.score = best_score } } } } } { var key uint32 = hashBytesH6(data[cur_ix_masked:], h.hash_mask_, h.hash_shift_) bucket = buckets[key< h.block_size_ { down = uint(num[key]) - h.block_size_ } else { down = 0 } for i = uint(num[key]); i > down; { var prev_ix uint i-- prev_ix = uint(bucket[uint32(i)&h.block_mask_]) var backward uint = cur_ix - prev_ix if backward > max_backward { break } prev_ix &= ring_buffer_mask if cur_ix_masked+best_len > ring_buffer_mask || prev_ix+best_len > ring_buffer_mask || data[cur_ix_masked+best_len] != data[prev_ix+best_len] { continue } { var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) if len >= 4 { /* Comparing for >= 3 does not change the semantics, but just saves for a few unnecessary binary logarithms in backward reference score, since we are not interested in such short matches. */ var score uint = backwardReferenceScore(uint(len), backward) if best_score < score { best_score = score best_len = uint(len) out.len = best_len out.distance = backward out.score = best_score } } } } bucket[uint32(num[key])&h.block_mask_] = uint32(cur_ix) num[key]++ } if min_score == out.score { searchInStaticDictionary(dictionary, h, data[cur_ix_masked:], max_length, max_backward+gap, max_distance, out, false) } } brotli-1.0.4/hash.go000066400000000000000000000223051412267201500142630ustar00rootroot00000000000000package brotli import ( "encoding/binary" "fmt" ) type hasherCommon struct { params hasherParams is_prepared_ bool dict_num_lookups uint dict_num_matches uint } func (h *hasherCommon) Common() *hasherCommon { return h } type hasherHandle interface { Common() *hasherCommon Initialize(params *encoderParams) Prepare(one_shot bool, input_size uint, data []byte) StitchToPreviousBlock(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint) HashTypeLength() uint StoreLookahead() uint PrepareDistanceCache(distance_cache []int) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) StoreRange(data []byte, mask uint, ix_start uint, ix_end uint) Store(data []byte, mask uint, ix uint) } const kCutoffTransformsCount uint32 = 10 /* 0, 12, 27, 23, 42, 63, 56, 48, 59, 64 */ /* 0+0, 4+8, 8+19, 12+11, 16+26, 20+43, 24+32, 28+20, 32+27, 36+28 */ const kCutoffTransforms uint64 = 0x071B520ADA2D3200 type hasherSearchResult struct { len uint distance uint score uint len_code_delta int } /* kHashMul32 multiplier has these properties: * The multiplier must be odd. Otherwise we may lose the highest bit. * No long streaks of ones or zeros. * There is no effort to ensure that it is a prime, the oddity is enough for this use. * The number has been tuned heuristically against compression benchmarks. */ const kHashMul32 uint32 = 0x1E35A7BD const kHashMul64 uint64 = 0x1E35A7BD1E35A7BD const kHashMul64Long uint64 = 0x1FE35A7BD3579BD3 func hash14(data []byte) uint32 { var h uint32 = binary.LittleEndian.Uint32(data) * kHashMul32 /* The higher bits contain more mixture from the multiplication, so we take our results from there. */ return h >> (32 - 14) } func prepareDistanceCache(distance_cache []int, num_distances int) { if num_distances > 4 { var last_distance int = distance_cache[0] distance_cache[4] = last_distance - 1 distance_cache[5] = last_distance + 1 distance_cache[6] = last_distance - 2 distance_cache[7] = last_distance + 2 distance_cache[8] = last_distance - 3 distance_cache[9] = last_distance + 3 if num_distances > 10 { var next_last_distance int = distance_cache[1] distance_cache[10] = next_last_distance - 1 distance_cache[11] = next_last_distance + 1 distance_cache[12] = next_last_distance - 2 distance_cache[13] = next_last_distance + 2 distance_cache[14] = next_last_distance - 3 distance_cache[15] = next_last_distance + 3 } } } const literalByteScore = 135 const distanceBitPenalty = 30 /* Score must be positive after applying maximal penalty. */ const scoreBase = (distanceBitPenalty * 8 * 8) /* Usually, we always choose the longest backward reference. This function allows for the exception of that rule. If we choose a backward reference that is further away, it will usually be coded with more bits. We approximate this by assuming log2(distance). If the distance can be expressed in terms of the last four distances, we use some heuristic constants to estimate the bits cost. For the first up to four literals we use the bit cost of the literals from the literal cost model, after that we use the average bit cost of the cost model. This function is used to sometimes discard a longer backward reference when it is not much longer and the bit cost for encoding it is more than the saved literals. backward_reference_offset MUST be positive. */ func backwardReferenceScore(copy_length uint, backward_reference_offset uint) uint { return scoreBase + literalByteScore*uint(copy_length) - distanceBitPenalty*uint(log2FloorNonZero(backward_reference_offset)) } func backwardReferenceScoreUsingLastDistance(copy_length uint) uint { return literalByteScore*uint(copy_length) + scoreBase + 15 } func backwardReferencePenaltyUsingLastDistance(distance_short_code uint) uint { return uint(39) + ((0x1CA10 >> (distance_short_code & 0xE)) & 0xE) } func testStaticDictionaryItem(dictionary *encoderDictionary, item uint, data []byte, max_length uint, max_backward uint, max_distance uint, out *hasherSearchResult) bool { var len uint var word_idx uint var offset uint var matchlen uint var backward uint var score uint len = item & 0x1F word_idx = item >> 5 offset = uint(dictionary.words.offsets_by_length[len]) + len*word_idx if len > max_length { return false } matchlen = findMatchLengthWithLimit(data, dictionary.words.data[offset:], uint(len)) if matchlen+uint(dictionary.cutoffTransformsCount) <= len || matchlen == 0 { return false } { var cut uint = len - matchlen var transform_id uint = (cut << 2) + uint((dictionary.cutoffTransforms>>(cut*6))&0x3F) backward = max_backward + 1 + word_idx + (transform_id << dictionary.words.size_bits_by_length[len]) } if backward > max_distance { return false } score = backwardReferenceScore(matchlen, backward) if score < out.score { return false } out.len = matchlen out.len_code_delta = int(len) - int(matchlen) out.distance = backward out.score = score return true } func searchInStaticDictionary(dictionary *encoderDictionary, handle hasherHandle, data []byte, max_length uint, max_backward uint, max_distance uint, out *hasherSearchResult, shallow bool) { var key uint var i uint var self *hasherCommon = handle.Common() if self.dict_num_matches < self.dict_num_lookups>>7 { return } key = uint(hash14(data) << 1) for i = 0; ; (func() { i++; key++ })() { var tmp uint if shallow { tmp = 1 } else { tmp = 2 } if i >= tmp { break } var item uint = uint(dictionary.hash_table[key]) self.dict_num_lookups++ if item != 0 { var item_matches bool = testStaticDictionaryItem(dictionary, item, data, max_length, max_backward, max_distance, out) if item_matches { self.dict_num_matches++ } } } } type backwardMatch struct { distance uint32 length_and_code uint32 } func initBackwardMatch(self *backwardMatch, dist uint, len uint) { self.distance = uint32(dist) self.length_and_code = uint32(len << 5) } func initDictionaryBackwardMatch(self *backwardMatch, dist uint, len uint, len_code uint) { self.distance = uint32(dist) var tmp uint if len == len_code { tmp = 0 } else { tmp = len_code } self.length_and_code = uint32(len<<5 | tmp) } func backwardMatchLength(self *backwardMatch) uint { return uint(self.length_and_code >> 5) } func backwardMatchLengthCode(self *backwardMatch) uint { var code uint = uint(self.length_and_code) & 31 if code != 0 { return code } else { return backwardMatchLength(self) } } func hasherReset(handle hasherHandle) { if handle == nil { return } handle.Common().is_prepared_ = false } func newHasher(typ int) hasherHandle { switch typ { case 2: return &hashLongestMatchQuickly{ bucketBits: 16, bucketSweep: 1, hashLen: 5, useDictionary: true, } case 3: return &hashLongestMatchQuickly{ bucketBits: 16, bucketSweep: 2, hashLen: 5, useDictionary: false, } case 4: return &hashLongestMatchQuickly{ bucketBits: 17, bucketSweep: 4, hashLen: 5, useDictionary: true, } case 5: return new(h5) case 6: return new(h6) case 10: return new(h10) case 35: return &hashComposite{ ha: newHasher(3), hb: &hashRolling{jump: 4}, } case 40: return &hashForgetfulChain{ bucketBits: 15, numBanks: 1, bankBits: 16, numLastDistancesToCheck: 4, } case 41: return &hashForgetfulChain{ bucketBits: 15, numBanks: 1, bankBits: 16, numLastDistancesToCheck: 10, } case 42: return &hashForgetfulChain{ bucketBits: 15, numBanks: 512, bankBits: 9, numLastDistancesToCheck: 16, } case 54: return &hashLongestMatchQuickly{ bucketBits: 20, bucketSweep: 4, hashLen: 7, useDictionary: false, } case 55: return &hashComposite{ ha: newHasher(54), hb: &hashRolling{jump: 4}, } case 65: return &hashComposite{ ha: newHasher(6), hb: &hashRolling{jump: 1}, } } panic(fmt.Sprintf("unknown hasher type: %d", typ)) } func hasherSetup(handle *hasherHandle, params *encoderParams, data []byte, position uint, input_size uint, is_last bool) { var self hasherHandle = nil var common *hasherCommon = nil var one_shot bool = (position == 0 && is_last) if *handle == nil { chooseHasher(params, ¶ms.hasher) self = newHasher(params.hasher.type_) *handle = self common = self.Common() common.params = params.hasher self.Initialize(params) } self = *handle common = self.Common() if !common.is_prepared_ { self.Prepare(one_shot, input_size, data) if position == 0 { common.dict_num_lookups = 0 common.dict_num_matches = 0 } common.is_prepared_ = true } } func initOrStitchToPreviousBlock(handle *hasherHandle, data []byte, mask uint, params *encoderParams, position uint, input_size uint, is_last bool) { var self hasherHandle hasherSetup(handle, params, data, position, input_size, is_last) self = *handle self.StitchToPreviousBlock(input_size, position, data, mask) } brotli-1.0.4/hash_composite.go000066400000000000000000000056261412267201500163540ustar00rootroot00000000000000package brotli /* Copyright 2018 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ func (h *hashComposite) HashTypeLength() uint { var a uint = h.ha.HashTypeLength() var b uint = h.hb.HashTypeLength() if a > b { return a } else { return b } } func (h *hashComposite) StoreLookahead() uint { var a uint = h.ha.StoreLookahead() var b uint = h.hb.StoreLookahead() if a > b { return a } else { return b } } /* Composite hasher: This hasher allows to combine two other hashers, HASHER_A and HASHER_B. */ type hashComposite struct { hasherCommon ha hasherHandle hb hasherHandle params *encoderParams } func (h *hashComposite) Initialize(params *encoderParams) { h.params = params } /* TODO: Initialize of the hashers is defered to Prepare (and params remembered here) because we don't get the one_shot and input_size params here that are needed to know the memory size of them. Instead provide those params to all hashers InitializehashComposite */ func (h *hashComposite) Prepare(one_shot bool, input_size uint, data []byte) { if h.ha == nil { var common_a *hasherCommon var common_b *hasherCommon common_a = h.ha.Common() common_a.params = h.params.hasher common_a.is_prepared_ = false common_a.dict_num_lookups = 0 common_a.dict_num_matches = 0 h.ha.Initialize(h.params) common_b = h.hb.Common() common_b.params = h.params.hasher common_b.is_prepared_ = false common_b.dict_num_lookups = 0 common_b.dict_num_matches = 0 h.hb.Initialize(h.params) } h.ha.Prepare(one_shot, input_size, data) h.hb.Prepare(one_shot, input_size, data) } func (h *hashComposite) Store(data []byte, mask uint, ix uint) { h.ha.Store(data, mask, ix) h.hb.Store(data, mask, ix) } func (h *hashComposite) StoreRange(data []byte, mask uint, ix_start uint, ix_end uint) { h.ha.StoreRange(data, mask, ix_start, ix_end) h.hb.StoreRange(data, mask, ix_start, ix_end) } func (h *hashComposite) StitchToPreviousBlock(num_bytes uint, position uint, ringbuffer []byte, ring_buffer_mask uint) { h.ha.StitchToPreviousBlock(num_bytes, position, ringbuffer, ring_buffer_mask) h.hb.StitchToPreviousBlock(num_bytes, position, ringbuffer, ring_buffer_mask) } func (h *hashComposite) PrepareDistanceCache(distance_cache []int) { h.ha.PrepareDistanceCache(distance_cache) h.hb.PrepareDistanceCache(distance_cache) } func (h *hashComposite) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) { h.ha.FindLongestMatch(dictionary, data, ring_buffer_mask, distance_cache, cur_ix, max_length, max_backward, gap, max_distance, out) h.hb.FindLongestMatch(dictionary, data, ring_buffer_mask, distance_cache, cur_ix, max_length, max_backward, gap, max_distance, out) } brotli-1.0.4/hash_forgetful_chain.go000066400000000000000000000171221412267201500175030ustar00rootroot00000000000000package brotli import "encoding/binary" /* Copyright 2016 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ func (*hashForgetfulChain) HashTypeLength() uint { return 4 } func (*hashForgetfulChain) StoreLookahead() uint { return 4 } /* HashBytes is the function that chooses the bucket to place the address in.*/ func (h *hashForgetfulChain) HashBytes(data []byte) uint { var hash uint32 = binary.LittleEndian.Uint32(data) * kHashMul32 /* The higher bits contain more mixture from the multiplication, so we take our results from there. */ return uint(hash >> (32 - h.bucketBits)) } type slot struct { delta uint16 next uint16 } /* A (forgetful) hash table to the data seen by the compressor, to help create backward references to previous data. Hashes are stored in chains which are bucketed to groups. Group of chains share a storage "bank". When more than "bank size" chain nodes are added, oldest nodes are replaced; this way several chains may share a tail. */ type hashForgetfulChain struct { hasherCommon bucketBits uint numBanks uint bankBits uint numLastDistancesToCheck int addr []uint32 head []uint16 tiny_hash [65536]byte banks [][]slot free_slot_idx []uint16 max_hops uint } func (h *hashForgetfulChain) Initialize(params *encoderParams) { var q uint if params.quality > 6 { q = 7 } else { q = 8 } h.max_hops = q << uint(params.quality-4) bankSize := 1 << h.bankBits bucketSize := 1 << h.bucketBits h.addr = make([]uint32, bucketSize) h.head = make([]uint16, bucketSize) h.banks = make([][]slot, h.numBanks) for i := range h.banks { h.banks[i] = make([]slot, bankSize) } h.free_slot_idx = make([]uint16, h.numBanks) } func (h *hashForgetfulChain) Prepare(one_shot bool, input_size uint, data []byte) { var partial_prepare_threshold uint = (1 << h.bucketBits) >> 6 /* Partial preparation is 100 times slower (per socket). */ if one_shot && input_size <= partial_prepare_threshold { var i uint for i = 0; i < input_size; i++ { var bucket uint = h.HashBytes(data[i:]) /* See InitEmpty comment. */ h.addr[bucket] = 0xCCCCCCCC h.head[bucket] = 0xCCCC } } else { /* Fill |addr| array with 0xCCCCCCCC value. Because of wrapping, position processed by hasher never reaches 3GB + 64M; this makes all new chains to be terminated after the first node. */ for i := range h.addr { h.addr[i] = 0xCCCCCCCC } for i := range h.head { h.head[i] = 0 } } h.tiny_hash = [65536]byte{} for i := range h.free_slot_idx { h.free_slot_idx[i] = 0 } } /* Look at 4 bytes at &data[ix & mask]. Compute a hash from these, and prepend node to corresponding chain; also update tiny_hash for current position. */ func (h *hashForgetfulChain) Store(data []byte, mask uint, ix uint) { var key uint = h.HashBytes(data[ix&mask:]) var bank uint = key & (h.numBanks - 1) idx := uint(h.free_slot_idx[bank]) & ((1 << h.bankBits) - 1) h.free_slot_idx[bank]++ var delta uint = ix - uint(h.addr[key]) h.tiny_hash[uint16(ix)] = byte(key) if delta > 0xFFFF { delta = 0xFFFF } h.banks[bank][idx].delta = uint16(delta) h.banks[bank][idx].next = h.head[key] h.addr[key] = uint32(ix) h.head[key] = uint16(idx) } func (h *hashForgetfulChain) StoreRange(data []byte, mask uint, ix_start uint, ix_end uint) { var i uint for i = ix_start; i < ix_end; i++ { h.Store(data, mask, i) } } func (h *hashForgetfulChain) StitchToPreviousBlock(num_bytes uint, position uint, ringbuffer []byte, ring_buffer_mask uint) { if num_bytes >= h.HashTypeLength()-1 && position >= 3 { /* Prepare the hashes for three last bytes of the last write. These could not be calculated before, since they require knowledge of both the previous and the current block. */ h.Store(ringbuffer, ring_buffer_mask, position-3) h.Store(ringbuffer, ring_buffer_mask, position-2) h.Store(ringbuffer, ring_buffer_mask, position-1) } } func (h *hashForgetfulChain) PrepareDistanceCache(distance_cache []int) { prepareDistanceCache(distance_cache, h.numLastDistancesToCheck) } /* Find a longest backward match of &data[cur_ix] up to the length of max_length and stores the position cur_ix in the hash table. REQUIRES: PrepareDistanceCachehashForgetfulChain must be invoked for current distance cache values; if this method is invoked repeatedly with the same distance cache values, it is enough to invoke PrepareDistanceCachehashForgetfulChain once. Does not look for matches longer than max_length. Does not look for matches further away than max_backward. Writes the best match into |out|. |out|->score is updated only if a better match is found. */ func (h *hashForgetfulChain) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) { var cur_ix_masked uint = cur_ix & ring_buffer_mask var min_score uint = out.score var best_score uint = out.score var best_len uint = out.len var key uint = h.HashBytes(data[cur_ix_masked:]) var tiny_hash byte = byte(key) /* Don't accept a short copy from far away. */ out.len = 0 out.len_code_delta = 0 /* Try last distance first. */ for i := 0; i < h.numLastDistancesToCheck; i++ { var backward uint = uint(distance_cache[i]) var prev_ix uint = (cur_ix - backward) /* For distance code 0 we want to consider 2-byte matches. */ if i > 0 && h.tiny_hash[uint16(prev_ix)] != tiny_hash { continue } if prev_ix >= cur_ix || backward > max_backward { continue } prev_ix &= ring_buffer_mask { var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) if len >= 2 { var score uint = backwardReferenceScoreUsingLastDistance(uint(len)) if best_score < score { if i != 0 { score -= backwardReferencePenaltyUsingLastDistance(uint(i)) } if best_score < score { best_score = score best_len = uint(len) out.len = best_len out.distance = backward out.score = best_score } } } } } { var bank uint = key & (h.numBanks - 1) var backward uint = 0 var hops uint = h.max_hops var delta uint = cur_ix - uint(h.addr[key]) var slot uint = uint(h.head[key]) for { tmp6 := hops hops-- if tmp6 == 0 { break } var prev_ix uint var last uint = slot backward += delta if backward > max_backward { break } prev_ix = (cur_ix - backward) & ring_buffer_mask slot = uint(h.banks[bank][last].next) delta = uint(h.banks[bank][last].delta) if cur_ix_masked+best_len > ring_buffer_mask || prev_ix+best_len > ring_buffer_mask || data[cur_ix_masked+best_len] != data[prev_ix+best_len] { continue } { var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) if len >= 4 { /* Comparing for >= 3 does not change the semantics, but just saves for a few unnecessary binary logarithms in backward reference score, since we are not interested in such short matches. */ var score uint = backwardReferenceScore(uint(len), backward) if best_score < score { best_score = score best_len = uint(len) out.len = best_len out.distance = backward out.score = best_score } } } } h.Store(data, ring_buffer_mask, cur_ix) } if out.score == min_score { searchInStaticDictionary(dictionary, h, data[cur_ix_masked:], max_length, max_backward+gap, max_distance, out, false) } } brotli-1.0.4/hash_longest_match_quickly.go000066400000000000000000000155271412267201500207430ustar00rootroot00000000000000package brotli import "encoding/binary" /* Copyright 2010 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* For BUCKET_SWEEP == 1, enabling the dictionary lookup makes compression a little faster (0.5% - 1%) and it compresses 0.15% better on small text and HTML inputs. */ func (*hashLongestMatchQuickly) HashTypeLength() uint { return 8 } func (*hashLongestMatchQuickly) StoreLookahead() uint { return 8 } /* HashBytes is the function that chooses the bucket to place the address in. The HashLongestMatch and hashLongestMatchQuickly classes have separate, different implementations of hashing. */ func (h *hashLongestMatchQuickly) HashBytes(data []byte) uint32 { var hash uint64 = ((binary.LittleEndian.Uint64(data) << (64 - 8*h.hashLen)) * kHashMul64) /* The higher bits contain more mixture from the multiplication, so we take our results from there. */ return uint32(hash >> (64 - h.bucketBits)) } /* A (forgetful) hash table to the data seen by the compressor, to help create backward references to previous data. This is a hash map of fixed size (1 << 16). Starting from the given index, 1 buckets are used to store values of a key. */ type hashLongestMatchQuickly struct { hasherCommon bucketBits uint bucketSweep int hashLen uint useDictionary bool buckets []uint32 } func (h *hashLongestMatchQuickly) Initialize(params *encoderParams) { h.buckets = make([]uint32, 1<> 7 /* Partial preparation is 100 times slower (per socket). */ if one_shot && input_size <= partial_prepare_threshold { var i uint for i = 0; i < input_size; i++ { var key uint32 = h.HashBytes(data[i:]) for j := 0; j < h.bucketSweep; j++ { h.buckets[key+uint32(j)] = 0 } } } else { /* It is not strictly necessary to fill this buffer here, but not filling will make the results of the compression stochastic (but correct). This is because random data would cause the system to find accidentally good backward references here and there. */ for i := range h.buckets { h.buckets[i] = 0 } } } /* Look at 5 bytes at &data[ix & mask]. Compute a hash from these, and store the value somewhere within [ix .. ix+3]. */ func (h *hashLongestMatchQuickly) Store(data []byte, mask uint, ix uint) { var key uint32 = h.HashBytes(data[ix&mask:]) var off uint32 = uint32(ix>>3) % uint32(h.bucketSweep) /* Wiggle the value with the bucket sweep range. */ h.buckets[key+off] = uint32(ix) } func (h *hashLongestMatchQuickly) StoreRange(data []byte, mask uint, ix_start uint, ix_end uint) { var i uint for i = ix_start; i < ix_end; i++ { h.Store(data, mask, i) } } func (h *hashLongestMatchQuickly) StitchToPreviousBlock(num_bytes uint, position uint, ringbuffer []byte, ringbuffer_mask uint) { if num_bytes >= h.HashTypeLength()-1 && position >= 3 { /* Prepare the hashes for three last bytes of the last write. These could not be calculated before, since they require knowledge of both the previous and the current block. */ h.Store(ringbuffer, ringbuffer_mask, position-3) h.Store(ringbuffer, ringbuffer_mask, position-2) h.Store(ringbuffer, ringbuffer_mask, position-1) } } func (*hashLongestMatchQuickly) PrepareDistanceCache(distance_cache []int) { } /* Find a longest backward match of &data[cur_ix & ring_buffer_mask] up to the length of max_length and stores the position cur_ix in the hash table. Does not look for matches longer than max_length. Does not look for matches further away than max_backward. Writes the best match into |out|. |out|->score is updated only if a better match is found. */ func (h *hashLongestMatchQuickly) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) { var best_len_in uint = out.len var cur_ix_masked uint = cur_ix & ring_buffer_mask var key uint32 = h.HashBytes(data[cur_ix_masked:]) var compare_char int = int(data[cur_ix_masked+best_len_in]) var min_score uint = out.score var best_score uint = out.score var best_len uint = best_len_in var cached_backward uint = uint(distance_cache[0]) var prev_ix uint = cur_ix - cached_backward var bucket []uint32 out.len_code_delta = 0 if prev_ix < cur_ix { prev_ix &= uint(uint32(ring_buffer_mask)) if compare_char == int(data[prev_ix+best_len]) { var len uint = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) if len >= 4 { var score uint = backwardReferenceScoreUsingLastDistance(uint(len)) if best_score < score { best_score = score best_len = uint(len) out.len = uint(len) out.distance = cached_backward out.score = best_score compare_char = int(data[cur_ix_masked+best_len]) if h.bucketSweep == 1 { h.buckets[key] = uint32(cur_ix) return } } } } } if h.bucketSweep == 1 { var backward uint var len uint /* Only one to look for, don't bother to prepare for a loop. */ prev_ix = uint(h.buckets[key]) h.buckets[key] = uint32(cur_ix) backward = cur_ix - prev_ix prev_ix &= uint(uint32(ring_buffer_mask)) if compare_char != int(data[prev_ix+best_len_in]) { return } if backward == 0 || backward > max_backward { return } len = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) if len >= 4 { var score uint = backwardReferenceScore(uint(len), backward) if best_score < score { out.len = uint(len) out.distance = backward out.score = score return } } } else { bucket = h.buckets[key:] var i int prev_ix = uint(bucket[0]) bucket = bucket[1:] for i = 0; i < h.bucketSweep; (func() { i++; tmp3 := bucket; bucket = bucket[1:]; prev_ix = uint(tmp3[0]) })() { var backward uint = cur_ix - prev_ix var len uint prev_ix &= uint(uint32(ring_buffer_mask)) if compare_char != int(data[prev_ix+best_len]) { continue } if backward == 0 || backward > max_backward { continue } len = findMatchLengthWithLimit(data[prev_ix:], data[cur_ix_masked:], max_length) if len >= 4 { var score uint = backwardReferenceScore(uint(len), backward) if best_score < score { best_score = score best_len = uint(len) out.len = best_len out.distance = backward out.score = score compare_char = int(data[cur_ix_masked+best_len]) } } } } if h.useDictionary && min_score == out.score { searchInStaticDictionary(dictionary, h, data[cur_ix_masked:], max_length, max_backward+gap, max_distance, out, true) } h.buckets[key+uint32((cur_ix>>3)%uint(h.bucketSweep))] = uint32(cur_ix) } brotli-1.0.4/hash_rolling.go000066400000000000000000000115301412267201500160070ustar00rootroot00000000000000package brotli /* Copyright 2018 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* NOTE: this hasher does not search in the dictionary. It is used as backup-hasher, the main hasher already searches in it. */ const kRollingHashMul32 uint32 = 69069 const kInvalidPosHashRolling uint32 = 0xffffffff /* This hasher uses a longer forward length, but returning a higher value here will hurt compression by the main hasher when combined with a composite hasher. The hasher tests for forward itself instead. */ func (*hashRolling) HashTypeLength() uint { return 4 } func (*hashRolling) StoreLookahead() uint { return 4 } /* Computes a code from a single byte. A lookup table of 256 values could be used, but simply adding 1 works about as good. */ func (*hashRolling) HashByte(b byte) uint32 { return uint32(b) + 1 } func (h *hashRolling) HashRollingFunctionInitial(state uint32, add byte, factor uint32) uint32 { return uint32(factor*state + h.HashByte(add)) } func (h *hashRolling) HashRollingFunction(state uint32, add byte, rem byte, factor uint32, factor_remove uint32) uint32 { return uint32(factor*state + h.HashByte(add) - factor_remove*h.HashByte(rem)) } /* Rolling hash for long distance long string matches. Stores one position per bucket, bucket key is computed over a long region. */ type hashRolling struct { hasherCommon jump int state uint32 table []uint32 next_ix uint factor uint32 factor_remove uint32 } func (h *hashRolling) Initialize(params *encoderParams) { h.state = 0 h.next_ix = 0 h.factor = kRollingHashMul32 /* Compute the factor of the oldest byte to remove: factor**steps modulo 0xffffffff (the multiplications rely on 32-bit overflow) */ h.factor_remove = 1 for i := 0; i < 32; i += h.jump { h.factor_remove *= h.factor } h.table = make([]uint32, 16777216) for i := 0; i < 16777216; i++ { h.table[i] = kInvalidPosHashRolling } } func (h *hashRolling) Prepare(one_shot bool, input_size uint, data []byte) { /* Too small size, cannot use this hasher. */ if input_size < 32 { return } h.state = 0 for i := 0; i < 32; i += h.jump { h.state = h.HashRollingFunctionInitial(h.state, data[i], h.factor) } } func (*hashRolling) Store(data []byte, mask uint, ix uint) { } func (*hashRolling) StoreRange(data []byte, mask uint, ix_start uint, ix_end uint) { } func (h *hashRolling) StitchToPreviousBlock(num_bytes uint, position uint, ringbuffer []byte, ring_buffer_mask uint) { var position_masked uint /* In this case we must re-initialize the hasher from scratch from the current position. */ var available uint = num_bytes if position&uint(h.jump-1) != 0 { var diff uint = uint(h.jump) - (position & uint(h.jump-1)) if diff > available { available = 0 } else { available = available - diff } position += diff } position_masked = position & ring_buffer_mask /* wrapping around ringbuffer not handled. */ if available > ring_buffer_mask-position_masked { available = ring_buffer_mask - position_masked } h.Prepare(false, available, ringbuffer[position&ring_buffer_mask:]) h.next_ix = position } func (*hashRolling) PrepareDistanceCache(distance_cache []int) { } func (h *hashRolling) FindLongestMatch(dictionary *encoderDictionary, data []byte, ring_buffer_mask uint, distance_cache []int, cur_ix uint, max_length uint, max_backward uint, gap uint, max_distance uint, out *hasherSearchResult) { var cur_ix_masked uint = cur_ix & ring_buffer_mask var pos uint = h.next_ix if cur_ix&uint(h.jump-1) != 0 { return } /* Not enough lookahead */ if max_length < 32 { return } for pos = h.next_ix; pos <= cur_ix; pos += uint(h.jump) { var code uint32 = h.state & ((16777216 * 64) - 1) var rem byte = data[pos&ring_buffer_mask] var add byte = data[(pos+32)&ring_buffer_mask] var found_ix uint = uint(kInvalidPosHashRolling) h.state = h.HashRollingFunction(h.state, add, rem, h.factor, h.factor_remove) if code < 16777216 { found_ix = uint(h.table[code]) h.table[code] = uint32(pos) if pos == cur_ix && uint32(found_ix) != kInvalidPosHashRolling { /* The cast to 32-bit makes backward distances up to 4GB work even if cur_ix is above 4GB, despite using 32-bit values in the table. */ var backward uint = uint(uint32(cur_ix - found_ix)) if backward <= max_backward { var found_ix_masked uint = found_ix & ring_buffer_mask var len uint = findMatchLengthWithLimit(data[found_ix_masked:], data[cur_ix_masked:], max_length) if len >= 4 && len > out.len { var score uint = backwardReferenceScore(uint(len), backward) if score > out.score { out.len = uint(len) out.distance = backward out.score = score out.len_code_delta = 0 } } } } } } h.next_ix = cur_ix + uint(h.jump) } brotli-1.0.4/histogram.go000066400000000000000000000126321412267201500153370ustar00rootroot00000000000000package brotli import "math" /* The distance symbols effectively used by "Large Window Brotli" (32-bit). */ const numHistogramDistanceSymbols = 544 type histogramLiteral struct { data_ [numLiteralSymbols]uint32 total_count_ uint bit_cost_ float64 } func histogramClearLiteral(self *histogramLiteral) { self.data_ = [numLiteralSymbols]uint32{} self.total_count_ = 0 self.bit_cost_ = math.MaxFloat64 } func clearHistogramsLiteral(array []histogramLiteral, length uint) { var i uint for i = 0; i < length; i++ { histogramClearLiteral(&array[i:][0]) } } func histogramAddLiteral(self *histogramLiteral, val uint) { self.data_[val]++ self.total_count_++ } func histogramAddVectorLiteral(self *histogramLiteral, p []byte, n uint) { self.total_count_ += n n += 1 for { n-- if n == 0 { break } self.data_[p[0]]++ p = p[1:] } } func histogramAddHistogramLiteral(self *histogramLiteral, v *histogramLiteral) { var i uint self.total_count_ += v.total_count_ for i = 0; i < numLiteralSymbols; i++ { self.data_[i] += v.data_[i] } } func histogramDataSizeLiteral() uint { return numLiteralSymbols } type histogramCommand struct { data_ [numCommandSymbols]uint32 total_count_ uint bit_cost_ float64 } func histogramClearCommand(self *histogramCommand) { self.data_ = [numCommandSymbols]uint32{} self.total_count_ = 0 self.bit_cost_ = math.MaxFloat64 } func clearHistogramsCommand(array []histogramCommand, length uint) { var i uint for i = 0; i < length; i++ { histogramClearCommand(&array[i:][0]) } } func histogramAddCommand(self *histogramCommand, val uint) { self.data_[val]++ self.total_count_++ } func histogramAddVectorCommand(self *histogramCommand, p []uint16, n uint) { self.total_count_ += n n += 1 for { n-- if n == 0 { break } self.data_[p[0]]++ p = p[1:] } } func histogramAddHistogramCommand(self *histogramCommand, v *histogramCommand) { var i uint self.total_count_ += v.total_count_ for i = 0; i < numCommandSymbols; i++ { self.data_[i] += v.data_[i] } } func histogramDataSizeCommand() uint { return numCommandSymbols } type histogramDistance struct { data_ [numDistanceSymbols]uint32 total_count_ uint bit_cost_ float64 } func histogramClearDistance(self *histogramDistance) { self.data_ = [numDistanceSymbols]uint32{} self.total_count_ = 0 self.bit_cost_ = math.MaxFloat64 } func clearHistogramsDistance(array []histogramDistance, length uint) { var i uint for i = 0; i < length; i++ { histogramClearDistance(&array[i:][0]) } } func histogramAddDistance(self *histogramDistance, val uint) { self.data_[val]++ self.total_count_++ } func histogramAddVectorDistance(self *histogramDistance, p []uint16, n uint) { self.total_count_ += n n += 1 for { n-- if n == 0 { break } self.data_[p[0]]++ p = p[1:] } } func histogramAddHistogramDistance(self *histogramDistance, v *histogramDistance) { var i uint self.total_count_ += v.total_count_ for i = 0; i < numDistanceSymbols; i++ { self.data_[i] += v.data_[i] } } func histogramDataSizeDistance() uint { return numDistanceSymbols } type blockSplitIterator struct { split_ *blockSplit idx_ uint type_ uint length_ uint } func initBlockSplitIterator(self *blockSplitIterator, split *blockSplit) { self.split_ = split self.idx_ = 0 self.type_ = 0 if len(split.lengths) > 0 { self.length_ = uint(split.lengths[0]) } else { self.length_ = 0 } } func blockSplitIteratorNext(self *blockSplitIterator) { if self.length_ == 0 { self.idx_++ self.type_ = uint(self.split_.types[self.idx_]) self.length_ = uint(self.split_.lengths[self.idx_]) } self.length_-- } func buildHistogramsWithContext(cmds []command, literal_split *blockSplit, insert_and_copy_split *blockSplit, dist_split *blockSplit, ringbuffer []byte, start_pos uint, mask uint, prev_byte byte, prev_byte2 byte, context_modes []int, literal_histograms []histogramLiteral, insert_and_copy_histograms []histogramCommand, copy_dist_histograms []histogramDistance) { var pos uint = start_pos var literal_it blockSplitIterator var insert_and_copy_it blockSplitIterator var dist_it blockSplitIterator initBlockSplitIterator(&literal_it, literal_split) initBlockSplitIterator(&insert_and_copy_it, insert_and_copy_split) initBlockSplitIterator(&dist_it, dist_split) for i := range cmds { var cmd *command = &cmds[i] var j uint blockSplitIteratorNext(&insert_and_copy_it) histogramAddCommand(&insert_and_copy_histograms[insert_and_copy_it.type_], uint(cmd.cmd_prefix_)) /* TODO: unwrap iterator blocks. */ for j = uint(cmd.insert_len_); j != 0; j-- { var context uint blockSplitIteratorNext(&literal_it) context = literal_it.type_ if context_modes != nil { var lut contextLUT = getContextLUT(context_modes[context]) context = (context << literalContextBits) + uint(getContext(prev_byte, prev_byte2, lut)) } histogramAddLiteral(&literal_histograms[context], uint(ringbuffer[pos&mask])) prev_byte2 = prev_byte prev_byte = ringbuffer[pos&mask] pos++ } pos += uint(commandCopyLen(cmd)) if commandCopyLen(cmd) != 0 { prev_byte2 = ringbuffer[(pos-2)&mask] prev_byte = ringbuffer[(pos-1)&mask] if cmd.cmd_prefix_ >= 128 { var context uint blockSplitIteratorNext(&dist_it) context = uint(uint32(dist_it.type_< bestQ && (spec.Value == "*" || spec.Value == offer) { bestQ = spec.Q bestOffer = offer } } } if bestQ == 0 { bestOffer = "" } return bestOffer } // acceptSpec describes an Accept* header. type acceptSpec struct { Value string Q float64 } // parseAccept parses Accept* headers. func parseAccept(header http.Header, key string) (specs []acceptSpec) { loop: for _, s := range header[key] { for { var spec acceptSpec spec.Value, s = expectTokenSlash(s) if spec.Value == "" { continue loop } spec.Q = 1.0 s = skipSpace(s) if strings.HasPrefix(s, ";") { s = skipSpace(s[1:]) if !strings.HasPrefix(s, "q=") { continue loop } spec.Q, s = expectQuality(s[2:]) if spec.Q < 0.0 { continue loop } } specs = append(specs, spec) s = skipSpace(s) if !strings.HasPrefix(s, ",") { continue loop } s = skipSpace(s[1:]) } } return } func skipSpace(s string) (rest string) { i := 0 for ; i < len(s); i++ { if octetTypes[s[i]]&isSpace == 0 { break } } return s[i:] } func expectTokenSlash(s string) (token, rest string) { i := 0 for ; i < len(s); i++ { b := s[i] if (octetTypes[b]&isToken == 0) && b != '/' { break } } return s[:i], s[i:] } func expectQuality(s string) (q float64, rest string) { switch { case len(s) == 0: return -1, "" case s[0] == '0': q = 0 case s[0] == '1': q = 1 default: return -1, "" } s = s[1:] if !strings.HasPrefix(s, ".") { return q, s } s = s[1:] i := 0 n := 0 d := 1 for ; i < len(s); i++ { b := s[i] if b < '0' || b > '9' { break } n = n*10 + int(b) - '0' d *= 10 } return q + float64(n)/float64(d), s[i:] } // Octet types from RFC 2616. var octetTypes [256]octetType type octetType byte const ( isToken octetType = 1 << iota isSpace ) func init() { // OCTET = // CHAR = // CTL = // CR = // LF = // SP = // HT = // <"> = // CRLF = CR LF // LWS = [CRLF] 1*( SP | HT ) // TEXT = // separators = "(" | ")" | "<" | ">" | "@" | "," | ";" | ":" | "\" | <"> // | "/" | "[" | "]" | "?" | "=" | "{" | "}" | SP | HT // token = 1* // qdtext = > for c := 0; c < 256; c++ { var t octetType isCtl := c <= 31 || c == 127 isChar := 0 <= c && c <= 127 isSeparator := strings.ContainsRune(" \t\"(),/:;<=>?@[]\\{}", rune(c)) if strings.ContainsRune(" \t\r\n", rune(c)) { t |= isSpace } if isChar && !isCtl && !isSeparator { t |= isToken } octetTypes[c] = t } } brotli-1.0.4/huffman.go000066400000000000000000000270671412267201500147760ustar00rootroot00000000000000package brotli /* Copyright 2013 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* Utilities for building Huffman decoding tables. */ const huffmanMaxCodeLength = 15 /* Maximum possible Huffman table size for an alphabet size of (index * 32), max code length 15 and root table bits 8. */ var kMaxHuffmanTableSize = []uint16{ 256, 402, 436, 468, 500, 534, 566, 598, 630, 662, 694, 726, 758, 790, 822, 854, 886, 920, 952, 984, 1016, 1048, 1080, 1112, 1144, 1176, 1208, 1240, 1272, 1304, 1336, 1368, 1400, 1432, 1464, 1496, 1528, } /* BROTLI_NUM_BLOCK_LEN_SYMBOLS == 26 */ const huffmanMaxSize26 = 396 /* BROTLI_MAX_BLOCK_TYPE_SYMBOLS == 258 */ const huffmanMaxSize258 = 632 /* BROTLI_MAX_CONTEXT_MAP_SYMBOLS == 272 */ const huffmanMaxSize272 = 646 const huffmanMaxCodeLengthCodeLength = 5 /* Do not create this struct directly - use the ConstructHuffmanCode * constructor below! */ type huffmanCode struct { bits byte value uint16 } func constructHuffmanCode(bits byte, value uint16) huffmanCode { var h huffmanCode h.bits = bits h.value = value return h } /* Builds Huffman lookup table assuming code lengths are in symbol order. */ /* Builds Huffman lookup table assuming code lengths are in symbol order. Returns size of resulting table. */ /* Builds a simple Huffman table. The |num_symbols| parameter is to be interpreted as follows: 0 means 1 symbol, 1 means 2 symbols, 2 means 3 symbols, 3 means 4 symbols with lengths [2, 2, 2, 2], 4 means 4 symbols with lengths [1, 2, 3, 3]. */ /* Contains a collection of Huffman trees with the same alphabet size. */ /* max_symbol is needed due to simple codes since log2(alphabet_size) could be greater than log2(max_symbol). */ type huffmanTreeGroup struct { htrees [][]huffmanCode codes []huffmanCode alphabet_size uint16 max_symbol uint16 num_htrees uint16 } const reverseBitsMax = 8 const reverseBitsBase = 0 var kReverseBits = [1 << reverseBitsMax]byte{ 0x00, 0x80, 0x40, 0xC0, 0x20, 0xA0, 0x60, 0xE0, 0x10, 0x90, 0x50, 0xD0, 0x30, 0xB0, 0x70, 0xF0, 0x08, 0x88, 0x48, 0xC8, 0x28, 0xA8, 0x68, 0xE8, 0x18, 0x98, 0x58, 0xD8, 0x38, 0xB8, 0x78, 0xF8, 0x04, 0x84, 0x44, 0xC4, 0x24, 0xA4, 0x64, 0xE4, 0x14, 0x94, 0x54, 0xD4, 0x34, 0xB4, 0x74, 0xF4, 0x0C, 0x8C, 0x4C, 0xCC, 0x2C, 0xAC, 0x6C, 0xEC, 0x1C, 0x9C, 0x5C, 0xDC, 0x3C, 0xBC, 0x7C, 0xFC, 0x02, 0x82, 0x42, 0xC2, 0x22, 0xA2, 0x62, 0xE2, 0x12, 0x92, 0x52, 0xD2, 0x32, 0xB2, 0x72, 0xF2, 0x0A, 0x8A, 0x4A, 0xCA, 0x2A, 0xAA, 0x6A, 0xEA, 0x1A, 0x9A, 0x5A, 0xDA, 0x3A, 0xBA, 0x7A, 0xFA, 0x06, 0x86, 0x46, 0xC6, 0x26, 0xA6, 0x66, 0xE6, 0x16, 0x96, 0x56, 0xD6, 0x36, 0xB6, 0x76, 0xF6, 0x0E, 0x8E, 0x4E, 0xCE, 0x2E, 0xAE, 0x6E, 0xEE, 0x1E, 0x9E, 0x5E, 0xDE, 0x3E, 0xBE, 0x7E, 0xFE, 0x01, 0x81, 0x41, 0xC1, 0x21, 0xA1, 0x61, 0xE1, 0x11, 0x91, 0x51, 0xD1, 0x31, 0xB1, 0x71, 0xF1, 0x09, 0x89, 0x49, 0xC9, 0x29, 0xA9, 0x69, 0xE9, 0x19, 0x99, 0x59, 0xD9, 0x39, 0xB9, 0x79, 0xF9, 0x05, 0x85, 0x45, 0xC5, 0x25, 0xA5, 0x65, 0xE5, 0x15, 0x95, 0x55, 0xD5, 0x35, 0xB5, 0x75, 0xF5, 0x0D, 0x8D, 0x4D, 0xCD, 0x2D, 0xAD, 0x6D, 0xED, 0x1D, 0x9D, 0x5D, 0xDD, 0x3D, 0xBD, 0x7D, 0xFD, 0x03, 0x83, 0x43, 0xC3, 0x23, 0xA3, 0x63, 0xE3, 0x13, 0x93, 0x53, 0xD3, 0x33, 0xB3, 0x73, 0xF3, 0x0B, 0x8B, 0x4B, 0xCB, 0x2B, 0xAB, 0x6B, 0xEB, 0x1B, 0x9B, 0x5B, 0xDB, 0x3B, 0xBB, 0x7B, 0xFB, 0x07, 0x87, 0x47, 0xC7, 0x27, 0xA7, 0x67, 0xE7, 0x17, 0x97, 0x57, 0xD7, 0x37, 0xB7, 0x77, 0xF7, 0x0F, 0x8F, 0x4F, 0xCF, 0x2F, 0xAF, 0x6F, 0xEF, 0x1F, 0x9F, 0x5F, 0xDF, 0x3F, 0xBF, 0x7F, 0xFF, } const reverseBitsLowest = (uint64(1) << (reverseBitsMax - 1 + reverseBitsBase)) /* Returns reverse(num >> BROTLI_REVERSE_BITS_BASE, BROTLI_REVERSE_BITS_MAX), where reverse(value, len) is the bit-wise reversal of the len least significant bits of value. */ func reverseBits8(num uint64) uint64 { return uint64(kReverseBits[num]) } /* Stores code in table[0], table[step], table[2*step], ..., table[end] */ /* Assumes that end is an integer multiple of step */ func replicateValue(table []huffmanCode, step int, end int, code huffmanCode) { for { end -= step table[end] = code if end <= 0 { break } } } /* Returns the table width of the next 2nd level table. |count| is the histogram of bit lengths for the remaining symbols, |len| is the code length of the next processed symbol. */ func nextTableBitSize(count []uint16, len int, root_bits int) int { var left int = 1 << uint(len-root_bits) for len < huffmanMaxCodeLength { left -= int(count[len]) if left <= 0 { break } len++ left <<= 1 } return len - root_bits } func buildCodeLengthsHuffmanTable(table []huffmanCode, code_lengths []byte, count []uint16) { var code huffmanCode /* current table entry */ /* symbol index in original or sorted table */ /* prefix code */ /* prefix code addend */ /* step size to replicate values in current table */ /* size of current table */ /* symbols sorted by code length */ var symbol int var key uint64 var key_step uint64 var step int var table_size int var sorted [codeLengthCodes]int var offset [huffmanMaxCodeLengthCodeLength + 1]int var bits int var bits_count int /* offsets in sorted table for each length */ assert(huffmanMaxCodeLengthCodeLength <= reverseBitsMax) /* Generate offsets into sorted symbol table by code length. */ symbol = -1 bits = 1 var i int for i = 0; i < huffmanMaxCodeLengthCodeLength; i++ { symbol += int(count[bits]) offset[bits] = symbol bits++ } /* Symbols with code length 0 are placed after all other symbols. */ offset[0] = codeLengthCodes - 1 /* Sort symbols by length, by symbol order within each length. */ symbol = codeLengthCodes for { var i int for i = 0; i < 6; i++ { symbol-- sorted[offset[code_lengths[symbol]]] = symbol offset[code_lengths[symbol]]-- } if symbol == 0 { break } } table_size = 1 << huffmanMaxCodeLengthCodeLength /* Special case: all symbols but one have 0 code length. */ if offset[0] == 0 { code = constructHuffmanCode(0, uint16(sorted[0])) for key = 0; key < uint64(table_size); key++ { table[key] = code } return } /* Fill in table. */ key = 0 key_step = reverseBitsLowest symbol = 0 bits = 1 step = 2 for { for bits_count = int(count[bits]); bits_count != 0; bits_count-- { code = constructHuffmanCode(byte(bits), uint16(sorted[symbol])) symbol++ replicateValue(table[reverseBits8(key):], step, table_size, code) key += key_step } step <<= 1 key_step >>= 1 bits++ if bits > huffmanMaxCodeLengthCodeLength { break } } } func buildHuffmanTable(root_table []huffmanCode, root_bits int, symbol_lists symbolList, count []uint16) uint32 { var code huffmanCode /* current table entry */ /* next available space in table */ /* current code length */ /* symbol index in original or sorted table */ /* prefix code */ /* prefix code addend */ /* 2nd level table prefix code */ /* 2nd level table prefix code addend */ /* step size to replicate values in current table */ /* key length of current table */ /* size of current table */ /* sum of root table size and 2nd level table sizes */ var table []huffmanCode var len int var symbol int var key uint64 var key_step uint64 var sub_key uint64 var sub_key_step uint64 var step int var table_bits int var table_size int var total_size int var max_length int = -1 var bits int var bits_count int assert(root_bits <= reverseBitsMax) assert(huffmanMaxCodeLength-root_bits <= reverseBitsMax) for symbolListGet(symbol_lists, max_length) == 0xFFFF { max_length-- } max_length += huffmanMaxCodeLength + 1 table = root_table table_bits = root_bits table_size = 1 << uint(table_bits) total_size = table_size /* Fill in the root table. Reduce the table size to if possible, and create the repetitions by memcpy. */ if table_bits > max_length { table_bits = max_length table_size = 1 << uint(table_bits) } key = 0 key_step = reverseBitsLowest bits = 1 step = 2 for { symbol = bits - (huffmanMaxCodeLength + 1) for bits_count = int(count[bits]); bits_count != 0; bits_count-- { symbol = int(symbolListGet(symbol_lists, symbol)) code = constructHuffmanCode(byte(bits), uint16(symbol)) replicateValue(table[reverseBits8(key):], step, table_size, code) key += key_step } step <<= 1 key_step >>= 1 bits++ if bits > table_bits { break } } /* If root_bits != table_bits then replicate to fill the remaining slots. */ for total_size != table_size { copy(table[table_size:], table[:uint(table_size)]) table_size <<= 1 } /* Fill in 2nd level tables and add pointers to root table. */ key_step = reverseBitsLowest >> uint(root_bits-1) sub_key = reverseBitsLowest << 1 sub_key_step = reverseBitsLowest len = root_bits + 1 step = 2 for ; len <= max_length; len++ { symbol = len - (huffmanMaxCodeLength + 1) for ; count[len] != 0; count[len]-- { if sub_key == reverseBitsLowest<<1 { table = table[table_size:] table_bits = nextTableBitSize(count, int(len), root_bits) table_size = 1 << uint(table_bits) total_size += table_size sub_key = reverseBits8(key) key += key_step root_table[sub_key] = constructHuffmanCode(byte(table_bits+root_bits), uint16(uint64(uint(-cap(table)+cap(root_table)))-sub_key)) sub_key = 0 } symbol = int(symbolListGet(symbol_lists, symbol)) code = constructHuffmanCode(byte(len-root_bits), uint16(symbol)) replicateValue(table[reverseBits8(sub_key):], step, table_size, code) sub_key += sub_key_step } step <<= 1 sub_key_step >>= 1 } return uint32(total_size) } func buildSimpleHuffmanTable(table []huffmanCode, root_bits int, val []uint16, num_symbols uint32) uint32 { var table_size uint32 = 1 var goal_size uint32 = 1 << uint(root_bits) switch num_symbols { case 0: table[0] = constructHuffmanCode(0, val[0]) case 1: if val[1] > val[0] { table[0] = constructHuffmanCode(1, val[0]) table[1] = constructHuffmanCode(1, val[1]) } else { table[0] = constructHuffmanCode(1, val[1]) table[1] = constructHuffmanCode(1, val[0]) } table_size = 2 case 2: table[0] = constructHuffmanCode(1, val[0]) table[2] = constructHuffmanCode(1, val[0]) if val[2] > val[1] { table[1] = constructHuffmanCode(2, val[1]) table[3] = constructHuffmanCode(2, val[2]) } else { table[1] = constructHuffmanCode(2, val[2]) table[3] = constructHuffmanCode(2, val[1]) } table_size = 4 case 3: var i int var k int for i = 0; i < 3; i++ { for k = i + 1; k < 4; k++ { if val[k] < val[i] { var t uint16 = val[k] val[k] = val[i] val[i] = t } } } table[0] = constructHuffmanCode(2, val[0]) table[2] = constructHuffmanCode(2, val[1]) table[1] = constructHuffmanCode(2, val[2]) table[3] = constructHuffmanCode(2, val[3]) table_size = 4 case 4: if val[3] < val[2] { var t uint16 = val[3] val[3] = val[2] val[2] = t } table[0] = constructHuffmanCode(1, val[0]) table[1] = constructHuffmanCode(2, val[1]) table[2] = constructHuffmanCode(1, val[0]) table[3] = constructHuffmanCode(3, val[2]) table[4] = constructHuffmanCode(1, val[0]) table[5] = constructHuffmanCode(2, val[1]) table[6] = constructHuffmanCode(1, val[0]) table[7] = constructHuffmanCode(3, val[3]) table_size = 8 } for table_size != goal_size { copy(table[table_size:], table[:uint(table_size)]) table_size <<= 1 } return goal_size } brotli-1.0.4/literal_cost.go000066400000000000000000000110721412267201500160230ustar00rootroot00000000000000package brotli func utf8Position(last uint, c uint, clamp uint) uint { if c < 128 { return 0 /* Next one is the 'Byte 1' again. */ } else if c >= 192 { /* Next one is the 'Byte 2' of utf-8 encoding. */ return brotli_min_size_t(1, clamp) } else { /* Let's decide over the last byte if this ends the sequence. */ if last < 0xE0 { return 0 /* Completed two or three byte coding. */ /* Next one is the 'Byte 3' of utf-8 encoding. */ } else { return brotli_min_size_t(2, clamp) } } } func decideMultiByteStatsLevel(pos uint, len uint, mask uint, data []byte) uint { var counts = [3]uint{0} /* should be 2, but 1 compresses better. */ var max_utf8 uint = 1 var last_c uint = 0 var i uint for i = 0; i < len; i++ { var c uint = uint(data[(pos+i)&mask]) counts[utf8Position(last_c, c, 2)]++ last_c = c } if counts[2] < 500 { max_utf8 = 1 } if counts[1]+counts[2] < 25 { max_utf8 = 0 } return max_utf8 } func estimateBitCostsForLiteralsUTF8(pos uint, len uint, mask uint, data []byte, cost []float32) { var max_utf8 uint = decideMultiByteStatsLevel(pos, uint(len), mask, data) /* Bootstrap histograms. */ var histogram = [3][256]uint{[256]uint{0}} var window_half uint = 495 var in_window uint = brotli_min_size_t(window_half, uint(len)) var in_window_utf8 = [3]uint{0} /* max_utf8 is 0 (normal ASCII single byte modeling), 1 (for 2-byte UTF-8 modeling), or 2 (for 3-byte UTF-8 modeling). */ var i uint { var last_c uint = 0 var utf8_pos uint = 0 for i = 0; i < in_window; i++ { var c uint = uint(data[(pos+i)&mask]) histogram[utf8_pos][c]++ in_window_utf8[utf8_pos]++ utf8_pos = utf8Position(last_c, c, max_utf8) last_c = c } } /* Compute bit costs with sliding window. */ for i = 0; i < len; i++ { if i >= window_half { var c uint var last_c uint if i < window_half+1 { c = 0 } else { c = uint(data[(pos+i-window_half-1)&mask]) } if i < window_half+2 { last_c = 0 } else { last_c = uint(data[(pos+i-window_half-2)&mask]) } /* Remove a byte in the past. */ var utf8_pos2 uint = utf8Position(last_c, c, max_utf8) histogram[utf8_pos2][data[(pos+i-window_half)&mask]]-- in_window_utf8[utf8_pos2]-- } if i+window_half < len { var c uint = uint(data[(pos+i+window_half-1)&mask]) var last_c uint = uint(data[(pos+i+window_half-2)&mask]) /* Add a byte in the future. */ var utf8_pos2 uint = utf8Position(last_c, c, max_utf8) histogram[utf8_pos2][data[(pos+i+window_half)&mask]]++ in_window_utf8[utf8_pos2]++ } { var c uint var last_c uint if i < 1 { c = 0 } else { c = uint(data[(pos+i-1)&mask]) } if i < 2 { last_c = 0 } else { last_c = uint(data[(pos+i-2)&mask]) } var utf8_pos uint = utf8Position(last_c, c, max_utf8) var masked_pos uint = (pos + i) & mask var histo uint = histogram[utf8_pos][data[masked_pos]] var lit_cost float64 if histo == 0 { histo = 1 } lit_cost = fastLog2(in_window_utf8[utf8_pos]) - fastLog2(histo) lit_cost += 0.02905 if lit_cost < 1.0 { lit_cost *= 0.5 lit_cost += 0.5 } /* Make the first bytes more expensive -- seems to help, not sure why. Perhaps because the entropy source is changing its properties rapidly in the beginning of the file, perhaps because the beginning of the data is a statistical "anomaly". */ if i < 2000 { lit_cost += 0.7 - (float64(2000-i) / 2000.0 * 0.35) } cost[i] = float32(lit_cost) } } } func estimateBitCostsForLiterals(pos uint, len uint, mask uint, data []byte, cost []float32) { if isMostlyUTF8(data, pos, mask, uint(len), kMinUTF8Ratio) { estimateBitCostsForLiteralsUTF8(pos, uint(len), mask, data, cost) return } else { var histogram = [256]uint{0} var window_half uint = 2000 var in_window uint = brotli_min_size_t(window_half, uint(len)) var i uint /* Bootstrap histogram. */ for i = 0; i < in_window; i++ { histogram[data[(pos+i)&mask]]++ } /* Compute bit costs with sliding window. */ for i = 0; i < len; i++ { var histo uint if i >= window_half { /* Remove a byte in the past. */ histogram[data[(pos+i-window_half)&mask]]-- in_window-- } if i+window_half < len { /* Add a byte in the future. */ histogram[data[(pos+i+window_half)&mask]]++ in_window++ } histo = histogram[data[(pos+i)&mask]] if histo == 0 { histo = 1 } { var lit_cost float64 = fastLog2(in_window) - fastLog2(histo) lit_cost += 0.029 if lit_cost < 1.0 { lit_cost *= 0.5 lit_cost += 0.5 } cost[i] = float32(lit_cost) } } } } brotli-1.0.4/memory.go000066400000000000000000000021461412267201500146510ustar00rootroot00000000000000package brotli /* Copyright 2016 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* Dynamically grows array capacity to at least the requested size T: data type A: array C: capacity R: requested size */ func brotli_ensure_capacity_uint8_t(a *[]byte, c *uint, r uint) { if *c < r { var new_size uint = *c if new_size == 0 { new_size = r } for new_size < r { new_size *= 2 } if cap(*a) < int(new_size) { var new_array []byte = make([]byte, new_size) if *c != 0 { copy(new_array, (*a)[:*c]) } *a = new_array } else { *a = (*a)[:new_size] } *c = new_size } } func brotli_ensure_capacity_uint32_t(a *[]uint32, c *uint, r uint) { var new_array []uint32 if *c < r { var new_size uint = *c if new_size == 0 { new_size = r } for new_size < r { new_size *= 2 } if cap(*a) < int(new_size) { new_array = make([]uint32, new_size) if *c != 0 { copy(new_array, (*a)[:*c]) } *a = new_array } else { *a = (*a)[:new_size] } *c = new_size } } brotli-1.0.4/metablock.go000066400000000000000000000514661412267201500153130ustar00rootroot00000000000000package brotli import ( "sync" ) /* Copyright 2014 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* Algorithms for distributing the literals and commands of a metablock between block types and contexts. */ type metaBlockSplit struct { literal_split blockSplit command_split blockSplit distance_split blockSplit literal_context_map []uint32 literal_context_map_size uint distance_context_map []uint32 distance_context_map_size uint literal_histograms []histogramLiteral literal_histograms_size uint command_histograms []histogramCommand command_histograms_size uint distance_histograms []histogramDistance distance_histograms_size uint } var metaBlockPool sync.Pool func getMetaBlockSplit() *metaBlockSplit { mb, _ := metaBlockPool.Get().(*metaBlockSplit) if mb == nil { mb = &metaBlockSplit{} } else { initBlockSplit(&mb.literal_split) initBlockSplit(&mb.command_split) initBlockSplit(&mb.distance_split) mb.literal_context_map = mb.literal_context_map[:0] mb.literal_context_map_size = 0 mb.distance_context_map = mb.distance_context_map[:0] mb.distance_context_map_size = 0 mb.literal_histograms = mb.literal_histograms[:0] mb.command_histograms = mb.command_histograms[:0] mb.distance_histograms = mb.distance_histograms[:0] } return mb } func freeMetaBlockSplit(mb *metaBlockSplit) { metaBlockPool.Put(mb) } func initDistanceParams(params *encoderParams, npostfix uint32, ndirect uint32) { var dist_params *distanceParams = ¶ms.dist var alphabet_size uint32 var max_distance uint32 dist_params.distance_postfix_bits = npostfix dist_params.num_direct_distance_codes = ndirect alphabet_size = uint32(distanceAlphabetSize(uint(npostfix), uint(ndirect), maxDistanceBits)) max_distance = ndirect + (1 << (maxDistanceBits + npostfix + 2)) - (1 << (npostfix + 2)) if params.large_window { var bound = [maxNpostfix + 1]uint32{0, 4, 12, 28} var postfix uint32 = 1 << npostfix alphabet_size = uint32(distanceAlphabetSize(uint(npostfix), uint(ndirect), largeMaxDistanceBits)) /* The maximum distance is set so that no distance symbol used can encode a distance larger than BROTLI_MAX_ALLOWED_DISTANCE with all its extra bits set. */ if ndirect < bound[npostfix] { max_distance = maxAllowedDistance - (bound[npostfix] - ndirect) } else if ndirect >= bound[npostfix]+postfix { max_distance = (3 << 29) - 4 + (ndirect - bound[npostfix]) } else { max_distance = maxAllowedDistance } } dist_params.alphabet_size = alphabet_size dist_params.max_distance = uint(max_distance) } func recomputeDistancePrefixes(cmds []command, orig_params *distanceParams, new_params *distanceParams) { if orig_params.distance_postfix_bits == new_params.distance_postfix_bits && orig_params.num_direct_distance_codes == new_params.num_direct_distance_codes { return } for i := range cmds { var cmd *command = &cmds[i] if commandCopyLen(cmd) != 0 && cmd.cmd_prefix_ >= 128 { prefixEncodeCopyDistance(uint(commandRestoreDistanceCode(cmd, orig_params)), uint(new_params.num_direct_distance_codes), uint(new_params.distance_postfix_bits), &cmd.dist_prefix_, &cmd.dist_extra_) } } } func computeDistanceCost(cmds []command, orig_params *distanceParams, new_params *distanceParams, cost *float64) bool { var equal_params bool = false var dist_prefix uint16 var dist_extra uint32 var extra_bits float64 = 0.0 var histo histogramDistance histogramClearDistance(&histo) if orig_params.distance_postfix_bits == new_params.distance_postfix_bits && orig_params.num_direct_distance_codes == new_params.num_direct_distance_codes { equal_params = true } for i := range cmds { cmd := &cmds[i] if commandCopyLen(cmd) != 0 && cmd.cmd_prefix_ >= 128 { if equal_params { dist_prefix = cmd.dist_prefix_ } else { var distance uint32 = commandRestoreDistanceCode(cmd, orig_params) if distance > uint32(new_params.max_distance) { return false } prefixEncodeCopyDistance(uint(distance), uint(new_params.num_direct_distance_codes), uint(new_params.distance_postfix_bits), &dist_prefix, &dist_extra) } histogramAddDistance(&histo, uint(dist_prefix)&0x3FF) extra_bits += float64(dist_prefix >> 10) } } *cost = populationCostDistance(&histo) + extra_bits return true } var buildMetaBlock_kMaxNumberOfHistograms uint = 256 func buildMetaBlock(ringbuffer []byte, pos uint, mask uint, params *encoderParams, prev_byte byte, prev_byte2 byte, cmds []command, literal_context_mode int, mb *metaBlockSplit) { var distance_histograms []histogramDistance var literal_histograms []histogramLiteral var literal_context_modes []int = nil var literal_histograms_size uint var distance_histograms_size uint var i uint var literal_context_multiplier uint = 1 var npostfix uint32 var ndirect_msb uint32 = 0 var check_orig bool = true var best_dist_cost float64 = 1e99 var orig_params encoderParams = *params /* Histogram ids need to fit in one byte. */ var new_params encoderParams = *params for npostfix = 0; npostfix <= maxNpostfix; npostfix++ { for ; ndirect_msb < 16; ndirect_msb++ { var ndirect uint32 = ndirect_msb << npostfix var skip bool var dist_cost float64 initDistanceParams(&new_params, npostfix, ndirect) if npostfix == orig_params.dist.distance_postfix_bits && ndirect == orig_params.dist.num_direct_distance_codes { check_orig = false } skip = !computeDistanceCost(cmds, &orig_params.dist, &new_params.dist, &dist_cost) if skip || (dist_cost > best_dist_cost) { break } best_dist_cost = dist_cost params.dist = new_params.dist } if ndirect_msb > 0 { ndirect_msb-- } ndirect_msb /= 2 } if check_orig { var dist_cost float64 computeDistanceCost(cmds, &orig_params.dist, &orig_params.dist, &dist_cost) if dist_cost < best_dist_cost { /* NB: currently unused; uncomment when more param tuning is added. */ /* best_dist_cost = dist_cost; */ params.dist = orig_params.dist } } recomputeDistancePrefixes(cmds, &orig_params.dist, ¶ms.dist) splitBlock(cmds, ringbuffer, pos, mask, params, &mb.literal_split, &mb.command_split, &mb.distance_split) if !params.disable_literal_context_modeling { literal_context_multiplier = 1 << literalContextBits literal_context_modes = make([]int, (mb.literal_split.num_types)) for i = 0; i < mb.literal_split.num_types; i++ { literal_context_modes[i] = literal_context_mode } } literal_histograms_size = mb.literal_split.num_types * literal_context_multiplier literal_histograms = make([]histogramLiteral, literal_histograms_size) clearHistogramsLiteral(literal_histograms, literal_histograms_size) distance_histograms_size = mb.distance_split.num_types << distanceContextBits distance_histograms = make([]histogramDistance, distance_histograms_size) clearHistogramsDistance(distance_histograms, distance_histograms_size) mb.command_histograms_size = mb.command_split.num_types if cap(mb.command_histograms) < int(mb.command_histograms_size) { mb.command_histograms = make([]histogramCommand, (mb.command_histograms_size)) } else { mb.command_histograms = mb.command_histograms[:mb.command_histograms_size] } clearHistogramsCommand(mb.command_histograms, mb.command_histograms_size) buildHistogramsWithContext(cmds, &mb.literal_split, &mb.command_split, &mb.distance_split, ringbuffer, pos, mask, prev_byte, prev_byte2, literal_context_modes, literal_histograms, mb.command_histograms, distance_histograms) literal_context_modes = nil mb.literal_context_map_size = mb.literal_split.num_types << literalContextBits if cap(mb.literal_context_map) < int(mb.literal_context_map_size) { mb.literal_context_map = make([]uint32, (mb.literal_context_map_size)) } else { mb.literal_context_map = mb.literal_context_map[:mb.literal_context_map_size] } mb.literal_histograms_size = mb.literal_context_map_size if cap(mb.literal_histograms) < int(mb.literal_histograms_size) { mb.literal_histograms = make([]histogramLiteral, (mb.literal_histograms_size)) } else { mb.literal_histograms = mb.literal_histograms[:mb.literal_histograms_size] } clusterHistogramsLiteral(literal_histograms, literal_histograms_size, buildMetaBlock_kMaxNumberOfHistograms, mb.literal_histograms, &mb.literal_histograms_size, mb.literal_context_map) literal_histograms = nil if params.disable_literal_context_modeling { /* Distribute assignment to all contexts. */ for i = mb.literal_split.num_types; i != 0; { var j uint = 0 i-- for ; j < 1< 0 { var entropy [maxStaticContexts]float64 var combined_histo []histogramLiteral = make([]histogramLiteral, (2 * num_contexts)) var combined_entropy [2 * maxStaticContexts]float64 var diff = [2]float64{0.0} /* Try merging the set of histograms for the current block type with the respective set of histograms for the last and second last block types. Decide over the split based on the total reduction of entropy across all contexts. */ var i uint for i = 0; i < num_contexts; i++ { var curr_histo_ix uint = self.curr_histogram_ix_ + i var j uint entropy[i] = bitsEntropy(histograms[curr_histo_ix].data_[:], self.alphabet_size_) for j = 0; j < 2; j++ { var jx uint = j*num_contexts + i var last_histogram_ix uint = self.last_histogram_ix_[j] + i combined_histo[jx] = histograms[curr_histo_ix] histogramAddHistogramLiteral(&combined_histo[jx], &histograms[last_histogram_ix]) combined_entropy[jx] = bitsEntropy(combined_histo[jx].data_[0:], self.alphabet_size_) diff[j] += combined_entropy[jx] - entropy[i] - last_entropy[jx] } } if split.num_types < self.max_block_types_ && diff[0] > self.split_threshold_ && diff[1] > self.split_threshold_ { /* Create new block. */ split.lengths[self.num_blocks_] = uint32(self.block_size_) split.types[self.num_blocks_] = byte(split.num_types) self.last_histogram_ix_[1] = self.last_histogram_ix_[0] self.last_histogram_ix_[0] = split.num_types * num_contexts for i = 0; i < num_contexts; i++ { last_entropy[num_contexts+i] = last_entropy[i] last_entropy[i] = entropy[i] } self.num_blocks_++ split.num_types++ self.curr_histogram_ix_ += num_contexts if self.curr_histogram_ix_ < *self.histograms_size_ { clearHistogramsLiteral(self.histograms_[self.curr_histogram_ix_:], self.num_contexts_) } self.block_size_ = 0 self.merge_last_count_ = 0 self.target_block_size_ = self.min_block_size_ } else if diff[1] < diff[0]-20.0 { split.lengths[self.num_blocks_] = uint32(self.block_size_) split.types[self.num_blocks_] = split.types[self.num_blocks_-2] /* Combine this block with second last block. */ var tmp uint = self.last_histogram_ix_[0] self.last_histogram_ix_[0] = self.last_histogram_ix_[1] self.last_histogram_ix_[1] = tmp for i = 0; i < num_contexts; i++ { histograms[self.last_histogram_ix_[0]+i] = combined_histo[num_contexts+i] last_entropy[num_contexts+i] = last_entropy[i] last_entropy[i] = combined_entropy[num_contexts+i] histogramClearLiteral(&histograms[self.curr_histogram_ix_+i]) } self.num_blocks_++ self.block_size_ = 0 self.merge_last_count_ = 0 self.target_block_size_ = self.min_block_size_ } else { /* Combine this block with last block. */ split.lengths[self.num_blocks_-1] += uint32(self.block_size_) for i = 0; i < num_contexts; i++ { histograms[self.last_histogram_ix_[0]+i] = combined_histo[i] last_entropy[i] = combined_entropy[i] if split.num_types == 1 { last_entropy[num_contexts+i] = last_entropy[i] } histogramClearLiteral(&histograms[self.curr_histogram_ix_+i]) } self.block_size_ = 0 self.merge_last_count_++ if self.merge_last_count_ > 1 { self.target_block_size_ += self.min_block_size_ } } combined_histo = nil } if is_final { *self.histograms_size_ = split.num_types * num_contexts split.num_blocks = self.num_blocks_ } } /* Adds the next symbol to the current block type and context. When the current block reaches the target size, decides on merging the block. */ func contextBlockSplitterAddSymbol(self *contextBlockSplitter, symbol uint, context uint) { histogramAddLiteral(&self.histograms_[self.curr_histogram_ix_+context], symbol) self.block_size_++ if self.block_size_ == self.target_block_size_ { contextBlockSplitterFinishBlock(self, false) /* is_final = */ } } func mapStaticContexts(num_contexts uint, static_context_map []uint32, mb *metaBlockSplit) { var i uint mb.literal_context_map_size = mb.literal_split.num_types << literalContextBits if cap(mb.literal_context_map) < int(mb.literal_context_map_size) { mb.literal_context_map = make([]uint32, (mb.literal_context_map_size)) } else { mb.literal_context_map = mb.literal_context_map[:mb.literal_context_map_size] } for i = 0; i < mb.literal_split.num_types; i++ { var offset uint32 = uint32(i * num_contexts) var j uint for j = 0; j < 1<= 128 { blockSplitterAddSymbolDistance(&dist_blocks, uint(cmd.dist_prefix_)&0x3FF) } } } if num_contexts == 1 { blockSplitterFinishBlockLiteral(&lit_blocks.plain, true) /* is_final = */ } else { contextBlockSplitterFinishBlock(&lit_blocks.ctx, true) /* is_final = */ } blockSplitterFinishBlockCommand(&cmd_blocks, true) /* is_final = */ blockSplitterFinishBlockDistance(&dist_blocks, true) /* is_final = */ if num_contexts > 1 { mapStaticContexts(num_contexts, static_context_map, mb) } } func buildMetaBlockGreedy(ringbuffer []byte, pos uint, mask uint, prev_byte byte, prev_byte2 byte, literal_context_lut contextLUT, num_contexts uint, static_context_map []uint32, commands []command, mb *metaBlockSplit) { if num_contexts == 1 { buildMetaBlockGreedyInternal(ringbuffer, pos, mask, prev_byte, prev_byte2, literal_context_lut, 1, nil, commands, mb) } else { buildMetaBlockGreedyInternal(ringbuffer, pos, mask, prev_byte, prev_byte2, literal_context_lut, num_contexts, static_context_map, commands, mb) } } func optimizeHistograms(num_distance_codes uint32, mb *metaBlockSplit) { var good_for_rle [numCommandSymbols]byte var i uint for i = 0; i < mb.literal_histograms_size; i++ { optimizeHuffmanCountsForRLE(256, mb.literal_histograms[i].data_[:], good_for_rle[:]) } for i = 0; i < mb.command_histograms_size; i++ { optimizeHuffmanCountsForRLE(numCommandSymbols, mb.command_histograms[i].data_[:], good_for_rle[:]) } for i = 0; i < mb.distance_histograms_size; i++ { optimizeHuffmanCountsForRLE(uint(num_distance_codes), mb.distance_histograms[i].data_[:], good_for_rle[:]) } } brotli-1.0.4/metablock_command.go000066400000000000000000000141231412267201500167760ustar00rootroot00000000000000package brotli /* Copyright 2015 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* Greedy block splitter for one block category (literal, command or distance). */ type blockSplitterCommand struct { alphabet_size_ uint min_block_size_ uint split_threshold_ float64 num_blocks_ uint split_ *blockSplit histograms_ []histogramCommand histograms_size_ *uint target_block_size_ uint block_size_ uint curr_histogram_ix_ uint last_histogram_ix_ [2]uint last_entropy_ [2]float64 merge_last_count_ uint } func initBlockSplitterCommand(self *blockSplitterCommand, alphabet_size uint, min_block_size uint, split_threshold float64, num_symbols uint, split *blockSplit, histograms *[]histogramCommand, histograms_size *uint) { var max_num_blocks uint = num_symbols/min_block_size + 1 var max_num_types uint = brotli_min_size_t(max_num_blocks, maxNumberOfBlockTypes+1) /* We have to allocate one more histogram than the maximum number of block types for the current histogram when the meta-block is too big. */ self.alphabet_size_ = alphabet_size self.min_block_size_ = min_block_size self.split_threshold_ = split_threshold self.num_blocks_ = 0 self.split_ = split self.histograms_size_ = histograms_size self.target_block_size_ = min_block_size self.block_size_ = 0 self.curr_histogram_ix_ = 0 self.merge_last_count_ = 0 brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, max_num_blocks) brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, max_num_blocks) self.split_.num_blocks = max_num_blocks *histograms_size = max_num_types if histograms == nil || cap(*histograms) < int(*histograms_size) { *histograms = make([]histogramCommand, (*histograms_size)) } else { *histograms = (*histograms)[:*histograms_size] } self.histograms_ = *histograms /* Clear only current histogram. */ histogramClearCommand(&self.histograms_[0]) self.last_histogram_ix_[1] = 0 self.last_histogram_ix_[0] = self.last_histogram_ix_[1] } /* Does either of three things: (1) emits the current block with a new block type; (2) emits the current block with the type of the second last block; (3) merges the current block with the last block. */ func blockSplitterFinishBlockCommand(self *blockSplitterCommand, is_final bool) { var split *blockSplit = self.split_ var last_entropy []float64 = self.last_entropy_[:] var histograms []histogramCommand = self.histograms_ self.block_size_ = brotli_max_size_t(self.block_size_, self.min_block_size_) if self.num_blocks_ == 0 { /* Create first block. */ split.lengths[0] = uint32(self.block_size_) split.types[0] = 0 last_entropy[0] = bitsEntropy(histograms[0].data_[:], self.alphabet_size_) last_entropy[1] = last_entropy[0] self.num_blocks_++ split.num_types++ self.curr_histogram_ix_++ if self.curr_histogram_ix_ < *self.histograms_size_ { histogramClearCommand(&histograms[self.curr_histogram_ix_]) } self.block_size_ = 0 } else if self.block_size_ > 0 { var entropy float64 = bitsEntropy(histograms[self.curr_histogram_ix_].data_[:], self.alphabet_size_) var combined_histo [2]histogramCommand var combined_entropy [2]float64 var diff [2]float64 var j uint for j = 0; j < 2; j++ { var last_histogram_ix uint = self.last_histogram_ix_[j] combined_histo[j] = histograms[self.curr_histogram_ix_] histogramAddHistogramCommand(&combined_histo[j], &histograms[last_histogram_ix]) combined_entropy[j] = bitsEntropy(combined_histo[j].data_[0:], self.alphabet_size_) diff[j] = combined_entropy[j] - entropy - last_entropy[j] } if split.num_types < maxNumberOfBlockTypes && diff[0] > self.split_threshold_ && diff[1] > self.split_threshold_ { /* Create new block. */ split.lengths[self.num_blocks_] = uint32(self.block_size_) split.types[self.num_blocks_] = byte(split.num_types) self.last_histogram_ix_[1] = self.last_histogram_ix_[0] self.last_histogram_ix_[0] = uint(byte(split.num_types)) last_entropy[1] = last_entropy[0] last_entropy[0] = entropy self.num_blocks_++ split.num_types++ self.curr_histogram_ix_++ if self.curr_histogram_ix_ < *self.histograms_size_ { histogramClearCommand(&histograms[self.curr_histogram_ix_]) } self.block_size_ = 0 self.merge_last_count_ = 0 self.target_block_size_ = self.min_block_size_ } else if diff[1] < diff[0]-20.0 { split.lengths[self.num_blocks_] = uint32(self.block_size_) split.types[self.num_blocks_] = split.types[self.num_blocks_-2] /* Combine this block with second last block. */ var tmp uint = self.last_histogram_ix_[0] self.last_histogram_ix_[0] = self.last_histogram_ix_[1] self.last_histogram_ix_[1] = tmp histograms[self.last_histogram_ix_[0]] = combined_histo[1] last_entropy[1] = last_entropy[0] last_entropy[0] = combined_entropy[1] self.num_blocks_++ self.block_size_ = 0 histogramClearCommand(&histograms[self.curr_histogram_ix_]) self.merge_last_count_ = 0 self.target_block_size_ = self.min_block_size_ } else { /* Combine this block with last block. */ split.lengths[self.num_blocks_-1] += uint32(self.block_size_) histograms[self.last_histogram_ix_[0]] = combined_histo[0] last_entropy[0] = combined_entropy[0] if split.num_types == 1 { last_entropy[1] = last_entropy[0] } self.block_size_ = 0 histogramClearCommand(&histograms[self.curr_histogram_ix_]) self.merge_last_count_++ if self.merge_last_count_ > 1 { self.target_block_size_ += self.min_block_size_ } } } if is_final { *self.histograms_size_ = split.num_types split.num_blocks = self.num_blocks_ } } /* Adds the next symbol to the current histogram. When the current histogram reaches the target size, decides on merging the block. */ func blockSplitterAddSymbolCommand(self *blockSplitterCommand, symbol uint) { histogramAddCommand(&self.histograms_[self.curr_histogram_ix_], symbol) self.block_size_++ if self.block_size_ == self.target_block_size_ { blockSplitterFinishBlockCommand(self, false) /* is_final = */ } } brotli-1.0.4/metablock_distance.go000066400000000000000000000141451412267201500171560ustar00rootroot00000000000000package brotli /* Copyright 2015 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* Greedy block splitter for one block category (literal, command or distance). */ type blockSplitterDistance struct { alphabet_size_ uint min_block_size_ uint split_threshold_ float64 num_blocks_ uint split_ *blockSplit histograms_ []histogramDistance histograms_size_ *uint target_block_size_ uint block_size_ uint curr_histogram_ix_ uint last_histogram_ix_ [2]uint last_entropy_ [2]float64 merge_last_count_ uint } func initBlockSplitterDistance(self *blockSplitterDistance, alphabet_size uint, min_block_size uint, split_threshold float64, num_symbols uint, split *blockSplit, histograms *[]histogramDistance, histograms_size *uint) { var max_num_blocks uint = num_symbols/min_block_size + 1 var max_num_types uint = brotli_min_size_t(max_num_blocks, maxNumberOfBlockTypes+1) /* We have to allocate one more histogram than the maximum number of block types for the current histogram when the meta-block is too big. */ self.alphabet_size_ = alphabet_size self.min_block_size_ = min_block_size self.split_threshold_ = split_threshold self.num_blocks_ = 0 self.split_ = split self.histograms_size_ = histograms_size self.target_block_size_ = min_block_size self.block_size_ = 0 self.curr_histogram_ix_ = 0 self.merge_last_count_ = 0 brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, max_num_blocks) brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, max_num_blocks) self.split_.num_blocks = max_num_blocks *histograms_size = max_num_types if histograms == nil || cap(*histograms) < int(*histograms_size) { *histograms = make([]histogramDistance, *histograms_size) } else { *histograms = (*histograms)[:*histograms_size] } self.histograms_ = *histograms /* Clear only current histogram. */ histogramClearDistance(&self.histograms_[0]) self.last_histogram_ix_[1] = 0 self.last_histogram_ix_[0] = self.last_histogram_ix_[1] } /* Does either of three things: (1) emits the current block with a new block type; (2) emits the current block with the type of the second last block; (3) merges the current block with the last block. */ func blockSplitterFinishBlockDistance(self *blockSplitterDistance, is_final bool) { var split *blockSplit = self.split_ var last_entropy []float64 = self.last_entropy_[:] var histograms []histogramDistance = self.histograms_ self.block_size_ = brotli_max_size_t(self.block_size_, self.min_block_size_) if self.num_blocks_ == 0 { /* Create first block. */ split.lengths[0] = uint32(self.block_size_) split.types[0] = 0 last_entropy[0] = bitsEntropy(histograms[0].data_[:], self.alphabet_size_) last_entropy[1] = last_entropy[0] self.num_blocks_++ split.num_types++ self.curr_histogram_ix_++ if self.curr_histogram_ix_ < *self.histograms_size_ { histogramClearDistance(&histograms[self.curr_histogram_ix_]) } self.block_size_ = 0 } else if self.block_size_ > 0 { var entropy float64 = bitsEntropy(histograms[self.curr_histogram_ix_].data_[:], self.alphabet_size_) var combined_histo [2]histogramDistance var combined_entropy [2]float64 var diff [2]float64 var j uint for j = 0; j < 2; j++ { var last_histogram_ix uint = self.last_histogram_ix_[j] combined_histo[j] = histograms[self.curr_histogram_ix_] histogramAddHistogramDistance(&combined_histo[j], &histograms[last_histogram_ix]) combined_entropy[j] = bitsEntropy(combined_histo[j].data_[0:], self.alphabet_size_) diff[j] = combined_entropy[j] - entropy - last_entropy[j] } if split.num_types < maxNumberOfBlockTypes && diff[0] > self.split_threshold_ && diff[1] > self.split_threshold_ { /* Create new block. */ split.lengths[self.num_blocks_] = uint32(self.block_size_) split.types[self.num_blocks_] = byte(split.num_types) self.last_histogram_ix_[1] = self.last_histogram_ix_[0] self.last_histogram_ix_[0] = uint(byte(split.num_types)) last_entropy[1] = last_entropy[0] last_entropy[0] = entropy self.num_blocks_++ split.num_types++ self.curr_histogram_ix_++ if self.curr_histogram_ix_ < *self.histograms_size_ { histogramClearDistance(&histograms[self.curr_histogram_ix_]) } self.block_size_ = 0 self.merge_last_count_ = 0 self.target_block_size_ = self.min_block_size_ } else if diff[1] < diff[0]-20.0 { split.lengths[self.num_blocks_] = uint32(self.block_size_) split.types[self.num_blocks_] = split.types[self.num_blocks_-2] /* Combine this block with second last block. */ var tmp uint = self.last_histogram_ix_[0] self.last_histogram_ix_[0] = self.last_histogram_ix_[1] self.last_histogram_ix_[1] = tmp histograms[self.last_histogram_ix_[0]] = combined_histo[1] last_entropy[1] = last_entropy[0] last_entropy[0] = combined_entropy[1] self.num_blocks_++ self.block_size_ = 0 histogramClearDistance(&histograms[self.curr_histogram_ix_]) self.merge_last_count_ = 0 self.target_block_size_ = self.min_block_size_ } else { /* Combine this block with last block. */ split.lengths[self.num_blocks_-1] += uint32(self.block_size_) histograms[self.last_histogram_ix_[0]] = combined_histo[0] last_entropy[0] = combined_entropy[0] if split.num_types == 1 { last_entropy[1] = last_entropy[0] } self.block_size_ = 0 histogramClearDistance(&histograms[self.curr_histogram_ix_]) self.merge_last_count_++ if self.merge_last_count_ > 1 { self.target_block_size_ += self.min_block_size_ } } } if is_final { *self.histograms_size_ = split.num_types split.num_blocks = self.num_blocks_ } } /* Adds the next symbol to the current histogram. When the current histogram reaches the target size, decides on merging the block. */ func blockSplitterAddSymbolDistance(self *blockSplitterDistance, symbol uint) { histogramAddDistance(&self.histograms_[self.curr_histogram_ix_], symbol) self.block_size_++ if self.block_size_ == self.target_block_size_ { blockSplitterFinishBlockDistance(self, false) /* is_final = */ } } brotli-1.0.4/metablock_literal.go000066400000000000000000000141211412267201500170120ustar00rootroot00000000000000package brotli /* Copyright 2015 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* Greedy block splitter for one block category (literal, command or distance). */ type blockSplitterLiteral struct { alphabet_size_ uint min_block_size_ uint split_threshold_ float64 num_blocks_ uint split_ *blockSplit histograms_ []histogramLiteral histograms_size_ *uint target_block_size_ uint block_size_ uint curr_histogram_ix_ uint last_histogram_ix_ [2]uint last_entropy_ [2]float64 merge_last_count_ uint } func initBlockSplitterLiteral(self *blockSplitterLiteral, alphabet_size uint, min_block_size uint, split_threshold float64, num_symbols uint, split *blockSplit, histograms *[]histogramLiteral, histograms_size *uint) { var max_num_blocks uint = num_symbols/min_block_size + 1 var max_num_types uint = brotli_min_size_t(max_num_blocks, maxNumberOfBlockTypes+1) /* We have to allocate one more histogram than the maximum number of block types for the current histogram when the meta-block is too big. */ self.alphabet_size_ = alphabet_size self.min_block_size_ = min_block_size self.split_threshold_ = split_threshold self.num_blocks_ = 0 self.split_ = split self.histograms_size_ = histograms_size self.target_block_size_ = min_block_size self.block_size_ = 0 self.curr_histogram_ix_ = 0 self.merge_last_count_ = 0 brotli_ensure_capacity_uint8_t(&split.types, &split.types_alloc_size, max_num_blocks) brotli_ensure_capacity_uint32_t(&split.lengths, &split.lengths_alloc_size, max_num_blocks) self.split_.num_blocks = max_num_blocks *histograms_size = max_num_types if histograms == nil || cap(*histograms) < int(*histograms_size) { *histograms = make([]histogramLiteral, *histograms_size) } else { *histograms = (*histograms)[:*histograms_size] } self.histograms_ = *histograms /* Clear only current histogram. */ histogramClearLiteral(&self.histograms_[0]) self.last_histogram_ix_[1] = 0 self.last_histogram_ix_[0] = self.last_histogram_ix_[1] } /* Does either of three things: (1) emits the current block with a new block type; (2) emits the current block with the type of the second last block; (3) merges the current block with the last block. */ func blockSplitterFinishBlockLiteral(self *blockSplitterLiteral, is_final bool) { var split *blockSplit = self.split_ var last_entropy []float64 = self.last_entropy_[:] var histograms []histogramLiteral = self.histograms_ self.block_size_ = brotli_max_size_t(self.block_size_, self.min_block_size_) if self.num_blocks_ == 0 { /* Create first block. */ split.lengths[0] = uint32(self.block_size_) split.types[0] = 0 last_entropy[0] = bitsEntropy(histograms[0].data_[:], self.alphabet_size_) last_entropy[1] = last_entropy[0] self.num_blocks_++ split.num_types++ self.curr_histogram_ix_++ if self.curr_histogram_ix_ < *self.histograms_size_ { histogramClearLiteral(&histograms[self.curr_histogram_ix_]) } self.block_size_ = 0 } else if self.block_size_ > 0 { var entropy float64 = bitsEntropy(histograms[self.curr_histogram_ix_].data_[:], self.alphabet_size_) var combined_histo [2]histogramLiteral var combined_entropy [2]float64 var diff [2]float64 var j uint for j = 0; j < 2; j++ { var last_histogram_ix uint = self.last_histogram_ix_[j] combined_histo[j] = histograms[self.curr_histogram_ix_] histogramAddHistogramLiteral(&combined_histo[j], &histograms[last_histogram_ix]) combined_entropy[j] = bitsEntropy(combined_histo[j].data_[0:], self.alphabet_size_) diff[j] = combined_entropy[j] - entropy - last_entropy[j] } if split.num_types < maxNumberOfBlockTypes && diff[0] > self.split_threshold_ && diff[1] > self.split_threshold_ { /* Create new block. */ split.lengths[self.num_blocks_] = uint32(self.block_size_) split.types[self.num_blocks_] = byte(split.num_types) self.last_histogram_ix_[1] = self.last_histogram_ix_[0] self.last_histogram_ix_[0] = uint(byte(split.num_types)) last_entropy[1] = last_entropy[0] last_entropy[0] = entropy self.num_blocks_++ split.num_types++ self.curr_histogram_ix_++ if self.curr_histogram_ix_ < *self.histograms_size_ { histogramClearLiteral(&histograms[self.curr_histogram_ix_]) } self.block_size_ = 0 self.merge_last_count_ = 0 self.target_block_size_ = self.min_block_size_ } else if diff[1] < diff[0]-20.0 { split.lengths[self.num_blocks_] = uint32(self.block_size_) split.types[self.num_blocks_] = split.types[self.num_blocks_-2] /* Combine this block with second last block. */ var tmp uint = self.last_histogram_ix_[0] self.last_histogram_ix_[0] = self.last_histogram_ix_[1] self.last_histogram_ix_[1] = tmp histograms[self.last_histogram_ix_[0]] = combined_histo[1] last_entropy[1] = last_entropy[0] last_entropy[0] = combined_entropy[1] self.num_blocks_++ self.block_size_ = 0 histogramClearLiteral(&histograms[self.curr_histogram_ix_]) self.merge_last_count_ = 0 self.target_block_size_ = self.min_block_size_ } else { /* Combine this block with last block. */ split.lengths[self.num_blocks_-1] += uint32(self.block_size_) histograms[self.last_histogram_ix_[0]] = combined_histo[0] last_entropy[0] = combined_entropy[0] if split.num_types == 1 { last_entropy[1] = last_entropy[0] } self.block_size_ = 0 histogramClearLiteral(&histograms[self.curr_histogram_ix_]) self.merge_last_count_++ if self.merge_last_count_ > 1 { self.target_block_size_ += self.min_block_size_ } } } if is_final { *self.histograms_size_ = split.num_types split.num_blocks = self.num_blocks_ } } /* Adds the next symbol to the current histogram. When the current histogram reaches the target size, decides on merging the block. */ func blockSplitterAddSymbolLiteral(self *blockSplitterLiteral, symbol uint) { histogramAddLiteral(&self.histograms_[self.curr_histogram_ix_], symbol) self.block_size_++ if self.block_size_ == self.target_block_size_ { blockSplitterFinishBlockLiteral(self, false) /* is_final = */ } } brotli-1.0.4/params.go000066400000000000000000000020771412267201500146270ustar00rootroot00000000000000package brotli /* Copyright 2017 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* Parameters for the Brotli encoder with chosen quality levels. */ type hasherParams struct { type_ int bucket_bits int block_bits int hash_len int num_last_distances_to_check int } type distanceParams struct { distance_postfix_bits uint32 num_direct_distance_codes uint32 alphabet_size uint32 max_distance uint } /* Encoding parameters */ type encoderParams struct { mode int quality int lgwin uint lgblock int size_hint uint disable_literal_context_modeling bool large_window bool hasher hasherParams dist distanceParams dictionary encoderDictionary } brotli-1.0.4/platform.go000066400000000000000000000025371412267201500151710ustar00rootroot00000000000000package brotli /* Copyright 2013 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ func brotli_min_double(a float64, b float64) float64 { if a < b { return a } else { return b } } func brotli_max_double(a float64, b float64) float64 { if a > b { return a } else { return b } } func brotli_min_float(a float32, b float32) float32 { if a < b { return a } else { return b } } func brotli_max_float(a float32, b float32) float32 { if a > b { return a } else { return b } } func brotli_min_int(a int, b int) int { if a < b { return a } else { return b } } func brotli_max_int(a int, b int) int { if a > b { return a } else { return b } } func brotli_min_size_t(a uint, b uint) uint { if a < b { return a } else { return b } } func brotli_max_size_t(a uint, b uint) uint { if a > b { return a } else { return b } } func brotli_min_uint32_t(a uint32, b uint32) uint32 { if a < b { return a } else { return b } } func brotli_max_uint32_t(a uint32, b uint32) uint32 { if a > b { return a } else { return b } } func brotli_min_uint8_t(a byte, b byte) byte { if a < b { return a } else { return b } } func brotli_max_uint8_t(a byte, b byte) byte { if a > b { return a } else { return b } } brotli-1.0.4/prefix.go000066400000000000000000000024171412267201500146370ustar00rootroot00000000000000package brotli /* Copyright 2013 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* Functions for encoding of integers into prefix codes the amount of extra bits, and the actual values of the extra bits. */ /* Here distance_code is an intermediate code, i.e. one of the special codes or the actual distance increased by BROTLI_NUM_DISTANCE_SHORT_CODES - 1. */ func prefixEncodeCopyDistance(distance_code uint, num_direct_codes uint, postfix_bits uint, code *uint16, extra_bits *uint32) { if distance_code < numDistanceShortCodes+num_direct_codes { *code = uint16(distance_code) *extra_bits = 0 return } else { var dist uint = (uint(1) << (postfix_bits + 2)) + (distance_code - numDistanceShortCodes - num_direct_codes) var bucket uint = uint(log2FloorNonZero(dist) - 1) var postfix_mask uint = (1 << postfix_bits) - 1 var postfix uint = dist & postfix_mask var prefix uint = (dist >> bucket) & 1 var offset uint = (2 + prefix) << bucket var nbits uint = bucket - postfix_bits *code = uint16(nbits<<10 | (numDistanceShortCodes + num_direct_codes + ((2*(nbits-1) + prefix) << postfix_bits) + postfix)) *extra_bits = uint32((dist - offset) >> postfix_bits) } } brotli-1.0.4/prefix_dec.go000066400000000000000000001126651412267201500154610ustar00rootroot00000000000000package brotli /* Copyright 2013 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ type cmdLutElement struct { insert_len_extra_bits byte copy_len_extra_bits byte distance_code int8 context byte insert_len_offset uint16 copy_len_offset uint16 } var kCmdLut = [numCommandSymbols]cmdLutElement{ cmdLutElement{0x00, 0x00, 0, 0x00, 0x0000, 0x0002}, cmdLutElement{0x00, 0x00, 0, 0x01, 0x0000, 0x0003}, cmdLutElement{0x00, 0x00, 0, 0x02, 0x0000, 0x0004}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0000, 0x0005}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0000, 0x0006}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0000, 0x0007}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0000, 0x0008}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0000, 0x0009}, cmdLutElement{0x00, 0x00, 0, 0x00, 0x0001, 0x0002}, cmdLutElement{0x00, 0x00, 0, 0x01, 0x0001, 0x0003}, cmdLutElement{0x00, 0x00, 0, 0x02, 0x0001, 0x0004}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0001, 0x0005}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0001, 0x0006}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0001, 0x0007}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0001, 0x0008}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0001, 0x0009}, cmdLutElement{0x00, 0x00, 0, 0x00, 0x0002, 0x0002}, cmdLutElement{0x00, 0x00, 0, 0x01, 0x0002, 0x0003}, cmdLutElement{0x00, 0x00, 0, 0x02, 0x0002, 0x0004}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0002, 0x0005}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0002, 0x0006}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0002, 0x0007}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0002, 0x0008}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0002, 0x0009}, cmdLutElement{0x00, 0x00, 0, 0x00, 0x0003, 0x0002}, cmdLutElement{0x00, 0x00, 0, 0x01, 0x0003, 0x0003}, cmdLutElement{0x00, 0x00, 0, 0x02, 0x0003, 0x0004}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0003, 0x0005}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0003, 0x0006}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0003, 0x0007}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0003, 0x0008}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0003, 0x0009}, cmdLutElement{0x00, 0x00, 0, 0x00, 0x0004, 0x0002}, cmdLutElement{0x00, 0x00, 0, 0x01, 0x0004, 0x0003}, cmdLutElement{0x00, 0x00, 0, 0x02, 0x0004, 0x0004}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0004, 0x0005}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0004, 0x0006}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0004, 0x0007}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0004, 0x0008}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0004, 0x0009}, cmdLutElement{0x00, 0x00, 0, 0x00, 0x0005, 0x0002}, cmdLutElement{0x00, 0x00, 0, 0x01, 0x0005, 0x0003}, cmdLutElement{0x00, 0x00, 0, 0x02, 0x0005, 0x0004}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0005, 0x0005}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0005, 0x0006}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0005, 0x0007}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0005, 0x0008}, cmdLutElement{0x00, 0x00, 0, 0x03, 0x0005, 0x0009}, cmdLutElement{0x01, 0x00, 0, 0x00, 0x0006, 0x0002}, cmdLutElement{0x01, 0x00, 0, 0x01, 0x0006, 0x0003}, cmdLutElement{0x01, 0x00, 0, 0x02, 0x0006, 0x0004}, cmdLutElement{0x01, 0x00, 0, 0x03, 0x0006, 0x0005}, cmdLutElement{0x01, 0x00, 0, 0x03, 0x0006, 0x0006}, cmdLutElement{0x01, 0x00, 0, 0x03, 0x0006, 0x0007}, cmdLutElement{0x01, 0x00, 0, 0x03, 0x0006, 0x0008}, cmdLutElement{0x01, 0x00, 0, 0x03, 0x0006, 0x0009}, cmdLutElement{0x01, 0x00, 0, 0x00, 0x0008, 0x0002}, cmdLutElement{0x01, 0x00, 0, 0x01, 0x0008, 0x0003}, cmdLutElement{0x01, 0x00, 0, 0x02, 0x0008, 0x0004}, cmdLutElement{0x01, 0x00, 0, 0x03, 0x0008, 0x0005}, cmdLutElement{0x01, 0x00, 0, 0x03, 0x0008, 0x0006}, cmdLutElement{0x01, 0x00, 0, 0x03, 0x0008, 0x0007}, cmdLutElement{0x01, 0x00, 0, 0x03, 0x0008, 0x0008}, cmdLutElement{0x01, 0x00, 0, 0x03, 0x0008, 0x0009}, cmdLutElement{0x00, 0x01, 0, 0x03, 0x0000, 0x000a}, cmdLutElement{0x00, 0x01, 0, 0x03, 0x0000, 0x000c}, cmdLutElement{0x00, 0x02, 0, 0x03, 0x0000, 0x000e}, cmdLutElement{0x00, 0x02, 0, 0x03, 0x0000, 0x0012}, cmdLutElement{0x00, 0x03, 0, 0x03, 0x0000, 0x0016}, cmdLutElement{0x00, 0x03, 0, 0x03, 0x0000, 0x001e}, cmdLutElement{0x00, 0x04, 0, 0x03, 0x0000, 0x0026}, cmdLutElement{0x00, 0x04, 0, 0x03, 0x0000, 0x0036}, cmdLutElement{0x00, 0x01, 0, 0x03, 0x0001, 0x000a}, cmdLutElement{0x00, 0x01, 0, 0x03, 0x0001, 0x000c}, cmdLutElement{0x00, 0x02, 0, 0x03, 0x0001, 0x000e}, cmdLutElement{0x00, 0x02, 0, 0x03, 0x0001, 0x0012}, cmdLutElement{0x00, 0x03, 0, 0x03, 0x0001, 0x0016}, cmdLutElement{0x00, 0x03, 0, 0x03, 0x0001, 0x001e}, cmdLutElement{0x00, 0x04, 0, 0x03, 0x0001, 0x0026}, cmdLutElement{0x00, 0x04, 0, 0x03, 0x0001, 0x0036}, cmdLutElement{0x00, 0x01, 0, 0x03, 0x0002, 0x000a}, cmdLutElement{0x00, 0x01, 0, 0x03, 0x0002, 0x000c}, cmdLutElement{0x00, 0x02, 0, 0x03, 0x0002, 0x000e}, cmdLutElement{0x00, 0x02, 0, 0x03, 0x0002, 0x0012}, cmdLutElement{0x00, 0x03, 0, 0x03, 0x0002, 0x0016}, cmdLutElement{0x00, 0x03, 0, 0x03, 0x0002, 0x001e}, cmdLutElement{0x00, 0x04, 0, 0x03, 0x0002, 0x0026}, cmdLutElement{0x00, 0x04, 0, 0x03, 0x0002, 0x0036}, cmdLutElement{0x00, 0x01, 0, 0x03, 0x0003, 0x000a}, cmdLutElement{0x00, 0x01, 0, 0x03, 0x0003, 0x000c}, cmdLutElement{0x00, 0x02, 0, 0x03, 0x0003, 0x000e}, cmdLutElement{0x00, 0x02, 0, 0x03, 0x0003, 0x0012}, cmdLutElement{0x00, 0x03, 0, 0x03, 0x0003, 0x0016}, cmdLutElement{0x00, 0x03, 0, 0x03, 0x0003, 0x001e}, cmdLutElement{0x00, 0x04, 0, 0x03, 0x0003, 0x0026}, cmdLutElement{0x00, 0x04, 0, 0x03, 0x0003, 0x0036}, cmdLutElement{0x00, 0x01, 0, 0x03, 0x0004, 0x000a}, cmdLutElement{0x00, 0x01, 0, 0x03, 0x0004, 0x000c}, cmdLutElement{0x00, 0x02, 0, 0x03, 0x0004, 0x000e}, cmdLutElement{0x00, 0x02, 0, 0x03, 0x0004, 0x0012}, cmdLutElement{0x00, 0x03, 0, 0x03, 0x0004, 0x0016}, cmdLutElement{0x00, 0x03, 0, 0x03, 0x0004, 0x001e}, cmdLutElement{0x00, 0x04, 0, 0x03, 0x0004, 0x0026}, cmdLutElement{0x00, 0x04, 0, 0x03, 0x0004, 0x0036}, cmdLutElement{0x00, 0x01, 0, 0x03, 0x0005, 0x000a}, cmdLutElement{0x00, 0x01, 0, 0x03, 0x0005, 0x000c}, cmdLutElement{0x00, 0x02, 0, 0x03, 0x0005, 0x000e}, cmdLutElement{0x00, 0x02, 0, 0x03, 0x0005, 0x0012}, cmdLutElement{0x00, 0x03, 0, 0x03, 0x0005, 0x0016}, cmdLutElement{0x00, 0x03, 0, 0x03, 0x0005, 0x001e}, cmdLutElement{0x00, 0x04, 0, 0x03, 0x0005, 0x0026}, cmdLutElement{0x00, 0x04, 0, 0x03, 0x0005, 0x0036}, cmdLutElement{0x01, 0x01, 0, 0x03, 0x0006, 0x000a}, cmdLutElement{0x01, 0x01, 0, 0x03, 0x0006, 0x000c}, cmdLutElement{0x01, 0x02, 0, 0x03, 0x0006, 0x000e}, cmdLutElement{0x01, 0x02, 0, 0x03, 0x0006, 0x0012}, cmdLutElement{0x01, 0x03, 0, 0x03, 0x0006, 0x0016}, cmdLutElement{0x01, 0x03, 0, 0x03, 0x0006, 0x001e}, cmdLutElement{0x01, 0x04, 0, 0x03, 0x0006, 0x0026}, cmdLutElement{0x01, 0x04, 0, 0x03, 0x0006, 0x0036}, cmdLutElement{0x01, 0x01, 0, 0x03, 0x0008, 0x000a}, cmdLutElement{0x01, 0x01, 0, 0x03, 0x0008, 0x000c}, cmdLutElement{0x01, 0x02, 0, 0x03, 0x0008, 0x000e}, cmdLutElement{0x01, 0x02, 0, 0x03, 0x0008, 0x0012}, cmdLutElement{0x01, 0x03, 0, 0x03, 0x0008, 0x0016}, cmdLutElement{0x01, 0x03, 0, 0x03, 0x0008, 0x001e}, cmdLutElement{0x01, 0x04, 0, 0x03, 0x0008, 0x0026}, cmdLutElement{0x01, 0x04, 0, 0x03, 0x0008, 0x0036}, cmdLutElement{0x00, 0x00, -1, 0x00, 0x0000, 0x0002}, cmdLutElement{0x00, 0x00, -1, 0x01, 0x0000, 0x0003}, cmdLutElement{0x00, 0x00, -1, 0x02, 0x0000, 0x0004}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0000, 0x0005}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0000, 0x0006}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0000, 0x0007}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0000, 0x0008}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0000, 0x0009}, cmdLutElement{0x00, 0x00, -1, 0x00, 0x0001, 0x0002}, cmdLutElement{0x00, 0x00, -1, 0x01, 0x0001, 0x0003}, cmdLutElement{0x00, 0x00, -1, 0x02, 0x0001, 0x0004}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0001, 0x0005}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0001, 0x0006}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0001, 0x0007}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0001, 0x0008}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0001, 0x0009}, cmdLutElement{0x00, 0x00, -1, 0x00, 0x0002, 0x0002}, cmdLutElement{0x00, 0x00, -1, 0x01, 0x0002, 0x0003}, cmdLutElement{0x00, 0x00, -1, 0x02, 0x0002, 0x0004}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0002, 0x0005}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0002, 0x0006}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0002, 0x0007}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0002, 0x0008}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0002, 0x0009}, cmdLutElement{0x00, 0x00, -1, 0x00, 0x0003, 0x0002}, cmdLutElement{0x00, 0x00, -1, 0x01, 0x0003, 0x0003}, cmdLutElement{0x00, 0x00, -1, 0x02, 0x0003, 0x0004}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0003, 0x0005}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0003, 0x0006}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0003, 0x0007}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0003, 0x0008}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0003, 0x0009}, cmdLutElement{0x00, 0x00, -1, 0x00, 0x0004, 0x0002}, cmdLutElement{0x00, 0x00, -1, 0x01, 0x0004, 0x0003}, cmdLutElement{0x00, 0x00, -1, 0x02, 0x0004, 0x0004}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0004, 0x0005}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0004, 0x0006}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0004, 0x0007}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0004, 0x0008}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0004, 0x0009}, cmdLutElement{0x00, 0x00, -1, 0x00, 0x0005, 0x0002}, cmdLutElement{0x00, 0x00, -1, 0x01, 0x0005, 0x0003}, cmdLutElement{0x00, 0x00, -1, 0x02, 0x0005, 0x0004}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0005, 0x0005}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0005, 0x0006}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0005, 0x0007}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0005, 0x0008}, cmdLutElement{0x00, 0x00, -1, 0x03, 0x0005, 0x0009}, cmdLutElement{0x01, 0x00, -1, 0x00, 0x0006, 0x0002}, cmdLutElement{0x01, 0x00, -1, 0x01, 0x0006, 0x0003}, cmdLutElement{0x01, 0x00, -1, 0x02, 0x0006, 0x0004}, cmdLutElement{0x01, 0x00, -1, 0x03, 0x0006, 0x0005}, cmdLutElement{0x01, 0x00, -1, 0x03, 0x0006, 0x0006}, cmdLutElement{0x01, 0x00, -1, 0x03, 0x0006, 0x0007}, cmdLutElement{0x01, 0x00, -1, 0x03, 0x0006, 0x0008}, cmdLutElement{0x01, 0x00, -1, 0x03, 0x0006, 0x0009}, cmdLutElement{0x01, 0x00, -1, 0x00, 0x0008, 0x0002}, cmdLutElement{0x01, 0x00, -1, 0x01, 0x0008, 0x0003}, cmdLutElement{0x01, 0x00, -1, 0x02, 0x0008, 0x0004}, cmdLutElement{0x01, 0x00, -1, 0x03, 0x0008, 0x0005}, cmdLutElement{0x01, 0x00, -1, 0x03, 0x0008, 0x0006}, cmdLutElement{0x01, 0x00, -1, 0x03, 0x0008, 0x0007}, cmdLutElement{0x01, 0x00, -1, 0x03, 0x0008, 0x0008}, cmdLutElement{0x01, 0x00, -1, 0x03, 0x0008, 0x0009}, cmdLutElement{0x00, 0x01, -1, 0x03, 0x0000, 0x000a}, cmdLutElement{0x00, 0x01, -1, 0x03, 0x0000, 0x000c}, cmdLutElement{0x00, 0x02, -1, 0x03, 0x0000, 0x000e}, cmdLutElement{0x00, 0x02, -1, 0x03, 0x0000, 0x0012}, cmdLutElement{0x00, 0x03, -1, 0x03, 0x0000, 0x0016}, cmdLutElement{0x00, 0x03, -1, 0x03, 0x0000, 0x001e}, cmdLutElement{0x00, 0x04, -1, 0x03, 0x0000, 0x0026}, cmdLutElement{0x00, 0x04, -1, 0x03, 0x0000, 0x0036}, cmdLutElement{0x00, 0x01, -1, 0x03, 0x0001, 0x000a}, cmdLutElement{0x00, 0x01, -1, 0x03, 0x0001, 0x000c}, cmdLutElement{0x00, 0x02, -1, 0x03, 0x0001, 0x000e}, cmdLutElement{0x00, 0x02, -1, 0x03, 0x0001, 0x0012}, cmdLutElement{0x00, 0x03, -1, 0x03, 0x0001, 0x0016}, cmdLutElement{0x00, 0x03, -1, 0x03, 0x0001, 0x001e}, cmdLutElement{0x00, 0x04, -1, 0x03, 0x0001, 0x0026}, cmdLutElement{0x00, 0x04, -1, 0x03, 0x0001, 0x0036}, cmdLutElement{0x00, 0x01, -1, 0x03, 0x0002, 0x000a}, cmdLutElement{0x00, 0x01, -1, 0x03, 0x0002, 0x000c}, cmdLutElement{0x00, 0x02, -1, 0x03, 0x0002, 0x000e}, cmdLutElement{0x00, 0x02, -1, 0x03, 0x0002, 0x0012}, cmdLutElement{0x00, 0x03, -1, 0x03, 0x0002, 0x0016}, cmdLutElement{0x00, 0x03, -1, 0x03, 0x0002, 0x001e}, cmdLutElement{0x00, 0x04, -1, 0x03, 0x0002, 0x0026}, cmdLutElement{0x00, 0x04, -1, 0x03, 0x0002, 0x0036}, cmdLutElement{0x00, 0x01, -1, 0x03, 0x0003, 0x000a}, cmdLutElement{0x00, 0x01, -1, 0x03, 0x0003, 0x000c}, cmdLutElement{0x00, 0x02, -1, 0x03, 0x0003, 0x000e}, cmdLutElement{0x00, 0x02, -1, 0x03, 0x0003, 0x0012}, cmdLutElement{0x00, 0x03, -1, 0x03, 0x0003, 0x0016}, cmdLutElement{0x00, 0x03, -1, 0x03, 0x0003, 0x001e}, cmdLutElement{0x00, 0x04, -1, 0x03, 0x0003, 0x0026}, cmdLutElement{0x00, 0x04, -1, 0x03, 0x0003, 0x0036}, cmdLutElement{0x00, 0x01, -1, 0x03, 0x0004, 0x000a}, cmdLutElement{0x00, 0x01, -1, 0x03, 0x0004, 0x000c}, cmdLutElement{0x00, 0x02, -1, 0x03, 0x0004, 0x000e}, cmdLutElement{0x00, 0x02, -1, 0x03, 0x0004, 0x0012}, cmdLutElement{0x00, 0x03, -1, 0x03, 0x0004, 0x0016}, cmdLutElement{0x00, 0x03, -1, 0x03, 0x0004, 0x001e}, cmdLutElement{0x00, 0x04, -1, 0x03, 0x0004, 0x0026}, cmdLutElement{0x00, 0x04, -1, 0x03, 0x0004, 0x0036}, cmdLutElement{0x00, 0x01, -1, 0x03, 0x0005, 0x000a}, cmdLutElement{0x00, 0x01, -1, 0x03, 0x0005, 0x000c}, cmdLutElement{0x00, 0x02, -1, 0x03, 0x0005, 0x000e}, cmdLutElement{0x00, 0x02, -1, 0x03, 0x0005, 0x0012}, cmdLutElement{0x00, 0x03, -1, 0x03, 0x0005, 0x0016}, cmdLutElement{0x00, 0x03, -1, 0x03, 0x0005, 0x001e}, cmdLutElement{0x00, 0x04, -1, 0x03, 0x0005, 0x0026}, cmdLutElement{0x00, 0x04, -1, 0x03, 0x0005, 0x0036}, cmdLutElement{0x01, 0x01, -1, 0x03, 0x0006, 0x000a}, cmdLutElement{0x01, 0x01, -1, 0x03, 0x0006, 0x000c}, cmdLutElement{0x01, 0x02, -1, 0x03, 0x0006, 0x000e}, cmdLutElement{0x01, 0x02, -1, 0x03, 0x0006, 0x0012}, cmdLutElement{0x01, 0x03, -1, 0x03, 0x0006, 0x0016}, cmdLutElement{0x01, 0x03, -1, 0x03, 0x0006, 0x001e}, cmdLutElement{0x01, 0x04, -1, 0x03, 0x0006, 0x0026}, cmdLutElement{0x01, 0x04, -1, 0x03, 0x0006, 0x0036}, cmdLutElement{0x01, 0x01, -1, 0x03, 0x0008, 0x000a}, cmdLutElement{0x01, 0x01, -1, 0x03, 0x0008, 0x000c}, cmdLutElement{0x01, 0x02, -1, 0x03, 0x0008, 0x000e}, cmdLutElement{0x01, 0x02, -1, 0x03, 0x0008, 0x0012}, cmdLutElement{0x01, 0x03, -1, 0x03, 0x0008, 0x0016}, cmdLutElement{0x01, 0x03, -1, 0x03, 0x0008, 0x001e}, cmdLutElement{0x01, 0x04, -1, 0x03, 0x0008, 0x0026}, cmdLutElement{0x01, 0x04, -1, 0x03, 0x0008, 0x0036}, cmdLutElement{0x02, 0x00, -1, 0x00, 0x000a, 0x0002}, cmdLutElement{0x02, 0x00, -1, 0x01, 0x000a, 0x0003}, cmdLutElement{0x02, 0x00, -1, 0x02, 0x000a, 0x0004}, cmdLutElement{0x02, 0x00, -1, 0x03, 0x000a, 0x0005}, cmdLutElement{0x02, 0x00, -1, 0x03, 0x000a, 0x0006}, cmdLutElement{0x02, 0x00, -1, 0x03, 0x000a, 0x0007}, cmdLutElement{0x02, 0x00, -1, 0x03, 0x000a, 0x0008}, cmdLutElement{0x02, 0x00, -1, 0x03, 0x000a, 0x0009}, cmdLutElement{0x02, 0x00, -1, 0x00, 0x000e, 0x0002}, cmdLutElement{0x02, 0x00, -1, 0x01, 0x000e, 0x0003}, cmdLutElement{0x02, 0x00, -1, 0x02, 0x000e, 0x0004}, cmdLutElement{0x02, 0x00, -1, 0x03, 0x000e, 0x0005}, cmdLutElement{0x02, 0x00, -1, 0x03, 0x000e, 0x0006}, cmdLutElement{0x02, 0x00, -1, 0x03, 0x000e, 0x0007}, cmdLutElement{0x02, 0x00, -1, 0x03, 0x000e, 0x0008}, cmdLutElement{0x02, 0x00, -1, 0x03, 0x000e, 0x0009}, cmdLutElement{0x03, 0x00, -1, 0x00, 0x0012, 0x0002}, cmdLutElement{0x03, 0x00, -1, 0x01, 0x0012, 0x0003}, cmdLutElement{0x03, 0x00, -1, 0x02, 0x0012, 0x0004}, cmdLutElement{0x03, 0x00, -1, 0x03, 0x0012, 0x0005}, cmdLutElement{0x03, 0x00, -1, 0x03, 0x0012, 0x0006}, cmdLutElement{0x03, 0x00, -1, 0x03, 0x0012, 0x0007}, cmdLutElement{0x03, 0x00, -1, 0x03, 0x0012, 0x0008}, cmdLutElement{0x03, 0x00, -1, 0x03, 0x0012, 0x0009}, cmdLutElement{0x03, 0x00, -1, 0x00, 0x001a, 0x0002}, cmdLutElement{0x03, 0x00, -1, 0x01, 0x001a, 0x0003}, cmdLutElement{0x03, 0x00, -1, 0x02, 0x001a, 0x0004}, cmdLutElement{0x03, 0x00, -1, 0x03, 0x001a, 0x0005}, cmdLutElement{0x03, 0x00, -1, 0x03, 0x001a, 0x0006}, cmdLutElement{0x03, 0x00, -1, 0x03, 0x001a, 0x0007}, cmdLutElement{0x03, 0x00, -1, 0x03, 0x001a, 0x0008}, cmdLutElement{0x03, 0x00, -1, 0x03, 0x001a, 0x0009}, cmdLutElement{0x04, 0x00, -1, 0x00, 0x0022, 0x0002}, cmdLutElement{0x04, 0x00, -1, 0x01, 0x0022, 0x0003}, cmdLutElement{0x04, 0x00, -1, 0x02, 0x0022, 0x0004}, cmdLutElement{0x04, 0x00, -1, 0x03, 0x0022, 0x0005}, cmdLutElement{0x04, 0x00, -1, 0x03, 0x0022, 0x0006}, cmdLutElement{0x04, 0x00, -1, 0x03, 0x0022, 0x0007}, cmdLutElement{0x04, 0x00, -1, 0x03, 0x0022, 0x0008}, cmdLutElement{0x04, 0x00, -1, 0x03, 0x0022, 0x0009}, cmdLutElement{0x04, 0x00, -1, 0x00, 0x0032, 0x0002}, cmdLutElement{0x04, 0x00, -1, 0x01, 0x0032, 0x0003}, cmdLutElement{0x04, 0x00, -1, 0x02, 0x0032, 0x0004}, cmdLutElement{0x04, 0x00, -1, 0x03, 0x0032, 0x0005}, cmdLutElement{0x04, 0x00, -1, 0x03, 0x0032, 0x0006}, cmdLutElement{0x04, 0x00, -1, 0x03, 0x0032, 0x0007}, cmdLutElement{0x04, 0x00, -1, 0x03, 0x0032, 0x0008}, cmdLutElement{0x04, 0x00, -1, 0x03, 0x0032, 0x0009}, cmdLutElement{0x05, 0x00, -1, 0x00, 0x0042, 0x0002}, cmdLutElement{0x05, 0x00, -1, 0x01, 0x0042, 0x0003}, cmdLutElement{0x05, 0x00, -1, 0x02, 0x0042, 0x0004}, cmdLutElement{0x05, 0x00, -1, 0x03, 0x0042, 0x0005}, cmdLutElement{0x05, 0x00, -1, 0x03, 0x0042, 0x0006}, cmdLutElement{0x05, 0x00, -1, 0x03, 0x0042, 0x0007}, cmdLutElement{0x05, 0x00, -1, 0x03, 0x0042, 0x0008}, cmdLutElement{0x05, 0x00, -1, 0x03, 0x0042, 0x0009}, cmdLutElement{0x05, 0x00, -1, 0x00, 0x0062, 0x0002}, cmdLutElement{0x05, 0x00, -1, 0x01, 0x0062, 0x0003}, cmdLutElement{0x05, 0x00, -1, 0x02, 0x0062, 0x0004}, cmdLutElement{0x05, 0x00, -1, 0x03, 0x0062, 0x0005}, cmdLutElement{0x05, 0x00, -1, 0x03, 0x0062, 0x0006}, cmdLutElement{0x05, 0x00, -1, 0x03, 0x0062, 0x0007}, cmdLutElement{0x05, 0x00, -1, 0x03, 0x0062, 0x0008}, cmdLutElement{0x05, 0x00, -1, 0x03, 0x0062, 0x0009}, cmdLutElement{0x02, 0x01, -1, 0x03, 0x000a, 0x000a}, cmdLutElement{0x02, 0x01, -1, 0x03, 0x000a, 0x000c}, cmdLutElement{0x02, 0x02, -1, 0x03, 0x000a, 0x000e}, cmdLutElement{0x02, 0x02, -1, 0x03, 0x000a, 0x0012}, cmdLutElement{0x02, 0x03, -1, 0x03, 0x000a, 0x0016}, cmdLutElement{0x02, 0x03, -1, 0x03, 0x000a, 0x001e}, cmdLutElement{0x02, 0x04, -1, 0x03, 0x000a, 0x0026}, cmdLutElement{0x02, 0x04, -1, 0x03, 0x000a, 0x0036}, cmdLutElement{0x02, 0x01, -1, 0x03, 0x000e, 0x000a}, cmdLutElement{0x02, 0x01, -1, 0x03, 0x000e, 0x000c}, cmdLutElement{0x02, 0x02, -1, 0x03, 0x000e, 0x000e}, cmdLutElement{0x02, 0x02, -1, 0x03, 0x000e, 0x0012}, cmdLutElement{0x02, 0x03, -1, 0x03, 0x000e, 0x0016}, cmdLutElement{0x02, 0x03, -1, 0x03, 0x000e, 0x001e}, cmdLutElement{0x02, 0x04, -1, 0x03, 0x000e, 0x0026}, cmdLutElement{0x02, 0x04, -1, 0x03, 0x000e, 0x0036}, cmdLutElement{0x03, 0x01, -1, 0x03, 0x0012, 0x000a}, cmdLutElement{0x03, 0x01, -1, 0x03, 0x0012, 0x000c}, cmdLutElement{0x03, 0x02, -1, 0x03, 0x0012, 0x000e}, cmdLutElement{0x03, 0x02, -1, 0x03, 0x0012, 0x0012}, cmdLutElement{0x03, 0x03, -1, 0x03, 0x0012, 0x0016}, cmdLutElement{0x03, 0x03, -1, 0x03, 0x0012, 0x001e}, cmdLutElement{0x03, 0x04, -1, 0x03, 0x0012, 0x0026}, cmdLutElement{0x03, 0x04, -1, 0x03, 0x0012, 0x0036}, cmdLutElement{0x03, 0x01, -1, 0x03, 0x001a, 0x000a}, cmdLutElement{0x03, 0x01, -1, 0x03, 0x001a, 0x000c}, cmdLutElement{0x03, 0x02, -1, 0x03, 0x001a, 0x000e}, cmdLutElement{0x03, 0x02, -1, 0x03, 0x001a, 0x0012}, cmdLutElement{0x03, 0x03, -1, 0x03, 0x001a, 0x0016}, cmdLutElement{0x03, 0x03, -1, 0x03, 0x001a, 0x001e}, cmdLutElement{0x03, 0x04, -1, 0x03, 0x001a, 0x0026}, cmdLutElement{0x03, 0x04, -1, 0x03, 0x001a, 0x0036}, cmdLutElement{0x04, 0x01, -1, 0x03, 0x0022, 0x000a}, cmdLutElement{0x04, 0x01, -1, 0x03, 0x0022, 0x000c}, cmdLutElement{0x04, 0x02, -1, 0x03, 0x0022, 0x000e}, cmdLutElement{0x04, 0x02, -1, 0x03, 0x0022, 0x0012}, cmdLutElement{0x04, 0x03, -1, 0x03, 0x0022, 0x0016}, cmdLutElement{0x04, 0x03, -1, 0x03, 0x0022, 0x001e}, cmdLutElement{0x04, 0x04, -1, 0x03, 0x0022, 0x0026}, cmdLutElement{0x04, 0x04, -1, 0x03, 0x0022, 0x0036}, cmdLutElement{0x04, 0x01, -1, 0x03, 0x0032, 0x000a}, cmdLutElement{0x04, 0x01, -1, 0x03, 0x0032, 0x000c}, cmdLutElement{0x04, 0x02, -1, 0x03, 0x0032, 0x000e}, cmdLutElement{0x04, 0x02, -1, 0x03, 0x0032, 0x0012}, cmdLutElement{0x04, 0x03, -1, 0x03, 0x0032, 0x0016}, cmdLutElement{0x04, 0x03, -1, 0x03, 0x0032, 0x001e}, cmdLutElement{0x04, 0x04, -1, 0x03, 0x0032, 0x0026}, cmdLutElement{0x04, 0x04, -1, 0x03, 0x0032, 0x0036}, cmdLutElement{0x05, 0x01, -1, 0x03, 0x0042, 0x000a}, cmdLutElement{0x05, 0x01, -1, 0x03, 0x0042, 0x000c}, cmdLutElement{0x05, 0x02, -1, 0x03, 0x0042, 0x000e}, cmdLutElement{0x05, 0x02, -1, 0x03, 0x0042, 0x0012}, cmdLutElement{0x05, 0x03, -1, 0x03, 0x0042, 0x0016}, cmdLutElement{0x05, 0x03, -1, 0x03, 0x0042, 0x001e}, cmdLutElement{0x05, 0x04, -1, 0x03, 0x0042, 0x0026}, cmdLutElement{0x05, 0x04, -1, 0x03, 0x0042, 0x0036}, cmdLutElement{0x05, 0x01, -1, 0x03, 0x0062, 0x000a}, cmdLutElement{0x05, 0x01, -1, 0x03, 0x0062, 0x000c}, cmdLutElement{0x05, 0x02, -1, 0x03, 0x0062, 0x000e}, cmdLutElement{0x05, 0x02, -1, 0x03, 0x0062, 0x0012}, cmdLutElement{0x05, 0x03, -1, 0x03, 0x0062, 0x0016}, cmdLutElement{0x05, 0x03, -1, 0x03, 0x0062, 0x001e}, cmdLutElement{0x05, 0x04, -1, 0x03, 0x0062, 0x0026}, cmdLutElement{0x05, 0x04, -1, 0x03, 0x0062, 0x0036}, cmdLutElement{0x00, 0x05, -1, 0x03, 0x0000, 0x0046}, cmdLutElement{0x00, 0x05, -1, 0x03, 0x0000, 0x0066}, cmdLutElement{0x00, 0x06, -1, 0x03, 0x0000, 0x0086}, cmdLutElement{0x00, 0x07, -1, 0x03, 0x0000, 0x00c6}, cmdLutElement{0x00, 0x08, -1, 0x03, 0x0000, 0x0146}, cmdLutElement{0x00, 0x09, -1, 0x03, 0x0000, 0x0246}, cmdLutElement{0x00, 0x0a, -1, 0x03, 0x0000, 0x0446}, cmdLutElement{0x00, 0x18, -1, 0x03, 0x0000, 0x0846}, cmdLutElement{0x00, 0x05, -1, 0x03, 0x0001, 0x0046}, cmdLutElement{0x00, 0x05, -1, 0x03, 0x0001, 0x0066}, cmdLutElement{0x00, 0x06, -1, 0x03, 0x0001, 0x0086}, cmdLutElement{0x00, 0x07, -1, 0x03, 0x0001, 0x00c6}, cmdLutElement{0x00, 0x08, -1, 0x03, 0x0001, 0x0146}, cmdLutElement{0x00, 0x09, -1, 0x03, 0x0001, 0x0246}, cmdLutElement{0x00, 0x0a, -1, 0x03, 0x0001, 0x0446}, cmdLutElement{0x00, 0x18, -1, 0x03, 0x0001, 0x0846}, cmdLutElement{0x00, 0x05, -1, 0x03, 0x0002, 0x0046}, cmdLutElement{0x00, 0x05, -1, 0x03, 0x0002, 0x0066}, cmdLutElement{0x00, 0x06, -1, 0x03, 0x0002, 0x0086}, cmdLutElement{0x00, 0x07, -1, 0x03, 0x0002, 0x00c6}, cmdLutElement{0x00, 0x08, -1, 0x03, 0x0002, 0x0146}, cmdLutElement{0x00, 0x09, -1, 0x03, 0x0002, 0x0246}, cmdLutElement{0x00, 0x0a, -1, 0x03, 0x0002, 0x0446}, cmdLutElement{0x00, 0x18, -1, 0x03, 0x0002, 0x0846}, cmdLutElement{0x00, 0x05, -1, 0x03, 0x0003, 0x0046}, cmdLutElement{0x00, 0x05, -1, 0x03, 0x0003, 0x0066}, cmdLutElement{0x00, 0x06, -1, 0x03, 0x0003, 0x0086}, cmdLutElement{0x00, 0x07, -1, 0x03, 0x0003, 0x00c6}, cmdLutElement{0x00, 0x08, -1, 0x03, 0x0003, 0x0146}, cmdLutElement{0x00, 0x09, -1, 0x03, 0x0003, 0x0246}, cmdLutElement{0x00, 0x0a, -1, 0x03, 0x0003, 0x0446}, cmdLutElement{0x00, 0x18, -1, 0x03, 0x0003, 0x0846}, cmdLutElement{0x00, 0x05, -1, 0x03, 0x0004, 0x0046}, cmdLutElement{0x00, 0x05, -1, 0x03, 0x0004, 0x0066}, cmdLutElement{0x00, 0x06, -1, 0x03, 0x0004, 0x0086}, cmdLutElement{0x00, 0x07, -1, 0x03, 0x0004, 0x00c6}, cmdLutElement{0x00, 0x08, -1, 0x03, 0x0004, 0x0146}, cmdLutElement{0x00, 0x09, -1, 0x03, 0x0004, 0x0246}, cmdLutElement{0x00, 0x0a, -1, 0x03, 0x0004, 0x0446}, cmdLutElement{0x00, 0x18, -1, 0x03, 0x0004, 0x0846}, cmdLutElement{0x00, 0x05, -1, 0x03, 0x0005, 0x0046}, cmdLutElement{0x00, 0x05, -1, 0x03, 0x0005, 0x0066}, cmdLutElement{0x00, 0x06, -1, 0x03, 0x0005, 0x0086}, cmdLutElement{0x00, 0x07, -1, 0x03, 0x0005, 0x00c6}, cmdLutElement{0x00, 0x08, -1, 0x03, 0x0005, 0x0146}, cmdLutElement{0x00, 0x09, -1, 0x03, 0x0005, 0x0246}, cmdLutElement{0x00, 0x0a, -1, 0x03, 0x0005, 0x0446}, cmdLutElement{0x00, 0x18, -1, 0x03, 0x0005, 0x0846}, cmdLutElement{0x01, 0x05, -1, 0x03, 0x0006, 0x0046}, cmdLutElement{0x01, 0x05, -1, 0x03, 0x0006, 0x0066}, cmdLutElement{0x01, 0x06, -1, 0x03, 0x0006, 0x0086}, cmdLutElement{0x01, 0x07, -1, 0x03, 0x0006, 0x00c6}, cmdLutElement{0x01, 0x08, -1, 0x03, 0x0006, 0x0146}, cmdLutElement{0x01, 0x09, -1, 0x03, 0x0006, 0x0246}, cmdLutElement{0x01, 0x0a, -1, 0x03, 0x0006, 0x0446}, cmdLutElement{0x01, 0x18, -1, 0x03, 0x0006, 0x0846}, cmdLutElement{0x01, 0x05, -1, 0x03, 0x0008, 0x0046}, cmdLutElement{0x01, 0x05, -1, 0x03, 0x0008, 0x0066}, cmdLutElement{0x01, 0x06, -1, 0x03, 0x0008, 0x0086}, cmdLutElement{0x01, 0x07, -1, 0x03, 0x0008, 0x00c6}, cmdLutElement{0x01, 0x08, -1, 0x03, 0x0008, 0x0146}, cmdLutElement{0x01, 0x09, -1, 0x03, 0x0008, 0x0246}, cmdLutElement{0x01, 0x0a, -1, 0x03, 0x0008, 0x0446}, cmdLutElement{0x01, 0x18, -1, 0x03, 0x0008, 0x0846}, cmdLutElement{0x06, 0x00, -1, 0x00, 0x0082, 0x0002}, cmdLutElement{0x06, 0x00, -1, 0x01, 0x0082, 0x0003}, cmdLutElement{0x06, 0x00, -1, 0x02, 0x0082, 0x0004}, cmdLutElement{0x06, 0x00, -1, 0x03, 0x0082, 0x0005}, cmdLutElement{0x06, 0x00, -1, 0x03, 0x0082, 0x0006}, cmdLutElement{0x06, 0x00, -1, 0x03, 0x0082, 0x0007}, cmdLutElement{0x06, 0x00, -1, 0x03, 0x0082, 0x0008}, cmdLutElement{0x06, 0x00, -1, 0x03, 0x0082, 0x0009}, cmdLutElement{0x07, 0x00, -1, 0x00, 0x00c2, 0x0002}, cmdLutElement{0x07, 0x00, -1, 0x01, 0x00c2, 0x0003}, cmdLutElement{0x07, 0x00, -1, 0x02, 0x00c2, 0x0004}, cmdLutElement{0x07, 0x00, -1, 0x03, 0x00c2, 0x0005}, cmdLutElement{0x07, 0x00, -1, 0x03, 0x00c2, 0x0006}, cmdLutElement{0x07, 0x00, -1, 0x03, 0x00c2, 0x0007}, cmdLutElement{0x07, 0x00, -1, 0x03, 0x00c2, 0x0008}, cmdLutElement{0x07, 0x00, -1, 0x03, 0x00c2, 0x0009}, cmdLutElement{0x08, 0x00, -1, 0x00, 0x0142, 0x0002}, cmdLutElement{0x08, 0x00, -1, 0x01, 0x0142, 0x0003}, cmdLutElement{0x08, 0x00, -1, 0x02, 0x0142, 0x0004}, cmdLutElement{0x08, 0x00, -1, 0x03, 0x0142, 0x0005}, cmdLutElement{0x08, 0x00, -1, 0x03, 0x0142, 0x0006}, cmdLutElement{0x08, 0x00, -1, 0x03, 0x0142, 0x0007}, cmdLutElement{0x08, 0x00, -1, 0x03, 0x0142, 0x0008}, cmdLutElement{0x08, 0x00, -1, 0x03, 0x0142, 0x0009}, cmdLutElement{0x09, 0x00, -1, 0x00, 0x0242, 0x0002}, cmdLutElement{0x09, 0x00, -1, 0x01, 0x0242, 0x0003}, cmdLutElement{0x09, 0x00, -1, 0x02, 0x0242, 0x0004}, cmdLutElement{0x09, 0x00, -1, 0x03, 0x0242, 0x0005}, cmdLutElement{0x09, 0x00, -1, 0x03, 0x0242, 0x0006}, cmdLutElement{0x09, 0x00, -1, 0x03, 0x0242, 0x0007}, cmdLutElement{0x09, 0x00, -1, 0x03, 0x0242, 0x0008}, cmdLutElement{0x09, 0x00, -1, 0x03, 0x0242, 0x0009}, cmdLutElement{0x0a, 0x00, -1, 0x00, 0x0442, 0x0002}, cmdLutElement{0x0a, 0x00, -1, 0x01, 0x0442, 0x0003}, cmdLutElement{0x0a, 0x00, -1, 0x02, 0x0442, 0x0004}, cmdLutElement{0x0a, 0x00, -1, 0x03, 0x0442, 0x0005}, cmdLutElement{0x0a, 0x00, -1, 0x03, 0x0442, 0x0006}, cmdLutElement{0x0a, 0x00, -1, 0x03, 0x0442, 0x0007}, cmdLutElement{0x0a, 0x00, -1, 0x03, 0x0442, 0x0008}, cmdLutElement{0x0a, 0x00, -1, 0x03, 0x0442, 0x0009}, cmdLutElement{0x0c, 0x00, -1, 0x00, 0x0842, 0x0002}, cmdLutElement{0x0c, 0x00, -1, 0x01, 0x0842, 0x0003}, cmdLutElement{0x0c, 0x00, -1, 0x02, 0x0842, 0x0004}, cmdLutElement{0x0c, 0x00, -1, 0x03, 0x0842, 0x0005}, cmdLutElement{0x0c, 0x00, -1, 0x03, 0x0842, 0x0006}, cmdLutElement{0x0c, 0x00, -1, 0x03, 0x0842, 0x0007}, cmdLutElement{0x0c, 0x00, -1, 0x03, 0x0842, 0x0008}, cmdLutElement{0x0c, 0x00, -1, 0x03, 0x0842, 0x0009}, cmdLutElement{0x0e, 0x00, -1, 0x00, 0x1842, 0x0002}, cmdLutElement{0x0e, 0x00, -1, 0x01, 0x1842, 0x0003}, cmdLutElement{0x0e, 0x00, -1, 0x02, 0x1842, 0x0004}, cmdLutElement{0x0e, 0x00, -1, 0x03, 0x1842, 0x0005}, cmdLutElement{0x0e, 0x00, -1, 0x03, 0x1842, 0x0006}, cmdLutElement{0x0e, 0x00, -1, 0x03, 0x1842, 0x0007}, cmdLutElement{0x0e, 0x00, -1, 0x03, 0x1842, 0x0008}, cmdLutElement{0x0e, 0x00, -1, 0x03, 0x1842, 0x0009}, cmdLutElement{0x18, 0x00, -1, 0x00, 0x5842, 0x0002}, cmdLutElement{0x18, 0x00, -1, 0x01, 0x5842, 0x0003}, cmdLutElement{0x18, 0x00, -1, 0x02, 0x5842, 0x0004}, cmdLutElement{0x18, 0x00, -1, 0x03, 0x5842, 0x0005}, cmdLutElement{0x18, 0x00, -1, 0x03, 0x5842, 0x0006}, cmdLutElement{0x18, 0x00, -1, 0x03, 0x5842, 0x0007}, cmdLutElement{0x18, 0x00, -1, 0x03, 0x5842, 0x0008}, cmdLutElement{0x18, 0x00, -1, 0x03, 0x5842, 0x0009}, cmdLutElement{0x02, 0x05, -1, 0x03, 0x000a, 0x0046}, cmdLutElement{0x02, 0x05, -1, 0x03, 0x000a, 0x0066}, cmdLutElement{0x02, 0x06, -1, 0x03, 0x000a, 0x0086}, cmdLutElement{0x02, 0x07, -1, 0x03, 0x000a, 0x00c6}, cmdLutElement{0x02, 0x08, -1, 0x03, 0x000a, 0x0146}, cmdLutElement{0x02, 0x09, -1, 0x03, 0x000a, 0x0246}, cmdLutElement{0x02, 0x0a, -1, 0x03, 0x000a, 0x0446}, cmdLutElement{0x02, 0x18, -1, 0x03, 0x000a, 0x0846}, cmdLutElement{0x02, 0x05, -1, 0x03, 0x000e, 0x0046}, cmdLutElement{0x02, 0x05, -1, 0x03, 0x000e, 0x0066}, cmdLutElement{0x02, 0x06, -1, 0x03, 0x000e, 0x0086}, cmdLutElement{0x02, 0x07, -1, 0x03, 0x000e, 0x00c6}, cmdLutElement{0x02, 0x08, -1, 0x03, 0x000e, 0x0146}, cmdLutElement{0x02, 0x09, -1, 0x03, 0x000e, 0x0246}, cmdLutElement{0x02, 0x0a, -1, 0x03, 0x000e, 0x0446}, cmdLutElement{0x02, 0x18, -1, 0x03, 0x000e, 0x0846}, cmdLutElement{0x03, 0x05, -1, 0x03, 0x0012, 0x0046}, cmdLutElement{0x03, 0x05, -1, 0x03, 0x0012, 0x0066}, cmdLutElement{0x03, 0x06, -1, 0x03, 0x0012, 0x0086}, cmdLutElement{0x03, 0x07, -1, 0x03, 0x0012, 0x00c6}, cmdLutElement{0x03, 0x08, -1, 0x03, 0x0012, 0x0146}, cmdLutElement{0x03, 0x09, -1, 0x03, 0x0012, 0x0246}, cmdLutElement{0x03, 0x0a, -1, 0x03, 0x0012, 0x0446}, cmdLutElement{0x03, 0x18, -1, 0x03, 0x0012, 0x0846}, cmdLutElement{0x03, 0x05, -1, 0x03, 0x001a, 0x0046}, cmdLutElement{0x03, 0x05, -1, 0x03, 0x001a, 0x0066}, cmdLutElement{0x03, 0x06, -1, 0x03, 0x001a, 0x0086}, cmdLutElement{0x03, 0x07, -1, 0x03, 0x001a, 0x00c6}, cmdLutElement{0x03, 0x08, -1, 0x03, 0x001a, 0x0146}, cmdLutElement{0x03, 0x09, -1, 0x03, 0x001a, 0x0246}, cmdLutElement{0x03, 0x0a, -1, 0x03, 0x001a, 0x0446}, cmdLutElement{0x03, 0x18, -1, 0x03, 0x001a, 0x0846}, cmdLutElement{0x04, 0x05, -1, 0x03, 0x0022, 0x0046}, cmdLutElement{0x04, 0x05, -1, 0x03, 0x0022, 0x0066}, cmdLutElement{0x04, 0x06, -1, 0x03, 0x0022, 0x0086}, cmdLutElement{0x04, 0x07, -1, 0x03, 0x0022, 0x00c6}, cmdLutElement{0x04, 0x08, -1, 0x03, 0x0022, 0x0146}, cmdLutElement{0x04, 0x09, -1, 0x03, 0x0022, 0x0246}, cmdLutElement{0x04, 0x0a, -1, 0x03, 0x0022, 0x0446}, cmdLutElement{0x04, 0x18, -1, 0x03, 0x0022, 0x0846}, cmdLutElement{0x04, 0x05, -1, 0x03, 0x0032, 0x0046}, cmdLutElement{0x04, 0x05, -1, 0x03, 0x0032, 0x0066}, cmdLutElement{0x04, 0x06, -1, 0x03, 0x0032, 0x0086}, cmdLutElement{0x04, 0x07, -1, 0x03, 0x0032, 0x00c6}, cmdLutElement{0x04, 0x08, -1, 0x03, 0x0032, 0x0146}, cmdLutElement{0x04, 0x09, -1, 0x03, 0x0032, 0x0246}, cmdLutElement{0x04, 0x0a, -1, 0x03, 0x0032, 0x0446}, cmdLutElement{0x04, 0x18, -1, 0x03, 0x0032, 0x0846}, cmdLutElement{0x05, 0x05, -1, 0x03, 0x0042, 0x0046}, cmdLutElement{0x05, 0x05, -1, 0x03, 0x0042, 0x0066}, cmdLutElement{0x05, 0x06, -1, 0x03, 0x0042, 0x0086}, cmdLutElement{0x05, 0x07, -1, 0x03, 0x0042, 0x00c6}, cmdLutElement{0x05, 0x08, -1, 0x03, 0x0042, 0x0146}, cmdLutElement{0x05, 0x09, -1, 0x03, 0x0042, 0x0246}, cmdLutElement{0x05, 0x0a, -1, 0x03, 0x0042, 0x0446}, cmdLutElement{0x05, 0x18, -1, 0x03, 0x0042, 0x0846}, cmdLutElement{0x05, 0x05, -1, 0x03, 0x0062, 0x0046}, cmdLutElement{0x05, 0x05, -1, 0x03, 0x0062, 0x0066}, cmdLutElement{0x05, 0x06, -1, 0x03, 0x0062, 0x0086}, cmdLutElement{0x05, 0x07, -1, 0x03, 0x0062, 0x00c6}, cmdLutElement{0x05, 0x08, -1, 0x03, 0x0062, 0x0146}, cmdLutElement{0x05, 0x09, -1, 0x03, 0x0062, 0x0246}, cmdLutElement{0x05, 0x0a, -1, 0x03, 0x0062, 0x0446}, cmdLutElement{0x05, 0x18, -1, 0x03, 0x0062, 0x0846}, cmdLutElement{0x06, 0x01, -1, 0x03, 0x0082, 0x000a}, cmdLutElement{0x06, 0x01, -1, 0x03, 0x0082, 0x000c}, cmdLutElement{0x06, 0x02, -1, 0x03, 0x0082, 0x000e}, cmdLutElement{0x06, 0x02, -1, 0x03, 0x0082, 0x0012}, cmdLutElement{0x06, 0x03, -1, 0x03, 0x0082, 0x0016}, cmdLutElement{0x06, 0x03, -1, 0x03, 0x0082, 0x001e}, cmdLutElement{0x06, 0x04, -1, 0x03, 0x0082, 0x0026}, cmdLutElement{0x06, 0x04, -1, 0x03, 0x0082, 0x0036}, cmdLutElement{0x07, 0x01, -1, 0x03, 0x00c2, 0x000a}, cmdLutElement{0x07, 0x01, -1, 0x03, 0x00c2, 0x000c}, cmdLutElement{0x07, 0x02, -1, 0x03, 0x00c2, 0x000e}, cmdLutElement{0x07, 0x02, -1, 0x03, 0x00c2, 0x0012}, cmdLutElement{0x07, 0x03, -1, 0x03, 0x00c2, 0x0016}, cmdLutElement{0x07, 0x03, -1, 0x03, 0x00c2, 0x001e}, cmdLutElement{0x07, 0x04, -1, 0x03, 0x00c2, 0x0026}, cmdLutElement{0x07, 0x04, -1, 0x03, 0x00c2, 0x0036}, cmdLutElement{0x08, 0x01, -1, 0x03, 0x0142, 0x000a}, cmdLutElement{0x08, 0x01, -1, 0x03, 0x0142, 0x000c}, cmdLutElement{0x08, 0x02, -1, 0x03, 0x0142, 0x000e}, cmdLutElement{0x08, 0x02, -1, 0x03, 0x0142, 0x0012}, cmdLutElement{0x08, 0x03, -1, 0x03, 0x0142, 0x0016}, cmdLutElement{0x08, 0x03, -1, 0x03, 0x0142, 0x001e}, cmdLutElement{0x08, 0x04, -1, 0x03, 0x0142, 0x0026}, cmdLutElement{0x08, 0x04, -1, 0x03, 0x0142, 0x0036}, cmdLutElement{0x09, 0x01, -1, 0x03, 0x0242, 0x000a}, cmdLutElement{0x09, 0x01, -1, 0x03, 0x0242, 0x000c}, cmdLutElement{0x09, 0x02, -1, 0x03, 0x0242, 0x000e}, cmdLutElement{0x09, 0x02, -1, 0x03, 0x0242, 0x0012}, cmdLutElement{0x09, 0x03, -1, 0x03, 0x0242, 0x0016}, cmdLutElement{0x09, 0x03, -1, 0x03, 0x0242, 0x001e}, cmdLutElement{0x09, 0x04, -1, 0x03, 0x0242, 0x0026}, cmdLutElement{0x09, 0x04, -1, 0x03, 0x0242, 0x0036}, cmdLutElement{0x0a, 0x01, -1, 0x03, 0x0442, 0x000a}, cmdLutElement{0x0a, 0x01, -1, 0x03, 0x0442, 0x000c}, cmdLutElement{0x0a, 0x02, -1, 0x03, 0x0442, 0x000e}, cmdLutElement{0x0a, 0x02, -1, 0x03, 0x0442, 0x0012}, cmdLutElement{0x0a, 0x03, -1, 0x03, 0x0442, 0x0016}, cmdLutElement{0x0a, 0x03, -1, 0x03, 0x0442, 0x001e}, cmdLutElement{0x0a, 0x04, -1, 0x03, 0x0442, 0x0026}, cmdLutElement{0x0a, 0x04, -1, 0x03, 0x0442, 0x0036}, cmdLutElement{0x0c, 0x01, -1, 0x03, 0x0842, 0x000a}, cmdLutElement{0x0c, 0x01, -1, 0x03, 0x0842, 0x000c}, cmdLutElement{0x0c, 0x02, -1, 0x03, 0x0842, 0x000e}, cmdLutElement{0x0c, 0x02, -1, 0x03, 0x0842, 0x0012}, cmdLutElement{0x0c, 0x03, -1, 0x03, 0x0842, 0x0016}, cmdLutElement{0x0c, 0x03, -1, 0x03, 0x0842, 0x001e}, cmdLutElement{0x0c, 0x04, -1, 0x03, 0x0842, 0x0026}, cmdLutElement{0x0c, 0x04, -1, 0x03, 0x0842, 0x0036}, cmdLutElement{0x0e, 0x01, -1, 0x03, 0x1842, 0x000a}, cmdLutElement{0x0e, 0x01, -1, 0x03, 0x1842, 0x000c}, cmdLutElement{0x0e, 0x02, -1, 0x03, 0x1842, 0x000e}, cmdLutElement{0x0e, 0x02, -1, 0x03, 0x1842, 0x0012}, cmdLutElement{0x0e, 0x03, -1, 0x03, 0x1842, 0x0016}, cmdLutElement{0x0e, 0x03, -1, 0x03, 0x1842, 0x001e}, cmdLutElement{0x0e, 0x04, -1, 0x03, 0x1842, 0x0026}, cmdLutElement{0x0e, 0x04, -1, 0x03, 0x1842, 0x0036}, cmdLutElement{0x18, 0x01, -1, 0x03, 0x5842, 0x000a}, cmdLutElement{0x18, 0x01, -1, 0x03, 0x5842, 0x000c}, cmdLutElement{0x18, 0x02, -1, 0x03, 0x5842, 0x000e}, cmdLutElement{0x18, 0x02, -1, 0x03, 0x5842, 0x0012}, cmdLutElement{0x18, 0x03, -1, 0x03, 0x5842, 0x0016}, cmdLutElement{0x18, 0x03, -1, 0x03, 0x5842, 0x001e}, cmdLutElement{0x18, 0x04, -1, 0x03, 0x5842, 0x0026}, cmdLutElement{0x18, 0x04, -1, 0x03, 0x5842, 0x0036}, cmdLutElement{0x06, 0x05, -1, 0x03, 0x0082, 0x0046}, cmdLutElement{0x06, 0x05, -1, 0x03, 0x0082, 0x0066}, cmdLutElement{0x06, 0x06, -1, 0x03, 0x0082, 0x0086}, cmdLutElement{0x06, 0x07, -1, 0x03, 0x0082, 0x00c6}, cmdLutElement{0x06, 0x08, -1, 0x03, 0x0082, 0x0146}, cmdLutElement{0x06, 0x09, -1, 0x03, 0x0082, 0x0246}, cmdLutElement{0x06, 0x0a, -1, 0x03, 0x0082, 0x0446}, cmdLutElement{0x06, 0x18, -1, 0x03, 0x0082, 0x0846}, cmdLutElement{0x07, 0x05, -1, 0x03, 0x00c2, 0x0046}, cmdLutElement{0x07, 0x05, -1, 0x03, 0x00c2, 0x0066}, cmdLutElement{0x07, 0x06, -1, 0x03, 0x00c2, 0x0086}, cmdLutElement{0x07, 0x07, -1, 0x03, 0x00c2, 0x00c6}, cmdLutElement{0x07, 0x08, -1, 0x03, 0x00c2, 0x0146}, cmdLutElement{0x07, 0x09, -1, 0x03, 0x00c2, 0x0246}, cmdLutElement{0x07, 0x0a, -1, 0x03, 0x00c2, 0x0446}, cmdLutElement{0x07, 0x18, -1, 0x03, 0x00c2, 0x0846}, cmdLutElement{0x08, 0x05, -1, 0x03, 0x0142, 0x0046}, cmdLutElement{0x08, 0x05, -1, 0x03, 0x0142, 0x0066}, cmdLutElement{0x08, 0x06, -1, 0x03, 0x0142, 0x0086}, cmdLutElement{0x08, 0x07, -1, 0x03, 0x0142, 0x00c6}, cmdLutElement{0x08, 0x08, -1, 0x03, 0x0142, 0x0146}, cmdLutElement{0x08, 0x09, -1, 0x03, 0x0142, 0x0246}, cmdLutElement{0x08, 0x0a, -1, 0x03, 0x0142, 0x0446}, cmdLutElement{0x08, 0x18, -1, 0x03, 0x0142, 0x0846}, cmdLutElement{0x09, 0x05, -1, 0x03, 0x0242, 0x0046}, cmdLutElement{0x09, 0x05, -1, 0x03, 0x0242, 0x0066}, cmdLutElement{0x09, 0x06, -1, 0x03, 0x0242, 0x0086}, cmdLutElement{0x09, 0x07, -1, 0x03, 0x0242, 0x00c6}, cmdLutElement{0x09, 0x08, -1, 0x03, 0x0242, 0x0146}, cmdLutElement{0x09, 0x09, -1, 0x03, 0x0242, 0x0246}, cmdLutElement{0x09, 0x0a, -1, 0x03, 0x0242, 0x0446}, cmdLutElement{0x09, 0x18, -1, 0x03, 0x0242, 0x0846}, cmdLutElement{0x0a, 0x05, -1, 0x03, 0x0442, 0x0046}, cmdLutElement{0x0a, 0x05, -1, 0x03, 0x0442, 0x0066}, cmdLutElement{0x0a, 0x06, -1, 0x03, 0x0442, 0x0086}, cmdLutElement{0x0a, 0x07, -1, 0x03, 0x0442, 0x00c6}, cmdLutElement{0x0a, 0x08, -1, 0x03, 0x0442, 0x0146}, cmdLutElement{0x0a, 0x09, -1, 0x03, 0x0442, 0x0246}, cmdLutElement{0x0a, 0x0a, -1, 0x03, 0x0442, 0x0446}, cmdLutElement{0x0a, 0x18, -1, 0x03, 0x0442, 0x0846}, cmdLutElement{0x0c, 0x05, -1, 0x03, 0x0842, 0x0046}, cmdLutElement{0x0c, 0x05, -1, 0x03, 0x0842, 0x0066}, cmdLutElement{0x0c, 0x06, -1, 0x03, 0x0842, 0x0086}, cmdLutElement{0x0c, 0x07, -1, 0x03, 0x0842, 0x00c6}, cmdLutElement{0x0c, 0x08, -1, 0x03, 0x0842, 0x0146}, cmdLutElement{0x0c, 0x09, -1, 0x03, 0x0842, 0x0246}, cmdLutElement{0x0c, 0x0a, -1, 0x03, 0x0842, 0x0446}, cmdLutElement{0x0c, 0x18, -1, 0x03, 0x0842, 0x0846}, cmdLutElement{0x0e, 0x05, -1, 0x03, 0x1842, 0x0046}, cmdLutElement{0x0e, 0x05, -1, 0x03, 0x1842, 0x0066}, cmdLutElement{0x0e, 0x06, -1, 0x03, 0x1842, 0x0086}, cmdLutElement{0x0e, 0x07, -1, 0x03, 0x1842, 0x00c6}, cmdLutElement{0x0e, 0x08, -1, 0x03, 0x1842, 0x0146}, cmdLutElement{0x0e, 0x09, -1, 0x03, 0x1842, 0x0246}, cmdLutElement{0x0e, 0x0a, -1, 0x03, 0x1842, 0x0446}, cmdLutElement{0x0e, 0x18, -1, 0x03, 0x1842, 0x0846}, cmdLutElement{0x18, 0x05, -1, 0x03, 0x5842, 0x0046}, cmdLutElement{0x18, 0x05, -1, 0x03, 0x5842, 0x0066}, cmdLutElement{0x18, 0x06, -1, 0x03, 0x5842, 0x0086}, cmdLutElement{0x18, 0x07, -1, 0x03, 0x5842, 0x00c6}, cmdLutElement{0x18, 0x08, -1, 0x03, 0x5842, 0x0146}, cmdLutElement{0x18, 0x09, -1, 0x03, 0x5842, 0x0246}, cmdLutElement{0x18, 0x0a, -1, 0x03, 0x5842, 0x0446}, cmdLutElement{0x18, 0x18, -1, 0x03, 0x5842, 0x0846}, } brotli-1.0.4/quality.go000066400000000000000000000125101412267201500150250ustar00rootroot00000000000000package brotli const fastOnePassCompressionQuality = 0 const fastTwoPassCompressionQuality = 1 const zopflificationQuality = 10 const hqZopflificationQuality = 11 const maxQualityForStaticEntropyCodes = 2 const minQualityForBlockSplit = 4 const minQualityForNonzeroDistanceParams = 4 const minQualityForOptimizeHistograms = 4 const minQualityForExtensiveReferenceSearch = 5 const minQualityForContextModeling = 5 const minQualityForHqContextModeling = 7 const minQualityForHqBlockSplitting = 10 /* For quality below MIN_QUALITY_FOR_BLOCK_SPLIT there is no block splitting, so we buffer at most this much literals and commands. */ const maxNumDelayedSymbols = 0x2FFF /* Returns hash-table size for quality levels 0 and 1. */ func maxHashTableSize(quality int) uint { if quality == fastOnePassCompressionQuality { return 1 << 15 } else { return 1 << 17 } } /* The maximum length for which the zopflification uses distinct distances. */ const maxZopfliLenQuality10 = 150 const maxZopfliLenQuality11 = 325 /* Do not thoroughly search when a long copy is found. */ const longCopyQuickStep = 16384 func maxZopfliLen(params *encoderParams) uint { if params.quality <= 10 { return maxZopfliLenQuality10 } else { return maxZopfliLenQuality11 } } /* Number of best candidates to evaluate to expand Zopfli chain. */ func maxZopfliCandidates(params *encoderParams) uint { if params.quality <= 10 { return 1 } else { return 5 } } func sanitizeParams(params *encoderParams) { params.quality = brotli_min_int(maxQuality, brotli_max_int(minQuality, params.quality)) if params.quality <= maxQualityForStaticEntropyCodes { params.large_window = false } if params.lgwin < minWindowBits { params.lgwin = minWindowBits } else { var max_lgwin int if params.large_window { max_lgwin = largeMaxWindowBits } else { max_lgwin = maxWindowBits } if params.lgwin > uint(max_lgwin) { params.lgwin = uint(max_lgwin) } } } /* Returns optimized lg_block value. */ func computeLgBlock(params *encoderParams) int { var lgblock int = params.lgblock if params.quality == fastOnePassCompressionQuality || params.quality == fastTwoPassCompressionQuality { lgblock = int(params.lgwin) } else if params.quality < minQualityForBlockSplit { lgblock = 14 } else if lgblock == 0 { lgblock = 16 if params.quality >= 9 && params.lgwin > uint(lgblock) { lgblock = brotli_min_int(18, int(params.lgwin)) } } else { lgblock = brotli_min_int(maxInputBlockBits, brotli_max_int(minInputBlockBits, lgblock)) } return lgblock } /* Returns log2 of the size of main ring buffer area. Allocate at least lgwin + 1 bits for the ring buffer so that the newly added block fits there completely and we still get lgwin bits and at least read_block_size_bits + 1 bits because the copy tail length needs to be smaller than ring-buffer size. */ func computeRbBits(params *encoderParams) int { return 1 + brotli_max_int(int(params.lgwin), params.lgblock) } func maxMetablockSize(params *encoderParams) uint { var bits int = brotli_min_int(computeRbBits(params), maxInputBlockBits) return uint(1) << uint(bits) } /* When searching for backward references and have not seen matches for a long time, we can skip some match lookups. Unsuccessful match lookups are very expensive and this kind of a heuristic speeds up compression quite a lot. At first 8 byte strides are taken and every second byte is put to hasher. After 4x more literals stride by 16 bytes, every put 4-th byte to hasher. Applied only to qualities 2 to 9. */ func literalSpreeLengthForSparseSearch(params *encoderParams) uint { if params.quality < 9 { return 64 } else { return 512 } } func chooseHasher(params *encoderParams, hparams *hasherParams) { if params.quality > 9 { hparams.type_ = 10 } else if params.quality == 4 && params.size_hint >= 1<<20 { hparams.type_ = 54 } else if params.quality < 5 { hparams.type_ = params.quality } else if params.lgwin <= 16 { if params.quality < 7 { hparams.type_ = 40 } else if params.quality < 9 { hparams.type_ = 41 } else { hparams.type_ = 42 } } else if params.size_hint >= 1<<20 && params.lgwin >= 19 { hparams.type_ = 6 hparams.block_bits = params.quality - 1 hparams.bucket_bits = 15 hparams.hash_len = 5 if params.quality < 7 { hparams.num_last_distances_to_check = 4 } else if params.quality < 9 { hparams.num_last_distances_to_check = 10 } else { hparams.num_last_distances_to_check = 16 } } else { hparams.type_ = 5 hparams.block_bits = params.quality - 1 if params.quality < 7 { hparams.bucket_bits = 14 } else { hparams.bucket_bits = 15 } if params.quality < 7 { hparams.num_last_distances_to_check = 4 } else if params.quality < 9 { hparams.num_last_distances_to_check = 10 } else { hparams.num_last_distances_to_check = 16 } } if params.lgwin > 24 { /* Different hashers for large window brotli: not for qualities <= 2, these are too fast for large window. Not for qualities >= 10: their hasher already works well with large window. So the changes are: H3 --> H35: for quality 3. H54 --> H55: for quality 4 with size hint > 1MB H6 --> H65: for qualities 5, 6, 7, 8, 9. */ if hparams.type_ == 3 { hparams.type_ = 35 } if hparams.type_ == 54 { hparams.type_ = 55 } if hparams.type_ == 6 { hparams.type_ = 65 } } } brotli-1.0.4/reader.go000066400000000000000000000045041412267201500146030ustar00rootroot00000000000000package brotli import ( "errors" "io" ) type decodeError int func (err decodeError) Error() string { return "brotli: " + string(decoderErrorString(int(err))) } var errExcessiveInput = errors.New("brotli: excessive input") var errInvalidState = errors.New("brotli: invalid state") // readBufSize is a "good" buffer size that avoids excessive round-trips // between C and Go but doesn't waste too much memory on buffering. // It is arbitrarily chosen to be equal to the constant used in io.Copy. const readBufSize = 32 * 1024 // NewReader creates a new Reader reading the given reader. func NewReader(src io.Reader) *Reader { r := new(Reader) r.Reset(src) return r } // Reset discards the Reader's state and makes it equivalent to the result of // its original state from NewReader, but writing to src instead. // This permits reusing a Reader rather than allocating a new one. // Error is always nil func (r *Reader) Reset(src io.Reader) error { decoderStateInit(r) r.src = src if r.buf == nil { r.buf = make([]byte, readBufSize) } return nil } func (r *Reader) Read(p []byte) (n int, err error) { if !decoderHasMoreOutput(r) && len(r.in) == 0 { m, readErr := r.src.Read(r.buf) if m == 0 { // If readErr is `nil`, we just proxy underlying stream behavior. return 0, readErr } r.in = r.buf[:m] } if len(p) == 0 { return 0, nil } for { var written uint in_len := uint(len(r.in)) out_len := uint(len(p)) in_remaining := in_len out_remaining := out_len result := decoderDecompressStream(r, &in_remaining, &r.in, &out_remaining, &p) written = out_len - out_remaining n = int(written) switch result { case decoderResultSuccess: if len(r.in) > 0 { return n, errExcessiveInput } return n, nil case decoderResultError: return n, decodeError(decoderGetErrorCode(r)) case decoderResultNeedsMoreOutput: if n == 0 { return 0, io.ErrShortBuffer } return n, nil case decoderNeedsMoreInput: } if len(r.in) != 0 { return 0, errInvalidState } // Calling r.src.Read may block. Don't block if we have data to return. if n > 0 { return n, nil } // Top off the buffer. encN, err := r.src.Read(r.buf) if encN == 0 { // Not enough data to complete decoding. if err == io.EOF { return 0, io.ErrUnexpectedEOF } return 0, err } r.in = r.buf[:encN] } } brotli-1.0.4/ringbuffer.go000066400000000000000000000105471412267201500154760ustar00rootroot00000000000000package brotli /* Copyright 2013 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* A ringBuffer(window_bits, tail_bits) contains `1 << window_bits' bytes of data in a circular manner: writing a byte writes it to: `position() % (1 << window_bits)'. For convenience, the ringBuffer array contains another copy of the first `1 << tail_bits' bytes: buffer_[i] == buffer_[i + (1 << window_bits)], if i < (1 << tail_bits), and another copy of the last two bytes: buffer_[-1] == buffer_[(1 << window_bits) - 1] and buffer_[-2] == buffer_[(1 << window_bits) - 2]. */ type ringBuffer struct { size_ uint32 mask_ uint32 tail_size_ uint32 total_size_ uint32 cur_size_ uint32 pos_ uint32 data_ []byte buffer_ []byte } func ringBufferInit(rb *ringBuffer) { rb.pos_ = 0 } func ringBufferSetup(params *encoderParams, rb *ringBuffer) { var window_bits int = computeRbBits(params) var tail_bits int = params.lgblock *(*uint32)(&rb.size_) = 1 << uint(window_bits) *(*uint32)(&rb.mask_) = (1 << uint(window_bits)) - 1 *(*uint32)(&rb.tail_size_) = 1 << uint(tail_bits) *(*uint32)(&rb.total_size_) = rb.size_ + rb.tail_size_ } const kSlackForEightByteHashingEverywhere uint = 7 /* Allocates or re-allocates data_ to the given length + plus some slack region before and after. Fills the slack regions with zeros. */ func ringBufferInitBuffer(buflen uint32, rb *ringBuffer) { var new_data []byte var i uint size := 2 + int(buflen) + int(kSlackForEightByteHashingEverywhere) if cap(rb.data_) < size { new_data = make([]byte, size) } else { new_data = rb.data_[:size] } if rb.data_ != nil { copy(new_data, rb.data_[:2+rb.cur_size_+uint32(kSlackForEightByteHashingEverywhere)]) } rb.data_ = new_data rb.cur_size_ = buflen rb.buffer_ = rb.data_[2:] rb.data_[1] = 0 rb.data_[0] = rb.data_[1] for i = 0; i < kSlackForEightByteHashingEverywhere; i++ { rb.buffer_[rb.cur_size_+uint32(i)] = 0 } } func ringBufferWriteTail(bytes []byte, n uint, rb *ringBuffer) { var masked_pos uint = uint(rb.pos_ & rb.mask_) if uint32(masked_pos) < rb.tail_size_ { /* Just fill the tail buffer with the beginning data. */ var p uint = uint(rb.size_ + uint32(masked_pos)) copy(rb.buffer_[p:], bytes[:brotli_min_size_t(n, uint(rb.tail_size_-uint32(masked_pos)))]) } } /* Push bytes into the ring buffer. */ func ringBufferWrite(bytes []byte, n uint, rb *ringBuffer) { if rb.pos_ == 0 && uint32(n) < rb.tail_size_ { /* Special case for the first write: to process the first block, we don't need to allocate the whole ring-buffer and we don't need the tail either. However, we do this memory usage optimization only if the first write is less than the tail size, which is also the input block size, otherwise it is likely that other blocks will follow and we will need to reallocate to the full size anyway. */ rb.pos_ = uint32(n) ringBufferInitBuffer(rb.pos_, rb) copy(rb.buffer_, bytes[:n]) return } if rb.cur_size_ < rb.total_size_ { /* Lazily allocate the full buffer. */ ringBufferInitBuffer(rb.total_size_, rb) /* Initialize the last two bytes to zero, so that we don't have to worry later when we copy the last two bytes to the first two positions. */ rb.buffer_[rb.size_-2] = 0 rb.buffer_[rb.size_-1] = 0 } { var masked_pos uint = uint(rb.pos_ & rb.mask_) /* The length of the writes is limited so that we do not need to worry about a write */ ringBufferWriteTail(bytes, n, rb) if uint32(masked_pos+n) <= rb.size_ { /* A single write fits. */ copy(rb.buffer_[masked_pos:], bytes[:n]) } else { /* Split into two writes. Copy into the end of the buffer, including the tail buffer. */ copy(rb.buffer_[masked_pos:], bytes[:brotli_min_size_t(n, uint(rb.total_size_-uint32(masked_pos)))]) /* Copy into the beginning of the buffer */ copy(rb.buffer_, bytes[rb.size_-uint32(masked_pos):][:uint32(n)-(rb.size_-uint32(masked_pos))]) } } { var not_first_lap bool = rb.pos_&(1<<31) != 0 var rb_pos_mask uint32 = (1 << 31) - 1 rb.data_[0] = rb.buffer_[rb.size_-2] rb.data_[1] = rb.buffer_[rb.size_-1] rb.pos_ = (rb.pos_ & rb_pos_mask) + uint32(uint32(n)&rb_pos_mask) if not_first_lap { /* Wrap, but preserve not-a-first-lap feature. */ rb.pos_ |= 1 << 31 } } } brotli-1.0.4/state.go000066400000000000000000000172331412267201500144640ustar00rootroot00000000000000package brotli import "io" /* Copyright 2015 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* Brotli state for partial streaming decoding. */ const ( stateUninited = iota stateLargeWindowBits stateInitialize stateMetablockBegin stateMetablockHeader stateMetablockHeader2 stateContextModes stateCommandBegin stateCommandInner stateCommandPostDecodeLiterals stateCommandPostWrapCopy stateUncompressed stateMetadata stateCommandInnerWrite stateMetablockDone stateCommandPostWrite1 stateCommandPostWrite2 stateHuffmanCode0 stateHuffmanCode1 stateHuffmanCode2 stateHuffmanCode3 stateContextMap1 stateContextMap2 stateTreeGroup stateDone ) const ( stateMetablockHeaderNone = iota stateMetablockHeaderEmpty stateMetablockHeaderNibbles stateMetablockHeaderSize stateMetablockHeaderUncompressed stateMetablockHeaderReserved stateMetablockHeaderBytes stateMetablockHeaderMetadata ) const ( stateUncompressedNone = iota stateUncompressedWrite ) const ( stateTreeGroupNone = iota stateTreeGroupLoop ) const ( stateContextMapNone = iota stateContextMapReadPrefix stateContextMapHuffman stateContextMapDecode stateContextMapTransform ) const ( stateHuffmanNone = iota stateHuffmanSimpleSize stateHuffmanSimpleRead stateHuffmanSimpleBuild stateHuffmanComplex stateHuffmanLengthSymbols ) const ( stateDecodeUint8None = iota stateDecodeUint8Short stateDecodeUint8Long ) const ( stateReadBlockLengthNone = iota stateReadBlockLengthSuffix ) type Reader struct { src io.Reader buf []byte // scratch space for reading from src in []byte // current chunk to decode; usually aliases buf state int loop_counter int br bitReader buffer struct { u64 uint64 u8 [8]byte } buffer_length uint32 pos int max_backward_distance int max_distance int ringbuffer_size int ringbuffer_mask int dist_rb_idx int dist_rb [4]int error_code int sub_loop_counter uint32 ringbuffer []byte ringbuffer_end []byte htree_command []huffmanCode context_lookup []byte context_map_slice []byte dist_context_map_slice []byte literal_hgroup huffmanTreeGroup insert_copy_hgroup huffmanTreeGroup distance_hgroup huffmanTreeGroup block_type_trees []huffmanCode block_len_trees []huffmanCode trivial_literal_context int distance_context int meta_block_remaining_len int block_length_index uint32 block_length [3]uint32 num_block_types [3]uint32 block_type_rb [6]uint32 distance_postfix_bits uint32 num_direct_distance_codes uint32 distance_postfix_mask int num_dist_htrees uint32 dist_context_map []byte literal_htree []huffmanCode dist_htree_index byte repeat_code_len uint32 prev_code_len uint32 copy_length int distance_code int rb_roundtrips uint partial_pos_out uint symbol uint32 repeat uint32 space uint32 table [32]huffmanCode symbol_lists symbolList symbols_lists_array [huffmanMaxCodeLength + 1 + numCommandSymbols]uint16 next_symbol [32]int code_length_code_lengths [codeLengthCodes]byte code_length_histo [16]uint16 htree_index int next []huffmanCode context_index uint32 max_run_length_prefix uint32 code uint32 context_map_table [huffmanMaxSize272]huffmanCode substate_metablock_header int substate_tree_group int substate_context_map int substate_uncompressed int substate_huffman int substate_decode_uint8 int substate_read_block_length int is_last_metablock uint is_uncompressed uint is_metadata uint should_wrap_ringbuffer uint canny_ringbuffer_allocation uint large_window bool size_nibbles uint window_bits uint32 new_ringbuffer_size int num_literal_htrees uint32 context_map []byte context_modes []byte dictionary *dictionary transforms *transforms trivial_literal_contexts [8]uint32 } func decoderStateInit(s *Reader) bool { s.error_code = 0 /* BROTLI_DECODER_NO_ERROR */ initBitReader(&s.br) s.state = stateUninited s.large_window = false s.substate_metablock_header = stateMetablockHeaderNone s.substate_tree_group = stateTreeGroupNone s.substate_context_map = stateContextMapNone s.substate_uncompressed = stateUncompressedNone s.substate_huffman = stateHuffmanNone s.substate_decode_uint8 = stateDecodeUint8None s.substate_read_block_length = stateReadBlockLengthNone s.buffer_length = 0 s.loop_counter = 0 s.pos = 0 s.rb_roundtrips = 0 s.partial_pos_out = 0 s.block_type_trees = nil s.block_len_trees = nil s.ringbuffer = nil s.ringbuffer_size = 0 s.new_ringbuffer_size = 0 s.ringbuffer_mask = 0 s.context_map = nil s.context_modes = nil s.dist_context_map = nil s.context_map_slice = nil s.dist_context_map_slice = nil s.sub_loop_counter = 0 s.literal_hgroup.codes = nil s.literal_hgroup.htrees = nil s.insert_copy_hgroup.codes = nil s.insert_copy_hgroup.htrees = nil s.distance_hgroup.codes = nil s.distance_hgroup.htrees = nil s.is_last_metablock = 0 s.is_uncompressed = 0 s.is_metadata = 0 s.should_wrap_ringbuffer = 0 s.canny_ringbuffer_allocation = 1 s.window_bits = 0 s.max_distance = 0 s.dist_rb[0] = 16 s.dist_rb[1] = 15 s.dist_rb[2] = 11 s.dist_rb[3] = 4 s.dist_rb_idx = 0 s.block_type_trees = nil s.block_len_trees = nil s.symbol_lists.storage = s.symbols_lists_array[:] s.symbol_lists.offset = huffmanMaxCodeLength + 1 s.dictionary = getDictionary() s.transforms = getTransforms() return true } func decoderStateMetablockBegin(s *Reader) { s.meta_block_remaining_len = 0 s.block_length[0] = 1 << 24 s.block_length[1] = 1 << 24 s.block_length[2] = 1 << 24 s.num_block_types[0] = 1 s.num_block_types[1] = 1 s.num_block_types[2] = 1 s.block_type_rb[0] = 1 s.block_type_rb[1] = 0 s.block_type_rb[2] = 1 s.block_type_rb[3] = 0 s.block_type_rb[4] = 1 s.block_type_rb[5] = 0 s.context_map = nil s.context_modes = nil s.dist_context_map = nil s.context_map_slice = nil s.literal_htree = nil s.dist_context_map_slice = nil s.dist_htree_index = 0 s.context_lookup = nil s.literal_hgroup.codes = nil s.literal_hgroup.htrees = nil s.insert_copy_hgroup.codes = nil s.insert_copy_hgroup.htrees = nil s.distance_hgroup.codes = nil s.distance_hgroup.htrees = nil } func decoderStateCleanupAfterMetablock(s *Reader) { s.context_modes = nil s.context_map = nil s.dist_context_map = nil s.literal_hgroup.htrees = nil s.insert_copy_hgroup.htrees = nil s.distance_hgroup.htrees = nil } func decoderHuffmanTreeGroupInit(s *Reader, group *huffmanTreeGroup, alphabet_size uint32, max_symbol uint32, ntrees uint32) bool { var max_table_size uint = uint(kMaxHuffmanTableSize[(alphabet_size+31)>>5]) group.alphabet_size = uint16(alphabet_size) group.max_symbol = uint16(max_symbol) group.num_htrees = uint16(ntrees) group.htrees = make([][]huffmanCode, ntrees) group.codes = make([]huffmanCode, (uint(ntrees) * max_table_size)) return !(group.codes == nil) } brotli-1.0.4/static_dict.go000066400000000000000000000413321412267201500156330ustar00rootroot00000000000000package brotli import "encoding/binary" /* Copyright 2013 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* Class to model the static dictionary. */ const maxStaticDictionaryMatchLen = 37 const kInvalidMatch uint32 = 0xFFFFFFF /* Copyright 2013 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ func hash(data []byte) uint32 { var h uint32 = binary.LittleEndian.Uint32(data) * kDictHashMul32 /* The higher bits contain more mixture from the multiplication, so we take our results from there. */ return h >> uint(32-kDictNumBits) } func addMatch(distance uint, len uint, len_code uint, matches []uint32) { var match uint32 = uint32((distance << 5) + len_code) matches[len] = brotli_min_uint32_t(matches[len], match) } func dictMatchLength(dict *dictionary, data []byte, id uint, len uint, maxlen uint) uint { var offset uint = uint(dict.offsets_by_length[len]) + len*id return findMatchLengthWithLimit(dict.data[offset:], data, brotli_min_size_t(uint(len), maxlen)) } func isMatch(d *dictionary, w dictWord, data []byte, max_length uint) bool { if uint(w.len) > max_length { return false } else { var offset uint = uint(d.offsets_by_length[w.len]) + uint(w.len)*uint(w.idx) var dict []byte = d.data[offset:] if w.transform == 0 { /* Match against base dictionary word. */ return findMatchLengthWithLimit(dict, data, uint(w.len)) == uint(w.len) } else if w.transform == 10 { /* Match against uppercase first transform. Note that there are only ASCII uppercase words in the lookup table. */ return dict[0] >= 'a' && dict[0] <= 'z' && (dict[0]^32) == data[0] && findMatchLengthWithLimit(dict[1:], data[1:], uint(w.len)-1) == uint(w.len-1) } else { /* Match against uppercase all transform. Note that there are only ASCII uppercase words in the lookup table. */ var i uint for i = 0; i < uint(w.len); i++ { if dict[i] >= 'a' && dict[i] <= 'z' { if (dict[i] ^ 32) != data[i] { return false } } else { if dict[i] != data[i] { return false } } } return true } } } func findAllStaticDictionaryMatches(dict *encoderDictionary, data []byte, min_length uint, max_length uint, matches []uint32) bool { var has_found_match bool = false { var offset uint = uint(dict.buckets[hash(data)]) var end bool = offset == 0 for !end { w := dict.dict_words[offset] offset++ var l uint = uint(w.len) & 0x1F var n uint = uint(1) << dict.words.size_bits_by_length[l] var id uint = uint(w.idx) end = !(w.len&0x80 == 0) w.len = byte(l) if w.transform == 0 { var matchlen uint = dictMatchLength(dict.words, data, id, l, max_length) var s []byte var minlen uint var maxlen uint var len uint /* Transform "" + BROTLI_TRANSFORM_IDENTITY + "" */ if matchlen == l { addMatch(id, l, l, matches) has_found_match = true } /* Transforms "" + BROTLI_TRANSFORM_OMIT_LAST_1 + "" and "" + BROTLI_TRANSFORM_OMIT_LAST_1 + "ing " */ if matchlen >= l-1 { addMatch(id+12*n, l-1, l, matches) if l+2 < max_length && data[l-1] == 'i' && data[l] == 'n' && data[l+1] == 'g' && data[l+2] == ' ' { addMatch(id+49*n, l+3, l, matches) } has_found_match = true } /* Transform "" + BROTLI_TRANSFORM_OMIT_LAST_# + "" (# = 2 .. 9) */ minlen = min_length if l > 9 { minlen = brotli_max_size_t(minlen, l-9) } maxlen = brotli_min_size_t(matchlen, l-2) for len = minlen; len <= maxlen; len++ { var cut uint = l - len var transform_id uint = (cut << 2) + uint((dict.cutoffTransforms>>(cut*6))&0x3F) addMatch(id+transform_id*n, uint(len), l, matches) has_found_match = true } if matchlen < l || l+6 >= max_length { continue } s = data[l:] /* Transforms "" + BROTLI_TRANSFORM_IDENTITY + */ if s[0] == ' ' { addMatch(id+n, l+1, l, matches) if s[1] == 'a' { if s[2] == ' ' { addMatch(id+28*n, l+3, l, matches) } else if s[2] == 's' { if s[3] == ' ' { addMatch(id+46*n, l+4, l, matches) } } else if s[2] == 't' { if s[3] == ' ' { addMatch(id+60*n, l+4, l, matches) } } else if s[2] == 'n' { if s[3] == 'd' && s[4] == ' ' { addMatch(id+10*n, l+5, l, matches) } } } else if s[1] == 'b' { if s[2] == 'y' && s[3] == ' ' { addMatch(id+38*n, l+4, l, matches) } } else if s[1] == 'i' { if s[2] == 'n' { if s[3] == ' ' { addMatch(id+16*n, l+4, l, matches) } } else if s[2] == 's' { if s[3] == ' ' { addMatch(id+47*n, l+4, l, matches) } } } else if s[1] == 'f' { if s[2] == 'o' { if s[3] == 'r' && s[4] == ' ' { addMatch(id+25*n, l+5, l, matches) } } else if s[2] == 'r' { if s[3] == 'o' && s[4] == 'm' && s[5] == ' ' { addMatch(id+37*n, l+6, l, matches) } } } else if s[1] == 'o' { if s[2] == 'f' { if s[3] == ' ' { addMatch(id+8*n, l+4, l, matches) } } else if s[2] == 'n' { if s[3] == ' ' { addMatch(id+45*n, l+4, l, matches) } } } else if s[1] == 'n' { if s[2] == 'o' && s[3] == 't' && s[4] == ' ' { addMatch(id+80*n, l+5, l, matches) } } else if s[1] == 't' { if s[2] == 'h' { if s[3] == 'e' { if s[4] == ' ' { addMatch(id+5*n, l+5, l, matches) } } else if s[3] == 'a' { if s[4] == 't' && s[5] == ' ' { addMatch(id+29*n, l+6, l, matches) } } } else if s[2] == 'o' { if s[3] == ' ' { addMatch(id+17*n, l+4, l, matches) } } } else if s[1] == 'w' { if s[2] == 'i' && s[3] == 't' && s[4] == 'h' && s[5] == ' ' { addMatch(id+35*n, l+6, l, matches) } } } else if s[0] == '"' { addMatch(id+19*n, l+1, l, matches) if s[1] == '>' { addMatch(id+21*n, l+2, l, matches) } } else if s[0] == '.' { addMatch(id+20*n, l+1, l, matches) if s[1] == ' ' { addMatch(id+31*n, l+2, l, matches) if s[2] == 'T' && s[3] == 'h' { if s[4] == 'e' { if s[5] == ' ' { addMatch(id+43*n, l+6, l, matches) } } else if s[4] == 'i' { if s[5] == 's' && s[6] == ' ' { addMatch(id+75*n, l+7, l, matches) } } } } } else if s[0] == ',' { addMatch(id+76*n, l+1, l, matches) if s[1] == ' ' { addMatch(id+14*n, l+2, l, matches) } } else if s[0] == '\n' { addMatch(id+22*n, l+1, l, matches) if s[1] == '\t' { addMatch(id+50*n, l+2, l, matches) } } else if s[0] == ']' { addMatch(id+24*n, l+1, l, matches) } else if s[0] == '\'' { addMatch(id+36*n, l+1, l, matches) } else if s[0] == ':' { addMatch(id+51*n, l+1, l, matches) } else if s[0] == '(' { addMatch(id+57*n, l+1, l, matches) } else if s[0] == '=' { if s[1] == '"' { addMatch(id+70*n, l+2, l, matches) } else if s[1] == '\'' { addMatch(id+86*n, l+2, l, matches) } } else if s[0] == 'a' { if s[1] == 'l' && s[2] == ' ' { addMatch(id+84*n, l+3, l, matches) } } else if s[0] == 'e' { if s[1] == 'd' { if s[2] == ' ' { addMatch(id+53*n, l+3, l, matches) } } else if s[1] == 'r' { if s[2] == ' ' { addMatch(id+82*n, l+3, l, matches) } } else if s[1] == 's' { if s[2] == 't' && s[3] == ' ' { addMatch(id+95*n, l+4, l, matches) } } } else if s[0] == 'f' { if s[1] == 'u' && s[2] == 'l' && s[3] == ' ' { addMatch(id+90*n, l+4, l, matches) } } else if s[0] == 'i' { if s[1] == 'v' { if s[2] == 'e' && s[3] == ' ' { addMatch(id+92*n, l+4, l, matches) } } else if s[1] == 'z' { if s[2] == 'e' && s[3] == ' ' { addMatch(id+100*n, l+4, l, matches) } } } else if s[0] == 'l' { if s[1] == 'e' { if s[2] == 's' && s[3] == 's' && s[4] == ' ' { addMatch(id+93*n, l+5, l, matches) } } else if s[1] == 'y' { if s[2] == ' ' { addMatch(id+61*n, l+3, l, matches) } } } else if s[0] == 'o' { if s[1] == 'u' && s[2] == 's' && s[3] == ' ' { addMatch(id+106*n, l+4, l, matches) } } } else { var is_all_caps bool = (w.transform != transformUppercaseFirst) /* Set is_all_caps=0 for BROTLI_TRANSFORM_UPPERCASE_FIRST and is_all_caps=1 otherwise (BROTLI_TRANSFORM_UPPERCASE_ALL) transform. */ var s []byte if !isMatch(dict.words, w, data, max_length) { continue } /* Transform "" + kUppercase{First,All} + "" */ var tmp int if is_all_caps { tmp = 44 } else { tmp = 9 } addMatch(id+uint(tmp)*n, l, l, matches) has_found_match = true if l+1 >= max_length { continue } /* Transforms "" + kUppercase{First,All} + */ s = data[l:] if s[0] == ' ' { var tmp int if is_all_caps { tmp = 68 } else { tmp = 4 } addMatch(id+uint(tmp)*n, l+1, l, matches) } else if s[0] == '"' { var tmp int if is_all_caps { tmp = 87 } else { tmp = 66 } addMatch(id+uint(tmp)*n, l+1, l, matches) if s[1] == '>' { var tmp int if is_all_caps { tmp = 97 } else { tmp = 69 } addMatch(id+uint(tmp)*n, l+2, l, matches) } } else if s[0] == '.' { var tmp int if is_all_caps { tmp = 101 } else { tmp = 79 } addMatch(id+uint(tmp)*n, l+1, l, matches) if s[1] == ' ' { var tmp int if is_all_caps { tmp = 114 } else { tmp = 88 } addMatch(id+uint(tmp)*n, l+2, l, matches) } } else if s[0] == ',' { var tmp int if is_all_caps { tmp = 112 } else { tmp = 99 } addMatch(id+uint(tmp)*n, l+1, l, matches) if s[1] == ' ' { var tmp int if is_all_caps { tmp = 107 } else { tmp = 58 } addMatch(id+uint(tmp)*n, l+2, l, matches) } } else if s[0] == '\'' { var tmp int if is_all_caps { tmp = 94 } else { tmp = 74 } addMatch(id+uint(tmp)*n, l+1, l, matches) } else if s[0] == '(' { var tmp int if is_all_caps { tmp = 113 } else { tmp = 78 } addMatch(id+uint(tmp)*n, l+1, l, matches) } else if s[0] == '=' { if s[1] == '"' { var tmp int if is_all_caps { tmp = 105 } else { tmp = 104 } addMatch(id+uint(tmp)*n, l+2, l, matches) } else if s[1] == '\'' { var tmp int if is_all_caps { tmp = 116 } else { tmp = 108 } addMatch(id+uint(tmp)*n, l+2, l, matches) } } } } } /* Transforms with prefixes " " and "." */ if max_length >= 5 && (data[0] == ' ' || data[0] == '.') { var is_space bool = (data[0] == ' ') var offset uint = uint(dict.buckets[hash(data[1:])]) var end bool = offset == 0 for !end { w := dict.dict_words[offset] offset++ var l uint = uint(w.len) & 0x1F var n uint = uint(1) << dict.words.size_bits_by_length[l] var id uint = uint(w.idx) end = !(w.len&0x80 == 0) w.len = byte(l) if w.transform == 0 { var s []byte if !isMatch(dict.words, w, data[1:], max_length-1) { continue } /* Transforms " " + BROTLI_TRANSFORM_IDENTITY + "" and "." + BROTLI_TRANSFORM_IDENTITY + "" */ var tmp int if is_space { tmp = 6 } else { tmp = 32 } addMatch(id+uint(tmp)*n, l+1, l, matches) has_found_match = true if l+2 >= max_length { continue } /* Transforms " " + BROTLI_TRANSFORM_IDENTITY + and "." + BROTLI_TRANSFORM_IDENTITY + */ s = data[l+1:] if s[0] == ' ' { var tmp int if is_space { tmp = 2 } else { tmp = 77 } addMatch(id+uint(tmp)*n, l+2, l, matches) } else if s[0] == '(' { var tmp int if is_space { tmp = 89 } else { tmp = 67 } addMatch(id+uint(tmp)*n, l+2, l, matches) } else if is_space { if s[0] == ',' { addMatch(id+103*n, l+2, l, matches) if s[1] == ' ' { addMatch(id+33*n, l+3, l, matches) } } else if s[0] == '.' { addMatch(id+71*n, l+2, l, matches) if s[1] == ' ' { addMatch(id+52*n, l+3, l, matches) } } else if s[0] == '=' { if s[1] == '"' { addMatch(id+81*n, l+3, l, matches) } else if s[1] == '\'' { addMatch(id+98*n, l+3, l, matches) } } } } else if is_space { var is_all_caps bool = (w.transform != transformUppercaseFirst) /* Set is_all_caps=0 for BROTLI_TRANSFORM_UPPERCASE_FIRST and is_all_caps=1 otherwise (BROTLI_TRANSFORM_UPPERCASE_ALL) transform. */ var s []byte if !isMatch(dict.words, w, data[1:], max_length-1) { continue } /* Transforms " " + kUppercase{First,All} + "" */ var tmp int if is_all_caps { tmp = 85 } else { tmp = 30 } addMatch(id+uint(tmp)*n, l+1, l, matches) has_found_match = true if l+2 >= max_length { continue } /* Transforms " " + kUppercase{First,All} + */ s = data[l+1:] if s[0] == ' ' { var tmp int if is_all_caps { tmp = 83 } else { tmp = 15 } addMatch(id+uint(tmp)*n, l+2, l, matches) } else if s[0] == ',' { if !is_all_caps { addMatch(id+109*n, l+2, l, matches) } if s[1] == ' ' { var tmp int if is_all_caps { tmp = 111 } else { tmp = 65 } addMatch(id+uint(tmp)*n, l+3, l, matches) } } else if s[0] == '.' { var tmp int if is_all_caps { tmp = 115 } else { tmp = 96 } addMatch(id+uint(tmp)*n, l+2, l, matches) if s[1] == ' ' { var tmp int if is_all_caps { tmp = 117 } else { tmp = 91 } addMatch(id+uint(tmp)*n, l+3, l, matches) } } else if s[0] == '=' { if s[1] == '"' { var tmp int if is_all_caps { tmp = 110 } else { tmp = 118 } addMatch(id+uint(tmp)*n, l+3, l, matches) } else if s[1] == '\'' { var tmp int if is_all_caps { tmp = 119 } else { tmp = 120 } addMatch(id+uint(tmp)*n, l+3, l, matches) } } } } } if max_length >= 6 { /* Transforms with prefixes "e ", "s ", ", " and "\xC2\xA0" */ if (data[1] == ' ' && (data[0] == 'e' || data[0] == 's' || data[0] == ',')) || (data[0] == 0xC2 && data[1] == 0xA0) { var offset uint = uint(dict.buckets[hash(data[2:])]) var end bool = offset == 0 for !end { w := dict.dict_words[offset] offset++ var l uint = uint(w.len) & 0x1F var n uint = uint(1) << dict.words.size_bits_by_length[l] var id uint = uint(w.idx) end = !(w.len&0x80 == 0) w.len = byte(l) if w.transform == 0 && isMatch(dict.words, w, data[2:], max_length-2) { if data[0] == 0xC2 { addMatch(id+102*n, l+2, l, matches) has_found_match = true } else if l+2 < max_length && data[l+2] == ' ' { var t uint = 13 if data[0] == 'e' { t = 18 } else if data[0] == 's' { t = 7 } addMatch(id+t*n, l+3, l, matches) has_found_match = true } } } } } if max_length >= 9 { /* Transforms with prefixes " the " and ".com/" */ if (data[0] == ' ' && data[1] == 't' && data[2] == 'h' && data[3] == 'e' && data[4] == ' ') || (data[0] == '.' && data[1] == 'c' && data[2] == 'o' && data[3] == 'm' && data[4] == '/') { var offset uint = uint(dict.buckets[hash(data[5:])]) var end bool = offset == 0 for !end { w := dict.dict_words[offset] offset++ var l uint = uint(w.len) & 0x1F var n uint = uint(1) << dict.words.size_bits_by_length[l] var id uint = uint(w.idx) end = !(w.len&0x80 == 0) w.len = byte(l) if w.transform == 0 && isMatch(dict.words, w, data[5:], max_length-5) { var tmp int if data[0] == ' ' { tmp = 41 } else { tmp = 72 } addMatch(id+uint(tmp)*n, l+5, l, matches) has_found_match = true if l+5 < max_length { var s []byte = data[l+5:] if data[0] == ' ' { if l+8 < max_length && s[0] == ' ' && s[1] == 'o' && s[2] == 'f' && s[3] == ' ' { addMatch(id+62*n, l+9, l, matches) if l+12 < max_length && s[4] == 't' && s[5] == 'h' && s[6] == 'e' && s[7] == ' ' { addMatch(id+73*n, l+13, l, matches) } } } } } } } } return has_found_match } brotli-1.0.4/static_dict_lut.go000066400000000000000000034437731412267201500165410ustar00rootroot00000000000000package brotli /* Copyright 2017 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* Lookup table for static dictionary and transforms. */ type dictWord struct { len byte transform byte idx uint16 } const kDictNumBits int = 15 const kDictHashMul32 uint32 = 0x1E35A7BD var kStaticDictionaryBuckets = [32768]uint16{ 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 0, 0, 0, 0, 0, 20, 0, 0, 0, 21, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 25, 0, 29, 0, 53, 0, 0, 0, 0, 0, 0, 55, 0, 0, 0, 0, 0, 0, 61, 76, 0, 0, 0, 94, 0, 0, 0, 0, 0, 0, 96, 0, 97, 0, 98, 0, 0, 0, 0, 0, 0, 0, 99, 101, 106, 108, 0, 0, 0, 0, 0, 110, 0, 111, 112, 0, 113, 118, 124, 0, 0, 0, 0, 0, 125, 128, 0, 0, 0, 0, 129, 0, 0, 131, 0, 0, 0, 0, 0, 0, 132, 0, 0, 135, 0, 0, 0, 137, 0, 0, 0, 0, 0, 138, 139, 0, 0, 0, 0, 0, 0, 0, 142, 143, 144, 0, 0, 0, 0, 0, 145, 0, 0, 0, 146, 149, 151, 152, 0, 0, 153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 154, 0, 0, 0, 0, 0, 0, 155, 0, 0, 0, 0, 160, 182, 0, 0, 0, 0, 0, 0, 183, 0, 0, 0, 188, 189, 0, 0, 192, 0, 0, 0, 0, 0, 0, 194, 0, 0, 0, 0, 0, 0, 0, 0, 197, 202, 209, 0, 0, 210, 0, 224, 0, 0, 0, 225, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 231, 0, 0, 0, 232, 0, 240, 0, 0, 242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 244, 0, 0, 0, 246, 0, 0, 249, 251, 253, 0, 0, 0, 0, 0, 258, 0, 0, 261, 263, 0, 0, 0, 267, 0, 0, 268, 0, 269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 271, 0, 0, 0, 0, 0, 0, 272, 0, 273, 0, 277, 0, 278, 286, 0, 0, 0, 0, 287, 0, 289, 290, 291, 0, 0, 0, 295, 0, 0, 296, 297, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 298, 0, 0, 0, 299, 0, 0, 305, 0, 324, 0, 0, 0, 0, 0, 327, 0, 328, 329, 0, 0, 0, 0, 336, 0, 0, 340, 0, 341, 342, 343, 0, 0, 346, 0, 348, 0, 0, 0, 0, 0, 0, 349, 351, 0, 0, 355, 0, 363, 0, 364, 0, 368, 369, 0, 370, 0, 0, 0, 0, 0, 0, 0, 372, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 373, 0, 375, 0, 0, 0, 0, 376, 377, 0, 0, 394, 395, 396, 0, 0, 398, 0, 0, 0, 0, 400, 0, 0, 408, 0, 0, 0, 0, 420, 0, 0, 0, 0, 0, 0, 421, 0, 0, 422, 423, 0, 0, 429, 435, 436, 442, 0, 0, 443, 0, 444, 445, 453, 456, 0, 457, 0, 0, 0, 0, 0, 458, 0, 0, 0, 459, 0, 0, 0, 460, 0, 462, 463, 465, 0, 0, 0, 0, 0, 0, 466, 469, 0, 0, 0, 0, 0, 0, 470, 0, 0, 0, 474, 0, 476, 0, 0, 0, 0, 483, 0, 485, 0, 0, 0, 486, 0, 0, 488, 491, 492, 0, 0, 497, 499, 500, 0, 501, 0, 0, 0, 505, 0, 0, 506, 0, 0, 0, 507, 0, 0, 0, 509, 0, 0, 0, 0, 511, 512, 519, 0, 0, 0, 0, 0, 0, 529, 530, 0, 0, 0, 534, 0, 0, 0, 0, 543, 0, 0, 0, 0, 0, 0, 0, 0, 0, 553, 0, 0, 0, 0, 557, 560, 0, 0, 0, 0, 0, 0, 561, 0, 564, 0, 0, 0, 0, 0, 0, 565, 566, 0, 575, 0, 619, 0, 620, 0, 0, 623, 624, 0, 0, 0, 625, 0, 0, 626, 627, 0, 0, 628, 0, 0, 0, 0, 630, 0, 631, 0, 0, 0, 0, 0, 0, 0, 0, 0, 641, 0, 0, 0, 0, 643, 656, 668, 0, 0, 0, 673, 0, 0, 0, 674, 0, 0, 0, 0, 0, 0, 0, 0, 682, 0, 687, 0, 690, 0, 693, 699, 700, 0, 0, 0, 0, 0, 0, 704, 705, 0, 0, 0, 0, 707, 710, 0, 711, 0, 0, 0, 0, 726, 0, 0, 729, 0, 0, 0, 730, 731, 0, 0, 0, 0, 0, 752, 0, 0, 0, 762, 0, 763, 0, 0, 767, 0, 0, 0, 770, 774, 0, 0, 775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 776, 0, 0, 0, 777, 783, 0, 0, 0, 785, 788, 0, 0, 0, 0, 790, 0, 0, 0, 793, 0, 0, 0, 0, 794, 0, 0, 804, 819, 821, 0, 827, 0, 0, 0, 834, 0, 0, 835, 0, 0, 0, 841, 0, 844, 0, 850, 851, 859, 0, 860, 0, 0, 0, 0, 0, 0, 0, 874, 0, 876, 0, 877, 890, 0, 0, 0, 0, 0, 0, 0, 0, 893, 894, 898, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 899, 0, 0, 0, 900, 904, 906, 0, 0, 0, 907, 0, 908, 909, 0, 910, 0, 0, 0, 0, 911, 0, 0, 0, 0, 0, 916, 0, 0, 0, 922, 925, 0, 930, 0, 934, 0, 0, 0, 0, 0, 943, 0, 0, 944, 0, 953, 954, 0, 0, 0, 0, 0, 0, 955, 0, 962, 963, 0, 0, 976, 0, 0, 977, 978, 979, 980, 0, 981, 0, 0, 0, 0, 984, 0, 0, 985, 0, 0, 987, 989, 991, 0, 0, 0, 0, 0, 0, 0, 0, 0, 992, 0, 0, 0, 993, 0, 0, 0, 0, 0, 0, 996, 0, 0, 0, 1000, 0, 0, 0, 0, 0, 1002, 0, 0, 0, 0, 1005, 1007, 0, 0, 0, 1009, 0, 0, 0, 1010, 0, 0, 0, 0, 0, 0, 1011, 0, 1012, 0, 0, 0, 0, 1014, 1016, 0, 0, 0, 1020, 0, 1021, 0, 0, 0, 0, 1022, 0, 0, 0, 1024, 0, 0, 0, 0, 0, 0, 1025, 0, 0, 1026, 1027, 0, 0, 0, 0, 0, 1031, 0, 1033, 0, 0, 0, 0, 1034, 0, 0, 0, 1037, 1040, 0, 0, 0, 1042, 1043, 0, 0, 1053, 0, 1054, 0, 0, 1057, 0, 0, 0, 1058, 0, 0, 1060, 0, 0, 0, 0, 0, 0, 0, 1061, 0, 0, 1062, 0, 0, 0, 0, 1063, 0, 0, 0, 0, 1064, 0, 0, 0, 0, 0, 1065, 0, 0, 0, 0, 1066, 1067, 0, 0, 0, 1069, 1070, 1072, 0, 0, 0, 0, 0, 0, 1073, 0, 1075, 0, 0, 0, 0, 0, 0, 1080, 1084, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 1094, 0, 1095, 0, 1107, 0, 0, 0, 1112, 1114, 0, 1119, 0, 1122, 0, 0, 1126, 0, 1129, 0, 1130, 0, 0, 0, 0, 0, 1132, 0, 0, 0, 0, 0, 0, 1144, 0, 0, 1145, 1146, 0, 1148, 1149, 0, 0, 1150, 1151, 0, 0, 0, 0, 1152, 0, 1153, 0, 0, 0, 0, 0, 1154, 0, 1163, 0, 0, 0, 1164, 0, 0, 0, 0, 0, 1165, 0, 1167, 0, 1170, 0, 0, 0, 0, 0, 1171, 1172, 0, 0, 0, 0, 0, 0, 0, 0, 1173, 1175, 1177, 0, 1186, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1195, 0, 0, 1221, 0, 0, 1224, 0, 0, 1227, 0, 0, 0, 0, 0, 1228, 1229, 0, 0, 1230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1231, 0, 0, 0, 1233, 0, 0, 1243, 1244, 1246, 1248, 0, 0, 0, 0, 1254, 1255, 1258, 1259, 0, 0, 0, 1260, 0, 0, 1261, 0, 0, 0, 1262, 1264, 0, 0, 1265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1266, 0, 1267, 0, 0, 0, 0, 1273, 1274, 1276, 1289, 0, 0, 1291, 1292, 1293, 0, 0, 1294, 1295, 1296, 0, 0, 0, 0, 1302, 0, 1304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1311, 1312, 0, 1314, 0, 1316, 1320, 1321, 0, 0, 0, 0, 0, 0, 0, 1322, 1323, 1324, 0, 1335, 0, 1336, 0, 0, 0, 0, 1341, 1342, 0, 1346, 0, 1357, 0, 0, 0, 1358, 1360, 0, 0, 0, 0, 0, 0, 1361, 0, 0, 0, 1362, 1365, 0, 1366, 0, 0, 0, 0, 0, 0, 0, 1379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1386, 0, 1388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1395, 0, 0, 0, 0, 1403, 0, 1405, 0, 0, 1407, 0, 0, 0, 0, 0, 1408, 1409, 0, 1410, 0, 0, 0, 1412, 1413, 1416, 0, 0, 1429, 1451, 0, 0, 1454, 0, 0, 0, 0, 0, 0, 0, 1455, 0, 0, 0, 0, 0, 0, 0, 1456, 0, 0, 0, 0, 1459, 1460, 1461, 1475, 0, 0, 0, 0, 0, 0, 1477, 0, 1480, 0, 1481, 0, 0, 1486, 0, 0, 1495, 0, 0, 0, 1496, 0, 0, 1498, 1499, 1501, 1520, 1521, 0, 0, 0, 1526, 0, 0, 0, 0, 1528, 1529, 0, 1533, 1536, 0, 0, 0, 1537, 1538, 1549, 0, 1550, 1558, 1559, 1572, 0, 1573, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1575, 0, 0, 0, 0, 0, 1579, 0, 1599, 0, 1603, 0, 1604, 0, 1605, 0, 0, 0, 0, 0, 1608, 1610, 0, 0, 0, 0, 1611, 0, 1615, 0, 1616, 1618, 0, 1619, 0, 0, 1622, 0, 0, 0, 0, 1634, 0, 0, 0, 1635, 0, 0, 0, 1641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1643, 0, 0, 0, 1650, 0, 0, 1652, 0, 0, 0, 0, 0, 1653, 0, 0, 0, 1654, 0, 0, 0, 0, 1655, 0, 1662, 0, 0, 1663, 1664, 0, 0, 1668, 0, 0, 1669, 1670, 0, 1672, 1673, 0, 0, 0, 0, 0, 1674, 0, 0, 0, 1675, 1676, 1680, 0, 1682, 0, 0, 1687, 0, 0, 0, 0, 0, 1704, 0, 0, 1705, 0, 0, 1721, 0, 0, 0, 0, 1734, 1735, 0, 0, 0, 0, 1737, 0, 0, 0, 0, 1739, 0, 0, 1740, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1741, 1743, 0, 0, 0, 0, 1745, 0, 0, 0, 1749, 0, 0, 0, 1751, 0, 0, 0, 0, 0, 0, 1760, 0, 0, 0, 0, 1765, 0, 0, 0, 0, 0, 1784, 0, 1785, 1787, 0, 0, 0, 0, 1788, 1789, 0, 0, 0, 0, 1790, 1791, 1793, 0, 1798, 1799, 0, 0, 0, 0, 1801, 0, 1803, 1805, 0, 0, 0, 1806, 1811, 0, 1812, 1814, 0, 1821, 0, 0, 0, 0, 0, 1822, 1833, 0, 0, 0, 0, 0, 0, 1848, 0, 0, 0, 0, 0, 0, 1857, 0, 0, 0, 1859, 0, 0, 0, 0, 1861, 0, 0, 0, 0, 0, 0, 0, 1866, 0, 1921, 1925, 0, 0, 0, 1929, 1930, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1931, 0, 0, 0, 0, 1932, 0, 0, 0, 1934, 0, 0, 0, 0, 0, 0, 0, 0, 1946, 0, 0, 1948, 0, 0, 0, 0, 1950, 0, 1957, 0, 1958, 0, 0, 0, 0, 0, 1965, 1967, 0, 0, 0, 0, 1968, 0, 1969, 0, 1971, 1972, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1973, 0, 0, 0, 0, 1975, 0, 0, 0, 0, 1976, 1979, 0, 1982, 0, 0, 0, 0, 1984, 1988, 0, 0, 0, 0, 1990, 2004, 2008, 0, 0, 0, 2012, 2013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2015, 0, 2016, 2017, 0, 0, 0, 0, 2021, 0, 0, 2025, 0, 0, 0, 0, 0, 2029, 2036, 2040, 0, 2042, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2043, 0, 0, 0, 0, 0, 2045, 0, 0, 0, 0, 0, 0, 0, 2046, 2047, 0, 2048, 2049, 0, 2059, 0, 0, 2063, 0, 2064, 2065, 0, 0, 2066, 0, 0, 0, 0, 0, 0, 2069, 0, 0, 0, 0, 2070, 0, 2071, 0, 2072, 0, 0, 0, 0, 2080, 2082, 2083, 0, 0, 0, 0, 0, 2085, 0, 2086, 2088, 2089, 2105, 0, 0, 0, 0, 2107, 0, 0, 2116, 2117, 0, 2120, 0, 0, 2122, 0, 0, 0, 0, 0, 2123, 0, 0, 2125, 2127, 2128, 0, 0, 0, 2130, 0, 0, 0, 2137, 2139, 2140, 2141, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2144, 2145, 0, 0, 2146, 2149, 0, 0, 0, 0, 2150, 0, 0, 2151, 2158, 0, 2159, 0, 2160, 0, 0, 0, 0, 0, 0, 2161, 2162, 0, 0, 2194, 2202, 0, 0, 0, 0, 0, 0, 2205, 2217, 0, 2220, 0, 2221, 0, 2222, 2224, 0, 0, 0, 0, 2237, 0, 0, 0, 0, 0, 2238, 0, 2239, 2241, 0, 0, 2242, 0, 0, 0, 0, 0, 2243, 0, 0, 0, 0, 0, 0, 2252, 0, 0, 2253, 0, 0, 0, 2257, 2258, 0, 0, 0, 2260, 0, 0, 0, 0, 0, 0, 0, 2262, 0, 2264, 0, 0, 0, 0, 0, 2269, 2270, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2271, 0, 2273, 0, 0, 0, 0, 2277, 0, 0, 0, 0, 2278, 0, 0, 0, 0, 2279, 0, 2280, 0, 2283, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2287, 0, 0, 0, 0, 0, 0, 0, 2289, 2290, 0, 0, 0, 0, 2291, 0, 2292, 0, 0, 0, 2293, 2295, 2296, 0, 0, 0, 0, 0, 0, 0, 2298, 0, 0, 0, 0, 0, 2303, 0, 2305, 0, 0, 2306, 0, 2307, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2313, 2314, 2315, 2316, 0, 0, 2318, 0, 2319, 0, 2322, 0, 0, 2323, 0, 2324, 0, 2326, 0, 0, 0, 0, 0, 0, 0, 2335, 0, 2336, 2338, 2339, 0, 2340, 0, 0, 0, 2355, 0, 2375, 0, 2382, 2386, 0, 2387, 0, 0, 2394, 0, 0, 0, 0, 2395, 0, 2397, 0, 0, 0, 0, 0, 2398, 0, 0, 0, 0, 0, 0, 0, 2399, 2402, 2404, 2408, 2411, 0, 0, 0, 2413, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2415, 0, 0, 2416, 2417, 2419, 0, 2420, 0, 0, 0, 0, 0, 2425, 0, 0, 0, 2426, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2427, 2428, 0, 2429, 0, 0, 2430, 2434, 0, 2436, 0, 0, 0, 0, 0, 0, 2441, 2442, 0, 2445, 0, 0, 2446, 2457, 0, 2459, 0, 0, 2462, 0, 2464, 0, 2477, 0, 2478, 2486, 0, 0, 0, 2491, 0, 0, 2493, 0, 0, 2494, 0, 2495, 0, 2513, 2523, 0, 0, 0, 0, 2524, 0, 0, 0, 0, 0, 0, 2528, 2529, 2530, 0, 0, 2531, 0, 2533, 0, 0, 2534, 2535, 0, 2536, 2537, 0, 2538, 0, 2539, 2540, 0, 0, 0, 2545, 2546, 0, 0, 0, 0, 0, 0, 0, 2548, 0, 0, 2549, 0, 2550, 2555, 0, 0, 0, 0, 0, 2557, 0, 2560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2561, 0, 2576, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2577, 2578, 0, 0, 0, 2579, 0, 0, 0, 0, 0, 0, 0, 2580, 0, 0, 0, 0, 2581, 0, 0, 0, 0, 2583, 0, 2584, 0, 2588, 2590, 0, 0, 0, 2591, 0, 0, 0, 0, 2593, 2594, 0, 2595, 0, 2601, 2602, 0, 0, 2603, 0, 2605, 0, 0, 0, 2606, 2607, 2611, 0, 2615, 0, 0, 0, 2617, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2619, 0, 0, 2620, 0, 0, 0, 2621, 0, 2623, 0, 2625, 0, 0, 2628, 2629, 0, 0, 2635, 2636, 2637, 0, 0, 2639, 0, 0, 0, 2642, 0, 0, 0, 0, 2643, 0, 2644, 0, 2649, 0, 0, 0, 0, 0, 0, 2655, 2656, 0, 0, 2657, 0, 0, 0, 0, 0, 2658, 0, 0, 0, 0, 0, 2659, 0, 0, 0, 0, 2664, 2685, 0, 2687, 0, 2688, 0, 0, 2689, 0, 0, 2694, 0, 2695, 0, 0, 2698, 0, 2701, 2706, 0, 0, 0, 2707, 0, 2709, 2710, 2711, 0, 0, 0, 2720, 2730, 2735, 0, 0, 0, 0, 2738, 2740, 0, 0, 0, 0, 2747, 0, 0, 0, 0, 0, 0, 2748, 0, 0, 2749, 0, 0, 0, 0, 0, 2750, 0, 0, 2752, 2754, 0, 0, 0, 0, 0, 2758, 0, 0, 0, 0, 2762, 0, 0, 0, 0, 2763, 0, 0, 0, 0, 0, 0, 0, 2764, 2767, 0, 0, 0, 0, 2768, 0, 0, 2770, 0, 0, 0, 0, 0, 0, 0, 2771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2772, 0, 0, 0, 0, 0, 2773, 2776, 0, 0, 2783, 0, 0, 2784, 0, 2789, 0, 2790, 0, 0, 0, 2792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2793, 2795, 0, 0, 0, 0, 0, 0, 2796, 0, 0, 0, 0, 0, 0, 2797, 2799, 0, 0, 0, 0, 2803, 0, 0, 0, 0, 2806, 0, 2807, 2808, 2817, 2819, 0, 0, 0, 0, 0, 2821, 0, 0, 0, 0, 2822, 2823, 0, 0, 0, 0, 0, 0, 0, 2824, 0, 0, 2828, 0, 2834, 0, 0, 0, 0, 0, 0, 2836, 0, 2838, 0, 0, 2839, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2841, 0, 0, 0, 2842, 0, 0, 0, 0, 0, 2843, 2844, 0, 0, 0, 0, 2846, 0, 0, 2847, 0, 2849, 0, 2853, 0, 0, 0, 0, 0, 2857, 0, 0, 0, 0, 2858, 0, 2859, 0, 0, 2860, 0, 2862, 2868, 0, 0, 0, 0, 2875, 0, 2876, 0, 0, 2877, 2878, 2884, 2889, 2890, 0, 0, 2891, 0, 0, 2892, 0, 0, 0, 2906, 2912, 0, 2913, 0, 0, 0, 0, 0, 0, 0, 0, 2916, 0, 2934, 0, 0, 0, 0, 0, 2935, 0, 0, 0, 0, 2939, 0, 2940, 0, 0, 0, 0, 0, 0, 0, 2941, 0, 0, 0, 2946, 0, 2949, 0, 0, 2950, 2954, 2955, 0, 0, 0, 2959, 2961, 0, 0, 2962, 0, 2963, 0, 0, 0, 0, 0, 0, 2964, 2965, 2966, 2967, 0, 0, 0, 0, 0, 0, 0, 2969, 0, 0, 0, 0, 0, 2970, 2975, 0, 2982, 2983, 2984, 0, 0, 0, 0, 0, 2989, 0, 0, 2990, 0, 0, 0, 0, 0, 0, 0, 2991, 0, 0, 0, 0, 0, 0, 0, 0, 2998, 0, 3000, 3001, 0, 0, 3002, 0, 0, 0, 3003, 0, 0, 3012, 0, 0, 3022, 0, 0, 3024, 0, 0, 3025, 3027, 0, 0, 0, 3030, 0, 0, 0, 0, 3034, 3035, 0, 0, 3036, 0, 3039, 0, 3049, 0, 0, 3050, 0, 0, 0, 0, 0, 0, 3051, 0, 3053, 0, 0, 0, 0, 3057, 0, 3058, 0, 0, 0, 0, 0, 0, 0, 0, 3063, 0, 0, 3073, 3074, 3078, 3079, 0, 3080, 3086, 0, 0, 0, 0, 0, 0, 0, 0, 3087, 0, 3092, 0, 3095, 0, 3099, 0, 0, 0, 3100, 0, 3101, 3102, 0, 3122, 0, 0, 0, 3124, 0, 3125, 0, 0, 0, 0, 0, 0, 3132, 3134, 0, 0, 3136, 0, 0, 0, 0, 0, 0, 0, 3147, 0, 0, 3149, 0, 0, 0, 0, 0, 3150, 3151, 3152, 0, 0, 0, 0, 3158, 0, 0, 3160, 0, 0, 3161, 0, 0, 3162, 0, 3163, 3166, 3168, 0, 0, 3169, 3170, 0, 0, 3171, 0, 0, 0, 0, 0, 0, 0, 3182, 0, 3184, 0, 0, 3188, 0, 0, 3194, 0, 0, 0, 0, 0, 0, 3204, 0, 0, 0, 0, 3209, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3216, 3217, 0, 0, 0, 0, 0, 0, 0, 3219, 0, 0, 3220, 3222, 0, 3223, 0, 0, 0, 0, 3224, 0, 3225, 3226, 0, 3228, 3233, 0, 3239, 3241, 3242, 0, 0, 3251, 3252, 3253, 3255, 0, 0, 0, 0, 0, 0, 0, 0, 3260, 0, 0, 3261, 0, 0, 0, 3267, 0, 0, 0, 0, 0, 0, 0, 0, 3271, 0, 0, 0, 3278, 0, 3282, 0, 0, 0, 3284, 0, 0, 0, 3285, 3286, 0, 0, 0, 0, 0, 0, 0, 3287, 3292, 0, 0, 0, 0, 3294, 3296, 0, 0, 3299, 3300, 3301, 0, 3302, 0, 0, 0, 0, 0, 3304, 3306, 0, 0, 0, 0, 0, 0, 3308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3311, 0, 0, 0, 0, 0, 0, 0, 0, 3312, 3314, 3315, 0, 3318, 0, 0, 0, 0, 0, 0, 0, 0, 3319, 0, 0, 0, 0, 0, 3321, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3322, 0, 0, 3324, 3325, 0, 0, 3326, 0, 0, 3328, 3329, 3331, 0, 0, 3335, 0, 0, 3337, 0, 3338, 0, 0, 0, 0, 3343, 3347, 0, 0, 0, 3348, 0, 0, 3351, 0, 0, 0, 0, 0, 0, 3354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3355, 0, 0, 3365, 3366, 3367, 0, 0, 0, 0, 0, 0, 3368, 3369, 0, 3370, 0, 0, 3373, 0, 0, 3376, 0, 0, 3377, 0, 3379, 3387, 0, 0, 0, 0, 0, 3390, 0, 0, 0, 0, 0, 0, 0, 3402, 0, 3403, 3436, 3437, 3439, 0, 0, 3441, 0, 0, 0, 3442, 0, 0, 3449, 0, 0, 0, 3450, 0, 0, 0, 0, 0, 0, 0, 3451, 0, 0, 3452, 0, 3453, 3456, 0, 3457, 0, 0, 3458, 0, 3459, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3460, 0, 0, 3469, 3470, 0, 0, 3475, 0, 0, 0, 3480, 3487, 3489, 0, 3490, 0, 0, 3491, 3499, 0, 3500, 0, 0, 3501, 0, 0, 0, 3502, 0, 3514, 0, 0, 0, 3516, 3517, 0, 0, 0, 3518, 0, 0, 0, 0, 3520, 3521, 3522, 0, 0, 3526, 3530, 0, 0, 0, 0, 3531, 0, 0, 0, 0, 3536, 0, 0, 0, 0, 0, 0, 0, 3539, 3541, 0, 0, 3542, 3544, 0, 3547, 3548, 0, 0, 3550, 0, 3553, 0, 0, 0, 0, 0, 0, 0, 3554, 0, 3555, 0, 3558, 0, 3559, 0, 0, 0, 0, 0, 0, 0, 0, 3563, 0, 3581, 0, 0, 0, 3599, 0, 0, 0, 3600, 0, 3601, 0, 3602, 3603, 0, 0, 3606, 3608, 0, 3610, 3611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3612, 3616, 3619, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3624, 3628, 0, 3629, 3634, 3635, 0, 0, 0, 0, 0, 0, 3636, 0, 3637, 0, 0, 3638, 3651, 0, 0, 0, 0, 0, 0, 3652, 3653, 0, 0, 0, 0, 3656, 3657, 0, 0, 0, 0, 0, 3658, 0, 0, 0, 0, 3659, 0, 3661, 3663, 3664, 0, 3665, 0, 3692, 0, 0, 0, 3694, 3696, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3698, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3700, 0, 0, 3701, 0, 0, 0, 3708, 3709, 0, 0, 0, 3711, 3712, 0, 0, 0, 0, 0, 3723, 0, 3724, 3725, 0, 0, 3726, 0, 0, 0, 0, 0, 0, 3728, 3729, 0, 3734, 3735, 3737, 0, 0, 0, 3743, 0, 3745, 0, 0, 3746, 0, 0, 3747, 3748, 0, 3757, 0, 3759, 3766, 3767, 0, 3768, 0, 0, 0, 0, 3769, 0, 0, 3771, 0, 3774, 0, 0, 0, 0, 0, 0, 3775, 0, 0, 0, 0, 0, 0, 3776, 0, 3777, 3786, 0, 3788, 3789, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3791, 0, 3811, 0, 0, 0, 0, 0, 3814, 3815, 3816, 3820, 0, 0, 0, 0, 0, 0, 0, 3821, 0, 0, 3825, 0, 0, 0, 0, 3835, 0, 0, 3848, 3849, 0, 0, 0, 0, 3850, 3851, 3853, 0, 0, 0, 0, 3859, 0, 3860, 3862, 0, 0, 0, 0, 0, 3863, 0, 0, 0, 0, 0, 0, 0, 0, 3873, 0, 3874, 0, 3875, 3886, 0, 3887, 0, 0, 0, 0, 3892, 3913, 0, 3914, 0, 0, 0, 3925, 3931, 0, 0, 0, 0, 3934, 3941, 3942, 0, 0, 0, 0, 3943, 0, 0, 0, 3944, 0, 0, 0, 0, 0, 3945, 0, 3947, 0, 0, 0, 3956, 3957, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3958, 0, 3959, 3965, 0, 0, 0, 0, 3966, 0, 0, 0, 3967, 0, 0, 0, 3968, 3974, 0, 0, 0, 0, 0, 3975, 3977, 3978, 0, 0, 0, 0, 3980, 0, 3985, 0, 0, 0, 0, 0, 0, 0, 0, 3986, 4011, 0, 0, 4017, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4018, 0, 0, 0, 0, 4019, 0, 4023, 0, 0, 0, 4027, 4028, 0, 0, 0, 0, 0, 0, 0, 0, 4031, 4034, 0, 0, 4035, 4037, 4039, 4040, 0, 0, 0, 0, 0, 4059, 0, 4060, 4061, 0, 4062, 4063, 4066, 0, 0, 4072, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4088, 0, 0, 0, 0, 0, 4091, 0, 0, 0, 0, 4094, 4095, 0, 0, 4096, 0, 0, 0, 0, 0, 4098, 4099, 0, 0, 0, 4101, 0, 4104, 0, 0, 0, 4105, 4108, 0, 4113, 0, 0, 4115, 4116, 0, 4126, 0, 0, 4127, 0, 0, 0, 0, 0, 0, 0, 4128, 4132, 4133, 0, 4134, 0, 0, 0, 4137, 0, 0, 4141, 0, 0, 0, 0, 4144, 4146, 4147, 0, 0, 0, 0, 4148, 0, 0, 4311, 0, 0, 0, 4314, 4329, 0, 4331, 4332, 0, 4333, 0, 4334, 0, 0, 0, 4335, 0, 4336, 0, 0, 0, 4337, 0, 0, 0, 4342, 4345, 4346, 4350, 0, 4351, 4352, 0, 4354, 4355, 0, 0, 4364, 0, 0, 0, 0, 4369, 0, 0, 0, 4373, 0, 4374, 0, 0, 0, 0, 4377, 0, 0, 0, 0, 4378, 0, 0, 0, 4380, 0, 0, 0, 4381, 4382, 0, 0, 0, 0, 0, 0, 0, 4384, 0, 0, 0, 0, 4385, 0, 0, 0, 4386, 0, 0, 0, 4391, 4398, 0, 0, 0, 0, 4407, 4409, 0, 0, 0, 0, 4410, 0, 0, 4411, 0, 4414, 4415, 4418, 0, 4427, 4428, 4430, 0, 4431, 0, 4448, 0, 0, 0, 0, 0, 4449, 0, 0, 0, 4451, 4452, 0, 4453, 4454, 0, 4456, 0, 0, 0, 0, 0, 0, 0, 4459, 0, 4463, 0, 0, 0, 0, 0, 4466, 0, 4467, 0, 4469, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4470, 4471, 0, 4473, 0, 0, 4475, 0, 0, 0, 0, 4477, 4478, 0, 0, 0, 4479, 4481, 0, 4482, 0, 4484, 0, 0, 0, 0, 0, 0, 0, 4486, 0, 0, 4488, 0, 0, 4497, 0, 4508, 0, 0, 4510, 4511, 0, 4520, 4523, 0, 4524, 0, 4525, 0, 4527, 0, 0, 4528, 0, 0, 0, 0, 4530, 0, 4531, 0, 0, 4532, 0, 0, 0, 4533, 0, 0, 0, 0, 0, 4535, 0, 0, 0, 4536, 0, 0, 0, 0, 0, 4541, 4543, 4544, 4545, 4547, 0, 4548, 0, 0, 0, 0, 4550, 4551, 0, 4553, 0, 0, 0, 0, 4562, 0, 0, 4571, 0, 0, 0, 4574, 0, 0, 0, 4575, 0, 4576, 0, 4577, 0, 0, 0, 4581, 0, 0, 0, 0, 0, 4582, 0, 0, 4586, 0, 0, 0, 4588, 0, 0, 4597, 0, 4598, 0, 0, 0, 0, 4616, 4617, 0, 4618, 0, 0, 0, 0, 4619, 0, 4620, 0, 0, 4621, 0, 4624, 0, 0, 0, 0, 0, 4625, 0, 0, 0, 0, 4657, 0, 4659, 0, 4667, 0, 0, 0, 4668, 4670, 0, 4672, 0, 0, 0, 0, 0, 4673, 4676, 0, 0, 0, 0, 4687, 0, 0, 0, 0, 4697, 0, 0, 0, 0, 4699, 0, 4701, 0, 0, 0, 0, 4702, 0, 0, 4706, 0, 0, 4713, 0, 0, 0, 4714, 4715, 4716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4717, 0, 0, 4720, 0, 4721, 4729, 4735, 0, 0, 0, 4737, 0, 0, 0, 4739, 0, 0, 0, 4740, 0, 0, 0, 4741, 0, 0, 0, 0, 0, 4742, 0, 4745, 4746, 4747, 0, 0, 0, 0, 0, 0, 0, 0, 4748, 0, 0, 0, 4749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4751, 4786, 0, 4787, 0, 4788, 4796, 0, 0, 4797, 4798, 0, 4799, 4806, 4807, 0, 0, 0, 0, 4809, 4810, 0, 0, 0, 0, 0, 0, 4811, 0, 0, 0, 0, 0, 4812, 0, 4813, 0, 0, 4815, 0, 4821, 4822, 0, 0, 0, 0, 4823, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4824, 0, 0, 0, 0, 4826, 0, 0, 0, 4828, 0, 4829, 0, 0, 0, 4843, 0, 0, 4847, 0, 4853, 4855, 4858, 0, 0, 0, 0, 0, 4859, 0, 4864, 0, 0, 4879, 0, 0, 0, 0, 4880, 0, 0, 0, 0, 4881, 0, 4882, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4883, 0, 0, 0, 0, 4884, 0, 0, 0, 0, 0, 4886, 4887, 4888, 4894, 4896, 0, 4902, 0, 0, 4905, 0, 0, 4915, 0, 0, 0, 0, 0, 0, 0, 4916, 4917, 4919, 4921, 0, 0, 0, 0, 0, 4926, 0, 0, 0, 0, 4927, 0, 0, 0, 0, 0, 0, 0, 0, 4929, 0, 4930, 4931, 0, 4938, 0, 4952, 0, 4953, 4957, 4960, 4964, 0, 0, 0, 0, 0, 0, 0, 5019, 5020, 5022, 0, 0, 0, 0, 0, 5023, 0, 0, 0, 5024, 0, 0, 0, 5025, 0, 0, 0, 0, 5028, 0, 0, 0, 0, 5029, 5030, 5031, 0, 5033, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5034, 5035, 0, 5036, 0, 0, 5037, 0, 0, 0, 0, 5038, 0, 0, 5039, 0, 0, 0, 5041, 5042, 0, 0, 0, 0, 5044, 5049, 5054, 0, 5055, 0, 5057, 0, 0, 0, 5060, 0, 0, 0, 0, 0, 5063, 0, 5064, 5065, 0, 5067, 0, 0, 0, 5068, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5076, 0, 0, 0, 0, 0, 0, 0, 5077, 0, 0, 5078, 5080, 0, 0, 5083, 0, 0, 0, 0, 0, 0, 0, 0, 5085, 0, 0, 0, 0, 0, 0, 5098, 5099, 5101, 5105, 5107, 0, 5108, 0, 5109, 0, 0, 0, 0, 0, 0, 0, 5110, 0, 0, 0, 0, 0, 5117, 5118, 0, 5121, 0, 5122, 0, 0, 5130, 0, 0, 0, 5137, 0, 0, 0, 5148, 0, 0, 0, 0, 0, 0, 0, 5151, 5154, 0, 0, 0, 5155, 0, 0, 5156, 5159, 5161, 0, 0, 0, 0, 5162, 0, 0, 0, 0, 5163, 5164, 0, 5166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5167, 0, 0, 0, 5172, 0, 0, 0, 0, 0, 0, 5178, 5179, 0, 0, 5190, 0, 0, 5191, 5192, 5194, 0, 0, 5198, 5201, 0, 0, 0, 0, 0, 5203, 0, 5206, 5209, 0, 0, 0, 0, 0, 0, 5213, 0, 5214, 5216, 0, 0, 0, 0, 0, 5217, 0, 0, 0, 0, 0, 0, 0, 0, 5218, 5219, 0, 5231, 0, 0, 5244, 5249, 0, 5254, 0, 5255, 0, 0, 5257, 0, 0, 0, 0, 0, 5258, 0, 5260, 5270, 0, 5277, 0, 0, 0, 0, 0, 0, 5280, 5281, 5282, 5283, 0, 0, 0, 0, 0, 5284, 0, 5285, 0, 0, 0, 0, 0, 5287, 5288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5289, 5291, 0, 0, 5294, 0, 0, 5295, 0, 0, 0, 0, 0, 0, 0, 5304, 0, 0, 5306, 5307, 5308, 0, 5309, 0, 0, 5310, 0, 0, 0, 0, 5311, 5312, 0, 5313, 0, 0, 0, 0, 0, 5316, 0, 0, 0, 5317, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5325, 0, 0, 0, 0, 0, 0, 5326, 0, 5327, 5329, 0, 5332, 0, 0, 0, 0, 5338, 0, 0, 0, 0, 0, 0, 0, 0, 5340, 0, 0, 5341, 0, 0, 0, 5342, 0, 5343, 5344, 0, 0, 5345, 0, 0, 0, 0, 0, 0, 5347, 5348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5349, 0, 5350, 0, 5354, 0, 0, 0, 0, 5358, 0, 0, 5359, 0, 0, 5361, 0, 0, 5365, 0, 5367, 0, 5373, 0, 0, 0, 5379, 0, 0, 0, 5380, 0, 0, 0, 5382, 0, 5384, 0, 0, 0, 0, 0, 0, 5385, 0, 0, 0, 0, 5387, 0, 0, 0, 0, 0, 0, 5388, 5390, 5393, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5396, 0, 0, 0, 0, 5397, 5402, 0, 0, 0, 0, 0, 5403, 0, 0, 0, 5404, 5405, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5406, 0, 0, 0, 0, 5410, 0, 0, 5411, 0, 5415, 0, 0, 0, 0, 5416, 5434, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5438, 0, 5440, 0, 0, 0, 0, 0, 0, 5441, 5442, 0, 0, 0, 5443, 5444, 5447, 0, 0, 5448, 5449, 5451, 0, 0, 0, 5456, 5457, 0, 0, 0, 5459, 0, 0, 0, 5461, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5464, 0, 5466, 0, 0, 5467, 0, 5470, 0, 0, 5473, 0, 0, 5474, 0, 0, 5476, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5477, 0, 0, 0, 0, 0, 0, 0, 5484, 0, 0, 5485, 5486, 0, 0, 0, 0, 0, 5488, 0, 0, 0, 0, 0, 0, 0, 5489, 0, 0, 0, 0, 0, 5507, 0, 0, 0, 5510, 0, 5511, 0, 0, 5512, 0, 0, 0, 5513, 0, 5515, 0, 0, 5516, 5517, 0, 5518, 0, 0, 5522, 0, 0, 0, 0, 0, 5534, 5535, 0, 0, 5536, 0, 5538, 0, 0, 5543, 0, 5544, 0, 0, 5545, 0, 5547, 0, 5557, 0, 0, 5558, 0, 5560, 5567, 0, 0, 0, 0, 5568, 0, 0, 0, 5571, 5573, 0, 5574, 0, 5575, 0, 0, 0, 0, 5577, 0, 0, 5598, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5600, 5609, 0, 0, 0, 0, 5610, 0, 0, 5612, 0, 5624, 0, 5625, 0, 0, 0, 5629, 0, 5641, 0, 5642, 5643, 0, 0, 0, 0, 0, 0, 5651, 0, 0, 0, 5652, 5653, 0, 5661, 5662, 5678, 0, 5679, 0, 0, 0, 0, 5685, 5686, 0, 0, 0, 0, 0, 5690, 5692, 0, 5703, 0, 0, 0, 0, 0, 5706, 0, 0, 0, 0, 5707, 0, 0, 0, 0, 0, 0, 5708, 0, 0, 5709, 0, 5710, 0, 0, 0, 5712, 0, 5733, 0, 5734, 5735, 0, 0, 5744, 5751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5752, 0, 5754, 0, 0, 0, 0, 0, 0, 5757, 5758, 0, 5760, 5761, 0, 0, 0, 0, 5763, 5764, 5765, 0, 5766, 0, 5767, 5768, 0, 5770, 0, 0, 0, 0, 5776, 5780, 0, 0, 0, 0, 5782, 0, 0, 0, 0, 5784, 0, 0, 5788, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5797, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5799, 0, 0, 5801, 0, 0, 0, 5811, 0, 0, 0, 0, 0, 0, 5816, 0, 0, 5827, 0, 0, 0, 0, 0, 0, 0, 0, 5830, 5831, 0, 0, 5832, 0, 0, 5833, 0, 5835, 5844, 5845, 0, 5846, 0, 0, 0, 0, 0, 5850, 0, 0, 0, 0, 0, 5852, 0, 5855, 5857, 0, 0, 5859, 0, 5861, 0, 0, 5863, 0, 5865, 0, 0, 0, 5873, 5875, 0, 0, 0, 5877, 0, 5879, 0, 0, 0, 5888, 0, 0, 5889, 5891, 0, 5894, 0, 0, 0, 0, 0, 0, 5895, 0, 5897, 0, 0, 0, 0, 0, 0, 5907, 0, 5911, 0, 0, 5912, 0, 5913, 5922, 5924, 0, 5927, 5928, 0, 0, 0, 0, 5929, 5930, 0, 5933, 0, 0, 0, 0, 5949, 0, 0, 5951, 0, 0, 0, 0, 0, 0, 0, 0, 5953, 0, 0, 5954, 0, 5959, 5960, 5961, 0, 5964, 0, 0, 0, 5976, 5978, 5987, 5990, 0, 0, 0, 0, 0, 5991, 0, 5992, 0, 0, 0, 5994, 5995, 0, 0, 5996, 0, 0, 6001, 6003, 0, 0, 0, 0, 6007, 0, 0, 0, 0, 0, 6008, 0, 0, 6009, 0, 6010, 0, 0, 0, 6011, 6015, 0, 6017, 0, 6019, 0, 6023, 0, 0, 0, 0, 0, 0, 0, 6025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6026, 0, 6030, 0, 0, 6032, 0, 0, 0, 6033, 6038, 6040, 0, 0, 0, 6041, 6045, 0, 0, 6046, 0, 0, 6053, 0, 0, 6054, 0, 6055, 0, 0, 0, 0, 0, 0, 6057, 0, 6063, 0, 0, 0, 6064, 0, 6066, 6071, 6072, 0, 0, 0, 0, 0, 0, 6075, 6076, 0, 0, 6077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6078, 6079, 0, 0, 0, 0, 0, 0, 0, 0, 6080, 0, 6083, 0, 0, 0, 0, 0, 6084, 0, 0, 6088, 0, 6089, 0, 0, 6093, 6105, 0, 0, 6107, 0, 6110, 0, 0, 0, 6111, 6125, 6126, 0, 0, 0, 6129, 0, 0, 0, 0, 6130, 0, 0, 0, 6131, 6134, 0, 0, 0, 0, 0, 0, 6142, 0, 0, 0, 0, 0, 6144, 0, 0, 6146, 6151, 6153, 0, 6156, 0, 6163, 0, 6180, 6181, 0, 0, 0, 0, 0, 6182, 0, 0, 0, 0, 6184, 6195, 0, 0, 6206, 0, 6208, 0, 0, 6212, 6213, 6214, 0, 6215, 0, 0, 0, 6228, 0, 0, 0, 6234, 0, 0, 0, 0, 0, 0, 6235, 6240, 0, 6242, 6243, 6244, 0, 6250, 6255, 0, 0, 0, 0, 0, 6257, 0, 0, 0, 6258, 6278, 0, 6284, 0, 0, 0, 6285, 0, 0, 0, 0, 0, 0, 0, 0, 6286, 0, 0, 0, 6320, 0, 0, 6322, 6332, 0, 0, 0, 0, 0, 0, 0, 0, 6334, 0, 0, 0, 0, 0, 0, 0, 6335, 0, 0, 6337, 0, 6338, 0, 6339, 6340, 0, 0, 6356, 6357, 6369, 0, 0, 0, 6370, 6371, 6372, 0, 6373, 0, 0, 0, 0, 0, 6376, 0, 0, 0, 0, 0, 6382, 6383, 6384, 0, 0, 0, 0, 6386, 0, 6389, 6397, 6400, 6411, 0, 6414, 0, 0, 0, 0, 0, 0, 0, 6415, 6416, 0, 0, 0, 0, 0, 0, 6417, 0, 0, 0, 0, 6418, 0, 0, 0, 0, 0, 0, 0, 6420, 0, 6421, 6423, 6425, 0, 6429, 6430, 0, 6433, 6438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6439, 6440, 0, 0, 6441, 0, 0, 6444, 0, 0, 0, 0, 6446, 0, 0, 0, 0, 6447, 6448, 0, 0, 6450, 0, 0, 0, 6454, 0, 0, 6455, 0, 6461, 0, 0, 0, 0, 0, 0, 6462, 0, 0, 6463, 0, 6464, 0, 6465, 6467, 0, 0, 0, 6468, 0, 6479, 6480, 0, 0, 0, 0, 0, 0, 0, 6481, 0, 0, 6485, 6487, 0, 0, 0, 0, 0, 0, 6493, 0, 0, 0, 0, 0, 0, 0, 0, 6494, 6495, 6496, 0, 0, 0, 0, 0, 6498, 0, 0, 0, 6507, 6508, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6511, 6512, 0, 0, 0, 0, 6513, 0, 0, 0, 6514, 0, 0, 0, 0, 0, 6516, 0, 0, 6517, 6518, 0, 0, 0, 6519, 6520, 6521, 0, 6523, 0, 0, 0, 0, 6524, 6528, 0, 6530, 0, 0, 6532, 0, 6578, 0, 0, 0, 6583, 0, 6584, 0, 0, 0, 6587, 0, 0, 0, 6590, 0, 6591, 0, 0, 0, 0, 0, 6592, 0, 0, 0, 0, 6593, 6594, 0, 0, 0, 0, 0, 6599, 6600, 0, 0, 6601, 6602, 6604, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6608, 0, 0, 0, 0, 0, 0, 0, 0, 6610, 6611, 0, 6615, 0, 6616, 6618, 6620, 0, 6637, 0, 0, 0, 0, 6639, 0, 0, 0, 0, 6641, 0, 6642, 0, 0, 0, 6647, 0, 6660, 6663, 0, 6664, 0, 6666, 6669, 0, 6675, 6676, 6677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6678, 0, 0, 0, 6679, 0, 6680, 0, 0, 0, 0, 0, 0, 0, 6693, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6704, 6705, 6706, 0, 0, 6711, 6713, 0, 0, 0, 0, 0, 6716, 0, 0, 0, 6717, 0, 6719, 6724, 0, 0, 0, 0, 0, 0, 0, 0, 6725, 6726, 0, 0, 0, 0, 0, 6728, 6729, 6735, 0, 6737, 6742, 0, 0, 6743, 6750, 0, 6751, 0, 0, 6752, 6753, 0, 0, 0, 0, 0, 0, 6754, 0, 0, 0, 0, 0, 6756, 0, 0, 0, 0, 0, 0, 6763, 0, 0, 6764, 6765, 0, 0, 0, 6770, 0, 0, 0, 6776, 6780, 0, 6781, 0, 0, 0, 6783, 0, 6784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6785, 0, 0, 0, 6792, 0, 0, 0, 6793, 0, 0, 6802, 0, 0, 0, 0, 0, 6803, 0, 0, 0, 6804, 0, 0, 0, 6812, 0, 0, 6823, 0, 6824, 6839, 0, 0, 0, 0, 6852, 0, 0, 6854, 0, 6856, 6857, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6867, 0, 6868, 6870, 6872, 0, 0, 0, 6873, 6874, 0, 0, 0, 0, 0, 6875, 0, 0, 6877, 0, 0, 0, 0, 0, 0, 0, 6878, 0, 0, 0, 6879, 0, 6880, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6887, 0, 6888, 6891, 6893, 0, 6895, 0, 0, 0, 0, 0, 0, 0, 0, 6899, 0, 0, 0, 0, 6901, 0, 0, 0, 0, 6910, 0, 6911, 0, 0, 6912, 0, 0, 6913, 6914, 0, 0, 0, 6915, 0, 0, 0, 6916, 6919, 0, 0, 0, 0, 0, 0, 6924, 0, 6925, 0, 0, 0, 6926, 6927, 6928, 0, 6929, 0, 6930, 0, 0, 6931, 6935, 0, 6936, 0, 0, 0, 0, 6939, 6940, 6941, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6942, 6948, 6949, 0, 0, 0, 0, 0, 0, 0, 6952, 6954, 6963, 6965, 6966, 0, 0, 6967, 6968, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6969, 0, 0, 6970, 6979, 0, 0, 6980, 0, 0, 6983, 0, 0, 0, 0, 0, 6984, 0, 0, 0, 0, 0, 0, 0, 6988, 6990, 6992, 0, 0, 0, 0, 0, 0, 0, 6995, 0, 0, 0, 7012, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7019, 0, 0, 0, 0, 0, 0, 0, 0, 7021, 0, 0, 7022, 7023, 7028, 0, 7030, 7033, 0, 0, 0, 0, 0, 0, 7038, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7039, 0, 0, 0, 0, 0, 7046, 0, 7047, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7048, 7052, 0, 0, 0, 0, 0, 7054, 0, 7060, 0, 0, 0, 0, 7061, 0, 7065, 0, 0, 0, 0, 7067, 7069, 0, 7070, 7071, 7072, 0, 0, 7078, 0, 7080, 7081, 0, 7083, 0, 0, 0, 7084, 7087, 7088, 0, 0, 7090, 0, 7093, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7107, 0, 0, 7108, 0, 0, 0, 0, 0, 0, 0, 0, 7110, 0, 7114, 0, 0, 0, 0, 0, 0, 0, 7115, 0, 7116, 0, 0, 0, 0, 0, 7117, 0, 0, 7118, 0, 0, 7124, 0, 7125, 0, 0, 7126, 0, 0, 0, 0, 7128, 0, 0, 0, 0, 0, 7129, 0, 7130, 0, 7132, 7133, 0, 0, 7134, 0, 0, 7139, 0, 7148, 7150, 0, 0, 0, 0, 7152, 0, 0, 0, 7153, 7156, 7157, 0, 0, 0, 0, 0, 7158, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7163, 7165, 7169, 0, 7171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7172, 0, 7173, 7181, 0, 0, 0, 0, 0, 7182, 7185, 0, 0, 0, 0, 7187, 0, 7201, 7204, 0, 0, 0, 0, 0, 7206, 7207, 0, 0, 0, 0, 7211, 7216, 0, 7218, 0, 0, 0, 0, 7226, 7228, 7230, 7232, 7233, 7235, 7237, 0, 0, 0, 0, 7238, 7241, 0, 7242, 0, 0, 7247, 0, 0, 0, 7266, 0, 0, 0, 0, 0, 0, 0, 7289, 0, 0, 7290, 7291, 0, 0, 7292, 0, 7297, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7300, 0, 7301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7302, 0, 0, 0, 0, 7305, 0, 0, 0, 0, 7307, 0, 7308, 0, 7310, 0, 7335, 0, 0, 0, 0, 0, 0, 0, 7337, 0, 7343, 7347, 0, 0, 0, 0, 0, 7348, 0, 7349, 7350, 7352, 7354, 0, 0, 0, 0, 7357, 0, 7358, 7366, 0, 7367, 7368, 0, 0, 7373, 0, 0, 0, 7374, 0, 0, 0, 0, 0, 0, 0, 7376, 0, 0, 0, 7377, 0, 0, 0, 0, 0, 7378, 0, 7379, 7380, 0, 0, 0, 0, 0, 7383, 0, 0, 7386, 0, 0, 0, 0, 7398, 0, 0, 0, 7399, 7400, 0, 7401, 0, 0, 0, 0, 0, 0, 0, 7402, 0, 0, 0, 0, 0, 7405, 0, 0, 0, 0, 0, 7406, 0, 0, 0, 0, 0, 0, 0, 0, 7421, 7427, 7429, 0, 0, 0, 7435, 0, 0, 7436, 0, 0, 0, 7437, 0, 0, 0, 0, 0, 0, 7438, 7443, 0, 7446, 0, 7448, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7456, 0, 0, 0, 0, 0, 7457, 0, 0, 7461, 0, 0, 0, 0, 0, 7462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7463, 7466, 7472, 0, 7476, 0, 0, 7490, 0, 7491, 0, 0, 7493, 0, 0, 0, 7498, 7499, 0, 0, 7508, 0, 0, 0, 0, 0, 7512, 0, 0, 0, 7513, 7514, 7516, 0, 0, 0, 0, 7518, 0, 0, 7519, 7521, 7522, 0, 0, 0, 7526, 0, 0, 7529, 0, 0, 7531, 0, 7536, 0, 7538, 0, 7539, 0, 0, 7541, 7542, 7546, 0, 0, 0, 0, 0, 7547, 0, 7548, 0, 0, 0, 0, 0, 7550, 0, 0, 7552, 7553, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7554, 7563, 0, 7573, 0, 0, 0, 0, 0, 0, 7574, 7576, 0, 7578, 7581, 7583, 0, 0, 0, 7584, 0, 7587, 0, 0, 0, 0, 0, 7589, 0, 0, 0, 7594, 0, 0, 7595, 0, 0, 7600, 7602, 7610, 0, 0, 0, 0, 0, 7612, 0, 7613, 7614, 0, 0, 7615, 0, 0, 7616, 0, 7620, 0, 7621, 7622, 0, 7623, 0, 0, 0, 0, 7626, 0, 0, 0, 0, 7627, 7629, 7631, 0, 0, 7633, 0, 0, 0, 0, 0, 7639, 0, 7640, 7642, 0, 0, 7643, 0, 0, 0, 0, 7644, 0, 0, 0, 0, 0, 0, 0, 7645, 0, 0, 0, 0, 0, 7661, 7662, 7663, 7665, 0, 7666, 0, 7667, 0, 7684, 7688, 7690, 0, 7691, 0, 0, 0, 0, 0, 0, 7692, 0, 0, 7700, 0, 7707, 0, 7708, 0, 7709, 0, 7721, 0, 0, 0, 7722, 0, 7724, 0, 0, 0, 0, 0, 0, 7729, 7731, 0, 7732, 0, 7733, 7735, 0, 0, 0, 0, 0, 0, 0, 7739, 0, 0, 7741, 7745, 0, 7748, 0, 0, 0, 7751, 0, 0, 0, 7752, 0, 0, 0, 0, 0, 0, 0, 7753, 0, 0, 7756, 0, 7757, 0, 7759, 0, 7760, 0, 0, 0, 0, 7761, 7768, 0, 0, 7769, 0, 0, 7770, 0, 0, 7771, 0, 0, 7772, 0, 0, 7773, 0, 0, 0, 0, 0, 7778, 7783, 0, 0, 0, 0, 0, 7784, 7785, 0, 7790, 0, 0, 0, 0, 7792, 0, 7798, 0, 0, 0, 0, 0, 7799, 0, 7810, 0, 0, 7813, 0, 7814, 0, 7816, 0, 7818, 7824, 7825, 7826, 0, 7828, 7830, 0, 0, 0, 7840, 0, 7842, 0, 7843, 0, 0, 0, 0, 7844, 0, 0, 0, 0, 0, 0, 0, 7846, 0, 0, 0, 0, 0, 7856, 7857, 7858, 7862, 0, 7865, 0, 0, 7866, 0, 0, 7913, 0, 0, 0, 0, 7914, 0, 0, 7915, 7917, 7918, 7919, 0, 7920, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7921, 7922, 0, 7924, 0, 0, 7925, 0, 0, 7927, 0, 7930, 7935, 0, 0, 7937, 0, 0, 0, 0, 0, 0, 7939, 0, 7940, 0, 0, 0, 0, 0, 7941, 0, 0, 0, 0, 7945, 0, 0, 0, 0, 7949, 0, 0, 0, 0, 0, 0, 0, 0, 7950, 0, 7953, 0, 0, 0, 0, 0, 0, 0, 7968, 0, 0, 0, 0, 7969, 7972, 7992, 0, 7993, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7994, 0, 0, 0, 0, 8007, 8008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8010, 0, 0, 0, 8012, 0, 0, 0, 0, 0, 0, 0, 0, 8018, 0, 8028, 8029, 0, 0, 8030, 0, 0, 8032, 8033, 0, 0, 8034, 8036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8037, 0, 0, 0, 8043, 8052, 8059, 8060, 0, 0, 8061, 0, 0, 0, 8062, 0, 8063, 0, 8064, 0, 8066, 8068, 0, 0, 0, 8080, 8081, 0, 8089, 0, 0, 0, 0, 0, 8092, 0, 0, 0, 0, 0, 0, 8093, 8110, 0, 0, 0, 0, 0, 0, 0, 8111, 0, 0, 0, 0, 0, 8112, 8115, 0, 8117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8120, 8121, 8122, 8128, 8129, 8130, 8131, 0, 0, 8139, 0, 0, 8144, 0, 0, 0, 0, 8145, 8146, 8153, 0, 0, 0, 0, 0, 0, 0, 0, 8154, 0, 8157, 8160, 8162, 0, 8164, 8165, 0, 0, 0, 0, 8166, 8167, 0, 0, 8179, 0, 0, 0, 8185, 0, 0, 0, 8186, 0, 0, 8187, 0, 0, 0, 8188, 0, 0, 0, 0, 0, 8204, 0, 0, 0, 0, 8210, 0, 0, 0, 0, 0, 8213, 0, 8214, 0, 0, 8215, 0, 0, 0, 0, 0, 0, 8218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8219, 0, 8221, 0, 0, 8222, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8225, 0, 0, 0, 8233, 0, 0, 8242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8247, 0, 8248, 8252, 0, 8256, 8257, 0, 0, 8261, 0, 8264, 8265, 0, 0, 0, 0, 8267, 0, 0, 0, 8269, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8270, 0, 0, 0, 8278, 0, 8279, 8283, 0, 0, 8285, 8286, 8289, 8292, 0, 0, 0, 0, 8293, 8295, 8299, 8300, 8301, 0, 0, 0, 0, 0, 0, 8304, 8307, 0, 0, 0, 0, 0, 0, 0, 8321, 0, 0, 0, 8322, 8323, 8325, 8326, 8327, 0, 0, 8332, 8338, 0, 0, 8340, 0, 0, 0, 0, 0, 8350, 0, 0, 8351, 0, 8354, 8355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8360, 8372, 0, 0, 0, 0, 0, 0, 0, 0, 8377, 0, 0, 0, 0, 8380, 0, 0, 0, 8383, 0, 8384, 0, 0, 0, 0, 8386, 8392, 0, 0, 8394, 0, 0, 0, 0, 0, 0, 0, 8396, 8397, 0, 8398, 0, 8399, 0, 0, 0, 0, 0, 8400, 0, 8401, 8410, 8411, 0, 8412, 8413, 8422, 0, 0, 0, 0, 8423, 0, 0, 0, 0, 8424, 0, 0, 8425, 0, 0, 0, 0, 0, 0, 0, 8441, 8442, 0, 0, 0, 0, 0, 0, 8443, 0, 0, 8444, 0, 8447, 0, 0, 0, 0, 8451, 0, 8458, 0, 8462, 0, 0, 8468, 0, 8469, 0, 0, 0, 8470, 0, 8473, 8479, 8480, 0, 0, 0, 0, 8481, 8483, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8484, 0, 0, 8490, 0, 0, 0, 0, 0, 0, 8491, 8493, 8494, 0, 8528, 0, 0, 0, 0, 0, 0, 0, 8530, 0, 0, 0, 0, 0, 0, 0, 0, 8534, 8538, 8540, 0, 0, 8541, 0, 0, 8545, 0, 8557, 0, 0, 8569, 8570, 0, 0, 8571, 8574, 8575, 8579, 0, 8583, 0, 0, 0, 0, 8591, 0, 0, 0, 0, 0, 0, 0, 0, 8606, 0, 8607, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8608, 0, 0, 8609, 0, 0, 0, 8610, 0, 0, 0, 8611, 0, 0, 8613, 8617, 8621, 0, 0, 8622, 0, 8623, 0, 8624, 8625, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8637, 8638, 8639, 8650, 0, 0, 0, 0, 8652, 8654, 8655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8656, 0, 0, 0, 0, 0, 8657, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8658, 0, 0, 8659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8660, 0, 0, 0, 0, 0, 0, 8661, 8663, 8664, 0, 0, 0, 0, 8665, 0, 8669, 0, 0, 0, 0, 0, 0, 0, 8671, 8674, 0, 8684, 0, 8686, 0, 0, 0, 8689, 0, 0, 0, 8690, 0, 8706, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8710, 0, 8711, 8713, 8714, 8724, 8727, 8728, 8733, 8736, 0, 8737, 8739, 0, 0, 0, 0, 8742, 8743, 8745, 8754, 0, 0, 0, 0, 8756, 0, 0, 0, 0, 0, 0, 8757, 8760, 0, 0, 0, 0, 0, 8762, 8763, 8764, 0, 8766, 8769, 8770, 8773, 0, 8774, 0, 8779, 0, 0, 0, 0, 8780, 0, 0, 8781, 0, 0, 8783, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8784, 0, 0, 0, 0, 0, 0, 0, 0, 8785, 0, 0, 0, 0, 8786, 0, 0, 0, 0, 8788, 8790, 0, 0, 0, 8803, 0, 8813, 8814, 0, 0, 0, 0, 0, 8815, 8816, 0, 0, 0, 0, 8818, 0, 0, 0, 0, 8822, 8828, 8829, 0, 8831, 0, 0, 0, 0, 8833, 0, 0, 0, 8834, 0, 0, 0, 8835, 0, 8836, 0, 0, 0, 8837, 0, 0, 0, 0, 0, 0, 8838, 8839, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8840, 0, 0, 0, 8841, 0, 8842, 0, 0, 0, 8846, 0, 0, 0, 0, 0, 0, 0, 8847, 0, 8848, 0, 0, 8864, 0, 0, 8866, 0, 0, 8870, 8872, 0, 0, 8873, 8874, 0, 0, 0, 0, 0, 0, 8875, 0, 8876, 0, 0, 0, 0, 8896, 8900, 0, 0, 0, 0, 8901, 0, 0, 0, 0, 0, 8904, 0, 8907, 0, 0, 0, 0, 8911, 8912, 8913, 0, 0, 0, 8914, 0, 8915, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8916, 0, 0, 0, 8929, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8930, 0, 8932, 0, 8943, 0, 0, 0, 8945, 8947, 0, 0, 0, 0, 8949, 0, 8950, 0, 8954, 8957, 0, 0, 8970, 0, 0, 0, 0, 8971, 0, 8996, 0, 0, 0, 0, 8997, 9000, 0, 0, 0, 0, 9001, 9002, 0, 9004, 9009, 9024, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9027, 9082, 0, 0, 9083, 9089, 0, 0, 0, 0, 0, 0, 9090, 0, 0, 0, 9092, 0, 0, 9093, 0, 9095, 0, 0, 9096, 9097, 9101, 9102, 0, 0, 0, 0, 0, 0, 0, 0, 9112, 0, 0, 0, 0, 0, 0, 9114, 0, 0, 9120, 0, 9121, 9122, 0, 0, 0, 9123, 9124, 0, 0, 9125, 0, 0, 9126, 0, 9127, 0, 0, 9129, 9131, 0, 0, 0, 9132, 0, 0, 9136, 0, 9144, 0, 0, 9148, 0, 0, 0, 0, 0, 0, 9149, 0, 9152, 9163, 0, 0, 9165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9166, 0, 9169, 0, 0, 0, 0, 0, 0, 0, 9170, 0, 0, 0, 0, 9172, 0, 9174, 9175, 9176, 0, 9177, 0, 0, 0, 0, 0, 0, 0, 0, 9186, 0, 9187, 0, 0, 0, 9188, 9189, 0, 0, 9190, 0, 0, 0, 0, 9191, 0, 0, 0, 9193, 0, 0, 0, 0, 9197, 9198, 0, 0, 0, 9208, 9211, 0, 0, 0, 0, 9216, 9217, 0, 9220, 0, 0, 0, 0, 9221, 9222, 9223, 0, 9224, 9225, 0, 0, 9227, 0, 9228, 9229, 0, 0, 9230, 0, 9232, 0, 9233, 0, 0, 0, 0, 0, 9234, 9235, 0, 0, 9237, 0, 0, 0, 0, 0, 0, 0, 0, 9238, 9240, 0, 0, 9241, 0, 0, 0, 0, 9244, 0, 0, 0, 0, 9247, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9248, 0, 0, 0, 9249, 0, 0, 0, 0, 0, 9250, 0, 0, 0, 0, 9251, 0, 0, 9252, 9255, 0, 0, 0, 9256, 0, 0, 0, 0, 0, 0, 0, 9257, 0, 0, 9258, 0, 0, 0, 0, 0, 0, 9259, 0, 0, 0, 0, 0, 9262, 9263, 0, 0, 9265, 9266, 0, 0, 0, 0, 0, 0, 0, 0, 9268, 9271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9273, 0, 0, 0, 9276, 9277, 9279, 0, 0, 0, 0, 0, 0, 0, 9280, 0, 0, 9293, 0, 0, 0, 0, 0, 9297, 9301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9308, 9309, 9313, 9321, 9322, 0, 9326, 9327, 0, 0, 9477, 0, 9479, 0, 0, 0, 0, 9482, 0, 0, 0, 9483, 0, 9484, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9485, 0, 0, 9486, 0, 0, 0, 9489, 0, 0, 0, 0, 9490, 9491, 0, 0, 0, 0, 9493, 0, 9495, 9496, 0, 0, 0, 0, 0, 0, 0, 0, 9500, 0, 9502, 0, 0, 0, 0, 0, 9504, 9507, 0, 9509, 0, 9511, 0, 0, 9513, 0, 0, 0, 0, 0, 0, 0, 0, 9515, 0, 0, 0, 0, 0, 0, 9516, 9517, 0, 0, 0, 0, 9532, 0, 0, 9533, 0, 0, 9538, 0, 9539, 9540, 0, 0, 0, 0, 9541, 0, 0, 0, 9542, 0, 0, 0, 0, 0, 0, 0, 0, 9544, 9545, 0, 9546, 0, 0, 0, 0, 0, 0, 9547, 9548, 0, 0, 0, 9550, 0, 9557, 0, 9558, 0, 9561, 0, 9563, 9570, 0, 9572, 9574, 9575, 0, 0, 0, 9577, 9592, 0, 0, 9596, 0, 0, 0, 9598, 0, 9600, 0, 9601, 0, 0, 0, 0, 0, 0, 9608, 0, 9638, 9639, 0, 0, 0, 0, 0, 0, 0, 9641, 0, 0, 9643, 9644, 9645, 9646, 0, 0, 0, 9648, 0, 0, 0, 0, 0, 0, 0, 9650, 9654, 0, 0, 0, 0, 0, 0, 0, 0, 9655, 0, 0, 0, 0, 0, 9656, 0, 9657, 0, 0, 0, 0, 9658, 0, 0, 9659, 0, 0, 9664, 0, 0, 9665, 0, 9667, 9669, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9671, 0, 9673, 9681, 0, 0, 0, 0, 9682, 9683, 9684, 0, 0, 0, 0, 9686, 9698, 0, 0, 9700, 9701, 9702, 0, 9703, 9717, 0, 0, 0, 0, 9718, 0, 9726, 0, 0, 0, 0, 9727, 0, 0, 0, 9728, 0, 9742, 0, 9744, 0, 0, 0, 9750, 0, 9754, 9755, 0, 0, 0, 0, 0, 9756, 0, 9757, 9768, 0, 9769, 0, 0, 0, 9770, 9771, 0, 9773, 0, 9774, 0, 9775, 0, 0, 0, 9776, 9777, 9784, 0, 0, 0, 9786, 0, 9789, 0, 0, 0, 0, 9793, 9794, 0, 0, 0, 9808, 0, 0, 0, 0, 0, 9811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9812, 0, 9820, 0, 9823, 0, 9828, 0, 0, 0, 0, 9830, 0, 0, 9833, 9836, 0, 0, 0, 9840, 0, 0, 0, 9841, 0, 0, 9842, 0, 9845, 0, 0, 0, 9847, 9848, 0, 0, 9855, 0, 0, 0, 0, 0, 0, 9856, 9863, 9865, 0, 0, 0, 0, 0, 0, 0, 0, 9866, 9867, 9868, 9873, 9875, 0, 0, 0, 0, 0, 0, 9880, 0, 9886, 0, 0, 0, 9887, 0, 0, 9891, 0, 0, 0, 0, 0, 0, 0, 9906, 9907, 9908, 0, 0, 0, 9909, 0, 0, 0, 0, 0, 0, 9910, 0, 0, 0, 0, 9913, 0, 0, 0, 0, 9914, 0, 0, 0, 0, 0, 9922, 0, 0, 0, 0, 9923, 9925, 0, 0, 0, 0, 0, 0, 9930, 0, 0, 0, 9931, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9932, 0, 9939, 0, 0, 9940, 9962, 9966, 0, 9969, 9970, 0, 0, 9974, 0, 9979, 9981, 9982, 0, 0, 0, 9985, 0, 0, 0, 0, 0, 0, 9987, 0, 0, 0, 0, 0, 0, 0, 9988, 9993, 0, 0, 9994, 0, 0, 0, 9997, 0, 10004, 0, 0, 0, 0, 0, 10007, 10019, 10020, 10022, 0, 0, 0, 10031, 0, 0, 0, 0, 0, 10032, 0, 0, 10034, 0, 10036, 0, 0, 0, 0, 10038, 0, 10039, 10040, 10041, 10042, 0, 0, 0, 0, 0, 10043, 0, 0, 0, 0, 0, 10045, 10054, 0, 0, 0, 0, 10055, 0, 0, 10057, 10058, 0, 0, 0, 0, 0, 0, 10059, 0, 0, 0, 0, 0, 0, 0, 10060, 0, 0, 0, 0, 0, 0, 0, 10063, 0, 10066, 0, 0, 0, 10070, 0, 10072, 0, 0, 10076, 10077, 0, 0, 10084, 0, 10087, 10090, 10091, 0, 0, 0, 10094, 10097, 0, 0, 0, 0, 0, 0, 10098, 0, 0, 0, 0, 0, 0, 10103, 0, 10104, 0, 10108, 0, 0, 0, 0, 0, 0, 0, 0, 10120, 0, 0, 0, 10122, 0, 0, 10125, 0, 0, 0, 0, 10127, 10128, 0, 0, 10134, 0, 10135, 10136, 0, 10137, 0, 0, 10147, 0, 10149, 10150, 0, 0, 10156, 0, 10158, 10159, 10160, 10168, 0, 0, 10171, 0, 10173, 0, 0, 0, 10176, 0, 0, 0, 0, 10177, 0, 0, 0, 0, 10178, 0, 0, 0, 0, 10194, 0, 10202, 0, 0, 10203, 10204, 0, 10205, 10206, 0, 10207, 0, 0, 0, 0, 10209, 0, 0, 0, 0, 0, 0, 0, 10213, 0, 0, 0, 0, 0, 0, 10217, 0, 10229, 0, 10230, 10231, 0, 0, 10232, 0, 0, 10237, 10238, 10244, 0, 0, 0, 0, 0, 10250, 0, 10252, 0, 0, 0, 0, 0, 0, 10255, 0, 0, 10257, 0, 0, 0, 0, 0, 0, 10258, 0, 10259, 0, 0, 0, 0, 0, 0, 0, 0, 10260, 0, 0, 0, 0, 0, 0, 0, 10284, 10288, 10289, 0, 0, 0, 10290, 0, 10296, 0, 0, 0, 0, 0, 10297, 0, 0, 0, 0, 0, 0, 10298, 0, 0, 0, 0, 10299, 10303, 0, 0, 0, 0, 0, 10306, 0, 0, 0, 10307, 0, 10308, 0, 0, 0, 0, 10311, 0, 0, 0, 0, 0, 0, 0, 10315, 10317, 0, 0, 0, 10318, 10319, 0, 10321, 0, 10326, 0, 10328, 0, 0, 0, 0, 10329, 0, 0, 10331, 0, 10332, 0, 0, 0, 0, 0, 0, 10334, 0, 0, 10335, 10338, 0, 0, 0, 0, 0, 10339, 10349, 0, 0, 0, 0, 0, 0, 10351, 0, 10353, 0, 0, 0, 0, 0, 0, 10362, 0, 10368, 0, 10369, 0, 0, 0, 10372, 10373, 0, 0, 0, 0, 0, 10374, 0, 0, 0, 10375, 0, 10376, 0, 0, 10386, 10388, 10390, 0, 0, 0, 0, 0, 0, 0, 10391, 0, 0, 10392, 10394, 0, 0, 10396, 0, 10397, 0, 10403, 0, 0, 0, 0, 0, 0, 0, 0, 10404, 0, 10405, 10410, 0, 0, 10411, 0, 10412, 0, 0, 0, 0, 0, 0, 0, 10421, 10422, 10423, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10425, 0, 0, 10427, 0, 0, 10430, 0, 0, 0, 0, 0, 10432, 0, 10433, 10434, 0, 0, 0, 0, 10436, 10437, 0, 10438, 0, 10439, 0, 10444, 10446, 0, 0, 0, 0, 0, 10448, 0, 0, 0, 0, 0, 10449, 0, 0, 0, 0, 0, 0, 0, 10451, 0, 10453, 0, 0, 0, 10454, 10457, 0, 0, 10459, 0, 10469, 0, 0, 0, 0, 0, 10472, 10481, 0, 0, 0, 0, 0, 10482, 10483, 0, 10492, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10499, 0, 0, 0, 10502, 0, 0, 10510, 0, 10521, 10524, 0, 0, 10525, 10526, 10528, 0, 0, 0, 0, 0, 0, 0, 0, 10530, 0, 0, 0, 0, 10533, 0, 10534, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10535, 10536, 0, 0, 10544, 0, 10553, 10556, 0, 10557, 10559, 0, 0, 0, 0, 0, 10562, 10563, 10564, 0, 10565, 0, 0, 0, 10566, 0, 10567, 0, 0, 0, 0, 10575, 0, 0, 10576, 0, 10578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10585, 10586, 10587, 10589, 0, 10590, 0, 0, 10594, 0, 0, 0, 0, 0, 10598, 0, 0, 10601, 0, 0, 0, 10602, 0, 10603, 0, 10604, 0, 10605, 0, 0, 10607, 0, 10626, 0, 10627, 0, 0, 0, 0, 0, 10629, 10630, 10631, 0, 0, 0, 10646, 0, 0, 0, 10647, 0, 10650, 0, 10651, 0, 0, 0, 10652, 10653, 10655, 0, 10658, 0, 0, 10659, 0, 10667, 0, 0, 0, 0, 10669, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10670, 0, 0, 0, 10671, 0, 0, 0, 0, 10672, 10673, 0, 10674, 0, 0, 0, 10676, 0, 0, 0, 0, 0, 0, 10678, 0, 10682, 0, 0, 10692, 0, 10697, 0, 0, 0, 0, 10698, 0, 0, 0, 10700, 0, 0, 0, 0, 0, 10703, 0, 10704, 0, 0, 0, 0, 0, 0, 0, 10705, 0, 10715, 10718, 10720, 0, 0, 10722, 0, 0, 0, 0, 0, 0, 0, 0, 10723, 0, 0, 0, 0, 10726, 0, 0, 0, 0, 0, 10727, 10730, 10743, 0, 0, 0, 0, 0, 0, 10744, 0, 0, 10745, 0, 0, 0, 0, 0, 0, 10748, 0, 0, 0, 0, 10750, 0, 0, 10752, 10753, 0, 0, 0, 10756, 0, 0, 0, 0, 0, 0, 10758, 0, 0, 0, 10759, 0, 10769, 0, 0, 10772, 0, 0, 0, 0, 0, 0, 10773, 0, 0, 0, 10777, 0, 0, 10779, 0, 0, 0, 0, 0, 0, 0, 0, 10780, 10784, 0, 0, 0, 10789, 0, 0, 0, 10791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10795, 0, 0, 10796, 0, 10808, 0, 10809, 0, 0, 0, 10810, 0, 0, 0, 10812, 0, 0, 10814, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10815, 0, 0, 0, 0, 10816, 10817, 0, 0, 0, 0, 10819, 0, 10820, 0, 0, 0, 0, 10821, 10822, 10823, 0, 10826, 10849, 0, 0, 0, 0, 10850, 0, 0, 10852, 0, 10853, 0, 0, 10856, 0, 0, 10857, 10858, 10859, 10860, 0, 0, 0, 0, 0, 0, 10863, 0, 10866, 10867, 10872, 10890, 0, 0, 10891, 10892, 0, 0, 0, 0, 0, 10893, 0, 0, 0, 10896, 10899, 0, 0, 10900, 10902, 0, 0, 0, 0, 0, 10903, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10905, 0, 10906, 0, 0, 0, 0, 10908, 10911, 0, 10912, 0, 0, 10916, 0, 0, 0, 0, 0, 10917, 0, 10918, 0, 0, 0, 10923, 0, 0, 0, 0, 0, 10924, 0, 0, 10928, 10929, 0, 0, 10930, 0, 0, 0, 10932, 0, 0, 0, 0, 10939, 0, 0, 10945, 0, 0, 0, 10947, 0, 0, 10948, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10958, 0, 10960, 10962, 0, 0, 10964, 0, 0, 0, 10966, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 10967, 0, 0, 0, 10968, 0, 0, 0, 10973, 0, 0, 0, 0, 0, 10975, 0, 0, 0, 10976, 10978, 0, 0, 10982, 10984, 10987, 0, 0, 10988, 0, 10989, 0, 0, 10991, 0, 0, 0, 0, 10992, 0, 0, 0, 10993, 0, 10995, 0, 0, 0, 10996, 10997, 0, 0, 0, 10998, 0, 10999, 0, 11001, 0, 0, 0, 0, 0, 0, 11010, 11012, 0, 11013, 11016, 11017, 0, 0, 11019, 11020, 11021, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11022, 0, 0, 11023, 11029, 0, 0, 0, 0, 11031, 0, 0, 0, 11034, 0, 0, 0, 0, 11055, 0, 0, 0, 0, 0, 11056, 11060, 0, 0, 0, 0, 0, 0, 11061, 0, 0, 11064, 11065, 0, 11066, 0, 11069, 0, 11085, 0, 0, 0, 0, 0, 11086, 0, 0, 0, 11088, 0, 0, 0, 11094, 0, 0, 0, 11095, 11096, 0, 0, 0, 0, 0, 0, 11097, 11098, 0, 0, 0, 0, 0, 0, 11099, 0, 0, 11102, 11108, 0, 0, 0, 11109, 0, 11114, 11119, 0, 11131, 0, 0, 0, 11142, 0, 0, 11143, 0, 11146, 0, 11147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11148, 0, 11149, 11152, 11153, 11154, 0, 11156, 0, 11157, 0, 0, 0, 11158, 0, 0, 11159, 11160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11163, 0, 0, 11164, 11166, 0, 0, 0, 11172, 11174, 0, 0, 0, 11176, 0, 0, 0, 0, 0, 11182, 11183, 0, 0, 0, 11184, 11187, 0, 0, 11188, 11189, 0, 0, 0, 0, 0, 0, 11194, 0, 0, 0, 0, 0, 0, 0, 11200, 11202, 0, 0, 0, 0, 0, 0, 11203, 0, 11204, 0, 0, 0, 0, 0, 11205, 0, 0, 0, 11206, 0, 11207, 0, 0, 11209, 0, 11211, 0, 11214, 0, 0, 11231, 0, 0, 0, 11293, 11295, 0, 0, 11296, 11297, 11302, 0, 0, 0, 11307, 0, 0, 0, 0, 11309, 11310, 0, 11311, 0, 0, 0, 11313, 0, 11314, 0, 0, 0, 0, 11334, 0, 11338, 0, 0, 0, 11339, 0, 0, 0, 0, 0, 11340, 0, 11341, 11342, 0, 11344, 0, 11345, 0, 0, 0, 11348, 11349, 0, 0, 11350, 0, 0, 0, 11355, 0, 0, 0, 0, 0, 0, 11356, 0, 11357, 11370, 0, 0, 11371, 0, 11374, 11376, 0, 0, 0, 11377, 0, 0, 11378, 11383, 0, 11386, 11399, 0, 11400, 11406, 0, 0, 0, 11408, 0, 0, 11409, 11412, 0, 0, 0, 0, 11417, 0, 0, 0, 11418, 0, 11421, 0, 11426, 11429, 0, 0, 0, 0, 0, 11430, 0, 11437, 0, 11438, 0, 0, 0, 0, 0, 11440, 11453, 0, 0, 0, 0, 0, 0, 11454, 0, 0, 0, 0, 11455, 0, 0, 11456, 11460, 11461, 11463, 0, 11469, 0, 11473, 0, 0, 0, 0, 11474, 0, 0, 0, 11475, 0, 11476, 11477, 11480, 0, 0, 0, 0, 11481, 0, 0, 11484, 0, 0, 11487, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11497, 0, 0, 11502, 0, 11509, 0, 0, 11510, 11511, 11513, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11515, 0, 0, 0, 0, 11516, 0, 11520, 11521, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11529, 11530, 11531, 11534, 0, 0, 11543, 0, 0, 0, 0, 0, 11547, 0, 11548, 0, 0, 0, 0, 0, 11552, 11556, 0, 11557, 0, 0, 11559, 0, 11560, 0, 0, 0, 0, 0, 0, 11561, 0, 0, 11563, 11564, 0, 11565, 0, 0, 0, 0, 11567, 0, 0, 0, 11569, 0, 11574, 0, 11575, 0, 0, 0, 11577, 0, 11578, 0, 0, 0, 11580, 11581, 0, 0, 0, 11582, 11584, 0, 0, 0, 0, 0, 0, 0, 11587, 0, 11588, 11591, 0, 11595, 0, 0, 0, 0, 0, 0, 0, 0, 11596, 0, 11597, 0, 0, 0, 0, 11598, 11601, 0, 0, 0, 11602, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11603, 11604, 0, 11606, 0, 0, 11608, 0, 0, 0, 0, 11610, 0, 0, 11611, 0, 0, 0, 0, 11613, 0, 11622, 0, 0, 0, 11623, 0, 0, 0, 0, 11625, 0, 0, 11626, 11627, 11628, 11630, 0, 0, 0, 0, 0, 0, 11639, 0, 0, 11646, 0, 11648, 11649, 0, 11650, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11651, 0, 0, 11652, 11653, 11656, 0, 0, 11677, 11679, 0, 0, 0, 0, 11680, 0, 0, 11681, 0, 11685, 0, 0, 0, 0, 0, 0, 0, 0, 11688, 0, 0, 0, 11716, 0, 11719, 0, 0, 0, 0, 0, 11721, 0, 0, 11724, 11743, 0, 0, 0, 0, 0, 0, 0, 0, 11745, 11748, 11750, 0, 0, 0, 0, 0, 11751, 0, 0, 0, 11752, 11754, 0, 11755, 0, 0, 0, 0, 0, 0, 0, 11759, 0, 0, 0, 0, 0, 0, 11760, 0, 0, 0, 11761, 0, 0, 0, 0, 0, 0, 11766, 11767, 0, 11772, 11773, 0, 11774, 0, 0, 11775, 0, 11777, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11778, 11780, 0, 0, 0, 0, 0, 0, 0, 11783, 0, 11784, 0, 0, 0, 11785, 0, 0, 0, 11786, 0, 0, 0, 0, 11788, 0, 0, 11789, 11791, 11792, 0, 0, 0, 0, 11795, 11834, 11835, 11836, 0, 0, 11837, 0, 0, 0, 11838, 0, 0, 11846, 11851, 0, 11852, 0, 11869, 0, 0, 0, 11871, 0, 0, 0, 11872, 11874, 0, 0, 0, 0, 0, 0, 11875, 0, 11876, 11877, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11883, 0, 0, 0, 0, 0, 0, 0, 11884, 0, 11885, 0, 11886, 0, 0, 11887, 0, 11894, 11895, 11897, 11909, 11910, 0, 11912, 11918, 0, 0, 11920, 0, 11922, 11924, 11927, 11928, 0, 0, 0, 0, 11929, 0, 11934, 0, 0, 0, 0, 0, 11941, 11943, 11944, 0, 11945, 0, 0, 0, 0, 11948, 11949, 0, 0, 0, 0, 11953, 0, 11954, 0, 11955, 0, 11956, 0, 0, 0, 0, 0, 11957, 0, 0, 11959, 0, 0, 0, 0, 0, 0, 0, 0, 11961, 0, 0, 0, 0, 0, 11978, 0, 0, 0, 11979, 11980, 11986, 11987, 0, 11992, 0, 0, 0, 0, 0, 11993, 0, 0, 0, 11994, 0, 11999, 12004, 12005, 12006, 0, 0, 0, 0, 0, 12011, 0, 0, 12012, 12014, 0, 0, 12015, 0, 0, 12019, 12028, 0, 0, 12029, 0, 0, 12032, 12033, 0, 0, 0, 0, 12034, 0, 12041, 12043, 0, 0, 12044, 0, 0, 0, 0, 0, 0, 0, 12046, 0, 0, 0, 0, 0, 0, 0, 12054, 12055, 0, 12056, 0, 0, 0, 12060, 12064, 0, 0, 0, 0, 0, 12065, 12067, 12068, 0, 0, 0, 0, 0, 0, 0, 0, 12074, 0, 0, 0, 12075, 12076, 0, 0, 0, 12079, 0, 12081, 12086, 12087, 0, 0, 12088, 0, 0, 0, 0, 12089, 0, 12092, 0, 0, 0, 0, 12097, 0, 0, 0, 0, 0, 0, 0, 0, 12098, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12102, 12103, 12104, 12111, 0, 0, 12114, 12116, 0, 0, 0, 12118, 0, 0, 0, 12119, 12120, 12128, 0, 0, 0, 0, 12130, 0, 0, 0, 0, 0, 0, 12131, 0, 0, 0, 12132, 12134, 0, 0, 0, 0, 12137, 0, 12139, 0, 12141, 0, 0, 12142, 0, 0, 0, 12144, 0, 0, 0, 0, 0, 12145, 0, 12148, 0, 12153, 0, 0, 0, 0, 12154, 12171, 12173, 0, 0, 0, 12175, 0, 0, 0, 0, 12178, 0, 0, 0, 0, 0, 0, 0, 12183, 0, 0, 0, 0, 0, 0, 0, 0, 12184, 0, 0, 0, 12186, 0, 0, 0, 0, 0, 12187, 12188, 0, 0, 12189, 0, 12196, 0, 12197, 0, 0, 12198, 0, 12201, 0, 0, 0, 0, 12203, 0, 12209, 0, 0, 0, 0, 12210, 12211, 12212, 12213, 0, 12217, 12218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12222, 0, 0, 0, 0, 0, 0, 0, 12223, 0, 0, 12229, 0, 0, 0, 0, 12233, 0, 0, 0, 0, 12234, 0, 0, 12236, 12242, 0, 0, 0, 12243, 0, 0, 0, 12244, 12253, 0, 12254, 12256, 0, 12257, 0, 0, 12275, 0, 0, 0, 0, 0, 12277, 0, 0, 0, 0, 0, 12278, 0, 12289, 0, 0, 12290, 0, 12292, 12293, 0, 0, 12294, 0, 12295, 0, 0, 12296, 0, 12297, 0, 12298, 0, 0, 0, 0, 12301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12309, 0, 12338, 12340, 0, 0, 0, 0, 12341, 0, 0, 0, 0, 0, 0, 0, 0, 12342, 12343, 0, 12344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12345, 0, 0, 0, 0, 0, 0, 0, 0, 12346, 0, 0, 0, 0, 12348, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12350, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12351, 0, 12355, 12356, 12357, 0, 0, 12367, 12370, 12371, 0, 0, 0, 0, 0, 12372, 12376, 0, 0, 0, 0, 0, 0, 0, 0, 12379, 0, 12382, 0, 12383, 0, 0, 12384, 0, 0, 0, 0, 12393, 0, 0, 12394, 0, 0, 0, 0, 12398, 12403, 0, 0, 12404, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12410, 0, 0, 0, 12411, 0, 0, 0, 12412, 0, 0, 0, 0, 12420, 0, 12421, 0, 0, 0, 0, 0, 12423, 0, 12425, 12429, 0, 0, 0, 12431, 12432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12434, 0, 0, 0, 0, 0, 12435, 12436, 0, 0, 0, 0, 0, 0, 0, 0, 12437, 0, 0, 0, 0, 0, 12438, 0, 0, 0, 0, 0, 0, 0, 0, 12445, 0, 0, 0, 12450, 12451, 0, 0, 0, 0, 0, 0, 0, 0, 12452, 12475, 0, 0, 12493, 12494, 0, 0, 0, 12495, 0, 0, 0, 0, 12496, 12502, 12509, 0, 0, 0, 0, 12510, 0, 12512, 12513, 0, 0, 0, 0, 12514, 0, 0, 0, 12515, 0, 12520, 0, 0, 0, 12524, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12527, 0, 0, 0, 12528, 0, 0, 0, 12529, 0, 0, 0, 0, 0, 12530, 0, 12535, 0, 0, 12536, 0, 12538, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12540, 0, 12548, 0, 0, 0, 0, 0, 12550, 0, 0, 0, 12551, 12552, 0, 0, 0, 12554, 0, 0, 0, 0, 0, 0, 0, 0, 12555, 0, 0, 12562, 0, 12565, 0, 12566, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12569, 0, 0, 0, 12571, 12574, 0, 0, 0, 0, 0, 0, 0, 12577, 0, 0, 0, 0, 0, 0, 0, 12578, 12579, 12603, 0, 12608, 0, 0, 12611, 0, 12612, 0, 12615, 0, 12625, 0, 0, 0, 0, 12627, 12646, 0, 12648, 0, 0, 12657, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12670, 0, 0, 12671, 0, 12673, 12677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12679, 0, 12681, 0, 12682, 12693, 0, 12694, 0, 12697, 0, 12701, 0, 0, 0, 12703, 12704, 0, 0, 0, 0, 12707, 12737, 0, 0, 12739, 0, 0, 12740, 0, 0, 12742, 12743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12745, 0, 12746, 12747, 0, 12748, 0, 0, 12759, 12767, 0, 0, 0, 0, 12773, 0, 12774, 12778, 0, 0, 0, 0, 0, 0, 0, 12779, 0, 0, 0, 0, 0, 12780, 12793, 0, 12824, 0, 12825, 0, 12836, 0, 0, 0, 0, 12839, 0, 12842, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12843, 12845, 0, 12846, 0, 0, 0, 0, 12847, 0, 0, 12850, 12852, 12853, 0, 0, 0, 12854, 0, 0, 0, 12855, 0, 12856, 0, 12858, 0, 0, 12859, 0, 12862, 0, 12863, 0, 0, 12866, 0, 12869, 12872, 12873, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12875, 0, 12877, 0, 0, 12878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12884, 12885, 12888, 0, 12889, 0, 0, 0, 0, 12893, 0, 0, 0, 12895, 12896, 12898, 0, 0, 0, 0, 0, 0, 0, 12902, 0, 12909, 12910, 0, 12926, 0, 12928, 0, 0, 0, 12929, 0, 12930, 0, 0, 0, 0, 12931, 0, 12932, 12933, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12934, 0, 12942, 0, 0, 0, 0, 12944, 0, 0, 0, 0, 0, 0, 0, 0, 12946, 0, 0, 12948, 0, 0, 12949, 0, 0, 0, 0, 12950, 0, 0, 0, 0, 12951, 0, 12952, 0, 12953, 0, 0, 0, 12954, 12958, 12959, 0, 0, 0, 0, 0, 12960, 12964, 0, 0, 0, 0, 0, 12966, 0, 0, 0, 0, 0, 0, 0, 0, 12970, 0, 12971, 0, 0, 0, 0, 0, 0, 12972, 0, 0, 12982, 0, 0, 0, 12984, 12985, 0, 12986, 12996, 12997, 13001, 13002, 0, 0, 0, 0, 13004, 0, 0, 13005, 0, 0, 13007, 13009, 0, 13017, 0, 0, 0, 13020, 0, 13021, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13022, 0, 0, 0, 0, 0, 0, 0, 0, 13024, 13027, 0, 0, 0, 0, 0, 13028, 0, 0, 13029, 0, 0, 0, 0, 0, 0, 0, 13032, 0, 13037, 0, 0, 0, 0, 0, 0, 13040, 0, 0, 13041, 0, 0, 0, 13043, 13044, 13046, 0, 0, 0, 0, 13047, 0, 0, 0, 0, 0, 0, 0, 13049, 13054, 0, 13056, 0, 0, 13060, 13061, 0, 0, 0, 0, 0, 13067, 0, 0, 13068, 0, 13071, 0, 0, 0, 0, 0, 13077, 13078, 0, 0, 0, 0, 0, 13079, 13080, 13081, 0, 13082, 0, 0, 0, 13085, 0, 0, 0, 0, 0, 0, 0, 13086, 0, 13087, 13088, 0, 0, 0, 0, 0, 13094, 0, 13099, 0, 13100, 0, 0, 0, 13101, 0, 13125, 13126, 13128, 13129, 0, 0, 13130, 0, 13131, 0, 0, 0, 0, 0, 0, 13134, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13150, 0, 13168, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13169, 0, 0, 13170, 0, 0, 0, 0, 13174, 0, 0, 0, 13176, 0, 0, 0, 0, 0, 13177, 0, 13178, 13183, 13187, 0, 0, 0, 13189, 0, 0, 13190, 0, 0, 13191, 0, 0, 13206, 0, 0, 0, 13207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13212, 0, 0, 13219, 13232, 0, 0, 0, 13241, 0, 13249, 13253, 0, 0, 0, 0, 0, 13255, 13259, 0, 13260, 13261, 0, 13262, 0, 13272, 0, 0, 0, 0, 13276, 0, 0, 0, 0, 13277, 13299, 0, 0, 13301, 13302, 0, 0, 13303, 0, 0, 13305, 0, 13310, 0, 0, 0, 13311, 0, 0, 0, 0, 13325, 0, 13328, 0, 0, 0, 13329, 0, 0, 0, 0, 0, 0, 13330, 0, 0, 13331, 0, 13335, 0, 0, 13342, 0, 0, 0, 0, 0, 13343, 0, 13354, 0, 13362, 0, 13366, 13367, 13369, 0, 0, 13371, 13372, 0, 13373, 13374, 0, 13376, 0, 13380, 13381, 13386, 0, 13387, 13388, 0, 13389, 13391, 13395, 0, 0, 0, 0, 0, 13401, 13409, 0, 13410, 0, 0, 0, 0, 13420, 0, 0, 0, 0, 0, 13422, 0, 0, 0, 0, 13423, 0, 0, 0, 0, 13425, 0, 0, 0, 0, 0, 13427, 0, 0, 0, 13428, 0, 0, 13430, 13438, 0, 13439, 0, 13445, 0, 13448, 13449, 0, 0, 0, 0, 0, 0, 13451, 0, 13457, 0, 0, 0, 0, 13458, 13459, 0, 13460, 0, 0, 0, 0, 13464, 13465, 13466, 13470, 0, 13471, 13472, 13474, 13475, 0, 13476, 0, 0, 13478, 13479, 0, 13481, 0, 0, 0, 0, 13487, 0, 13490, 0, 13493, 0, 0, 13494, 0, 0, 13495, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13496, 13497, 0, 13500, 0, 0, 13516, 13522, 0, 0, 13525, 13528, 0, 0, 0, 13530, 13535, 0, 13537, 13539, 0, 13540, 0, 13543, 0, 13544, 0, 0, 0, 0, 0, 0, 13545, 0, 0, 0, 0, 0, 0, 13547, 0, 0, 0, 13549, 13555, 0, 0, 0, 13556, 13557, 0, 0, 0, 0, 0, 0, 0, 13558, 0, 13563, 0, 0, 0, 0, 13564, 0, 0, 0, 0, 0, 0, 0, 0, 13566, 0, 0, 0, 0, 0, 0, 13569, 0, 0, 13571, 0, 0, 0, 0, 13573, 0, 0, 0, 0, 0, 0, 13578, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13581, 0, 13586, 0, 13595, 0, 13600, 0, 0, 0, 0, 0, 0, 0, 0, 13601, 13603, 0, 13604, 13605, 13606, 13607, 0, 0, 13617, 13618, 0, 0, 0, 0, 0, 0, 0, 13623, 0, 13625, 13627, 0, 0, 0, 0, 0, 0, 0, 0, 13629, 0, 0, 0, 13634, 0, 0, 0, 13638, 0, 0, 0, 0, 0, 0, 0, 0, 13654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13656, 0, 13659, 0, 0, 13660, 0, 0, 13662, 0, 0, 0, 13663, 0, 13664, 0, 0, 0, 0, 0, 13668, 0, 13669, 13671, 0, 0, 13672, 0, 0, 0, 0, 0, 0, 13675, 13685, 0, 13686, 0, 0, 0, 13687, 0, 0, 0, 13692, 13694, 13697, 0, 0, 0, 13702, 0, 0, 0, 0, 0, 13705, 0, 0, 0, 0, 13707, 0, 0, 0, 13714, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13715, 0, 13716, 13717, 0, 0, 13719, 13724, 13730, 13731, 0, 0, 0, 0, 0, 0, 0, 0, 13732, 0, 0, 0, 0, 0, 0, 0, 13734, 0, 13736, 0, 0, 13737, 13738, 13747, 0, 13751, 0, 0, 13752, 0, 0, 0, 13753, 0, 13757, 0, 0, 13762, 13763, 0, 13764, 13765, 0, 13766, 0, 0, 13767, 0, 0, 0, 13768, 0, 0, 0, 0, 0, 0, 0, 13769, 0, 0, 13772, 0, 13775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13776, 13778, 13787, 0, 0, 0, 13797, 0, 13798, 0, 13801, 0, 13804, 13806, 0, 0, 0, 0, 13816, 13817, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13834, 0, 13836, 0, 0, 13838, 0, 0, 13839, 0, 13840, 0, 0, 0, 0, 13842, 0, 0, 0, 0, 0, 0, 13843, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13845, 0, 0, 0, 0, 0, 13858, 0, 0, 13860, 0, 0, 13861, 0, 0, 13862, 13863, 0, 13868, 0, 13869, 13870, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13872, 0, 0, 0, 0, 13873, 13878, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13886, 0, 13888, 13889, 13890, 0, 0, 13891, 13894, 0, 13897, 13899, 13900, 13904, 0, 0, 13906, 0, 0, 0, 13909, 0, 0, 0, 13910, 0, 0, 0, 13911, 0, 0, 0, 0, 0, 13912, 13917, 0, 0, 0, 0, 13918, 0, 13919, 0, 0, 13920, 0, 0, 0, 13921, 0, 0, 13922, 0, 0, 0, 0, 0, 0, 0, 13924, 0, 13927, 0, 0, 0, 0, 0, 13932, 0, 13933, 0, 13934, 0, 0, 13935, 0, 13944, 0, 0, 0, 13954, 0, 0, 13955, 0, 0, 0, 0, 13956, 0, 13957, 0, 13967, 13969, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13970, 13990, 0, 13991, 13994, 0, 13995, 0, 0, 0, 0, 13996, 0, 0, 13999, 0, 0, 0, 14018, 0, 14019, 0, 14021, 0, 0, 0, 0, 0, 0, 14041, 0, 0, 0, 0, 0, 0, 0, 0, 14043, 0, 0, 0, 0, 14046, 0, 0, 0, 14048, 14049, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14051, 0, 0, 14052, 14056, 0, 14063, 0, 14064, 14066, 0, 0, 14067, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14068, 0, 0, 0, 14072, 0, 14074, 14075, 0, 14076, 14079, 14085, 14086, 14087, 14093, 0, 0, 0, 0, 14095, 0, 0, 0, 0, 0, 0, 14096, 14097, 0, 0, 0, 0, 0, 0, 0, 14098, 0, 14102, 0, 0, 0, 0, 0, 14103, 0, 0, 0, 14104, 0, 0, 14105, 0, 0, 0, 14107, 14108, 0, 0, 14109, 0, 0, 0, 0, 0, 0, 0, 0, 14117, 0, 0, 0, 0, 14118, 0, 0, 0, 0, 14119, 0, 0, 14120, 0, 0, 14121, 0, 14122, 14127, 0, 14128, 14136, 0, 0, 14138, 0, 14140, 0, 0, 0, 14141, 14142, 0, 0, 0, 0, 14146, 0, 0, 14149, 0, 14151, 0, 0, 0, 14152, 0, 0, 14153, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14154, 0, 14156, 14157, 0, 0, 14159, 0, 14161, 0, 0, 0, 0, 14162, 0, 0, 0, 0, 0, 0, 14163, 0, 0, 14173, 0, 0, 0, 0, 0, 0, 14174, 0, 0, 14176, 0, 0, 14178, 0, 0, 14179, 14181, 0, 0, 14182, 14185, 14187, 0, 14190, 0, 0, 14197, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14198, 0, 0, 0, 0, 0, 0, 14199, 14200, 0, 0, 0, 14204, 0, 0, 14208, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14234, 0, 0, 14235, 0, 0, 0, 14240, 14241, 0, 0, 0, 14246, 0, 0, 0, 14247, 0, 14250, 0, 0, 14251, 0, 0, 14254, 0, 0, 14256, 0, 0, 0, 14260, 0, 14261, 0, 0, 0, 0, 14262, 14267, 14269, 0, 0, 14277, 0, 0, 14278, 0, 14279, 14282, 0, 0, 0, 14283, 0, 0, 0, 14284, 14285, 0, 0, 0, 0, 14286, 0, 0, 0, 14288, 0, 0, 0, 14289, 0, 14290, 0, 14293, 14301, 14302, 14304, 14305, 0, 14307, 0, 14308, 14309, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14311, 14312, 0, 0, 14317, 0, 0, 0, 0, 0, 0, 0, 14318, 0, 0, 0, 0, 14320, 0, 0, 0, 0, 14321, 14322, 0, 0, 0, 0, 0, 14326, 14329, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14330, 14331, 0, 0, 0, 0, 14332, 0, 0, 0, 14333, 0, 0, 14337, 14340, 0, 14341, 0, 0, 14342, 0, 14345, 14346, 0, 0, 14347, 0, 14362, 0, 0, 0, 0, 0, 14364, 14365, 14371, 0, 14373, 0, 0, 14374, 0, 14379, 0, 14400, 0, 0, 0, 0, 0, 14401, 0, 0, 14405, 0, 14406, 0, 14408, 14409, 0, 0, 0, 14417, 0, 0, 14424, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14430, 0, 0, 0, 14431, 0, 0, 14435, 0, 14440, 0, 0, 0, 0, 0, 0, 14442, 0, 0, 14443, 0, 0, 0, 0, 0, 14446, 0, 0, 0, 0, 0, 0, 0, 14454, 0, 14457, 0, 14460, 0, 0, 14466, 0, 0, 0, 0, 0, 14467, 0, 0, 0, 0, 0, 0, 14469, 0, 14477, 0, 0, 0, 0, 0, 0, 14478, 14482, 0, 0, 0, 14483, 0, 0, 0, 14485, 14486, 0, 0, 0, 14487, 14488, 14489, 14492, 14493, 14494, 14495, 14496, 14497, 0, 14499, 0, 14501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14502, 0, 14507, 14512, 14513, 14514, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14515, 14526, 14530, 0, 14537, 0, 14544, 0, 14547, 0, 0, 14548, 14550, 14551, 0, 0, 14552, 0, 0, 0, 14553, 0, 14554, 0, 0, 0, 0, 14556, 14564, 0, 0, 14565, 14566, 0, 0, 0, 0, 0, 0, 14568, 0, 0, 14569, 0, 0, 0, 14571, 14576, 0, 0, 14577, 14578, 14579, 0, 0, 14580, 0, 0, 0, 0, 14582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14583, 0, 0, 0, 0, 0, 14587, 0, 14588, 0, 0, 14600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14601, 0, 0, 14604, 14605, 14611, 0, 14613, 0, 0, 0, 0, 14615, 0, 0, 0, 0, 0, 0, 14627, 0, 14628, 0, 0, 0, 0, 14631, 0, 14633, 14634, 0, 0, 0, 0, 14635, 0, 0, 0, 0, 0, 0, 0, 0, 14636, 0, 0, 14639, 14642, 0, 0, 0, 0, 14644, 0, 0, 0, 0, 14645, 14646, 0, 14653, 0, 0, 14654, 0, 14658, 0, 14661, 0, 0, 0, 14665, 0, 0, 0, 14668, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14669, 0, 0, 14670, 0, 0, 0, 14680, 0, 0, 14681, 0, 0, 0, 0, 0, 14682, 14683, 0, 0, 0, 0, 14686, 0, 0, 0, 0, 14687, 14697, 0, 0, 0, 0, 14699, 14705, 14711, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14712, 0, 0, 0, 14713, 0, 0, 0, 0, 14719, 0, 14720, 14721, 14726, 0, 0, 0, 14728, 14729, 0, 0, 0, 0, 14731, 0, 0, 0, 0, 0, 0, 0, 14733, 14736, 14737, 0, 0, 14740, 14742, 0, 0, 0, 14744, 14753, 0, 0, 0, 0, 14755, 14758, 14760, 0, 0, 0, 0, 0, 14761, 14762, 14765, 14771, 0, 14772, 0, 14773, 14774, 0, 0, 14775, 0, 0, 14776, 0, 0, 0, 0, 14777, 0, 14779, 0, 0, 14782, 0, 0, 14785, 14786, 14788, 0, 0, 0, 0, 0, 14795, 0, 0, 0, 0, 0, 0, 14798, 0, 14803, 14804, 14806, 0, 0, 0, 14809, 0, 0, 0, 0, 0, 0, 14810, 0, 0, 0, 0, 14811, 0, 14812, 0, 0, 0, 0, 0, 14815, 0, 0, 0, 0, 0, 0, 0, 0, 14816, 0, 14818, 0, 0, 0, 0, 0, 0, 14819, 0, 14820, 0, 14823, 0, 0, 0, 14824, 0, 0, 14826, 14827, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14830, 0, 0, 0, 0, 0, 14833, 0, 14845, 0, 0, 0, 0, 0, 14846, 0, 0, 14847, 14871, 0, 14873, 0, 14876, 0, 14877, 14878, 14880, 0, 0, 0, 0, 0, 14881, 0, 14882, 14894, 0, 0, 0, 0, 14895, 0, 14907, 0, 14908, 0, 0, 0, 0, 0, 0, 0, 14911, 0, 0, 0, 0, 14920, 0, 0, 14931, 0, 14932, 14934, 14935, 0, 0, 14936, 0, 14945, 0, 0, 0, 0, 0, 0, 0, 14947, 0, 0, 14948, 14949, 14951, 0, 0, 14952, 0, 0, 0, 14964, 14973, 0, 0, 14990, 0, 0, 0, 0, 14995, 0, 0, 14998, 15001, 0, 0, 15002, 15020, 0, 0, 0, 0, 0, 0, 15021, 0, 15022, 0, 0, 0, 0, 15023, 0, 0, 15025, 15029, 15033, 0, 0, 0, 15034, 0, 0, 0, 15035, 0, 0, 0, 0, 0, 15043, 15044, 0, 0, 0, 15045, 15046, 15048, 15050, 0, 15065, 0, 0, 0, 0, 15066, 0, 0, 15075, 15082, 15084, 0, 0, 15085, 15086, 0, 0, 0, 0, 0, 0, 0, 0, 15088, 0, 0, 0, 15089, 0, 0, 0, 0, 15094, 0, 15096, 0, 15097, 0, 15100, 0, 0, 15102, 0, 0, 0, 0, 0, 0, 0, 0, 15105, 0, 0, 15106, 0, 15109, 15113, 0, 0, 0, 15115, 0, 15118, 0, 0, 0, 0, 0, 0, 15119, 0, 0, 15120, 0, 0, 0, 0, 0, 15123, 15129, 0, 0, 0, 15130, 0, 15131, 0, 0, 15134, 0, 15135, 0, 0, 0, 15137, 15138, 0, 0, 0, 0, 0, 0, 15139, 0, 0, 0, 0, 0, 15140, 0, 0, 15154, 15162, 0, 15169, 15170, 0, 15175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15177, 0, 15178, 15179, 0, 0, 0, 0, 0, 15183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15185, 15187, 0, 15194, 15195, 15196, 0, 0, 0, 0, 0, 0, 0, 15204, 0, 0, 0, 0, 15206, 0, 0, 0, 0, 0, 15207, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15213, 0, 15214, 0, 0, 0, 0, 0, 0, 0, 15232, 0, 0, 0, 0, 15234, 0, 15238, 15240, 0, 15248, 0, 0, 0, 0, 15250, 15251, 0, 0, 0, 0, 0, 0, 0, 15252, 0, 0, 0, 15255, 15262, 15266, 0, 0, 0, 15267, 0, 0, 0, 15277, 15279, 0, 0, 0, 15280, 15281, 15282, 0, 0, 0, 0, 0, 15285, 0, 0, 0, 0, 15289, 0, 0, 15291, 0, 0, 0, 0, 0, 0, 0, 15296, 15297, 0, 0, 15304, 0, 0, 0, 0, 15306, 0, 0, 0, 0, 0, 0, 15307, 15308, 0, 15309, 0, 0, 15311, 0, 0, 15312, 15313, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15314, 15317, 0, 0, 0, 15318, 15319, 0, 0, 0, 0, 15320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15321, 0, 0, 0, 0, 0, 15324, 0, 15325, 15326, 0, 15330, 0, 0, 0, 0, 15334, 0, 15335, 0, 15341, 0, 0, 15342, 0, 0, 15343, 15344, 0, 0, 0, 0, 15345, 0, 0, 0, 0, 15347, 0, 0, 15348, 15349, 15350, 0, 15356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15357, 0, 15358, 0, 0, 0, 0, 0, 0, 0, 15359, 15360, 15364, 0, 15380, 0, 0, 0, 0, 0, 15392, 0, 0, 15393, 0, 15395, 0, 0, 0, 0, 0, 0, 0, 0, 15396, 0, 0, 15397, 15398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15399, 0, 15400, 0, 0, 0, 15402, 0, 15405, 15410, 0, 0, 0, 0, 15411, 0, 0, 0, 15412, 0, 15416, 0, 0, 0, 0, 0, 0, 0, 15428, 0, 15435, 0, 0, 15438, 0, 0, 0, 0, 15439, 0, 0, 0, 15440, 0, 0, 0, 15441, 15449, 15451, 0, 0, 0, 0, 0, 0, 0, 15452, 0, 0, 15455, 0, 0, 0, 15456, 0, 0, 15458, 0, 15460, 15461, 0, 0, 0, 0, 0, 15462, 15464, 0, 15465, 0, 0, 15466, 0, 0, 15467, 0, 0, 0, 0, 0, 15468, 0, 0, 0, 0, 15481, 0, 0, 15484, 0, 15485, 15486, 0, 0, 0, 15487, 0, 0, 0, 0, 0, 15488, 0, 15492, 15498, 0, 0, 0, 15499, 0, 0, 0, 15500, 0, 15501, 0, 0, 15512, 0, 15522, 0, 0, 0, 15524, 0, 15525, 15526, 0, 0, 15527, 0, 0, 15545, 15546, 0, 15548, 15552, 0, 15553, 0, 0, 0, 15554, 0, 15555, 0, 15557, 15565, 15573, 15577, 15578, 0, 15582, 0, 15583, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15588, 0, 0, 0, 0, 0, 15589, 0, 0, 0, 0, 0, 0, 0, 15593, 15594, 0, 0, 0, 0, 15595, 0, 0, 0, 0, 0, 0, 15596, 0, 0, 0, 15597, 0, 0, 0, 0, 15600, 0, 0, 15601, 0, 0, 0, 0, 15602, 15603, 0, 0, 0, 0, 0, 0, 15604, 0, 15609, 0, 0, 15612, 0, 0, 15613, 0, 0, 15615, 15617, 15618, 0, 0, 15620, 0, 15636, 15637, 0, 0, 15649, 0, 0, 0, 0, 0, 0, 0, 15650, 0, 0, 15651, 0, 0, 0, 15656, 0, 15658, 0, 0, 0, 15664, 0, 0, 15665, 0, 0, 15668, 0, 0, 0, 0, 0, 15669, 0, 0, 15674, 0, 0, 15675, 0, 0, 0, 0, 15676, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15677, 0, 0, 0, 0, 15678, 0, 0, 0, 0, 0, 15679, 0, 0, 15681, 0, 15686, 0, 0, 0, 0, 15687, 0, 15688, 0, 0, 15690, 0, 0, 0, 15697, 0, 15699, 15700, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15701, 0, 15702, 15703, 0, 15704, 0, 15705, 0, 15707, 0, 15709, 0, 15712, 15716, 0, 15717, 0, 15718, 15720, 0, 0, 0, 0, 0, 15724, 0, 0, 0, 15725, 0, 15726, 0, 0, 0, 15740, 0, 15745, 15746, 0, 0, 15747, 0, 15748, 0, 0, 0, 0, 0, 15749, 0, 0, 0, 15752, 0, 15753, 0, 0, 0, 0, 0, 0, 15759, 0, 0, 0, 15765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15767, 0, 0, 0, 15771, 0, 0, 15784, 0, 0, 0, 0, 15785, 15790, 15791, 0, 0, 15792, 0, 0, 0, 15807, 0, 15811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15818, 0, 0, 0, 15819, 0, 0, 0, 0, 15821, 0, 0, 0, 0, 0, 15822, 15824, 0, 0, 15827, 0, 0, 15829, 15831, 0, 15832, 0, 0, 15833, 0, 15835, 15838, 15839, 15843, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15844, 0, 0, 0, 0, 15845, 15851, 15856, 0, 0, 0, 0, 0, 0, 0, 15858, 15860, 0, 15861, 0, 0, 0, 15864, 0, 0, 0, 0, 15865, 0, 0, 0, 0, 0, 0, 15866, 0, 15872, 0, 0, 15876, 0, 0, 0, 0, 15877, 15878, 15883, 15885, 0, 0, 15888, 0, 0, 0, 0, 0, 15889, 15890, 0, 0, 0, 0, 0, 0, 0, 0, 15892, 0, 0, 0, 0, 0, 0, 0, 15893, 0, 0, 15894, 0, 0, 0, 15895, 0, 15896, 15897, 0, 15898, 15901, 15902, 0, 15911, 15915, 0, 15916, 0, 15924, 15935, 0, 15937, 0, 0, 0, 0, 0, 15950, 0, 0, 0, 0, 0, 0, 0, 15958, 0, 0, 0, 15961, 0, 0, 15966, 0, 15967, 0, 0, 15977, 0, 0, 15978, 0, 0, 15981, 15982, 15983, 0, 0, 0, 0, 0, 0, 0, 15986, 0, 0, 0, 15990, 0, 15991, 15995, 15998, 0, 15999, 0, 16000, 0, 0, 0, 0, 16008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16009, 16011, 0, 16013, 0, 0, 0, 0, 0, 0, 0, 0, 16014, 0, 0, 16015, 16023, 16024, 16025, 0, 0, 16026, 0, 16030, 0, 16032, 0, 16033, 0, 0, 0, 0, 0, 0, 16035, 16036, 16037, 0, 0, 0, 0, 0, 16039, 0, 0, 0, 0, 16041, 0, 0, 0, 0, 0, 16043, 16044, 0, 0, 16047, 0, 0, 0, 16048, 0, 0, 16049, 16050, 16052, 0, 0, 0, 0, 0, 16055, 0, 0, 0, 0, 0, 0, 0, 0, 16056, 0, 0, 0, 0, 0, 0, 0, 16058, 16060, 16061, 0, 0, 16063, 0, 0, 16064, 0, 0, 0, 16067, 16068, 0, 0, 16069, 16078, 0, 0, 0, 16079, 0, 0, 0, 16080, 0, 16081, 0, 0, 0, 16088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16089, 16093, 0, 16097, 0, 16103, 0, 16104, 16105, 0, 0, 16256, 0, 0, 16259, 0, 0, 0, 0, 0, 0, 0, 16260, 16261, 0, 0, 16262, 0, 0, 16263, 0, 16268, 0, 0, 0, 0, 0, 0, 0, 16269, 0, 0, 16270, 16273, 0, 16274, 0, 0, 0, 0, 16275, 16276, 16277, 16280, 0, 0, 0, 16281, 16284, 0, 0, 0, 16286, 0, 16289, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16290, 0, 0, 0, 0, 16291, 0, 0, 0, 0, 0, 0, 0, 16292, 0, 0, 0, 0, 0, 0, 0, 0, 16293, 16295, 16297, 0, 16302, 0, 16304, 0, 16305, 0, 16306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16307, 16308, 16312, 0, 0, 0, 0, 0, 0, 16313, 16315, 0, 16318, 0, 0, 0, 16321, 0, 0, 0, 0, 0, 0, 0, 16326, 16333, 16336, 0, 0, 0, 0, 16337, 16340, 0, 0, 0, 0, 0, 16345, 0, 0, 16346, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16347, 0, 0, 16348, 0, 0, 0, 0, 16349, 0, 0, 0, 16350, 0, 16357, 0, 0, 0, 0, 16359, 16360, 0, 0, 0, 0, 16362, 16363, 16364, 16365, 0, 0, 16366, 0, 0, 0, 0, 16367, 16368, 0, 16369, 16374, 0, 0, 0, 0, 0, 0, 0, 16376, 0, 0, 0, 0, 16378, 16379, 0, 16380, 0, 0, 0, 16381, 16383, 0, 0, 0, 0, 0, 16390, 0, 0, 0, 16399, 0, 16402, 16404, 16406, 16407, 0, 0, 0, 16409, 16411, 0, 0, 0, 0, 16412, 0, 16413, 16415, 16423, 0, 0, 0, 0, 0, 16424, 0, 0, 0, 16428, 16434, 16435, 16449, 0, 16450, 16451, 0, 0, 0, 16453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16454, 0, 0, 16456, 16458, 0, 0, 16459, 0, 0, 16460, 0, 0, 0, 0, 16462, 0, 16463, 0, 0, 16466, 0, 0, 0, 0, 0, 16479, 0, 0, 16480, 0, 16481, 16484, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16485, 0, 0, 0, 0, 0, 0, 16489, 0, 0, 0, 0, 0, 16491, 0, 0, 16498, 0, 0, 16503, 0, 16505, 0, 0, 0, 0, 0, 0, 0, 0, 16506, 0, 0, 0, 16508, 16509, 0, 0, 0, 0, 0, 0, 0, 0, 16511, 16513, 0, 0, 0, 16516, 0, 16517, 0, 16519, 0, 16529, 0, 0, 16531, 0, 0, 0, 0, 0, 0, 16534, 0, 0, 16541, 16542, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16543, 16547, 16548, 0, 0, 0, 16551, 0, 16552, 0, 0, 0, 16553, 0, 0, 16558, 0, 0, 16562, 16565, 0, 0, 0, 16570, 0, 0, 0, 16573, 16585, 0, 0, 0, 16586, 16587, 16595, 0, 16596, 0, 16598, 0, 0, 0, 16600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16601, 0, 0, 0, 0, 16603, 0, 0, 0, 0, 0, 0, 0, 16604, 16612, 0, 0, 0, 0, 16613, 0, 16618, 0, 0, 0, 16640, 0, 0, 16641, 0, 0, 0, 0, 0, 0, 16645, 0, 0, 0, 0, 16646, 0, 0, 0, 0, 0, 0, 16651, 0, 0, 0, 0, 16653, 16654, 0, 0, 0, 16655, 0, 0, 16656, 16667, 0, 0, 0, 0, 16671, 0, 16672, 0, 0, 0, 16673, 0, 0, 0, 0, 0, 16676, 0, 16686, 0, 0, 0, 0, 16689, 0, 16690, 0, 16692, 0, 16693, 0, 16694, 0, 16696, 0, 0, 0, 16705, 0, 0, 0, 0, 0, 0, 16707, 0, 0, 0, 16709, 0, 0, 0, 0, 16711, 0, 16712, 16713, 0, 0, 0, 16715, 0, 0, 0, 0, 16716, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16718, 16724, 0, 0, 16726, 16727, 0, 0, 0, 0, 0, 0, 0, 16728, 0, 16729, 0, 0, 16730, 0, 0, 0, 0, 0, 16731, 0, 0, 0, 16732, 0, 0, 0, 0, 16734, 16738, 0, 0, 0, 0, 0, 0, 0, 0, 16743, 0, 0, 16745, 0, 0, 0, 0, 0, 16749, 0, 16752, 0, 0, 0, 0, 16756, 0, 0, 16758, 0, 16759, 0, 0, 0, 0, 0, 16760, 0, 0, 0, 0, 0, 0, 0, 16762, 0, 16769, 0, 16770, 0, 16772, 0, 0, 0, 16777, 16780, 0, 0, 0, 0, 0, 0, 16781, 0, 0, 16782, 0, 16784, 0, 0, 16785, 16787, 16792, 0, 0, 16794, 0, 0, 0, 16798, 0, 0, 16809, 0, 0, 16814, 16816, 16817, 0, 16819, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16820, 0, 0, 16836, 16839, 0, 0, 16841, 16851, 16857, 0, 0, 16858, 16859, 0, 0, 16860, 0, 0, 0, 0, 0, 0, 0, 0, 16862, 0, 16863, 0, 0, 0, 0, 0, 0, 0, 16864, 0, 0, 0, 0, 0, 0, 0, 16876, 0, 16881, 16882, 0, 16885, 16886, 0, 16887, 0, 0, 0, 16889, 16891, 0, 0, 0, 0, 0, 16894, 16895, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16897, 0, 16898, 0, 0, 0, 0, 0, 16913, 0, 0, 16924, 16925, 16926, 0, 0, 16927, 0, 0, 0, 16937, 16938, 0, 0, 0, 16940, 16941, 0, 0, 0, 16942, 16945, 0, 16946, 16949, 16950, 0, 0, 0, 16952, 16955, 0, 0, 0, 16965, 0, 16969, 0, 0, 16975, 0, 0, 16976, 0, 0, 0, 0, 16978, 0, 0, 16981, 0, 16983, 16989, 0, 0, 0, 0, 16990, 0, 0, 16991, 0, 0, 0, 16993, 0, 16994, 16996, 17000, 0, 0, 0, 0, 0, 17002, 17004, 0, 17006, 0, 0, 17007, 0, 0, 0, 0, 17008, 17013, 17014, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17021, 0, 17031, 0, 0, 0, 0, 0, 17033, 17036, 0, 17038, 0, 0, 17039, 0, 17045, 0, 0, 17046, 17047, 0, 0, 0, 0, 17048, 0, 17049, 17050, 0, 17051, 17053, 0, 17054, 0, 17055, 0, 0, 0, 0, 0, 17063, 0, 0, 17064, 0, 0, 0, 0, 0, 0, 0, 17065, 0, 0, 17068, 0, 0, 0, 0, 0, 17072, 0, 0, 0, 0, 0, 0, 17073, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17074, 0, 17080, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17081, 17083, 17084, 0, 0, 0, 17085, 0, 0, 0, 0, 17092, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17093, 0, 17095, 17102, 0, 0, 0, 0, 0, 0, 17103, 0, 0, 17105, 0, 17107, 0, 0, 0, 0, 17114, 0, 0, 0, 0, 0, 17115, 17125, 17127, 0, 0, 17128, 0, 0, 0, 17129, 17130, 0, 17131, 0, 0, 0, 0, 0, 17132, 17135, 17145, 0, 0, 0, 0, 0, 0, 0, 0, 17146, 0, 17147, 0, 17148, 0, 0, 0, 0, 0, 0, 17149, 17150, 0, 17151, 17153, 0, 17155, 0, 0, 0, 0, 17163, 17171, 0, 17174, 0, 0, 0, 0, 17179, 0, 0, 17182, 17185, 0, 0, 0, 0, 0, 17186, 0, 0, 17188, 0, 0, 0, 0, 0, 0, 0, 17189, 17191, 0, 17194, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17195, 17196, 17203, 17204, 0, 0, 17205, 17217, 0, 0, 0, 0, 0, 17218, 0, 0, 0, 0, 17219, 0, 17220, 0, 17221, 0, 0, 17230, 0, 0, 0, 0, 0, 17236, 0, 17238, 17239, 0, 0, 0, 17241, 17244, 0, 0, 17245, 0, 17248, 0, 0, 17251, 0, 17252, 0, 0, 17264, 0, 17266, 0, 0, 0, 17268, 0, 0, 0, 0, 17271, 17272, 0, 17273, 0, 17295, 0, 17302, 0, 17305, 0, 0, 0, 17306, 0, 0, 0, 0, 0, 0, 0, 17308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17309, 0, 17310, 17313, 0, 0, 0, 0, 17314, 17315, 0, 17317, 0, 0, 0, 0, 17318, 0, 0, 0, 0, 0, 0, 0, 17320, 0, 0, 0, 0, 0, 0, 17334, 0, 17344, 17348, 0, 0, 0, 17350, 17351, 0, 0, 17353, 0, 0, 17354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17355, 0, 0, 0, 0, 0, 0, 17356, 17357, 0, 0, 17359, 0, 0, 0, 17371, 0, 17372, 0, 0, 0, 17393, 0, 0, 0, 0, 17394, 0, 0, 0, 0, 0, 17395, 0, 0, 17399, 0, 0, 0, 17401, 17417, 0, 17418, 0, 17419, 0, 0, 0, 0, 0, 17422, 17423, 0, 0, 0, 0, 0, 17424, 0, 0, 0, 0, 0, 17428, 17429, 17433, 0, 0, 0, 17437, 0, 0, 17441, 0, 0, 17442, 0, 0, 17453, 0, 0, 0, 0, 0, 0, 0, 0, 17454, 17456, 17462, 0, 0, 17466, 0, 0, 17468, 0, 0, 17469, 0, 0, 0, 0, 17470, 0, 17475, 0, 0, 0, 0, 0, 17479, 0, 0, 0, 17483, 17484, 0, 17485, 0, 17486, 0, 17491, 17492, 0, 0, 17493, 0, 17494, 17495, 0, 0, 0, 17496, 0, 0, 0, 17497, 0, 0, 0, 17502, 0, 0, 0, 0, 0, 17503, 0, 17505, 0, 17507, 0, 0, 0, 17512, 17513, 17514, 0, 0, 17515, 0, 0, 0, 17519, 0, 0, 0, 17522, 0, 0, 17523, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17527, 0, 0, 0, 17528, 0, 0, 0, 17534, 0, 0, 0, 0, 17536, 0, 0, 0, 17539, 0, 17540, 17543, 17549, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17556, 0, 0, 17558, 0, 17559, 0, 0, 17560, 0, 0, 0, 17563, 0, 0, 0, 0, 0, 0, 17564, 0, 0, 17565, 17566, 0, 17567, 0, 0, 0, 0, 0, 0, 17569, 17570, 0, 17575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17581, 0, 0, 0, 17582, 17583, 0, 17586, 0, 0, 17587, 0, 0, 0, 0, 0, 0, 0, 17588, 0, 0, 0, 0, 17596, 17597, 0, 0, 17598, 17600, 0, 0, 0, 0, 0, 0, 17601, 0, 0, 0, 17604, 0, 0, 17605, 0, 0, 17607, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17612, 0, 0, 17618, 0, 17621, 17622, 0, 0, 0, 0, 17623, 0, 0, 17624, 0, 0, 17630, 0, 0, 17631, 17633, 17634, 0, 0, 0, 0, 0, 0, 0, 17635, 0, 0, 17636, 0, 0, 17637, 0, 17638, 0, 17640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17641, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17643, 0, 0, 0, 0, 17645, 0, 0, 0, 0, 0, 0, 0, 0, 17646, 17662, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17663, 17664, 0, 17665, 17666, 0, 0, 0, 17669, 17671, 17673, 0, 17679, 0, 0, 0, 0, 0, 0, 0, 17684, 0, 0, 0, 17686, 0, 17714, 0, 0, 17720, 17722, 17726, 0, 0, 17728, 0, 0, 17729, 0, 0, 0, 17732, 0, 17733, 0, 17734, 0, 0, 0, 17735, 0, 0, 0, 0, 17737, 0, 0, 0, 0, 17739, 0, 0, 0, 17741, 17742, 0, 0, 0, 0, 17743, 17744, 17745, 0, 0, 0, 17749, 0, 17750, 17751, 17752, 17754, 17761, 17762, 0, 17763, 0, 17766, 0, 17772, 0, 0, 0, 0, 0, 17775, 0, 0, 0, 0, 0, 0, 0, 17776, 0, 0, 17777, 0, 0, 17778, 17779, 0, 17782, 17783, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17784, 0, 0, 0, 0, 0, 0, 0, 17821, 0, 0, 0, 17822, 0, 0, 0, 17823, 17825, 0, 0, 0, 0, 0, 17826, 17831, 17832, 17833, 0, 0, 17845, 0, 0, 0, 17846, 0, 0, 0, 17848, 17850, 17854, 0, 17855, 0, 0, 17859, 0, 0, 0, 0, 0, 0, 17860, 17861, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17870, 17871, 0, 0, 0, 0, 0, 0, 17872, 0, 0, 0, 17879, 0, 0, 0, 17881, 17883, 0, 17884, 0, 17885, 0, 0, 17886, 0, 0, 17887, 17891, 17953, 0, 0, 0, 0, 17954, 0, 0, 17955, 0, 17968, 0, 0, 17972, 0, 0, 0, 0, 0, 17974, 0, 0, 0, 0, 17976, 17978, 0, 0, 17983, 0, 0, 0, 0, 18003, 0, 0, 0, 0, 0, 18007, 0, 0, 0, 0, 0, 18009, 0, 0, 0, 0, 0, 0, 0, 18010, 0, 0, 0, 0, 0, 0, 18012, 0, 0, 18014, 0, 0, 0, 18015, 0, 0, 0, 18016, 0, 18017, 0, 0, 0, 18030, 0, 0, 0, 0, 0, 0, 0, 18031, 0, 0, 18036, 18037, 18038, 0, 0, 18049, 18056, 0, 18057, 18058, 0, 18059, 0, 0, 0, 0, 0, 0, 0, 0, 18062, 0, 0, 0, 0, 18064, 0, 0, 0, 0, 0, 0, 0, 0, 18067, 0, 0, 0, 18068, 0, 0, 18075, 0, 0, 18078, 18093, 18094, 0, 0, 0, 0, 0, 0, 0, 0, 18097, 0, 0, 0, 0, 0, 18098, 18100, 0, 0, 0, 18108, 0, 18111, 0, 0, 18112, 0, 18113, 0, 0, 18115, 18116, 0, 18118, 0, 0, 0, 0, 18121, 0, 0, 0, 0, 18123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18124, 0, 0, 0, 0, 18125, 18126, 0, 18127, 0, 0, 18128, 18135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18150, 0, 0, 0, 0, 0, 18151, 18152, 0, 0, 18156, 18164, 0, 18166, 18171, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18172, 18183, 0, 18184, 0, 0, 0, 0, 18185, 0, 18187, 0, 0, 0, 0, 0, 18188, 0, 0, 0, 0, 0, 0, 0, 0, 18189, 0, 0, 18190, 0, 0, 18191, 18192, 0, 0, 18194, 18195, 18196, 0, 0, 0, 18197, 0, 18203, 0, 18204, 0, 0, 0, 0, 18205, 0, 0, 0, 18207, 18208, 0, 0, 18214, 0, 0, 0, 18215, 18216, 0, 0, 0, 18220, 0, 0, 18222, 0, 0, 0, 0, 0, 18223, 0, 18225, 18231, 0, 18234, 0, 18235, 0, 0, 0, 0, 18240, 0, 0, 18241, 18242, 0, 0, 0, 0, 0, 18243, 18251, 0, 18253, 0, 18254, 0, 0, 0, 18266, 0, 0, 0, 0, 0, 0, 18269, 18270, 18271, 18273, 18281, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18282, 0, 18283, 0, 18284, 0, 0, 0, 0, 0, 0, 18285, 0, 18287, 18289, 0, 0, 18290, 0, 0, 0, 0, 18308, 0, 0, 0, 18310, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18311, 0, 18312, 18313, 0, 18315, 0, 0, 18316, 18320, 0, 18331, 0, 18332, 0, 18336, 0, 0, 0, 0, 18337, 0, 18340, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18341, 0, 18344, 18345, 0, 18346, 0, 0, 0, 0, 0, 18348, 0, 18351, 0, 0, 18356, 0, 0, 0, 0, 0, 0, 18357, 0, 0, 0, 0, 0, 18367, 0, 0, 0, 18368, 0, 18369, 0, 18370, 18371, 0, 0, 0, 18437, 18444, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18445, 18450, 0, 0, 0, 0, 18451, 0, 18452, 0, 0, 0, 18453, 0, 0, 0, 0, 0, 18455, 0, 0, 0, 18456, 0, 18457, 0, 18460, 0, 0, 18461, 0, 0, 0, 0, 0, 0, 0, 0, 18466, 0, 0, 18467, 0, 0, 0, 0, 18473, 0, 0, 0, 18476, 0, 18477, 0, 0, 0, 18478, 18479, 18480, 0, 0, 0, 18485, 0, 0, 0, 18486, 0, 0, 0, 0, 0, 0, 18488, 18490, 0, 0, 0, 0, 0, 0, 18491, 0, 0, 0, 0, 0, 18495, 0, 0, 18496, 0, 0, 0, 0, 0, 0, 18505, 0, 18521, 0, 18522, 18523, 0, 0, 0, 18525, 18526, 0, 0, 0, 0, 0, 18527, 0, 0, 0, 0, 18532, 18533, 0, 18534, 0, 0, 0, 0, 0, 0, 18535, 18537, 0, 18538, 0, 0, 0, 0, 0, 0, 18540, 18541, 18542, 18543, 0, 18546, 0, 0, 0, 0, 18553, 18556, 0, 0, 18558, 0, 0, 18569, 18571, 0, 0, 0, 18572, 0, 18574, 0, 0, 0, 0, 18586, 0, 0, 0, 0, 0, 18588, 0, 0, 18589, 0, 0, 0, 0, 0, 0, 18590, 0, 18592, 0, 0, 0, 0, 18594, 0, 0, 0, 18596, 0, 0, 18597, 18598, 0, 0, 18601, 0, 0, 0, 0, 18602, 0, 0, 0, 18603, 18604, 0, 18605, 0, 0, 0, 0, 18608, 0, 0, 18611, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18612, 0, 18616, 0, 0, 18617, 18619, 0, 0, 0, 18628, 0, 0, 0, 18629, 0, 0, 18630, 0, 0, 0, 0, 0, 0, 0, 18631, 0, 18632, 0, 0, 18635, 18637, 0, 0, 0, 0, 0, 0, 18641, 18643, 18648, 0, 18652, 0, 0, 18653, 0, 18655, 18656, 0, 0, 0, 18657, 0, 0, 18666, 18674, 0, 0, 0, 0, 18677, 18684, 18685, 0, 0, 18686, 0, 0, 18690, 0, 0, 0, 0, 0, 0, 0, 18695, 18696, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18697, 0, 0, 18700, 0, 0, 0, 0, 0, 0, 18702, 0, 18708, 0, 0, 18709, 0, 18710, 0, 0, 18711, 0, 18714, 0, 0, 18718, 0, 0, 0, 0, 0, 0, 18719, 0, 0, 18722, 0, 18726, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18731, 0, 0, 0, 0, 0, 18739, 18741, 0, 0, 18742, 0, 18743, 18744, 18746, 18748, 0, 18752, 18753, 0, 0, 18754, 18763, 0, 18765, 0, 0, 0, 18766, 0, 0, 0, 18769, 0, 0, 0, 0, 0, 18773, 18778, 18779, 18781, 0, 0, 18784, 18787, 0, 18788, 0, 18793, 0, 0, 0, 0, 0, 0, 18795, 0, 0, 18800, 0, 0, 0, 0, 0, 18801, 18804, 0, 0, 0, 0, 0, 0, 0, 18806, 0, 0, 0, 18811, 18815, 18816, 0, 0, 0, 0, 18825, 0, 0, 18827, 18829, 0, 0, 18830, 0, 0, 0, 0, 18831, 0, 0, 18832, 0, 0, 0, 0, 18833, 0, 18840, 0, 18841, 0, 18842, 0, 0, 0, 0, 18843, 0, 18844, 0, 0, 0, 0, 0, 0, 18845, 18846, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18848, 0, 0, 0, 18853, 18860, 0, 0, 18862, 18866, 0, 0, 18867, 18869, 0, 0, 18874, 18881, 18891, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18892, 0, 0, 0, 0, 0, 0, 0, 0, 18895, 0, 18896, 0, 0, 0, 18900, 0, 0, 0, 18901, 0, 18902, 18915, 18916, 0, 0, 0, 0, 0, 0, 0, 0, 18919, 0, 0, 0, 0, 0, 18920, 0, 0, 0, 18921, 18929, 0, 0, 0, 0, 18930, 0, 0, 0, 0, 0, 0, 18932, 0, 0, 0, 0, 18934, 18942, 0, 0, 0, 18951, 18957, 0, 0, 0, 0, 18958, 0, 0, 0, 0, 18959, 18960, 0, 0, 18961, 0, 0, 18962, 0, 0, 0, 0, 18963, 18964, 0, 0, 0, 18965, 0, 18967, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18968, 0, 18969, 0, 18970, 18973, 18976, 0, 0, 0, 0, 0, 0, 18977, 0, 0, 0, 18981, 0, 0, 0, 18990, 0, 18998, 0, 0, 0, 0, 0, 18999, 19003, 0, 0, 19005, 0, 0, 0, 19006, 0, 0, 0, 0, 0, 0, 19008, 19011, 0, 0, 19018, 0, 0, 19019, 0, 19024, 0, 19031, 19032, 0, 19039, 0, 19041, 19050, 0, 0, 0, 19051, 19055, 19056, 0, 19059, 19063, 19064, 0, 0, 19088, 0, 0, 0, 19093, 19094, 0, 0, 0, 0, 19095, 0, 19096, 0, 0, 0, 19097, 0, 0, 19098, 0, 19099, 19100, 0, 0, 19103, 0, 0, 0, 0, 0, 0, 0, 19111, 0, 0, 0, 0, 0, 0, 19112, 0, 0, 0, 19116, 19117, 0, 19121, 19122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19123, 19124, 0, 0, 0, 0, 0, 0, 0, 19125, 19126, 0, 19128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19129, 19130, 19131, 19132, 0, 0, 19146, 0, 0, 19147, 19156, 19158, 0, 0, 0, 0, 0, 0, 0, 0, 19182, 19185, 0, 0, 19187, 0, 0, 0, 19193, 0, 0, 0, 0, 0, 19194, 0, 19197, 0, 0, 0, 0, 19198, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19203, 0, 19205, 19210, 0, 0, 0, 19213, 0, 19218, 0, 0, 0, 19223, 19229, 0, 0, 19230, 0, 0, 19231, 19232, 19233, 19239, 0, 0, 0, 0, 0, 19240, 0, 19248, 19249, 0, 0, 0, 0, 19254, 0, 19256, 19258, 19259, 0, 0, 19261, 0, 19266, 0, 0, 0, 19272, 0, 19278, 19281, 19282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19283, 0, 0, 19284, 0, 0, 19285, 19287, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19288, 19291, 0, 19292, 0, 0, 0, 0, 19297, 0, 19298, 0, 0, 0, 0, 19302, 19303, 0, 0, 0, 0, 19304, 19305, 0, 0, 0, 0, 19314, 0, 0, 19315, 0, 0, 19321, 0, 0, 0, 0, 0, 0, 0, 19322, 0, 19333, 0, 19334, 19335, 0, 19336, 19337, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19346, 0, 0, 19353, 0, 19354, 19362, 0, 19366, 19367, 0, 0, 19369, 0, 19375, 0, 19377, 19380, 19388, 0, 0, 0, 0, 0, 19389, 19390, 0, 0, 0, 0, 19392, 0, 0, 0, 0, 0, 19402, 0, 0, 0, 0, 0, 0, 0, 0, 19412, 0, 0, 19413, 19422, 0, 19424, 0, 0, 0, 19425, 0, 0, 0, 19428, 0, 0, 0, 0, 19431, 0, 0, 0, 0, 0, 19432, 0, 0, 0, 0, 0, 19448, 19459, 0, 0, 19461, 0, 19462, 19463, 0, 19467, 19474, 19482, 0, 0, 0, 0, 19494, 0, 0, 0, 0, 19501, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19502, 19504, 0, 0, 0, 0, 0, 0, 0, 19505, 0, 0, 0, 0, 19506, 19507, 0, 0, 0, 19508, 0, 0, 19511, 0, 0, 19514, 0, 19515, 0, 19516, 0, 19518, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19530, 0, 19537, 19538, 0, 19543, 19546, 0, 19547, 19551, 0, 0, 0, 0, 0, 0, 19552, 19553, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19555, 0, 0, 19556, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19560, 19561, 0, 0, 19562, 0, 0, 0, 0, 0, 0, 19565, 19567, 0, 19568, 0, 0, 0, 19569, 19570, 0, 19578, 0, 0, 0, 0, 19580, 0, 0, 0, 0, 19581, 19584, 0, 0, 0, 0, 0, 0, 0, 19585, 19586, 0, 0, 0, 19587, 19588, 0, 19589, 0, 0, 0, 0, 0, 0, 19592, 19593, 19599, 0, 19600, 0, 0, 19604, 0, 0, 19605, 0, 19606, 19608, 19610, 0, 19613, 19614, 0, 0, 0, 0, 0, 0, 19616, 19617, 0, 0, 19618, 0, 0, 19619, 0, 0, 0, 19620, 19621, 19631, 0, 0, 19632, 19634, 19636, 0, 19643, 0, 0, 19644, 19658, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19675, 19677, 0, 0, 0, 0, 19679, 0, 19683, 0, 19684, 0, 0, 0, 0, 0, 0, 19687, 0, 0, 0, 0, 0, 0, 0, 0, 19688, 19689, 19692, 0, 0, 0, 0, 0, 0, 0, 19695, 19697, 0, 0, 0, 0, 0, 19698, 19699, 0, 0, 19700, 0, 19702, 0, 0, 19703, 0, 0, 0, 0, 0, 0, 19704, 19708, 0, 19710, 0, 19713, 0, 0, 0, 19715, 0, 0, 0, 0, 19718, 0, 0, 0, 0, 0, 0, 0, 19720, 0, 19722, 0, 0, 19725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19730, 0, 0, 0, 0, 0, 19731, 0, 19734, 19735, 19739, 0, 0, 19740, 0, 19741, 0, 0, 0, 19746, 0, 0, 19747, 0, 19771, 0, 0, 0, 0, 0, 0, 0, 0, 19772, 19775, 0, 0, 0, 0, 0, 0, 19778, 0, 0, 0, 0, 0, 19779, 0, 0, 19780, 19790, 0, 19791, 0, 0, 19792, 0, 0, 0, 19793, 0, 0, 19796, 19797, 0, 0, 0, 19799, 0, 0, 0, 19801, 0, 0, 0, 0, 19803, 0, 19804, 0, 19805, 0, 0, 19807, 0, 0, 0, 19808, 0, 0, 0, 0, 0, 0, 19809, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19816, 0, 19821, 0, 19822, 19830, 19831, 0, 0, 0, 19833, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19838, 0, 0, 0, 0, 19839, 0, 0, 19843, 0, 0, 0, 0, 19845, 0, 0, 0, 0, 19847, 0, 0, 19848, 0, 19849, 0, 0, 0, 0, 0, 0, 0, 19851, 0, 0, 0, 19854, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19864, 0, 19865, 0, 19866, 0, 0, 0, 0, 0, 0, 0, 19868, 0, 0, 19870, 0, 0, 19871, 0, 0, 19872, 19873, 19875, 0, 19880, 19882, 19884, 0, 0, 19885, 19886, 19888, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19890, 19892, 19893, 0, 0, 19894, 0, 0, 0, 19895, 0, 19896, 19902, 0, 0, 19903, 0, 0, 19905, 0, 0, 0, 19906, 0, 19908, 0, 19909, 19911, 0, 0, 0, 19913, 19920, 0, 19938, 19939, 19940, 0, 0, 0, 0, 0, 0, 0, 19942, 0, 19943, 0, 19945, 0, 0, 0, 19951, 19952, 19954, 19960, 0, 19965, 0, 19971, 0, 0, 0, 0, 0, 19975, 0, 19976, 0, 19990, 0, 0, 19991, 0, 19993, 0, 19995, 0, 0, 0, 19998, 19999, 20001, 0, 20003, 20005, 0, 20011, 20012, 0, 0, 0, 0, 0, 0, 20014, 0, 20020, 0, 0, 0, 0, 20021, 0, 0, 0, 0, 0, 20023, 20024, 0, 0, 0, 0, 0, 20025, 0, 0, 20027, 0, 0, 20029, 0, 0, 20032, 0, 0, 0, 0, 20044, 20045, 0, 20048, 20049, 0, 0, 20050, 0, 20052, 0, 0, 20054, 20057, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20059, 0, 0, 20061, 0, 20062, 0, 20064, 0, 0, 20066, 0, 0, 20067, 0, 0, 0, 0, 20069, 0, 0, 0, 0, 0, 0, 20070, 20071, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20072, 0, 0, 20073, 20074, 0, 0, 0, 0, 0, 20075, 0, 20078, 0, 0, 0, 0, 20080, 0, 20081, 0, 0, 0, 0, 0, 0, 20095, 0, 20098, 0, 0, 0, 0, 0, 0, 0, 20107, 0, 0, 0, 0, 0, 0, 0, 0, 20112, 0, 0, 0, 20113, 20114, 0, 0, 0, 20115, 20123, 20124, 0, 0, 0, 20131, 20133, 20134, 0, 0, 0, 0, 20136, 0, 0, 20137, 20138, 20150, 0, 20152, 0, 0, 0, 20153, 0, 0, 20154, 0, 0, 0, 20158, 0, 20163, 0, 0, 20164, 0, 0, 0, 0, 0, 0, 0, 20166, 0, 20168, 0, 20170, 0, 20175, 0, 0, 20178, 0, 0, 0, 0, 20223, 0, 0, 0, 0, 20224, 0, 20226, 0, 0, 20230, 0, 20231, 0, 0, 0, 0, 20232, 0, 0, 20233, 20234, 0, 20244, 0, 20247, 0, 0, 0, 0, 0, 0, 20249, 0, 0, 0, 20250, 0, 0, 0, 0, 20251, 0, 20253, 0, 20254, 0, 0, 0, 0, 20256, 0, 0, 20264, 0, 0, 0, 0, 20266, 0, 0, 0, 20278, 0, 0, 20279, 20282, 0, 0, 0, 0, 0, 20283, 0, 20284, 0, 20285, 0, 20287, 20290, 0, 0, 0, 0, 20292, 0, 0, 0, 0, 20293, 20297, 0, 0, 0, 0, 0, 0, 20299, 0, 20300, 20303, 0, 0, 0, 0, 0, 0, 20307, 0, 0, 20308, 0, 20309, 0, 20310, 0, 0, 0, 0, 0, 0, 20312, 0, 0, 0, 20314, 0, 0, 0, 0, 20315, 20316, 0, 20322, 0, 0, 0, 0, 0, 0, 20339, 0, 0, 0, 20342, 0, 0, 0, 0, 20352, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20362, 0, 0, 20365, 0, 20375, 20377, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20378, 20379, 0, 20380, 0, 0, 20381, 0, 20382, 0, 20383, 0, 20388, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20390, 20392, 20393, 0, 0, 20395, 0, 0, 0, 0, 0, 20396, 0, 0, 0, 0, 0, 0, 0, 0, 20398, 20415, 0, 0, 0, 20417, 0, 0, 20420, 0, 0, 20426, 20428, 0, 20431, 0, 0, 20432, 0, 20433, 20434, 20435, 0, 0, 0, 0, 20440, 0, 0, 0, 0, 0, 20442, 0, 20443, 0, 20446, 0, 0, 0, 0, 20448, 0, 20451, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20452, 20453, 0, 0, 20454, 0, 0, 0, 0, 0, 0, 20457, 0, 20458, 0, 0, 0, 20465, 0, 0, 0, 0, 0, 20469, 0, 0, 0, 20473, 0, 20476, 0, 0, 0, 0, 0, 0, 0, 0, 20477, 0, 0, 20485, 0, 0, 20486, 0, 0, 20487, 0, 20496, 0, 20497, 0, 0, 20498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20499, 20500, 0, 20501, 0, 0, 0, 0, 0, 20520, 20527, 0, 20529, 0, 0, 0, 0, 20539, 0, 0, 20540, 0, 0, 0, 20543, 0, 0, 0, 20546, 0, 0, 0, 0, 0, 20548, 0, 0, 20563, 0, 0, 20564, 0, 20566, 0, 0, 0, 0, 0, 20589, 0, 0, 0, 0, 20590, 0, 0, 20593, 20594, 0, 0, 0, 0, 20595, 0, 20597, 20598, 0, 0, 0, 20618, 20620, 0, 0, 0, 0, 20621, 0, 0, 0, 0, 20627, 0, 0, 0, 0, 0, 20628, 0, 0, 0, 20629, 0, 20630, 0, 0, 20639, 0, 0, 0, 0, 0, 20707, 0, 0, 20709, 0, 0, 0, 20713, 20714, 0, 0, 0, 0, 0, 20724, 20725, 0, 0, 0, 0, 20726, 20728, 20729, 0, 20733, 0, 20734, 0, 20735, 20736, 0, 20737, 0, 0, 20744, 0, 20745, 0, 20748, 0, 0, 20749, 0, 0, 0, 0, 0, 0, 0, 0, 20750, 0, 0, 0, 0, 20754, 0, 0, 0, 20761, 0, 0, 20763, 0, 0, 0, 0, 0, 0, 0, 20766, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20767, 0, 0, 0, 0, 20768, 0, 20769, 20777, 0, 0, 0, 0, 0, 0, 20785, 0, 0, 0, 20786, 20795, 20801, 0, 20802, 0, 20807, 0, 0, 20808, 0, 0, 20810, 0, 0, 20811, 0, 20812, 0, 0, 0, 0, 0, 20813, 0, 0, 20818, 20820, 20821, 0, 0, 0, 20822, 0, 20823, 0, 0, 0, 20826, 0, 0, 0, 0, 0, 0, 0, 20829, 20830, 20831, 0, 20832, 20836, 0, 0, 20839, 0, 0, 20840, 20842, 0, 20843, 0, 20844, 0, 20854, 0, 0, 0, 20855, 0, 0, 0, 0, 20856, 0, 0, 0, 20869, 0, 0, 20871, 0, 0, 0, 0, 0, 0, 0, 20873, 0, 0, 0, 0, 0, 20876, 0, 0, 0, 0, 0, 20880, 0, 0, 20882, 0, 0, 0, 0, 20883, 20884, 0, 0, 20890, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20891, 0, 0, 0, 0, 0, 20905, 0, 20906, 20910, 0, 0, 20912, 20915, 0, 0, 0, 0, 0, 20916, 0, 20917, 0, 20919, 20920, 20922, 0, 20927, 0, 20928, 20929, 20930, 0, 0, 20935, 0, 0, 20939, 0, 0, 20941, 0, 0, 0, 20943, 0, 0, 0, 20946, 20947, 0, 0, 0, 0, 0, 20950, 0, 20954, 0, 0, 20955, 20964, 0, 0, 20967, 0, 0, 0, 0, 0, 20973, 20975, 0, 0, 0, 20984, 0, 20987, 20988, 0, 0, 0, 0, 0, 20989, 0, 0, 0, 20995, 0, 20998, 0, 20999, 0, 0, 0, 0, 21000, 21001, 0, 0, 0, 0, 21008, 0, 21010, 0, 21016, 0, 0, 0, 21017, 21018, 0, 0, 0, 0, 0, 21021, 21026, 21027, 21028, 0, 0, 21029, 0, 0, 0, 0, 0, 21030, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21031, 21032, 0, 0, 0, 0, 0, 21037, 0, 0, 21038, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21039, 0, 21041, 0, 21046, 21047, 0, 0, 0, 21049, 21053, 0, 0, 21057, 21064, 21065, 0, 0, 21066, 21067, 0, 0, 0, 21069, 0, 0, 0, 21071, 21072, 0, 0, 21073, 0, 21074, 0, 0, 21078, 0, 0, 0, 0, 21079, 0, 0, 21080, 21081, 0, 0, 21086, 21087, 0, 21089, 0, 0, 0, 0, 0, 0, 0, 21091, 0, 21093, 0, 21094, 0, 0, 0, 0, 0, 0, 0, 0, 21095, 0, 0, 0, 0, 0, 21096, 0, 21098, 0, 0, 0, 0, 0, 0, 0, 21099, 0, 0, 21100, 21101, 21102, 0, 0, 0, 0, 0, 21103, 0, 21104, 0, 0, 0, 0, 0, 21105, 21108, 21109, 0, 0, 21112, 21113, 0, 0, 0, 0, 0, 0, 21115, 21122, 21123, 0, 0, 0, 0, 0, 21125, 0, 0, 0, 0, 0, 0, 0, 0, 21129, 21131, 0, 0, 21134, 0, 0, 0, 21137, 21142, 0, 21143, 0, 0, 21144, 0, 21145, 21146, 0, 21152, 21154, 21155, 21156, 0, 0, 0, 21160, 0, 0, 0, 0, 0, 0, 21161, 0, 21164, 0, 21166, 0, 0, 0, 0, 21170, 0, 0, 0, 0, 21171, 0, 0, 21172, 0, 21174, 0, 21175, 0, 0, 0, 0, 0, 21176, 21179, 21188, 0, 0, 0, 21189, 0, 0, 21190, 0, 0, 0, 21192, 0, 0, 21193, 0, 0, 0, 21198, 0, 21212, 0, 0, 21213, 0, 0, 0, 0, 0, 0, 21215, 21216, 0, 0, 21223, 21225, 0, 21226, 0, 0, 0, 0, 21227, 21228, 0, 0, 21229, 0, 0, 0, 0, 21230, 21236, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21237, 0, 0, 21238, 21239, 0, 0, 0, 0, 21256, 0, 0, 0, 0, 0, 21257, 0, 0, 0, 0, 0, 0, 0, 21259, 0, 0, 0, 21263, 0, 21272, 0, 21274, 0, 21282, 0, 0, 0, 0, 0, 0, 0, 0, 21283, 0, 0, 0, 0, 0, 0, 0, 0, 21294, 0, 0, 21297, 0, 0, 0, 0, 21298, 0, 0, 0, 21299, 0, 21300, 21302, 0, 21316, 0, 21318, 21322, 21323, 0, 21324, 0, 21326, 0, 0, 0, 21327, 21328, 0, 0, 0, 21352, 0, 0, 21354, 21361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21362, 0, 0, 0, 21363, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21366, 0, 0, 21367, 21372, 21374, 0, 0, 0, 21375, 21377, 0, 21378, 0, 0, 0, 21380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21381, 0, 0, 0, 0, 0, 0, 21382, 0, 21383, 0, 0, 21384, 0, 0, 21385, 0, 0, 0, 0, 21389, 21390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21397, 21398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21399, 0, 21400, 0, 0, 0, 0, 21402, 0, 0, 0, 21403, 21404, 0, 21405, 21406, 0, 0, 0, 21407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21408, 0, 0, 0, 0, 21409, 0, 21421, 0, 21422, 0, 0, 0, 21425, 21428, 0, 0, 0, 0, 21429, 0, 0, 0, 0, 0, 21433, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21434, 0, 21443, 0, 21444, 21449, 0, 21452, 0, 21453, 21454, 0, 0, 0, 21457, 0, 0, 21458, 0, 0, 0, 21460, 21461, 0, 0, 21464, 0, 0, 0, 21473, 21478, 0, 0, 21479, 0, 0, 21481, 21483, 0, 0, 0, 0, 0, 0, 0, 0, 21484, 0, 0, 21485, 21486, 0, 0, 21488, 0, 0, 0, 0, 0, 0, 21523, 0, 0, 21525, 0, 0, 0, 0, 0, 0, 0, 21526, 0, 0, 0, 0, 0, 0, 21529, 21530, 0, 0, 21531, 0, 0, 21533, 0, 0, 21539, 21564, 0, 21567, 0, 0, 0, 0, 0, 0, 0, 0, 21575, 0, 0, 0, 0, 21577, 0, 0, 0, 0, 0, 21591, 0, 0, 21604, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21605, 0, 21606, 0, 0, 21617, 21618, 21619, 21620, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21623, 0, 0, 0, 0, 21631, 0, 21635, 0, 0, 0, 0, 21639, 21646, 21653, 21662, 0, 0, 21663, 21664, 0, 21666, 0, 0, 21667, 0, 21670, 21672, 21673, 0, 21674, 21683, 0, 0, 0, 0, 0, 21684, 0, 21694, 0, 0, 0, 0, 21695, 21700, 0, 21703, 0, 21704, 0, 0, 21709, 0, 0, 0, 21710, 0, 0, 0, 0, 0, 0, 0, 0, 21711, 0, 0, 0, 21712, 0, 21717, 0, 21730, 0, 0, 0, 21731, 21733, 0, 0, 0, 0, 21737, 21741, 21742, 0, 21747, 0, 0, 0, 21749, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21750, 0, 0, 0, 0, 0, 21752, 0, 0, 0, 0, 21753, 0, 0, 0, 0, 0, 0, 21755, 21756, 0, 21757, 0, 0, 0, 0, 0, 0, 21760, 0, 0, 21763, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21764, 0, 0, 21766, 0, 0, 21767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21773, 0, 21774, 0, 0, 21775, 0, 0, 0, 0, 21776, 0, 0, 21777, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21780, 21787, 21788, 21791, 0, 0, 0, 21797, 0, 0, 0, 0, 0, 21805, 0, 0, 0, 0, 21806, 0, 21807, 21809, 0, 21810, 21811, 0, 21817, 21819, 21820, 0, 21823, 0, 21824, 0, 0, 21825, 0, 0, 21826, 21832, 0, 0, 0, 0, 0, 21833, 21848, 21849, 0, 0, 21867, 21870, 21871, 21873, 0, 0, 0, 21874, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21875, 0, 21878, 0, 0, 0, 21879, 0, 21881, 21886, 0, 0, 0, 0, 21887, 0, 0, 21888, 21894, 21895, 21897, 0, 21901, 0, 21904, 0, 0, 21906, 0, 0, 0, 21909, 21910, 21911, 0, 0, 21912, 0, 0, 21913, 21914, 21915, 0, 21919, 0, 0, 0, 0, 0, 0, 0, 21921, 0, 0, 21922, 21933, 21939, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21944, 0, 0, 0, 0, 0, 21945, 0, 21947, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21949, 0, 0, 0, 21950, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21951, 0, 21952, 0, 0, 0, 0, 0, 0, 0, 0, 0, 21954, 21957, 0, 0, 0, 0, 21958, 0, 21959, 0, 0, 0, 0, 0, 0, 21962, 21963, 0, 0, 0, 0, 0, 0, 0, 0, 21964, 21965, 0, 0, 21969, 21970, 0, 0, 0, 21974, 0, 0, 21980, 21981, 0, 21982, 0, 0, 0, 0, 0, 21985, 0, 21988, 0, 21992, 0, 21999, 0, 0, 0, 0, 0, 0, 22001, 0, 22002, 0, 0, 0, 0, 0, 0, 22003, 0, 0, 0, 0, 0, 22004, 0, 0, 0, 22008, 0, 22009, 22015, 0, 0, 22016, 0, 0, 0, 22017, 22019, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22020, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22021, 22037, 0, 22039, 0, 0, 0, 22040, 0, 0, 0, 22048, 22049, 0, 0, 22053, 22055, 22056, 22059, 0, 0, 22060, 22061, 0, 0, 22064, 0, 0, 0, 0, 22066, 0, 0, 0, 0, 0, 0, 0, 22073, 0, 0, 0, 22074, 22075, 0, 0, 0, 0, 0, 0, 0, 22076, 0, 0, 0, 0, 22077, 22084, 22099, 0, 0, 0, 0, 0, 0, 0, 22104, 0, 0, 22107, 0, 22108, 0, 22109, 0, 22110, 0, 0, 0, 0, 0, 0, 0, 22111, 22119, 0, 22120, 22122, 0, 0, 0, 0, 22125, 0, 0, 0, 22128, 22129, 0, 0, 0, 0, 0, 0, 22141, 0, 0, 0, 22142, 0, 0, 22144, 22146, 0, 22148, 22149, 22151, 22154, 0, 0, 0, 22162, 0, 0, 0, 0, 22164, 22177, 0, 0, 0, 0, 22179, 0, 22182, 22183, 0, 0, 22184, 22188, 0, 0, 0, 0, 0, 0, 0, 0, 22190, 0, 22194, 22201, 0, 0, 22208, 0, 22209, 0, 22212, 0, 0, 22215, 0, 22223, 22231, 0, 0, 22232, 0, 22234, 0, 0, 22235, 22236, 0, 22237, 0, 22240, 0, 0, 0, 0, 0, 22241, 0, 0, 0, 22242, 22246, 22247, 0, 0, 0, 22259, 22268, 0, 22269, 0, 0, 0, 0, 0, 0, 0, 22270, 0, 0, 0, 0, 22271, 0, 22272, 0, 22277, 0, 0, 0, 0, 0, 22278, 22280, 22283, 22286, 0, 0, 22287, 22289, 0, 0, 22290, 0, 22293, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22295, 0, 22301, 22302, 0, 0, 0, 22305, 0, 22308, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22315, 0, 0, 0, 22317, 0, 22334, 0, 0, 0, 22335, 0, 0, 0, 0, 0, 22336, 0, 22338, 22344, 0, 22347, 22349, 0, 22350, 0, 0, 0, 0, 0, 0, 0, 22357, 0, 0, 0, 0, 0, 22358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22359, 22360, 0, 0, 0, 0, 0, 0, 0, 0, 22361, 22366, 0, 0, 22369, 0, 22370, 22373, 0, 0, 0, 0, 0, 22375, 0, 22377, 0, 0, 0, 0, 0, 22378, 0, 0, 0, 0, 22381, 0, 0, 0, 0, 22382, 0, 22383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22391, 0, 0, 22392, 22395, 22396, 22402, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22405, 0, 0, 22406, 0, 0, 22408, 0, 0, 22409, 22410, 0, 0, 0, 0, 0, 0, 22424, 0, 0, 0, 0, 22426, 0, 0, 0, 22427, 0, 22428, 0, 22432, 0, 22435, 22442, 22443, 0, 0, 0, 0, 22444, 0, 0, 0, 0, 0, 22446, 0, 22454, 0, 22455, 0, 0, 0, 22465, 0, 22470, 0, 22471, 0, 0, 0, 0, 22472, 22473, 0, 22487, 0, 0, 0, 22488, 0, 0, 0, 0, 22489, 0, 0, 22499, 0, 0, 0, 0, 0, 0, 22514, 0, 0, 22515, 0, 0, 0, 0, 0, 0, 0, 22516, 0, 0, 0, 22517, 22520, 0, 0, 0, 22534, 0, 0, 22535, 0, 0, 22536, 0, 22540, 22553, 0, 22555, 0, 0, 0, 0, 22561, 0, 0, 22562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22566, 0, 0, 0, 0, 22567, 22568, 0, 0, 22575, 0, 22579, 0, 22582, 22583, 22585, 0, 0, 0, 0, 0, 22586, 0, 0, 22587, 0, 0, 22590, 0, 0, 0, 0, 0, 22591, 0, 22592, 0, 0, 0, 0, 0, 22593, 0, 22602, 0, 0, 22604, 0, 0, 22609, 0, 0, 22618, 0, 0, 0, 0, 0, 0, 22619, 0, 22624, 22625, 0, 0, 22638, 0, 0, 0, 0, 0, 22639, 0, 0, 22640, 0, 0, 0, 0, 0, 0, 0, 22644, 0, 22645, 22647, 0, 0, 0, 0, 22652, 22653, 0, 0, 0, 22654, 0, 22655, 0, 0, 0, 22656, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22673, 22675, 22676, 0, 0, 22678, 22679, 0, 22691, 0, 0, 0, 0, 0, 0, 0, 22693, 0, 0, 22696, 0, 22699, 22707, 22708, 0, 0, 0, 0, 0, 0, 0, 0, 22718, 0, 22719, 0, 0, 0, 0, 22723, 0, 0, 0, 22724, 22725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22726, 22728, 0, 0, 0, 0, 0, 0, 0, 0, 22729, 0, 0, 22731, 0, 0, 0, 0, 22732, 22735, 22736, 0, 0, 0, 0, 22739, 0, 22749, 0, 0, 22751, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22758, 0, 0, 0, 0, 0, 22760, 0, 0, 0, 0, 0, 22764, 22765, 22766, 0, 22768, 0, 0, 0, 0, 0, 22769, 22770, 0, 0, 0, 0, 0, 0, 22771, 0, 0, 22772, 22775, 0, 22776, 22777, 22780, 0, 0, 22782, 22784, 0, 22787, 0, 22789, 22796, 0, 0, 0, 0, 0, 22798, 0, 0, 0, 0, 0, 0, 22802, 0, 22803, 22804, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22805, 0, 0, 22810, 22811, 22814, 22816, 0, 22825, 22826, 0, 22831, 22833, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22834, 0, 22836, 22838, 0, 22839, 0, 0, 0, 0, 0, 22840, 0, 22847, 0, 0, 0, 0, 0, 22856, 22857, 0, 22858, 22859, 0, 0, 22862, 0, 0, 22864, 0, 0, 0, 0, 22865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 22866, 0, 22867, 22868, 0, 0, 0, 0, 22869, 0, 22871, 0, 22872, 0, 22873, 22881, 22882, 22884, 22885, 0, 0, 0, 0, 0, 0, 0, 22886, 22887, 0, 22894, 0, 22895, 0, 0, 0, 22900, 0, 22901, 0, 0, 0, 0, 22904, 0, 0, 0, 0, 22905, 22907, 0, 0, 0, 22915, 22917, 0, 0, 22918, 0, 0, 0, 22920, 0, 0, 0, 22929, 22930, 0, 0, 0, 22941, 22942, 0, 0, 0, 22943, 0, 0, 0, 22944, 0, 0, 0, 0, 0, 0, 0, 22946, 0, 22947, 0, 0, 22954, 0, 22956, 0, 0, 22962, 0, 0, 0, 0, 0, 0, 0, 22963, 0, 0, 22964, 0, 0, 0, 0, 0, 0, 0, 22965, 0, 22968, 0, 0, 0, 22969, 0, 0, 0, 0, 0, 22970, 0, 22971, 0, 0, 0, 0, 0, 22978, 0, 0, 22979, 0, 22987, 0, 0, 22989, 0, 0, 0, 0, 0, 0, 22990, 0, 23005, 0, 0, 0, 0, 0, 0, 0, 23006, 23007, 23008, 0, 0, 23023, 23024, 23029, 0, 0, 0, 0, 23030, 0, 0, 0, 0, 0, 23032, 0, 0, 0, 0, 0, 23035, 0, 0, 0, 0, 23038, 0, 0, 0, 23048, 0, 23049, 23052, 23053, 23060, 23061, 0, 23063, 0, 0, 0, 0, 23067, 23068, 0, 0, 0, 23069, 23073, 0, 0, 0, 23127, 0, 23128, 0, 0, 0, 0, 0, 23129, 0, 23138, 23141, 0, 23149, 0, 0, 23150, 0, 0, 0, 23152, 0, 0, 0, 0, 0, 0, 0, 0, 23154, 0, 0, 0, 0, 23157, 23159, 23160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23180, 0, 0, 0, 0, 23181, 0, 0, 23188, 0, 23189, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23195, 0, 0, 23196, 23199, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23202, 0, 23204, 0, 23207, 0, 23209, 23210, 0, 0, 0, 0, 0, 0, 23227, 23229, 0, 0, 23230, 23234, 23238, 0, 0, 0, 23245, 23246, 23248, 0, 0, 0, 0, 23249, 23254, 0, 0, 0, 23265, 0, 0, 0, 0, 0, 0, 0, 23268, 0, 23276, 0, 0, 0, 0, 23277, 0, 23297, 0, 23298, 0, 0, 0, 0, 23299, 0, 23302, 0, 0, 23303, 23312, 0, 0, 23314, 0, 23320, 0, 0, 0, 0, 23324, 0, 23325, 0, 23328, 0, 23334, 0, 0, 0, 23337, 0, 0, 0, 0, 23343, 23344, 23346, 0, 23348, 0, 0, 0, 0, 0, 0, 0, 0, 23353, 0, 0, 0, 0, 23355, 0, 23356, 23358, 0, 0, 0, 23359, 23360, 0, 23361, 0, 23367, 0, 23369, 0, 0, 23373, 0, 23378, 23379, 0, 23382, 23383, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23387, 0, 0, 0, 0, 0, 0, 23388, 23390, 0, 0, 23393, 23398, 0, 0, 0, 23399, 0, 0, 0, 23400, 0, 0, 0, 0, 23401, 0, 0, 0, 23415, 0, 0, 0, 0, 0, 0, 0, 0, 23416, 0, 23422, 0, 23443, 23444, 0, 0, 0, 0, 23448, 0, 23454, 0, 0, 0, 0, 0, 0, 23456, 0, 0, 23458, 23464, 0, 0, 0, 0, 0, 0, 23465, 0, 0, 0, 23470, 23471, 0, 0, 23472, 0, 0, 0, 23473, 23496, 0, 0, 0, 0, 0, 0, 0, 0, 23497, 0, 23499, 0, 0, 23502, 0, 0, 23503, 0, 0, 23513, 0, 0, 23515, 0, 0, 0, 23517, 0, 0, 0, 0, 23518, 23519, 23521, 23524, 0, 23525, 23528, 23539, 0, 0, 0, 0, 0, 23541, 0, 0, 23544, 0, 0, 23556, 0, 0, 23557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23559, 0, 23560, 0, 0, 23561, 0, 0, 23566, 0, 0, 0, 0, 0, 23568, 23569, 23570, 0, 0, 0, 0, 23571, 0, 23574, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23575, 0, 23579, 0, 0, 23581, 0, 0, 0, 0, 0, 0, 23587, 0, 0, 0, 0, 0, 0, 0, 23596, 23598, 0, 0, 0, 0, 23602, 23606, 0, 0, 23607, 0, 23608, 0, 0, 0, 23614, 23616, 0, 0, 0, 0, 0, 23618, 0, 0, 23619, 0, 0, 0, 0, 23621, 23626, 0, 23627, 0, 0, 0, 0, 0, 0, 0, 23629, 0, 23630, 0, 0, 0, 0, 23634, 0, 23636, 0, 0, 0, 0, 0, 0, 23638, 0, 0, 0, 0, 23640, 23667, 0, 23669, 0, 0, 0, 23681, 0, 0, 0, 0, 0, 0, 0, 23682, 0, 23683, 0, 0, 0, 0, 0, 23684, 0, 0, 0, 23685, 23689, 0, 23693, 23694, 23700, 0, 23702, 0, 23709, 0, 0, 0, 0, 0, 0, 0, 23712, 0, 0, 0, 0, 0, 23714, 0, 0, 23715, 0, 0, 0, 0, 23718, 0, 0, 23720, 0, 0, 0, 0, 23722, 0, 0, 0, 23726, 23729, 0, 23741, 23746, 0, 23748, 0, 0, 0, 0, 23749, 0, 0, 0, 0, 0, 23750, 0, 0, 0, 0, 23751, 0, 23753, 0, 0, 0, 0, 23757, 23765, 0, 0, 0, 23770, 0, 0, 0, 0, 0, 0, 0, 23771, 0, 23772, 23781, 0, 0, 23796, 0, 0, 0, 0, 23798, 0, 23799, 0, 0, 0, 23802, 0, 0, 23806, 0, 23807, 0, 0, 23808, 0, 23809, 0, 23819, 0, 0, 0, 23821, 0, 23827, 0, 0, 0, 23829, 0, 0, 0, 0, 0, 0, 0, 23830, 0, 0, 0, 0, 0, 0, 23832, 23833, 23834, 23835, 0, 0, 0, 0, 23837, 23838, 0, 0, 0, 0, 0, 23846, 0, 0, 0, 0, 0, 0, 23847, 0, 0, 0, 0, 0, 23879, 23881, 0, 0, 23882, 23883, 23895, 0, 23899, 0, 0, 0, 0, 23901, 0, 0, 0, 0, 0, 0, 23902, 0, 0, 0, 0, 0, 23903, 23905, 0, 23906, 0, 23907, 23918, 23919, 23920, 0, 23922, 0, 23924, 0, 23927, 0, 23934, 0, 23937, 23941, 0, 23942, 23946, 0, 0, 0, 0, 0, 23955, 23956, 23958, 0, 0, 0, 0, 0, 0, 23959, 0, 23962, 23965, 0, 23966, 0, 0, 0, 0, 23967, 23968, 0, 0, 23973, 0, 0, 23974, 0, 0, 0, 0, 23975, 0, 23976, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23977, 0, 0, 0, 0, 0, 0, 0, 0, 23980, 0, 0, 23984, 0, 23985, 0, 0, 23987, 0, 0, 23988, 23990, 23991, 0, 0, 0, 0, 0, 0, 23992, 0, 0, 0, 0, 0, 0, 0, 0, 23994, 0, 0, 0, 23998, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23999, 0, 0, 24003, 0, 24004, 0, 24006, 0, 0, 0, 24007, 0, 0, 24008, 0, 0, 0, 0, 0, 0, 0, 24009, 0, 0, 24010, 0, 0, 24011, 0, 0, 24013, 24014, 0, 0, 24015, 24016, 24027, 0, 24028, 24029, 0, 24030, 0, 0, 0, 0, 0, 24033, 24034, 0, 24035, 0, 0, 24036, 0, 0, 24044, 0, 24048, 24049, 24063, 24067, 0, 24068, 24070, 0, 0, 24071, 24078, 24087, 0, 24090, 0, 0, 0, 24095, 0, 24098, 24101, 24104, 24106, 0, 24107, 0, 0, 0, 24108, 0, 0, 0, 0, 24110, 24111, 0, 24113, 0, 0, 24115, 24120, 0, 0, 0, 0, 0, 0, 24124, 0, 24125, 0, 24126, 0, 24127, 0, 0, 0, 0, 0, 24135, 0, 0, 24136, 0, 24137, 24142, 0, 0, 0, 24146, 0, 0, 24147, 24149, 24154, 0, 24163, 0, 0, 0, 24165, 24166, 24167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24169, 24170, 24175, 0, 0, 0, 24178, 0, 0, 24179, 0, 0, 24181, 0, 24184, 24197, 0, 24201, 24204, 0, 0, 0, 0, 0, 0, 24206, 24212, 24220, 0, 0, 0, 24224, 0, 0, 0, 0, 0, 0, 0, 0, 24226, 0, 24234, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24235, 0, 24236, 0, 0, 0, 0, 0, 24239, 24240, 24241, 0, 0, 24248, 0, 0, 24249, 0, 24251, 0, 0, 0, 0, 0, 0, 24253, 0, 24268, 0, 0, 0, 24269, 0, 24271, 24272, 0, 0, 0, 0, 24273, 0, 0, 24274, 0, 0, 24279, 0, 0, 0, 0, 0, 0, 0, 24280, 0, 24293, 24294, 0, 0, 0, 0, 0, 0, 24296, 0, 0, 24323, 0, 0, 0, 24329, 24330, 24331, 24339, 0, 24351, 0, 0, 24369, 24370, 0, 0, 0, 24371, 0, 0, 0, 0, 24372, 24373, 24374, 0, 0, 0, 0, 0, 24378, 0, 0, 0, 0, 24379, 0, 24381, 0, 24383, 24389, 0, 24390, 0, 0, 24394, 24395, 24400, 0, 0, 0, 24401, 24402, 0, 24406, 0, 0, 0, 24411, 0, 0, 0, 24415, 0, 24416, 0, 0, 0, 0, 0, 24417, 0, 24419, 0, 24422, 0, 24423, 24428, 0, 24435, 0, 0, 0, 24439, 0, 0, 0, 24440, 24442, 24446, 0, 0, 0, 24447, 24448, 24449, 24452, 0, 0, 0, 0, 24453, 24457, 0, 0, 24458, 24459, 24460, 0, 24465, 0, 0, 0, 0, 0, 0, 0, 24470, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24471, 0, 24473, 24474, 24475, 24476, 0, 24478, 0, 0, 0, 0, 24480, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24481, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24482, 24485, 0, 0, 0, 0, 24486, 0, 0, 0, 24488, 0, 0, 0, 24494, 0, 0, 0, 0, 24497, 0, 0, 24498, 0, 0, 0, 24499, 24506, 0, 0, 0, 24507, 0, 0, 24511, 0, 0, 24513, 24514, 0, 0, 0, 0, 0, 24517, 0, 24518, 0, 24520, 0, 24521, 24524, 24525, 0, 0, 0, 0, 0, 24527, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24528, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24537, 24539, 0, 24540, 0, 0, 0, 24548, 0, 0, 0, 0, 0, 24549, 24550, 0, 0, 0, 24553, 24554, 0, 24555, 0, 24556, 0, 24558, 0, 0, 0, 0, 0, 24560, 0, 0, 0, 24561, 0, 0, 0, 0, 0, 24562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24567, 0, 0, 0, 0, 0, 24569, 0, 0, 0, 24574, 0, 24575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24577, 24581, 0, 24584, 0, 0, 0, 0, 0, 24585, 0, 0, 0, 0, 0, 24586, 0, 0, 24587, 0, 24588, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24590, 24591, 0, 0, 0, 0, 24592, 0, 0, 0, 0, 0, 0, 0, 24594, 0, 0, 0, 0, 0, 0, 0, 24596, 24597, 0, 0, 0, 0, 24602, 24603, 0, 0, 0, 0, 24604, 0, 0, 24605, 0, 24610, 0, 0, 24611, 0, 0, 0, 0, 24612, 24615, 24616, 24624, 0, 0, 0, 24627, 0, 24638, 24639, 0, 0, 0, 0, 24640, 0, 0, 0, 24655, 24656, 24657, 0, 0, 0, 0, 0, 0, 0, 0, 24662, 0, 24663, 24664, 0, 0, 0, 0, 0, 24665, 0, 0, 0, 0, 24667, 0, 0, 0, 0, 0, 0, 24668, 24669, 0, 24670, 24674, 0, 0, 0, 24675, 0, 24678, 0, 0, 24679, 0, 0, 0, 24681, 0, 24683, 0, 0, 0, 0, 24684, 0, 24685, 0, 0, 24686, 0, 0, 24688, 24689, 0, 0, 0, 0, 24690, 24691, 0, 0, 0, 0, 0, 0, 0, 24697, 0, 24698, 0, 0, 0, 0, 0, 0, 0, 0, 24709, 0, 0, 0, 0, 0, 24710, 0, 24712, 0, 0, 0, 0, 0, 0, 24713, 24714, 0, 24715, 0, 24716, 24718, 0, 24719, 0, 0, 0, 0, 24720, 0, 0, 24725, 0, 0, 24738, 0, 24749, 24750, 0, 0, 0, 24752, 0, 0, 0, 24753, 0, 0, 0, 24758, 0, 0, 0, 0, 0, 24762, 0, 24763, 0, 0, 0, 0, 0, 0, 0, 24764, 0, 0, 0, 0, 0, 24765, 24767, 24768, 0, 24772, 0, 0, 0, 0, 24773, 0, 0, 0, 0, 24777, 0, 0, 0, 0, 0, 24785, 0, 24786, 24788, 0, 0, 0, 24789, 0, 0, 0, 0, 24794, 24798, 0, 24799, 24800, 0, 0, 0, 24803, 0, 24804, 24806, 0, 24807, 0, 0, 0, 24810, 0, 0, 0, 0, 0, 0, 24827, 24828, 0, 24835, 0, 0, 0, 0, 0, 0, 24836, 0, 0, 0, 0, 0, 24839, 0, 24843, 24844, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24847, 0, 0, 24848, 0, 0, 0, 0, 0, 0, 24849, 0, 24850, 24851, 0, 0, 0, 24852, 0, 24853, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24854, 0, 24855, 0, 0, 24868, 0, 0, 0, 24883, 0, 0, 0, 24884, 0, 24895, 24897, 0, 0, 0, 0, 0, 24899, 0, 0, 0, 0, 0, 24900, 0, 24913, 0, 0, 0, 0, 0, 0, 24914, 0, 0, 24917, 24930, 24931, 0, 0, 0, 24932, 0, 0, 24939, 0, 0, 24942, 0, 0, 0, 0, 0, 0, 0, 0, 0, 24945, 24950, 0, 24951, 0, 0, 24953, 0, 0, 0, 24954, 0, 24959, 0, 0, 0, 24961, 0, 0, 24962, 0, 24964, 24968, 24970, 24972, 0, 0, 0, 0, 0, 24976, 0, 0, 0, 24977, 0, 24982, 0, 0, 24983, 0, 0, 24984, 0, 0, 0, 24993, 0, 0, 0, 24994, 0, 0, 25001, 0, 0, 0, 25003, 0, 0, 25018, 0, 0, 25023, 0, 0, 0, 25034, 0, 0, 25035, 25036, 0, 25037, 0, 0, 0, 0, 0, 0, 0, 25039, 0, 0, 0, 0, 0, 25040, 0, 0, 0, 0, 0, 0, 0, 25042, 0, 0, 25043, 25045, 0, 0, 0, 0, 0, 0, 25049, 0, 0, 25051, 0, 25052, 25053, 0, 0, 25054, 0, 0, 0, 25055, 0, 0, 0, 0, 25057, 25059, 0, 0, 25060, 25064, 0, 25065, 25069, 25070, 0, 0, 0, 0, 25072, 0, 25073, 0, 25090, 0, 0, 25092, 25093, 25101, 0, 0, 0, 0, 0, 0, 25105, 25108, 0, 0, 25113, 0, 0, 25115, 25116, 0, 0, 0, 0, 0, 0, 25117, 0, 0, 0, 25120, 25121, 0, 0, 0, 0, 0, 0, 0, 25125, 0, 0, 0, 25126, 0, 25130, 25134, 0, 25139, 0, 25143, 0, 0, 0, 25151, 0, 25161, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25163, 0, 0, 0, 0, 0, 0, 0, 25174, 0, 25175, 0, 25207, 0, 0, 0, 25209, 0, 0, 0, 0, 25213, 0, 25219, 0, 25223, 0, 25225, 0, 0, 0, 25227, 0, 0, 0, 25228, 0, 0, 0, 25229, 0, 0, 0, 0, 0, 0, 0, 25231, 25233, 0, 0, 0, 0, 25237, 25239, 0, 0, 0, 25243, 0, 0, 0, 25252, 0, 25257, 25258, 0, 0, 0, 0, 25260, 25265, 0, 25268, 0, 0, 25273, 25324, 0, 25325, 0, 25326, 0, 0, 0, 0, 0, 0, 0, 0, 25327, 0, 0, 0, 0, 0, 25328, 0, 0, 0, 0, 0, 0, 25332, 0, 0, 0, 25333, 0, 0, 0, 25336, 25337, 25338, 0, 0, 25343, 0, 25350, 0, 0, 0, 0, 0, 0, 0, 25352, 0, 25354, 0, 25375, 0, 25379, 0, 0, 0, 0, 25384, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25386, 0, 25388, 0, 25390, 0, 0, 25399, 0, 0, 25401, 0, 0, 0, 25402, 0, 0, 0, 25407, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25413, 25415, 0, 0, 25417, 0, 0, 0, 0, 0, 0, 0, 25419, 0, 0, 0, 25421, 0, 0, 0, 25424, 0, 0, 0, 0, 25433, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25435, 0, 0, 0, 0, 0, 0, 25436, 0, 0, 0, 25437, 0, 0, 25440, 0, 0, 0, 0, 0, 0, 25442, 0, 0, 25443, 0, 25446, 0, 0, 25449, 0, 0, 0, 25450, 0, 0, 0, 0, 25452, 0, 25453, 25454, 25455, 0, 0, 0, 25456, 0, 25457, 0, 0, 0, 25459, 0, 25461, 0, 25468, 0, 0, 0, 0, 0, 0, 0, 0, 25469, 0, 0, 0, 0, 0, 25471, 0, 0, 0, 0, 0, 25474, 0, 0, 0, 0, 0, 0, 0, 0, 25475, 0, 0, 0, 0, 25477, 0, 0, 0, 0, 25483, 0, 0, 0, 0, 0, 25484, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25485, 0, 25497, 0, 0, 25498, 0, 25504, 0, 25510, 0, 25512, 0, 0, 25513, 25514, 0, 0, 0, 0, 0, 0, 25517, 25518, 25519, 0, 25520, 0, 0, 0, 0, 0, 0, 0, 25521, 0, 25522, 25527, 25534, 0, 25536, 0, 25537, 0, 0, 25548, 25550, 0, 0, 25551, 0, 25552, 0, 0, 0, 0, 0, 25554, 0, 25555, 0, 25556, 25557, 25568, 0, 0, 0, 25570, 25571, 0, 0, 0, 0, 0, 0, 25574, 0, 0, 0, 0, 25579, 0, 0, 0, 25581, 0, 0, 0, 25582, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25588, 0, 0, 0, 0, 25589, 0, 0, 0, 0, 25590, 0, 25591, 25592, 25593, 0, 25594, 0, 0, 0, 25596, 0, 25597, 25615, 0, 0, 0, 0, 0, 25618, 0, 0, 0, 0, 25619, 25623, 0, 0, 25629, 0, 0, 25631, 0, 0, 0, 25635, 25636, 0, 0, 25649, 0, 0, 0, 0, 25654, 0, 0, 0, 25661, 25663, 0, 0, 25671, 0, 0, 25678, 25698, 0, 25699, 25702, 25703, 0, 0, 0, 0, 0, 0, 0, 0, 25704, 0, 0, 0, 0, 0, 25706, 0, 0, 25710, 0, 25711, 0, 25712, 0, 25715, 25716, 25717, 0, 0, 25718, 25728, 25732, 0, 0, 0, 25734, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25737, 0, 0, 25739, 0, 0, 0, 25740, 0, 25741, 25745, 0, 25746, 0, 25748, 25772, 25778, 0, 0, 0, 0, 0, 25780, 0, 0, 0, 0, 25781, 0, 25782, 25784, 25785, 0, 0, 0, 25789, 0, 0, 0, 0, 0, 0, 25797, 25801, 0, 0, 0, 25808, 25809, 0, 0, 25811, 25814, 25815, 0, 0, 25817, 0, 0, 0, 0, 0, 0, 0, 0, 25820, 0, 0, 0, 0, 25832, 25833, 0, 0, 0, 25846, 0, 0, 0, 25847, 25848, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25849, 25850, 0, 0, 25851, 0, 0, 25852, 0, 25862, 0, 0, 0, 25863, 25865, 0, 0, 0, 0, 0, 0, 0, 25867, 25868, 0, 25869, 25874, 0, 25875, 0, 25876, 25877, 0, 0, 0, 0, 25878, 25902, 0, 0, 0, 0, 0, 0, 0, 25903, 25904, 25905, 0, 0, 0, 25908, 25909, 0, 0, 0, 0, 25910, 0, 0, 0, 0, 0, 0, 0, 25912, 0, 25913, 0, 0, 0, 0, 0, 0, 0, 0, 25914, 0, 0, 25916, 0, 0, 0, 0, 0, 25917, 25927, 0, 0, 0, 0, 25928, 0, 0, 25930, 0, 0, 0, 25933, 0, 0, 25938, 25942, 0, 0, 0, 0, 0, 0, 0, 25945, 0, 25950, 0, 25956, 0, 0, 25961, 25962, 0, 0, 25963, 0, 25964, 25965, 25966, 0, 0, 0, 0, 0, 25967, 0, 0, 0, 0, 25968, 0, 0, 0, 25969, 25971, 0, 0, 0, 0, 0, 25973, 25975, 0, 0, 0, 0, 0, 0, 0, 25978, 0, 25981, 0, 0, 0, 25982, 0, 0, 0, 25984, 0, 0, 0, 0, 0, 0, 0, 25993, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26002, 0, 0, 0, 26005, 0, 0, 0, 26006, 26007, 0, 0, 26014, 26015, 26016, 0, 0, 0, 0, 0, 0, 26017, 26018, 26020, 0, 26022, 26023, 0, 0, 0, 26024, 26028, 0, 26029, 26033, 26034, 26044, 0, 0, 0, 0, 0, 26046, 0, 0, 26047, 0, 0, 26049, 0, 26050, 0, 26051, 0, 0, 0, 0, 0, 26053, 0, 0, 0, 0, 26054, 26059, 0, 0, 0, 0, 0, 0, 26060, 0, 26066, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26067, 0, 26069, 0, 0, 26071, 0, 0, 0, 26073, 0, 26074, 26077, 0, 0, 0, 0, 26078, 0, 0, 0, 26079, 0, 26090, 0, 0, 26094, 0, 0, 0, 0, 0, 0, 0, 0, 26095, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26096, 26101, 0, 26107, 26122, 0, 26124, 0, 0, 26125, 0, 0, 0, 0, 0, 0, 26136, 26141, 26155, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26164, 26166, 0, 0, 0, 26167, 0, 26170, 26171, 0, 0, 26172, 0, 0, 26174, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26175, 0, 0, 0, 26176, 26177, 0, 26321, 26322, 0, 26323, 0, 0, 26324, 0, 0, 0, 0, 0, 0, 0, 26325, 0, 26331, 0, 0, 0, 0, 0, 0, 26335, 0, 0, 0, 26350, 0, 0, 0, 26379, 0, 0, 26382, 26383, 26385, 0, 0, 26392, 26406, 0, 0, 0, 0, 26411, 0, 0, 0, 0, 0, 26412, 0, 0, 26420, 0, 0, 26423, 0, 26424, 26426, 26432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26435, 0, 26436, 0, 0, 0, 0, 0, 26441, 0, 26444, 0, 0, 0, 26446, 0, 0, 0, 0, 26447, 0, 0, 0, 0, 26449, 0, 26450, 26452, 0, 26453, 26454, 0, 0, 0, 26455, 0, 0, 0, 26456, 0, 0, 26458, 0, 0, 26460, 0, 26463, 0, 0, 0, 0, 0, 0, 0, 0, 26464, 26470, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26473, 0, 0, 26474, 0, 0, 0, 0, 0, 0, 0, 26475, 0, 0, 0, 0, 0, 0, 0, 26477, 0, 26485, 0, 0, 26486, 0, 26487, 0, 0, 26488, 26493, 26494, 0, 0, 26495, 0, 26497, 26504, 26506, 0, 0, 0, 0, 0, 26507, 0, 0, 0, 0, 0, 26509, 0, 0, 26510, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26512, 0, 26513, 26515, 0, 0, 0, 26518, 0, 0, 0, 26519, 0, 26524, 26526, 0, 0, 0, 26527, 0, 26532, 0, 26533, 26537, 26558, 0, 0, 0, 26559, 0, 0, 0, 26571, 0, 0, 26573, 0, 26588, 0, 26593, 0, 0, 0, 0, 0, 0, 26603, 0, 26604, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26606, 0, 0, 0, 0, 0, 0, 0, 26607, 26609, 26611, 26614, 0, 0, 0, 26616, 26620, 0, 26621, 0, 0, 0, 0, 0, 26627, 0, 26629, 0, 0, 26630, 0, 0, 26632, 26643, 0, 0, 0, 26644, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26646, 26647, 0, 0, 0, 26650, 0, 0, 26656, 0, 0, 0, 0, 26663, 26670, 26671, 0, 0, 0, 26685, 26686, 26687, 0, 26689, 0, 0, 0, 0, 26744, 0, 26745, 0, 26747, 26748, 0, 26749, 26750, 26751, 0, 0, 0, 0, 26752, 26755, 0, 0, 0, 26756, 26769, 0, 0, 0, 26774, 0, 0, 0, 0, 0, 26775, 0, 26777, 26778, 0, 26786, 0, 0, 0, 26787, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26788, 0, 0, 26789, 0, 0, 0, 0, 0, 26791, 0, 26792, 26793, 0, 0, 0, 26794, 0, 26797, 26798, 0, 0, 0, 26800, 0, 0, 26803, 0, 26804, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26805, 0, 0, 26808, 0, 0, 26809, 0, 0, 0, 0, 0, 0, 0, 26812, 0, 26825, 0, 0, 0, 0, 0, 0, 0, 26826, 0, 0, 26827, 26829, 26834, 0, 0, 0, 0, 26835, 0, 0, 26849, 0, 26851, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26852, 0, 26853, 26857, 0, 26858, 0, 26859, 0, 0, 0, 0, 0, 0, 0, 26876, 0, 26878, 26882, 26883, 0, 0, 0, 0, 26890, 26894, 0, 0, 0, 0, 26895, 26896, 0, 0, 0, 0, 0, 26900, 0, 0, 0, 0, 0, 0, 0, 26911, 26913, 26914, 26915, 26916, 26919, 0, 0, 0, 26921, 26922, 0, 0, 26925, 0, 0, 0, 26928, 0, 0, 26929, 26930, 0, 0, 0, 26931, 0, 26932, 0, 0, 0, 0, 0, 26933, 0, 0, 0, 0, 0, 0, 26937, 0, 0, 26943, 0, 0, 26944, 0, 0, 0, 26946, 0, 0, 0, 0, 0, 0, 0, 26956, 0, 26958, 0, 0, 26963, 0, 0, 0, 0, 0, 0, 0, 26965, 0, 26969, 26970, 26972, 0, 0, 0, 0, 0, 26973, 0, 26974, 0, 26978, 0, 26980, 0, 0, 0, 0, 0, 0, 26982, 0, 26986, 26987, 0, 26990, 0, 0, 0, 0, 27003, 27006, 0, 0, 27007, 27010, 27012, 27013, 0, 0, 0, 0, 0, 0, 0, 0, 27014, 27015, 27018, 0, 27019, 0, 0, 0, 0, 0, 27025, 0, 0, 0, 27026, 0, 0, 0, 0, 27029, 27030, 27031, 27034, 0, 0, 27036, 27037, 0, 0, 0, 27038, 27042, 0, 0, 0, 27044, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27045, 0, 0, 0, 0, 0, 0, 0, 27046, 0, 0, 0, 0, 0, 0, 0, 27047, 27049, 0, 27050, 0, 0, 0, 27051, 27052, 0, 27055, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27056, 27058, 27059, 0, 27061, 0, 27064, 0, 0, 0, 0, 0, 27069, 0, 0, 27070, 0, 0, 0, 0, 0, 0, 0, 27072, 0, 0, 0, 0, 0, 0, 0, 0, 27076, 0, 0, 0, 0, 0, 27078, 0, 27079, 0, 0, 0, 27081, 0, 0, 0, 0, 0, 0, 27082, 0, 27083, 27086, 0, 0, 0, 0, 27087, 0, 0, 0, 0, 0, 27088, 27090, 0, 27094, 0, 0, 27095, 0, 27099, 27102, 0, 0, 0, 27103, 0, 0, 0, 0, 27105, 0, 0, 0, 27106, 0, 0, 0, 0, 0, 0, 27107, 0, 0, 0, 0, 27108, 27117, 0, 0, 0, 0, 27118, 0, 0, 27124, 0, 27126, 0, 0, 27130, 27131, 0, 0, 0, 0, 0, 0, 27147, 0, 0, 0, 0, 27148, 27149, 0, 0, 0, 0, 27150, 27151, 0, 27152, 0, 27159, 0, 0, 0, 27164, 0, 0, 0, 0, 0, 0, 0, 27175, 0, 27189, 0, 0, 27191, 0, 27193, 0, 27195, 0, 27198, 0, 0, 0, 0, 0, 27200, 0, 0, 0, 0, 27202, 0, 0, 0, 0, 27203, 0, 0, 27204, 0, 0, 27206, 0, 27207, 0, 0, 0, 0, 27209, 0, 0, 0, 27213, 0, 0, 27216, 27219, 27220, 27222, 27223, 0, 27224, 0, 27225, 27226, 0, 0, 27233, 0, 0, 0, 0, 27235, 0, 27237, 0, 27238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27239, 0, 27242, 27243, 0, 27250, 0, 0, 0, 27251, 0, 27253, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27254, 27255, 27258, 0, 0, 0, 27259, 0, 0, 0, 0, 0, 0, 27267, 0, 27276, 27278, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27296, 27297, 27301, 0, 0, 0, 0, 0, 0, 27302, 0, 0, 0, 0, 0, 0, 27312, 27313, 0, 0, 0, 0, 0, 27318, 0, 27320, 0, 27329, 0, 27330, 27331, 0, 27332, 0, 0, 0, 0, 27340, 0, 0, 0, 27348, 0, 0, 0, 0, 0, 0, 27350, 0, 27351, 0, 0, 0, 0, 27355, 0, 0, 27358, 27359, 27361, 0, 0, 0, 27365, 0, 27367, 0, 27376, 27378, 0, 0, 27379, 0, 0, 0, 0, 0, 0, 27396, 0, 27397, 27404, 0, 0, 0, 0, 0, 27408, 0, 0, 0, 0, 27453, 0, 0, 0, 27456, 0, 0, 0, 27458, 0, 0, 0, 0, 0, 0, 0, 27459, 0, 0, 0, 27460, 0, 0, 27461, 0, 27465, 27467, 0, 0, 27469, 0, 27470, 0, 27471, 0, 27477, 27482, 0, 0, 0, 0, 0, 0, 27484, 0, 0, 0, 0, 0, 0, 27485, 0, 0, 0, 0, 0, 27493, 0, 27494, 27502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27511, 27532, 0, 0, 0, 27533, 27545, 0, 0, 0, 27546, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27547, 0, 0, 27549, 27550, 0, 27551, 0, 0, 0, 0, 0, 0, 0, 27555, 0, 0, 27571, 0, 27573, 27574, 27575, 27577, 0, 27578, 0, 0, 27579, 27585, 0, 0, 0, 0, 0, 27586, 0, 0, 27588, 27589, 0, 0, 0, 0, 27596, 0, 0, 27600, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27610, 0, 0, 0, 27618, 0, 0, 27620, 0, 0, 0, 27631, 0, 0, 27632, 27634, 0, 27636, 27638, 0, 0, 0, 27643, 0, 27644, 27649, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27651, 27660, 0, 27661, 0, 0, 0, 0, 0, 0, 0, 27662, 0, 0, 27664, 0, 27665, 0, 0, 0, 27669, 0, 27671, 0, 0, 0, 27673, 27674, 0, 0, 0, 27682, 0, 0, 0, 27711, 0, 27712, 27713, 27719, 27720, 0, 0, 27728, 0, 27729, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27731, 0, 0, 27732, 0, 27733, 0, 27738, 0, 0, 0, 27742, 0, 0, 0, 27743, 27744, 0, 0, 0, 0, 0, 0, 27745, 27746, 0, 0, 0, 27747, 27748, 27751, 27752, 0, 0, 0, 27768, 27770, 0, 0, 0, 27774, 27775, 0, 27776, 27777, 0, 0, 27781, 0, 27784, 0, 27786, 0, 0, 27791, 0, 27792, 27793, 27804, 0, 27812, 27813, 0, 0, 0, 0, 0, 0, 0, 0, 27814, 0, 27825, 0, 27827, 0, 0, 0, 0, 27828, 27861, 27862, 0, 0, 0, 27864, 0, 0, 0, 27865, 27884, 0, 27889, 0, 0, 0, 0, 0, 27890, 0, 27891, 0, 0, 0, 27892, 0, 0, 0, 0, 0, 27897, 27898, 0, 0, 27899, 0, 0, 0, 27901, 27905, 0, 0, 27920, 0, 0, 27921, 0, 27922, 0, 0, 0, 27931, 27934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27941, 0, 27942, 0, 27945, 0, 27947, 27954, 0, 0, 0, 0, 27960, 27963, 0, 0, 0, 0, 0, 0, 0, 0, 27964, 27965, 0, 0, 0, 27967, 0, 27969, 27975, 0, 27976, 27977, 0, 27981, 0, 27983, 28051, 28052, 0, 0, 0, 0, 0, 28056, 0, 0, 0, 0, 0, 0, 28058, 28059, 0, 0, 28061, 0, 0, 0, 0, 0, 0, 0, 28063, 0, 0, 0, 0, 0, 0, 28066, 0, 0, 0, 0, 0, 0, 28069, 28070, 28072, 0, 28073, 0, 0, 28074, 0, 0, 0, 0, 28075, 0, 0, 0, 0, 0, 0, 0, 28078, 0, 0, 0, 0, 28085, 0, 0, 0, 0, 28086, 0, 0, 0, 0, 0, 0, 28088, 0, 0, 0, 0, 0, 0, 0, 0, 28090, 0, 28097, 28114, 28115, 0, 0, 0, 0, 0, 0, 0, 28116, 0, 0, 0, 0, 0, 28118, 0, 28129, 0, 28131, 0, 0, 28135, 0, 0, 0, 28140, 28141, 0, 0, 0, 28146, 0, 0, 0, 0, 28152, 0, 0, 0, 0, 28155, 28157, 28161, 0, 0, 0, 0, 28166, 0, 28167, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28172, 0, 0, 0, 0, 0, 0, 28173, 0, 0, 28175, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28178, 28188, 0, 28190, 0, 0, 0, 0, 0, 28191, 0, 28193, 28206, 0, 0, 28207, 28209, 0, 28211, 0, 28213, 0, 0, 0, 28215, 28216, 28217, 0, 28222, 0, 28223, 28225, 0, 0, 0, 28226, 0, 28227, 28229, 28232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28235, 0, 28241, 0, 0, 28242, 0, 0, 0, 0, 28243, 0, 0, 0, 28245, 0, 0, 0, 28248, 28250, 0, 28251, 28252, 0, 0, 0, 0, 0, 0, 28253, 0, 0, 28254, 28255, 0, 0, 28256, 0, 0, 28258, 0, 0, 0, 0, 0, 28259, 0, 0, 28260, 0, 0, 28261, 0, 0, 0, 0, 28262, 28263, 0, 0, 28264, 0, 0, 0, 28266, 0, 28268, 28269, 0, 28270, 28272, 28274, 0, 28277, 28278, 0, 0, 0, 28279, 0, 28280, 28281, 28283, 0, 28292, 0, 28294, 0, 28297, 0, 0, 0, 0, 28299, 0, 0, 0, 0, 0, 28300, 0, 0, 0, 0, 0, 0, 0, 28301, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28302, 28303, 0, 0, 0, 0, 28304, 0, 0, 28305, 0, 28312, 0, 28313, 28314, 0, 0, 0, 0, 0, 0, 28315, 0, 0, 0, 28320, 28321, 0, 0, 28328, 0, 0, 0, 28329, 28338, 0, 28339, 0, 0, 28344, 0, 0, 0, 0, 0, 0, 0, 0, 28347, 0, 0, 0, 0, 0, 0, 0, 0, 28348, 0, 0, 0, 0, 0, 28411, 0, 28412, 28413, 0, 28416, 0, 0, 0, 28420, 0, 0, 0, 0, 0, 28421, 0, 0, 0, 0, 28423, 0, 0, 0, 28424, 0, 0, 28428, 0, 0, 0, 0, 0, 28429, 0, 0, 0, 28431, 28434, 0, 28458, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28464, 0, 0, 0, 0, 28465, 0, 28467, 0, 0, 0, 0, 0, 0, 28471, 0, 0, 0, 0, 28474, 0, 28480, 0, 28481, 0, 0, 28485, 0, 0, 0, 0, 28486, 28488, 0, 0, 28489, 0, 0, 0, 0, 28492, 0, 0, 0, 28495, 0, 28497, 0, 28499, 0, 0, 0, 0, 28500, 0, 0, 28502, 28503, 0, 0, 0, 28508, 0, 0, 0, 28510, 0, 0, 28512, 28513, 28514, 28521, 0, 28526, 0, 28527, 28528, 0, 0, 0, 0, 28529, 0, 0, 28532, 0, 0, 28537, 28538, 0, 0, 0, 28539, 0, 28548, 0, 28553, 28554, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28560, 28563, 0, 0, 28564, 0, 0, 0, 0, 28565, 0, 0, 0, 0, 0, 0, 0, 28566, 28568, 0, 0, 0, 0, 0, 0, 28569, 0, 0, 0, 28570, 0, 28572, 28573, 0, 0, 0, 0, 28575, 0, 0, 0, 0, 28576, 28581, 28588, 0, 0, 28589, 0, 0, 0, 28590, 28595, 0, 28598, 0, 0, 28601, 0, 0, 28605, 0, 0, 0, 0, 28614, 28615, 28619, 0, 0, 0, 0, 0, 0, 28620, 0, 28626, 0, 0, 28628, 0, 28631, 0, 28632, 0, 0, 0, 0, 0, 0, 28635, 0, 0, 0, 28637, 28638, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28639, 0, 28643, 0, 0, 28652, 0, 0, 0, 28662, 0, 28670, 28671, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28672, 28673, 28675, 28676, 0, 0, 0, 0, 0, 0, 0, 28691, 0, 0, 0, 28695, 0, 0, 0, 28696, 0, 28697, 28698, 0, 28705, 0, 28707, 28708, 28710, 0, 0, 0, 0, 0, 0, 0, 28711, 28728, 0, 0, 0, 28736, 0, 0, 0, 28737, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28738, 0, 28739, 0, 28741, 0, 0, 28742, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28745, 0, 0, 0, 0, 0, 0, 28749, 28750, 28752, 28754, 28756, 0, 28757, 0, 0, 0, 0, 28759, 28760, 0, 0, 0, 0, 0, 0, 28762, 0, 0, 0, 28764, 0, 0, 0, 0, 0, 0, 28766, 0, 28767, 28768, 0, 0, 0, 0, 28769, 28770, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28772, 0, 28773, 0, 28782, 0, 0, 0, 0, 0, 0, 28784, 0, 28785, 0, 28786, 0, 0, 0, 28787, 0, 0, 0, 28797, 0, 0, 0, 0, 0, 0, 28799, 0, 0, 28801, 0, 0, 0, 0, 28802, 0, 28805, 0, 0, 28806, 0, 0, 28807, 0, 0, 0, 0, 0, 0, 0, 28808, 0, 0, 0, 0, 0, 28810, 28812, 0, 0, 28816, 28819, 0, 0, 28821, 0, 28826, 0, 0, 0, 28842, 28852, 0, 0, 28853, 0, 28854, 28855, 0, 0, 0, 28857, 0, 0, 0, 28858, 0, 28867, 28868, 28869, 0, 0, 0, 28874, 28880, 28882, 28890, 28892, 0, 0, 0, 0, 0, 0, 0, 28895, 0, 0, 0, 28898, 28899, 0, 0, 0, 28900, 0, 0, 28904, 0, 28906, 0, 0, 0, 0, 28907, 0, 0, 0, 0, 0, 0, 28908, 0, 0, 0, 28910, 0, 28914, 0, 0, 0, 0, 0, 0, 0, 28915, 28916, 28919, 0, 0, 28920, 0, 28921, 0, 0, 0, 0, 0, 0, 0, 0, 28924, 0, 0, 0, 0, 28926, 28929, 0, 0, 0, 28930, 0, 28936, 0, 28939, 0, 0, 0, 0, 28942, 0, 0, 0, 0, 0, 0, 28956, 0, 0, 0, 28966, 0, 0, 0, 0, 28967, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28968, 0, 28971, 0, 28975, 28976, 0, 28982, 28983, 0, 0, 28984, 28989, 28996, 28997, 28998, 0, 0, 0, 0, 0, 0, 28999, 0, 0, 0, 0, 0, 29000, 0, 29001, 0, 0, 0, 29009, 0, 0, 29011, 0, 0, 29021, 0, 0, 0, 0, 29024, 0, 29025, 0, 0, 0, 0, 0, 29026, 0, 0, 0, 29036, 0, 0, 0, 29037, 0, 0, 0, 0, 29038, 0, 29045, 0, 29047, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29051, 0, 0, 0, 29054, 29056, 29062, 0, 29070, 29082, 0, 0, 0, 29083, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29084, 0, 0, 0, 0, 29085, 29088, 0, 0, 0, 0, 0, 0, 0, 29090, 29097, 0, 0, 0, 29103, 0, 0, 0, 0, 0, 0, 0, 0, 29105, 0, 0, 0, 0, 0, 29107, 0, 29109, 0, 0, 0, 29115, 0, 0, 29120, 0, 0, 29138, 29140, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29152, 0, 29160, 29174, 0, 29176, 0, 0, 29180, 0, 29181, 0, 0, 0, 0, 0, 0, 0, 0, 29228, 0, 0, 29229, 0, 0, 29230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29234, 0, 0, 0, 29241, 0, 29245, 0, 29248, 0, 29250, 29256, 29280, 0, 29282, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29285, 0, 0, 29286, 29291, 29292, 0, 0, 0, 0, 29294, 0, 29295, 0, 0, 0, 0, 0, 29296, 29297, 29298, 29300, 0, 29302, 0, 0, 29304, 29307, 0, 29312, 0, 0, 0, 29322, 0, 0, 29323, 0, 0, 29324, 29326, 29328, 0, 29335, 0, 0, 0, 0, 0, 0, 0, 29338, 29339, 0, 0, 0, 0, 0, 29341, 29343, 0, 0, 0, 0, 29344, 0, 0, 0, 0, 0, 29345, 0, 0, 0, 0, 29346, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29347, 29348, 29349, 0, 0, 29354, 0, 0, 29355, 0, 0, 0, 0, 0, 0, 0, 0, 29357, 0, 0, 0, 0, 29364, 0, 29365, 0, 0, 0, 0, 0, 0, 0, 29366, 0, 0, 29368, 0, 0, 0, 0, 0, 0, 0, 0, 29378, 0, 29381, 0, 0, 0, 0, 0, 0, 0, 0, 29386, 0, 0, 0, 0, 0, 0, 29389, 0, 0, 0, 29390, 0, 0, 29391, 29397, 0, 29398, 29412, 29414, 29418, 29419, 0, 0, 0, 0, 0, 0, 0, 29420, 0, 0, 0, 0, 0, 0, 0, 29423, 0, 0, 0, 29435, 0, 0, 0, 29437, 0, 0, 29439, 0, 29441, 0, 0, 0, 0, 29443, 0, 29446, 29450, 29452, 0, 0, 0, 0, 0, 29456, 0, 0, 0, 0, 0, 29461, 0, 0, 0, 29464, 0, 0, 0, 0, 0, 0, 0, 0, 29468, 0, 29473, 0, 0, 0, 29486, 0, 0, 0, 29490, 0, 0, 0, 29491, 29492, 0, 0, 29497, 0, 0, 0, 29498, 0, 29499, 0, 29502, 29505, 0, 29509, 0, 0, 0, 29510, 0, 0, 0, 29512, 0, 0, 0, 29516, 0, 0, 0, 0, 0, 0, 0, 0, 29518, 0, 29519, 0, 0, 0, 0, 0, 29520, 29521, 29529, 0, 0, 0, 0, 0, 0, 0, 0, 29530, 0, 0, 29531, 29538, 0, 29540, 0, 0, 0, 29542, 0, 29543, 29544, 29547, 0, 0, 29548, 0, 0, 0, 29549, 0, 0, 0, 29550, 0, 0, 29552, 0, 0, 0, 0, 29558, 29561, 0, 29562, 29564, 0, 0, 29565, 0, 0, 29566, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29578, 29584, 29586, 29591, 0, 0, 0, 0, 29593, 29594, 0, 0, 29597, 0, 0, 29613, 0, 29614, 0, 29615, 0, 0, 0, 0, 29616, 29617, 0, 0, 29625, 0, 0, 0, 29632, 0, 0, 0, 0, 0, 0, 0, 29633, 0, 0, 0, 0, 0, 29634, 29635, 29637, 0, 29638, 0, 29641, 29643, 0, 0, 0, 0, 0, 0, 29644, 0, 29645, 0, 29649, 0, 0, 0, 29650, 0, 29653, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29656, 29659, 0, 0, 29660, 0, 0, 0, 29661, 0, 0, 0, 0, 0, 29664, 0, 0, 0, 29671, 29673, 0, 0, 0, 0, 0, 0, 0, 29675, 0, 29677, 29679, 0, 0, 29684, 0, 0, 0, 0, 0, 29685, 0, 0, 0, 29687, 0, 0, 0, 29688, 0, 29689, 29690, 29700, 0, 29701, 0, 0, 0, 29702, 0, 29706, 0, 0, 0, 0, 0, 0, 0, 29720, 0, 29721, 0, 29727, 0, 29733, 29734, 0, 29750, 29761, 0, 29763, 0, 0, 0, 0, 0, 29764, 0, 0, 29765, 0, 0, 0, 29771, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29772, 0, 0, 0, 29773, 29774, 29775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29822, 0, 0, 0, 29824, 0, 29825, 0, 0, 0, 0, 0, 29827, 0, 0, 0, 0, 0, 0, 0, 0, 29829, 0, 29832, 29834, 0, 0, 29835, 0, 0, 29837, 29838, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29843, 0, 0, 0, 0, 29844, 29845, 0, 0, 0, 0, 0, 0, 0, 0, 0, 29849, 0, 0, 29869, 29872, 29890, 29905, 0, 0, 0, 0, 0, 29907, 29921, 0, 29922, 0, 0, 29923, 29926, 29944, 29946, 0, 0, 0, 0, 0, 0, 0, 29947, 29948, 0, 0, 0, 29951, 0, 0, 0, 0, 0, 29953, 0, 0, 29956, 0, 29957, 0, 0, 29962, 0, 0, 0, 0, 29971, 0, 0, 0, 29972, 0, 0, 0, 0, 0, 29978, 0, 29979, 29992, 30007, 30008, 30010, 0, 0, 0, 30013, 0, 0, 0, 0, 30014, 30016, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30017, 0, 0, 0, 0, 0, 30023, 30031, 0, 0, 30033, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30034, 0, 30038, 0, 30039, 0, 30040, 0, 0, 0, 0, 0, 0, 30067, 30068, 0, 0, 0, 30069, 0, 30072, 0, 0, 0, 30073, 0, 0, 0, 0, 30075, 0, 0, 0, 0, 0, 0, 30079, 0, 0, 30080, 0, 0, 0, 0, 0, 30082, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30084, 30090, 0, 0, 30091, 0, 0, 0, 0, 30098, 30118, 0, 30119, 0, 30121, 30130, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30131, 30132, 30133, 0, 0, 0, 0, 0, 0, 30135, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30136, 0, 0, 30137, 30138, 0, 0, 0, 30139, 30146, 0, 0, 0, 0, 0, 30147, 0, 0, 30148, 30151, 0, 0, 0, 30168, 0, 30172, 30173, 0, 0, 0, 0, 0, 0, 0, 0, 30180, 30181, 0, 30192, 0, 0, 0, 0, 0, 0, 0, 30194, 30196, 0, 0, 30199, 0, 0, 30202, 0, 0, 0, 0, 30203, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30213, 0, 0, 0, 30216, 0, 0, 30217, 0, 0, 0, 30218, 0, 0, 0, 0, 30219, 0, 30220, 0, 30222, 30227, 0, 0, 0, 0, 0, 30231, 0, 0, 30233, 30235, 0, 0, 0, 0, 30238, 0, 30240, 30243, 30245, 0, 30250, 30252, 0, 0, 0, 30269, 0, 0, 30271, 30272, 0, 0, 0, 30278, 30280, 0, 0, 30282, 0, 30284, 0, 30294, 0, 0, 0, 0, 30295, 30296, 0, 0, 0, 0, 0, 30298, 30299, 30302, 30304, 30306, 0, 0, 0, 0, 0, 0, 30316, 30317, 0, 0, 0, 30318, 0, 0, 0, 30319, 0, 30320, 30322, 30326, 0, 0, 0, 0, 0, 30327, 0, 30332, 30348, 30349, 0, 0, 30356, 0, 0, 0, 0, 0, 0, 0, 0, 30357, 0, 30358, 0, 30359, 30360, 0, 0, 30365, 30366, 30378, 0, 0, 0, 0, 30379, 0, 0, 30381, 0, 30385, 0, 30388, 30397, 0, 0, 0, 30401, 0, 0, 0, 0, 30403, 0, 0, 0, 0, 0, 30404, 0, 0, 30405, 0, 30406, 30408, 0, 30409, 0, 30410, 0, 0, 0, 30417, 0, 0, 30418, 30419, 0, 30420, 0, 30424, 0, 0, 0, 30427, 30430, 30432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30433, 0, 0, 0, 0, 0, 0, 0, 30436, 0, 30437, 30438, 0, 30441, 30442, 0, 0, 0, 30445, 0, 0, 0, 0, 30452, 30456, 30457, 0, 0, 0, 30458, 0, 30464, 0, 0, 0, 0, 0, 0, 30467, 0, 30469, 0, 0, 0, 0, 0, 30477, 0, 0, 30484, 0, 0, 0, 0, 0, 30485, 0, 0, 0, 0, 0, 30486, 30487, 30497, 30498, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30505, 0, 30508, 0, 0, 0, 30509, 30510, 0, 30514, 30516, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30523, 0, 30524, 0, 30525, 0, 0, 0, 0, 30537, 0, 0, 30538, 0, 0, 0, 0, 0, 30553, 0, 0, 30555, 30556, 30558, 30559, 30560, 0, 0, 30561, 0, 30562, 0, 0, 0, 0, 0, 0, 0, 0, 30563, 30570, 30571, 0, 30586, 30587, 0, 0, 30590, 0, 0, 30594, 0, 0, 0, 0, 30611, 30612, 30623, 30634, 0, 0, 30636, 30640, 30655, 30656, 0, 30657, 0, 0, 30658, 30669, 0, 30670, 0, 30676, 30678, 0, 0, 0, 0, 0, 0, 0, 30679, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30695, 0, 0, 30698, 0, 0, 0, 0, 30700, 0, 0, 0, 0, 30701, 0, 30702, 30703, 0, 0, 0, 0, 30707, 0, 0, 0, 30709, 0, 0, 30710, 30719, 30729, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30731, 0, 0, 30733, 0, 0, 0, 30734, 0, 0, 0, 0, 0, 30736, 30737, 0, 0, 0, 30740, 0, 0, 0, 30743, 0, 30746, 0, 30747, 30748, 0, 0, 30751, 30752, 30753, 0, 0, 0, 30754, 0, 0, 30760, 0, 0, 0, 0, 0, 0, 0, 30763, 0, 30764, 0, 0, 30766, 0, 30769, 30770, 30771, 30774, 30777, 0, 0, 30779, 30780, 30781, 0, 0, 0, 0, 30790, 0, 0, 0, 30792, 0, 0, 0, 0, 30810, 0, 0, 0, 0, 0, 0, 0, 30812, 30819, 0, 0, 30823, 30824, 0, 30825, 0, 30827, 0, 0, 0, 0, 0, 0, 30828, 0, 0, 30830, 0, 0, 0, 30834, 0, 30835, 0, 30837, 30838, 0, 30845, 0, 0, 0, 0, 0, 30846, 30847, 0, 0, 30849, 0, 30851, 0, 0, 0, 0, 0, 30852, 30858, 0, 0, 30859, 0, 30865, 0, 0, 30866, 0, 0, 30868, 0, 0, 30869, 0, 0, 0, 30881, 30883, 0, 0, 0, 0, 0, 30889, 0, 30891, 0, 0, 0, 0, 30894, 0, 30895, 0, 30897, 0, 30898, 0, 0, 0, 30904, 30906, 0, 30909, 0, 0, 0, 0, 0, 0, 30910, 0, 0, 0, 30915, 30933, 30942, 0, 0, 0, 0, 30943, 0, 0, 30945, 0, 0, 0, 0, 0, 0, 30946, 0, 0, 30947, 0, 0, 30955, 30956, 0, 0, 30960, 0, 0, 30961, 30962, 30966, 0, 0, 30969, 30974, 0, 0, 0, 30976, 0, 0, 30977, 0, 30978, 30982, 0, 0, 0, 0, 0, 0, 0, 30994, 30995, 30998, 0, 31000, 0, 0, 31001, 0, 0, 31003, 31005, 0, 0, 31006, 31011, 0, 0, 31014, 0, 31016, 0, 0, 0, 0, 31018, 0, 0, 31020, 31023, 31024, 31025, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31027, 31028, 31029, 0, 0, 0, 0, 0, 0, 31032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31036, 31037, 31038, 0, 0, 0, 31041, 31043, 31045, 0, 31047, 0, 0, 0, 31048, 0, 31049, 0, 0, 0, 31053, 31054, 31055, 0, 0, 31063, 0, 0, 0, 0, 0, 31066, 0, 31068, 31071, 0, 0, 0, 31072, 31073, 0, 0, 0, 0, 31075, 0, 0, 31076, 0, 0, 0, 31077, 31079, 0, 31080, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31087, 0, 31142, 0, 31144, 0, 0, 31145, 31146, 31147, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31149, 0, 31151, 31152, 0, 0, 0, 0, 0, 0, 0, 31162, 31171, 31174, 31175, 0, 0, 0, 31176, 0, 0, 0, 0, 0, 0, 0, 31179, 0, 0, 0, 31186, 0, 0, 0, 31192, 31195, 0, 0, 31196, 0, 0, 0, 0, 0, 0, 0, 0, 31198, 0, 0, 0, 0, 0, 31199, 0, 0, 0, 31205, 0, 0, 0, 0, 31211, 31215, 0, 0, 0, 0, 31231, 0, 31232, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31233, 31236, 31253, 0, 31254, 0, 0, 0, 0, 0, 0, 31255, 0, 0, 31257, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31258, 31259, 0, 0, 31260, 0, 31261, 0, 0, 0, 0, 0, 31262, 31263, 0, 0, 31264, 0, 31266, 0, 31267, 0, 0, 0, 0, 0, 31281, 0, 31282, 0, 31284, 0, 0, 31285, 31287, 31288, 0, 0, 31290, 0, 0, 0, 31292, 31295, 0, 31299, 0, 31300, 0, 0, 0, 0, 0, 31302, 0, 0, 0, 0, 31303, 0, 0, 0, 0, 0, 0, 31304, 0, 0, 0, 0, 0, 31305, 31308, 31309, 31315, 0, 31317, 0, 0, 0, 0, 0, 31323, 0, 31324, 0, 0, 0, 0, 0, 31325, 31327, 0, 0, 31331, 0, 0, 0, 0, 0, 31333, 0, 0, 0, 0, 0, 31336, 0, 0, 31337, 0, 0, 0, 0, 0, 0, 31338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31339, 0, 0, 0, 0, 0, 0, 0, 31342, 0, 0, 0, 0, 31345, 0, 0, 0, 0, 0, 0, 0, 0, 31347, 0, 0, 0, 0, 0, 0, 31348, 0, 0, 31350, 31351, 0, 31352, 0, 0, 31354, 0, 0, 0, 0, 31355, 0, 0, 31356, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31363, 0, 31372, 0, 0, 31373, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31376, 0, 31388, 0, 31389, 0, 31392, 0, 31401, 0, 31405, 31407, 31408, 0, 31409, 0, 0, 0, 0, 0, 0, 31413, 31415, 0, 0, 0, 31416, 31418, 0, 0, 0, 0, 0, 0, 31422, 31423, 0, 0, 31424, 0, 31425, 31432, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31433, 0, 0, 0, 0, 0, 0, 0, 0, 31434, 0, 0, 0, 0, 0, 0, 31435, 0, 0, 0, 0, 31438, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31442, 0, 31444, 0, 31448, 0, 0, 31451, 0, 0, 0, 0, 31452, 0, 31461, 31465, 0, 0, 31466, 0, 0, 31467, 0, 0, 31468, 0, 0, 0, 31469, 31473, 0, 31476, 0, 0, 0, 0, 31489, 31490, 0, 0, 0, 0, 0, 0, 0, 31492, 31493, 31494, 0, 0, 0, 0, 31501, 31504, 31505, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31509, 0, 0, 0, 0, 31510, 0, 0, 31511, 0, 0, 31513, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31514, 0, 31522, 31536, 31539, 31540, 0, 31541, 0, 0, 0, 0, 0, 0, 31546, 31553, 31559, 0, 0, 0, 31560, 31561, 31562, 0, 0, 31564, 31567, 0, 31569, 0, 0, 0, 31570, 0, 0, 0, 0, 31571, 0, 0, 0, 0, 0, 0, 31572, 31574, 31580, 31581, 0, 0, 31582, 31584, 31585, 31586, 31595, 0, 31596, 0, 0, 0, 0, 31597, 0, 31599, 0, 31600, 31601, 0, 0, 31603, 31604, 0, 0, 31608, 31610, 0, 0, 0, 31611, 0, 31615, 0, 0, 0, 0, 31616, 0, 0, 0, 0, 0, 0, 31617, 0, 0, 0, 0, 0, 31618, 0, 0, 0, 0, 0, 0, 31621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31622, 31625, 0, 0, 0, 0, 31627, 0, 31641, 0, 0, 31642, 0, 0, 31643, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31644, 0, 31646, 0, 0, 0, 0, 31648, 0, 0, 0, 31652, 0, 0, 0, 31657, 0, 0, 31676, 0, 0, 0, 0, 0, 0, 0, 31689, 31691, 31692, 0, 31694, 0, 0, 0, 31696, 0, 31702, 0, 31703, 0, } var kStaticDictionaryWords = [31705]dictWord{ dictWord{0, 0, 0}, dictWord{8, 0, 1002}, dictWord{136, 0, 1015}, dictWord{4, 0, 683}, dictWord{4, 10, 325}, dictWord{138, 10, 125}, dictWord{7, 11, 572}, dictWord{ 9, 11, 592, }, dictWord{11, 11, 680}, dictWord{11, 11, 842}, dictWord{11, 11, 924}, dictWord{12, 11, 356}, dictWord{12, 11, 550}, dictWord{13, 11, 317}, dictWord{13, 11, 370}, dictWord{13, 11, 469}, dictWord{13, 11, 471}, dictWord{14, 11, 397}, dictWord{18, 11, 69}, dictWord{146, 11, 145}, dictWord{ 134, 0, 1265, }, dictWord{136, 11, 534}, dictWord{134, 0, 1431}, dictWord{11, 0, 138}, dictWord{140, 0, 40}, dictWord{4, 0, 155}, dictWord{7, 0, 1689}, dictWord{ 4, 10, 718, }, dictWord{135, 10, 1216}, dictWord{4, 0, 245}, dictWord{5, 0, 151}, dictWord{5, 0, 741}, dictWord{6, 0, 1147}, dictWord{7, 0, 498}, dictWord{7, 0, 870}, dictWord{7, 0, 1542}, dictWord{12, 0, 213}, dictWord{14, 0, 36}, dictWord{14, 0, 391}, dictWord{17, 0, 111}, dictWord{18, 0, 6}, dictWord{18, 0, 46}, dictWord{ 18, 0, 151, }, dictWord{19, 0, 36}, dictWord{20, 0, 32}, dictWord{20, 0, 56}, dictWord{20, 0, 69}, dictWord{20, 0, 102}, dictWord{21, 0, 4}, dictWord{22, 0, 8}, dictWord{ 22, 0, 10, }, dictWord{22, 0, 14}, dictWord{150, 0, 31}, dictWord{4, 0, 624}, dictWord{135, 0, 1752}, dictWord{5, 10, 124}, dictWord{5, 10, 144}, dictWord{6, 10, 548}, dictWord{7, 10, 15}, dictWord{7, 10, 153}, dictWord{137, 10, 629}, dictWord{6, 0, 503}, dictWord{9, 0, 586}, dictWord{13, 0, 468}, dictWord{14, 0, 66}, dictWord{ 16, 0, 58, }, dictWord{7, 10, 1531}, dictWord{8, 10, 416}, dictWord{9, 10, 275}, dictWord{10, 10, 100}, dictWord{11, 10, 658}, dictWord{11, 10, 979}, dictWord{ 12, 10, 86, }, dictWord{14, 10, 207}, dictWord{15, 10, 20}, dictWord{143, 10, 25}, dictWord{5, 0, 603}, dictWord{7, 0, 1212}, dictWord{9, 0, 565}, dictWord{ 14, 0, 301, }, dictWord{5, 10, 915}, dictWord{6, 10, 1783}, dictWord{7, 10, 211}, dictWord{7, 10, 1353}, dictWord{9, 10, 83}, dictWord{10, 10, 376}, dictWord{ 10, 10, 431, }, dictWord{11, 10, 543}, dictWord{12, 10, 664}, dictWord{13, 10, 280}, dictWord{13, 10, 428}, dictWord{14, 10, 128}, dictWord{17, 10, 52}, dictWord{ 145, 10, 81, }, dictWord{4, 0, 492}, dictWord{133, 0, 451}, dictWord{135, 0, 835}, dictWord{141, 0, 70}, dictWord{132, 0, 539}, dictWord{7, 11, 748}, dictWord{ 139, 11, 700, }, dictWord{7, 11, 1517}, dictWord{11, 11, 597}, dictWord{14, 11, 76}, dictWord{14, 11, 335}, dictWord{148, 11, 33}, dictWord{6, 0, 113}, dictWord{135, 0, 436}, dictWord{4, 10, 338}, dictWord{133, 10, 400}, dictWord{136, 0, 718}, dictWord{133, 11, 127}, dictWord{133, 11, 418}, dictWord{ 6, 0, 1505, }, dictWord{7, 0, 520}, dictWord{6, 11, 198}, dictWord{11, 10, 892}, dictWord{140, 11, 83}, dictWord{4, 10, 221}, dictWord{5, 10, 659}, dictWord{ 5, 10, 989, }, dictWord{7, 10, 697}, dictWord{7, 10, 1211}, dictWord{138, 10, 284}, dictWord{135, 0, 1070}, dictWord{5, 11, 276}, dictWord{6, 11, 55}, dictWord{ 135, 11, 1369, }, dictWord{134, 0, 1515}, dictWord{6, 11, 1752}, dictWord{136, 11, 726}, dictWord{138, 10, 507}, dictWord{15, 0, 78}, dictWord{4, 10, 188}, dictWord{135, 10, 805}, dictWord{5, 10, 884}, dictWord{139, 10, 991}, dictWord{133, 11, 764}, dictWord{134, 10, 1653}, dictWord{6, 11, 309}, dictWord{ 7, 11, 331, }, dictWord{138, 11, 550}, dictWord{135, 11, 1861}, dictWord{132, 11, 348}, dictWord{135, 11, 986}, dictWord{135, 11, 1573}, dictWord{ 12, 0, 610, }, dictWord{13, 0, 431}, dictWord{144, 0, 59}, dictWord{9, 11, 799}, dictWord{140, 10, 166}, dictWord{134, 0, 1530}, dictWord{132, 0, 750}, dictWord{132, 0, 307}, dictWord{133, 0, 964}, dictWord{6, 11, 194}, dictWord{7, 11, 133}, dictWord{10, 11, 493}, dictWord{10, 11, 570}, dictWord{139, 11, 664}, dictWord{5, 11, 24}, dictWord{5, 11, 569}, dictWord{6, 11, 3}, dictWord{6, 11, 119}, dictWord{6, 11, 143}, dictWord{6, 11, 440}, dictWord{7, 11, 295}, dictWord{ 7, 11, 599, }, dictWord{7, 11, 1686}, dictWord{7, 11, 1854}, dictWord{8, 11, 424}, dictWord{9, 11, 43}, dictWord{9, 11, 584}, dictWord{9, 11, 760}, dictWord{ 10, 11, 148, }, dictWord{10, 11, 328}, dictWord{11, 11, 159}, dictWord{11, 11, 253}, dictWord{11, 11, 506}, dictWord{12, 11, 487}, dictWord{12, 11, 531}, dictWord{144, 11, 33}, dictWord{136, 10, 760}, dictWord{5, 11, 14}, dictWord{5, 11, 892}, dictWord{6, 11, 283}, dictWord{7, 11, 234}, dictWord{136, 11, 537}, dictWord{135, 11, 1251}, dictWord{4, 11, 126}, dictWord{8, 11, 635}, dictWord{147, 11, 34}, dictWord{4, 11, 316}, dictWord{135, 11, 1561}, dictWord{ 6, 0, 999, }, dictWord{6, 0, 1310}, dictWord{137, 11, 861}, dictWord{4, 11, 64}, dictWord{5, 11, 352}, dictWord{5, 11, 720}, dictWord{6, 11, 368}, dictWord{ 139, 11, 359, }, dictWord{4, 0, 75}, dictWord{5, 0, 180}, dictWord{6, 0, 500}, dictWord{7, 0, 58}, dictWord{7, 0, 710}, dictWord{10, 0, 645}, dictWord{136, 10, 770}, dictWord{133, 0, 649}, dictWord{6, 0, 276}, dictWord{7, 0, 282}, dictWord{7, 0, 879}, dictWord{7, 0, 924}, dictWord{8, 0, 459}, dictWord{9, 0, 599}, dictWord{9, 0, 754}, dictWord{11, 0, 574}, dictWord{12, 0, 128}, dictWord{12, 0, 494}, dictWord{13, 0, 52}, dictWord{13, 0, 301}, dictWord{15, 0, 30}, dictWord{143, 0, 132}, dictWord{132, 0, 200}, dictWord{4, 10, 89}, dictWord{5, 10, 489}, dictWord{6, 10, 315}, dictWord{7, 10, 553}, dictWord{7, 10, 1745}, dictWord{138, 10, 243}, dictWord{135, 11, 1050}, dictWord{7, 0, 1621}, dictWord{6, 10, 1658}, dictWord{9, 10, 3}, dictWord{10, 10, 154}, dictWord{11, 10, 641}, dictWord{13, 10, 85}, dictWord{13, 10, 201}, dictWord{141, 10, 346}, dictWord{6, 11, 175}, dictWord{137, 11, 289}, dictWord{5, 11, 432}, dictWord{133, 11, 913}, dictWord{ 6, 0, 225, }, dictWord{137, 0, 211}, dictWord{7, 0, 718}, dictWord{8, 0, 687}, dictWord{139, 0, 374}, dictWord{4, 10, 166}, dictWord{133, 10, 505}, dictWord{ 9, 0, 110, }, dictWord{134, 10, 1670}, dictWord{8, 0, 58}, dictWord{9, 0, 724}, dictWord{11, 0, 809}, dictWord{13, 0, 113}, dictWord{145, 0, 72}, dictWord{6, 0, 345}, dictWord{7, 0, 1247}, dictWord{144, 11, 82}, dictWord{5, 11, 931}, dictWord{134, 11, 1698}, dictWord{8, 0, 767}, dictWord{8, 0, 803}, dictWord{9, 0, 301}, dictWord{137, 0, 903}, dictWord{139, 0, 203}, dictWord{134, 0, 1154}, dictWord{7, 0, 1949}, dictWord{136, 0, 674}, dictWord{134, 0, 259}, dictWord{ 135, 0, 1275, }, dictWord{5, 11, 774}, dictWord{6, 11, 1637}, dictWord{6, 11, 1686}, dictWord{134, 11, 1751}, dictWord{134, 0, 1231}, dictWord{7, 10, 445}, dictWord{8, 10, 307}, dictWord{8, 10, 704}, dictWord{10, 10, 41}, dictWord{10, 10, 439}, dictWord{11, 10, 237}, dictWord{11, 10, 622}, dictWord{140, 10, 201}, dictWord{136, 0, 254}, dictWord{6, 11, 260}, dictWord{135, 11, 1484}, dictWord{139, 0, 277}, dictWord{135, 10, 1977}, dictWord{4, 10, 189}, dictWord{ 5, 10, 713, }, dictWord{6, 11, 573}, dictWord{136, 10, 57}, dictWord{138, 10, 371}, dictWord{132, 10, 552}, dictWord{134, 11, 344}, dictWord{133, 0, 248}, dictWord{9, 0, 800}, dictWord{10, 0, 693}, dictWord{11, 0, 482}, dictWord{11, 0, 734}, dictWord{11, 0, 789}, dictWord{134, 11, 240}, dictWord{4, 0, 116}, dictWord{ 5, 0, 95, }, dictWord{5, 0, 445}, dictWord{7, 0, 1688}, dictWord{8, 0, 29}, dictWord{9, 0, 272}, dictWord{11, 0, 509}, dictWord{11, 0, 915}, dictWord{4, 11, 292}, dictWord{4, 11, 736}, dictWord{5, 11, 871}, dictWord{6, 11, 171}, dictWord{6, 11, 1689}, dictWord{7, 11, 1324}, dictWord{7, 11, 1944}, dictWord{9, 11, 415}, dictWord{9, 11, 580}, dictWord{14, 11, 230}, dictWord{146, 11, 68}, dictWord{7, 0, 490}, dictWord{13, 0, 100}, dictWord{143, 0, 75}, dictWord{135, 0, 1641}, dictWord{133, 0, 543}, dictWord{7, 11, 209}, dictWord{8, 11, 661}, dictWord{10, 11, 42}, dictWord{11, 11, 58}, dictWord{12, 11, 58}, dictWord{12, 11, 118}, dictWord{141, 11, 32}, dictWord{5, 0, 181}, dictWord{8, 0, 41}, dictWord{6, 11, 63}, dictWord{135, 11, 920}, dictWord{133, 0, 657}, dictWord{133, 11, 793}, dictWord{138, 0, 709}, dictWord{7, 0, 25}, dictWord{8, 0, 202}, dictWord{138, 0, 536}, dictWord{5, 11, 665}, dictWord{135, 10, 1788}, dictWord{145, 10, 49}, dictWord{9, 0, 423}, dictWord{140, 0, 89}, dictWord{5, 11, 67}, dictWord{6, 11, 62}, dictWord{6, 11, 374}, dictWord{135, 11, 1391}, dictWord{8, 0, 113}, dictWord{ 9, 0, 877, }, dictWord{10, 0, 554}, dictWord{11, 0, 83}, dictWord{12, 0, 136}, dictWord{19, 0, 109}, dictWord{9, 11, 790}, dictWord{140, 11, 47}, dictWord{ 138, 10, 661, }, dictWord{4, 0, 963}, dictWord{10, 0, 927}, dictWord{14, 0, 442}, dictWord{135, 10, 1945}, dictWord{133, 0, 976}, dictWord{132, 0, 206}, dictWord{ 4, 11, 391, }, dictWord{135, 11, 1169}, dictWord{134, 0, 2002}, dictWord{6, 0, 696}, dictWord{134, 0, 1008}, dictWord{134, 0, 1170}, dictWord{132, 11, 271}, dictWord{7, 0, 13}, dictWord{8, 0, 226}, dictWord{10, 0, 537}, dictWord{11, 0, 570}, dictWord{11, 0, 605}, dictWord{11, 0, 799}, dictWord{11, 0, 804}, dictWord{ 12, 0, 85, }, dictWord{12, 0, 516}, dictWord{12, 0, 623}, dictWord{13, 0, 112}, dictWord{13, 0, 361}, dictWord{14, 0, 77}, dictWord{14, 0, 78}, dictWord{17, 0, 28}, dictWord{19, 0, 110}, dictWord{140, 11, 314}, dictWord{132, 0, 769}, dictWord{134, 0, 1544}, dictWord{4, 0, 551}, dictWord{137, 0, 678}, dictWord{5, 10, 84}, dictWord{134, 10, 163}, dictWord{9, 0, 57}, dictWord{9, 0, 459}, dictWord{10, 0, 425}, dictWord{11, 0, 119}, dictWord{12, 0, 184}, dictWord{12, 0, 371}, dictWord{ 13, 0, 358, }, dictWord{145, 0, 51}, dictWord{5, 0, 188}, dictWord{5, 0, 814}, dictWord{8, 0, 10}, dictWord{9, 0, 421}, dictWord{9, 0, 729}, dictWord{10, 0, 609}, dictWord{11, 0, 689}, dictWord{4, 11, 253}, dictWord{5, 10, 410}, dictWord{5, 11, 544}, dictWord{7, 11, 300}, dictWord{137, 11, 340}, dictWord{134, 0, 624}, dictWord{138, 11, 321}, dictWord{135, 0, 1941}, dictWord{18, 0, 130}, dictWord{5, 10, 322}, dictWord{8, 10, 186}, dictWord{9, 10, 262}, dictWord{10, 10, 187}, dictWord{142, 10, 208}, dictWord{5, 11, 53}, dictWord{5, 11, 541}, dictWord{6, 11, 94}, dictWord{6, 11, 499}, dictWord{7, 11, 230}, dictWord{139, 11, 321}, dictWord{133, 10, 227}, dictWord{4, 0, 378}, dictWord{4, 11, 920}, dictWord{5, 11, 25}, dictWord{5, 11, 790}, dictWord{6, 11, 457}, dictWord{135, 11, 853}, dictWord{137, 0, 269}, dictWord{132, 0, 528}, dictWord{134, 0, 1146}, dictWord{7, 10, 1395}, dictWord{8, 10, 486}, dictWord{9, 10, 236}, dictWord{9, 10, 878}, dictWord{10, 10, 218}, dictWord{11, 10, 95}, dictWord{19, 10, 17}, dictWord{147, 10, 31}, dictWord{7, 10, 2043}, dictWord{8, 10, 672}, dictWord{ 141, 10, 448, }, dictWord{134, 0, 1105}, dictWord{134, 0, 1616}, dictWord{134, 11, 1765}, dictWord{140, 11, 163}, dictWord{5, 10, 412}, dictWord{133, 11, 822}, dictWord{132, 11, 634}, dictWord{6, 0, 656}, dictWord{134, 11, 1730}, dictWord{134, 0, 1940}, dictWord{5, 0, 104}, dictWord{6, 0, 173}, dictWord{ 135, 0, 1631, }, dictWord{136, 10, 562}, dictWord{6, 11, 36}, dictWord{7, 11, 658}, dictWord{8, 11, 454}, dictWord{147, 11, 86}, dictWord{5, 0, 457}, dictWord{ 134, 10, 1771, }, dictWord{7, 0, 810}, dictWord{8, 0, 138}, dictWord{8, 0, 342}, dictWord{9, 0, 84}, dictWord{10, 0, 193}, dictWord{11, 0, 883}, dictWord{140, 0, 359}, dictWord{9, 0, 620}, dictWord{135, 10, 1190}, dictWord{137, 10, 132}, dictWord{7, 11, 975}, dictWord{137, 11, 789}, dictWord{6, 0, 95}, dictWord{6, 0, 1934}, dictWord{136, 0, 967}, dictWord{141, 11, 335}, dictWord{6, 0, 406}, dictWord{10, 0, 409}, dictWord{10, 0, 447}, dictWord{11, 0, 44}, dictWord{140, 0, 100}, dictWord{4, 10, 317}, dictWord{135, 10, 1279}, dictWord{132, 0, 477}, dictWord{134, 0, 1268}, dictWord{6, 0, 1941}, dictWord{8, 0, 944}, dictWord{5, 10, 63}, dictWord{133, 10, 509}, dictWord{132, 0, 629}, dictWord{132, 11, 104}, dictWord{4, 0, 246}, dictWord{133, 0, 375}, dictWord{6, 0, 1636}, dictWord{ 132, 10, 288, }, dictWord{135, 11, 1614}, dictWord{9, 0, 49}, dictWord{10, 0, 774}, dictWord{8, 10, 89}, dictWord{8, 10, 620}, dictWord{11, 10, 628}, dictWord{ 12, 10, 322, }, dictWord{143, 10, 124}, dictWord{4, 0, 282}, dictWord{7, 0, 1034}, dictWord{11, 0, 398}, dictWord{11, 0, 634}, dictWord{12, 0, 1}, dictWord{12, 0, 79}, dictWord{12, 0, 544}, dictWord{14, 0, 237}, dictWord{17, 0, 10}, dictWord{146, 0, 20}, dictWord{132, 0, 824}, dictWord{7, 11, 45}, dictWord{9, 11, 542}, dictWord{ 9, 11, 566, }, dictWord{138, 11, 728}, dictWord{5, 0, 118}, dictWord{5, 0, 499}, dictWord{6, 0, 476}, dictWord{6, 0, 665}, dictWord{6, 0, 1176}, dictWord{ 6, 0, 1196, }, dictWord{7, 0, 600}, dictWord{7, 0, 888}, dictWord{135, 0, 1096}, dictWord{7, 0, 296}, dictWord{7, 0, 596}, dictWord{8, 0, 560}, dictWord{8, 0, 586}, dictWord{9, 0, 612}, dictWord{11, 0, 304}, dictWord{12, 0, 46}, dictWord{13, 0, 89}, dictWord{14, 0, 112}, dictWord{145, 0, 122}, dictWord{5, 0, 894}, dictWord{ 6, 0, 1772, }, dictWord{9, 0, 1009}, dictWord{138, 10, 120}, dictWord{5, 11, 533}, dictWord{7, 11, 755}, dictWord{138, 11, 780}, dictWord{151, 10, 1}, dictWord{ 6, 0, 1474, }, dictWord{7, 11, 87}, dictWord{142, 11, 288}, dictWord{139, 0, 366}, dictWord{137, 10, 461}, dictWord{7, 11, 988}, dictWord{7, 11, 1939}, dictWord{ 9, 11, 64, }, dictWord{9, 11, 502}, dictWord{12, 11, 7}, dictWord{12, 11, 34}, dictWord{13, 11, 12}, dictWord{13, 11, 234}, dictWord{147, 11, 77}, dictWord{ 7, 0, 1599, }, dictWord{7, 0, 1723}, dictWord{8, 0, 79}, dictWord{8, 0, 106}, dictWord{8, 0, 190}, dictWord{8, 0, 302}, dictWord{8, 0, 383}, dictWord{8, 0, 713}, dictWord{ 9, 0, 119, }, dictWord{9, 0, 233}, dictWord{9, 0, 419}, dictWord{9, 0, 471}, dictWord{10, 0, 181}, dictWord{10, 0, 406}, dictWord{11, 0, 57}, dictWord{11, 0, 85}, dictWord{11, 0, 120}, dictWord{11, 0, 177}, dictWord{11, 0, 296}, dictWord{11, 0, 382}, dictWord{11, 0, 454}, dictWord{11, 0, 758}, dictWord{11, 0, 999}, dictWord{ 12, 0, 27, }, dictWord{12, 0, 98}, dictWord{12, 0, 131}, dictWord{12, 0, 245}, dictWord{12, 0, 312}, dictWord{12, 0, 446}, dictWord{12, 0, 454}, dictWord{13, 0, 25}, dictWord{13, 0, 98}, dictWord{13, 0, 426}, dictWord{13, 0, 508}, dictWord{14, 0, 70}, dictWord{14, 0, 163}, dictWord{14, 0, 272}, dictWord{14, 0, 277}, dictWord{ 14, 0, 370, }, dictWord{15, 0, 95}, dictWord{15, 0, 138}, dictWord{15, 0, 167}, dictWord{17, 0, 38}, dictWord{148, 0, 96}, dictWord{135, 10, 1346}, dictWord{ 10, 0, 200, }, dictWord{19, 0, 2}, dictWord{151, 0, 22}, dictWord{135, 11, 141}, dictWord{134, 10, 85}, dictWord{134, 0, 1759}, dictWord{138, 0, 372}, dictWord{ 145, 0, 16, }, dictWord{8, 0, 943}, dictWord{132, 11, 619}, dictWord{139, 11, 88}, dictWord{5, 11, 246}, dictWord{8, 11, 189}, dictWord{9, 11, 355}, dictWord{ 9, 11, 512, }, dictWord{10, 11, 124}, dictWord{10, 11, 453}, dictWord{11, 11, 143}, dictWord{11, 11, 416}, dictWord{11, 11, 859}, dictWord{141, 11, 341}, dictWord{ 5, 0, 258, }, dictWord{134, 0, 719}, dictWord{6, 0, 1798}, dictWord{6, 0, 1839}, dictWord{8, 0, 900}, dictWord{10, 0, 874}, dictWord{10, 0, 886}, dictWord{ 12, 0, 698, }, dictWord{12, 0, 732}, dictWord{12, 0, 770}, dictWord{16, 0, 106}, dictWord{18, 0, 163}, dictWord{18, 0, 170}, dictWord{18, 0, 171}, dictWord{152, 0, 20}, dictWord{9, 0, 707}, dictWord{11, 0, 326}, dictWord{11, 0, 339}, dictWord{12, 0, 423}, dictWord{12, 0, 502}, dictWord{20, 0, 62}, dictWord{9, 11, 707}, dictWord{ 11, 11, 326, }, dictWord{11, 11, 339}, dictWord{12, 11, 423}, dictWord{12, 11, 502}, dictWord{148, 11, 62}, dictWord{5, 0, 30}, dictWord{7, 0, 495}, dictWord{ 8, 0, 134, }, dictWord{9, 0, 788}, dictWord{140, 0, 438}, dictWord{133, 11, 678}, dictWord{5, 10, 279}, dictWord{6, 10, 235}, dictWord{7, 10, 468}, dictWord{ 8, 10, 446, }, dictWord{9, 10, 637}, dictWord{10, 10, 717}, dictWord{11, 10, 738}, dictWord{140, 10, 514}, dictWord{5, 11, 35}, dictWord{6, 11, 287}, dictWord{ 7, 11, 862, }, dictWord{7, 11, 1886}, dictWord{138, 11, 179}, dictWord{7, 0, 1948}, dictWord{7, 0, 2004}, dictWord{132, 11, 517}, dictWord{5, 10, 17}, dictWord{ 6, 10, 371, }, dictWord{137, 10, 528}, dictWord{4, 0, 115}, dictWord{5, 0, 669}, dictWord{6, 0, 407}, dictWord{8, 0, 311}, dictWord{11, 0, 10}, dictWord{141, 0, 5}, dictWord{137, 0, 381}, dictWord{5, 0, 50}, dictWord{6, 0, 439}, dictWord{7, 0, 780}, dictWord{135, 0, 1040}, dictWord{136, 11, 667}, dictWord{11, 11, 403}, dictWord{146, 11, 83}, dictWord{5, 0, 1}, dictWord{6, 0, 81}, dictWord{138, 0, 520}, dictWord{134, 0, 738}, dictWord{5, 0, 482}, dictWord{8, 0, 98}, dictWord{9, 0, 172}, dictWord{10, 0, 360}, dictWord{10, 0, 700}, dictWord{10, 0, 822}, dictWord{11, 0, 302}, dictWord{11, 0, 778}, dictWord{12, 0, 50}, dictWord{12, 0, 127}, dictWord{ 12, 0, 396, }, dictWord{13, 0, 62}, dictWord{13, 0, 328}, dictWord{14, 0, 122}, dictWord{147, 0, 72}, dictWord{9, 11, 157}, dictWord{10, 11, 131}, dictWord{ 140, 11, 72, }, dictWord{135, 11, 714}, dictWord{135, 11, 539}, dictWord{5, 0, 2}, dictWord{6, 0, 512}, dictWord{7, 0, 797}, dictWord{7, 0, 1494}, dictWord{8, 0, 253}, dictWord{8, 0, 589}, dictWord{9, 0, 77}, dictWord{10, 0, 1}, dictWord{10, 0, 129}, dictWord{10, 0, 225}, dictWord{11, 0, 118}, dictWord{11, 0, 226}, dictWord{ 11, 0, 251, }, dictWord{11, 0, 430}, dictWord{11, 0, 701}, dictWord{11, 0, 974}, dictWord{11, 0, 982}, dictWord{12, 0, 64}, dictWord{12, 0, 260}, dictWord{12, 0, 488}, dictWord{140, 0, 690}, dictWord{5, 11, 394}, dictWord{7, 11, 367}, dictWord{7, 11, 487}, dictWord{7, 11, 857}, dictWord{7, 11, 1713}, dictWord{8, 11, 246}, dictWord{9, 11, 537}, dictWord{10, 11, 165}, dictWord{12, 11, 219}, dictWord{140, 11, 561}, dictWord{136, 0, 557}, dictWord{5, 10, 779}, dictWord{5, 10, 807}, dictWord{6, 10, 1655}, dictWord{134, 10, 1676}, dictWord{4, 10, 196}, dictWord{5, 10, 558}, dictWord{133, 10, 949}, dictWord{11, 11, 827}, dictWord{ 12, 11, 56, }, dictWord{14, 11, 34}, dictWord{143, 11, 148}, dictWord{137, 0, 347}, dictWord{133, 0, 572}, dictWord{134, 0, 832}, dictWord{4, 0, 12}, dictWord{ 7, 0, 504, }, dictWord{7, 0, 522}, dictWord{7, 0, 809}, dictWord{8, 0, 797}, dictWord{141, 0, 88}, dictWord{4, 10, 752}, dictWord{133, 11, 449}, dictWord{7, 11, 86}, dictWord{8, 11, 103}, dictWord{145, 11, 69}, dictWord{7, 11, 2028}, dictWord{138, 11, 641}, dictWord{5, 0, 528}, dictWord{6, 11, 1}, dictWord{142, 11, 2}, dictWord{134, 0, 861}, dictWord{10, 0, 294}, dictWord{4, 10, 227}, dictWord{5, 10, 159}, dictWord{5, 10, 409}, dictWord{7, 10, 80}, dictWord{10, 10, 479}, dictWord{ 12, 10, 418, }, dictWord{14, 10, 50}, dictWord{14, 10, 249}, dictWord{142, 10, 295}, dictWord{7, 10, 1470}, dictWord{8, 10, 66}, dictWord{8, 10, 137}, dictWord{ 8, 10, 761, }, dictWord{9, 10, 638}, dictWord{11, 10, 80}, dictWord{11, 10, 212}, dictWord{11, 10, 368}, dictWord{11, 10, 418}, dictWord{12, 10, 8}, dictWord{ 13, 10, 15, }, dictWord{16, 10, 61}, dictWord{17, 10, 59}, dictWord{19, 10, 28}, dictWord{148, 10, 84}, dictWord{20, 0, 109}, dictWord{135, 11, 1148}, dictWord{ 6, 11, 277, }, dictWord{7, 11, 1274}, dictWord{7, 11, 1386}, dictWord{7, 11, 1392}, dictWord{12, 11, 129}, dictWord{146, 11, 87}, dictWord{6, 11, 187}, dictWord{7, 11, 39}, dictWord{7, 11, 1203}, dictWord{8, 11, 380}, dictWord{8, 11, 542}, dictWord{14, 11, 117}, dictWord{149, 11, 28}, dictWord{134, 0, 1187}, dictWord{5, 0, 266}, dictWord{9, 0, 290}, dictWord{9, 0, 364}, dictWord{10, 0, 293}, dictWord{11, 0, 606}, dictWord{142, 0, 45}, dictWord{6, 11, 297}, dictWord{ 7, 11, 793, }, dictWord{139, 11, 938}, dictWord{4, 0, 50}, dictWord{6, 0, 594}, dictWord{9, 0, 121}, dictWord{10, 0, 49}, dictWord{10, 0, 412}, dictWord{139, 0, 834}, dictWord{136, 0, 748}, dictWord{7, 11, 464}, dictWord{8, 11, 438}, dictWord{11, 11, 105}, dictWord{11, 11, 363}, dictWord{12, 11, 231}, dictWord{ 14, 11, 386, }, dictWord{15, 11, 102}, dictWord{148, 11, 75}, dictWord{132, 0, 466}, dictWord{13, 0, 399}, dictWord{14, 0, 337}, dictWord{6, 10, 38}, dictWord{ 7, 10, 1220, }, dictWord{8, 10, 185}, dictWord{8, 10, 256}, dictWord{9, 10, 22}, dictWord{9, 10, 331}, dictWord{10, 10, 738}, dictWord{11, 10, 205}, dictWord{ 11, 10, 540, }, dictWord{11, 10, 746}, dictWord{13, 10, 465}, dictWord{142, 10, 194}, dictWord{9, 0, 378}, dictWord{141, 0, 162}, dictWord{137, 0, 519}, dictWord{ 4, 10, 159, }, dictWord{6, 10, 115}, dictWord{7, 10, 252}, dictWord{7, 10, 257}, dictWord{7, 10, 1928}, dictWord{8, 10, 69}, dictWord{9, 10, 384}, dictWord{ 10, 10, 91, }, dictWord{10, 10, 615}, dictWord{12, 10, 375}, dictWord{14, 10, 235}, dictWord{18, 10, 117}, dictWord{147, 10, 123}, dictWord{5, 11, 604}, dictWord{ 5, 10, 911, }, dictWord{136, 10, 278}, dictWord{132, 0, 667}, dictWord{8, 0, 351}, dictWord{9, 0, 322}, dictWord{4, 10, 151}, dictWord{135, 10, 1567}, dictWord{134, 0, 902}, dictWord{133, 10, 990}, dictWord{12, 0, 180}, dictWord{5, 10, 194}, dictWord{7, 10, 1662}, dictWord{137, 10, 90}, dictWord{4, 0, 869}, dictWord{134, 0, 1996}, dictWord{134, 0, 813}, dictWord{133, 10, 425}, dictWord{137, 11, 761}, dictWord{132, 0, 260}, dictWord{133, 10, 971}, dictWord{ 5, 11, 20, }, dictWord{6, 11, 298}, dictWord{7, 11, 659}, dictWord{7, 11, 1366}, dictWord{137, 11, 219}, dictWord{4, 0, 39}, dictWord{5, 0, 36}, dictWord{ 7, 0, 1843, }, dictWord{8, 0, 407}, dictWord{11, 0, 144}, dictWord{140, 0, 523}, dictWord{4, 0, 510}, dictWord{10, 0, 587}, dictWord{139, 10, 752}, dictWord{7, 0, 29}, dictWord{7, 0, 66}, dictWord{7, 0, 1980}, dictWord{10, 0, 487}, dictWord{138, 0, 809}, dictWord{13, 0, 260}, dictWord{14, 0, 82}, dictWord{18, 0, 63}, dictWord{ 137, 10, 662, }, dictWord{5, 10, 72}, dictWord{6, 10, 264}, dictWord{7, 10, 21}, dictWord{7, 10, 46}, dictWord{7, 10, 2013}, dictWord{8, 10, 215}, dictWord{ 8, 10, 513, }, dictWord{10, 10, 266}, dictWord{139, 10, 22}, dictWord{134, 0, 570}, dictWord{6, 0, 565}, dictWord{7, 0, 1667}, dictWord{4, 11, 439}, dictWord{ 10, 10, 95, }, dictWord{11, 10, 603}, dictWord{12, 11, 242}, dictWord{13, 10, 443}, dictWord{14, 10, 160}, dictWord{143, 10, 4}, dictWord{134, 0, 1464}, dictWord{ 134, 10, 431, }, dictWord{9, 0, 372}, dictWord{15, 0, 2}, dictWord{19, 0, 10}, dictWord{19, 0, 18}, dictWord{5, 10, 874}, dictWord{6, 10, 1677}, dictWord{143, 10, 0}, dictWord{132, 0, 787}, dictWord{6, 0, 380}, dictWord{12, 0, 399}, dictWord{21, 0, 19}, dictWord{7, 10, 939}, dictWord{7, 10, 1172}, dictWord{7, 10, 1671}, dictWord{9, 10, 540}, dictWord{10, 10, 696}, dictWord{11, 10, 265}, dictWord{11, 10, 732}, dictWord{11, 10, 928}, dictWord{11, 10, 937}, dictWord{ 141, 10, 438, }, dictWord{137, 0, 200}, dictWord{132, 11, 233}, dictWord{132, 0, 516}, dictWord{134, 11, 577}, dictWord{132, 0, 844}, dictWord{11, 0, 887}, dictWord{14, 0, 365}, dictWord{142, 0, 375}, dictWord{132, 11, 482}, dictWord{8, 0, 821}, dictWord{140, 0, 44}, dictWord{7, 0, 1655}, dictWord{136, 0, 305}, dictWord{5, 10, 682}, dictWord{135, 10, 1887}, dictWord{135, 11, 346}, dictWord{132, 10, 696}, dictWord{4, 0, 10}, dictWord{7, 0, 917}, dictWord{139, 0, 786}, dictWord{5, 11, 795}, dictWord{6, 11, 1741}, dictWord{8, 11, 417}, dictWord{137, 11, 782}, dictWord{4, 0, 1016}, dictWord{134, 0, 2031}, dictWord{5, 0, 684}, dictWord{4, 10, 726}, dictWord{133, 10, 630}, dictWord{6, 0, 1021}, dictWord{134, 0, 1480}, dictWord{8, 10, 802}, dictWord{136, 10, 838}, dictWord{ 134, 0, 27, }, dictWord{134, 0, 395}, dictWord{135, 11, 622}, dictWord{7, 11, 625}, dictWord{135, 11, 1750}, dictWord{4, 11, 203}, dictWord{135, 11, 1936}, dictWord{6, 10, 118}, dictWord{7, 10, 215}, dictWord{7, 10, 1521}, dictWord{140, 10, 11}, dictWord{132, 0, 813}, dictWord{136, 0, 511}, dictWord{7, 10, 615}, dictWord{138, 10, 251}, dictWord{135, 10, 1044}, dictWord{145, 0, 56}, dictWord{133, 10, 225}, dictWord{6, 0, 342}, dictWord{6, 0, 496}, dictWord{8, 0, 275}, dictWord{137, 0, 206}, dictWord{4, 0, 909}, dictWord{133, 0, 940}, dictWord{132, 0, 891}, dictWord{7, 11, 311}, dictWord{9, 11, 308}, dictWord{ 140, 11, 255, }, dictWord{4, 10, 370}, dictWord{5, 10, 756}, dictWord{135, 10, 1326}, dictWord{4, 0, 687}, dictWord{134, 0, 1596}, dictWord{134, 0, 1342}, dictWord{ 6, 10, 1662, }, dictWord{7, 10, 48}, dictWord{8, 10, 771}, dictWord{10, 10, 116}, dictWord{13, 10, 104}, dictWord{14, 10, 105}, dictWord{14, 10, 184}, dictWord{15, 10, 168}, dictWord{19, 10, 92}, dictWord{148, 10, 68}, dictWord{138, 10, 209}, dictWord{4, 11, 400}, dictWord{5, 11, 267}, dictWord{135, 11, 232}, dictWord{151, 11, 12}, dictWord{6, 0, 41}, dictWord{141, 0, 160}, dictWord{141, 11, 314}, dictWord{134, 0, 1718}, dictWord{136, 0, 778}, dictWord{ 142, 11, 261, }, dictWord{134, 0, 1610}, dictWord{133, 0, 115}, dictWord{132, 0, 294}, dictWord{14, 0, 314}, dictWord{132, 10, 120}, dictWord{132, 0, 983}, dictWord{5, 0, 193}, dictWord{140, 0, 178}, dictWord{138, 10, 429}, dictWord{5, 10, 820}, dictWord{135, 10, 931}, dictWord{6, 0, 994}, dictWord{6, 0, 1051}, dictWord{6, 0, 1439}, dictWord{7, 0, 174}, dictWord{133, 11, 732}, dictWord{4, 11, 100}, dictWord{7, 11, 679}, dictWord{8, 11, 313}, dictWord{138, 10, 199}, dictWord{6, 10, 151}, dictWord{6, 10, 1675}, dictWord{7, 10, 383}, dictWord{151, 10, 10}, dictWord{6, 0, 1796}, dictWord{8, 0, 848}, dictWord{8, 0, 867}, dictWord{ 8, 0, 907, }, dictWord{10, 0, 855}, dictWord{140, 0, 703}, dictWord{140, 0, 221}, dictWord{4, 0, 122}, dictWord{5, 0, 796}, dictWord{5, 0, 952}, dictWord{6, 0, 1660}, dictWord{6, 0, 1671}, dictWord{8, 0, 567}, dictWord{9, 0, 687}, dictWord{9, 0, 742}, dictWord{10, 0, 686}, dictWord{11, 0, 682}, dictWord{11, 0, 909}, dictWord{ 140, 0, 281, }, dictWord{5, 11, 362}, dictWord{5, 11, 443}, dictWord{6, 11, 318}, dictWord{7, 11, 1019}, dictWord{139, 11, 623}, dictWord{5, 11, 463}, dictWord{136, 11, 296}, dictWord{11, 0, 583}, dictWord{13, 0, 262}, dictWord{6, 10, 1624}, dictWord{12, 10, 422}, dictWord{142, 10, 360}, dictWord{5, 0, 179}, dictWord{7, 0, 1095}, dictWord{135, 0, 1213}, dictWord{4, 10, 43}, dictWord{4, 11, 454}, dictWord{5, 10, 344}, dictWord{133, 10, 357}, dictWord{4, 0, 66}, dictWord{7, 0, 722}, dictWord{135, 0, 904}, dictWord{134, 0, 773}, dictWord{7, 0, 352}, dictWord{133, 10, 888}, dictWord{5, 11, 48}, dictWord{5, 11, 404}, dictWord{ 6, 11, 557, }, dictWord{7, 11, 458}, dictWord{8, 11, 597}, dictWord{10, 11, 455}, dictWord{10, 11, 606}, dictWord{11, 11, 49}, dictWord{11, 11, 548}, dictWord{ 12, 11, 476, }, dictWord{13, 11, 18}, dictWord{141, 11, 450}, dictWord{134, 11, 418}, dictWord{132, 10, 711}, dictWord{5, 11, 442}, dictWord{ 135, 11, 1984, }, dictWord{141, 0, 35}, dictWord{137, 0, 152}, dictWord{134, 0, 1197}, dictWord{135, 11, 1093}, dictWord{137, 11, 203}, dictWord{137, 10, 440}, dictWord{10, 0, 592}, dictWord{10, 0, 753}, dictWord{12, 0, 317}, dictWord{12, 0, 355}, dictWord{12, 0, 465}, dictWord{12, 0, 469}, dictWord{12, 0, 560}, dictWord{12, 0, 578}, dictWord{141, 0, 243}, dictWord{133, 0, 564}, dictWord{134, 0, 797}, dictWord{5, 10, 958}, dictWord{133, 10, 987}, dictWord{5, 11, 55}, dictWord{7, 11, 376}, dictWord{140, 11, 161}, dictWord{133, 11, 450}, dictWord{134, 0, 556}, dictWord{134, 0, 819}, dictWord{11, 10, 276}, dictWord{ 142, 10, 293, }, dictWord{7, 0, 544}, dictWord{138, 0, 61}, dictWord{8, 0, 719}, dictWord{4, 10, 65}, dictWord{5, 10, 479}, dictWord{5, 10, 1004}, dictWord{7, 10, 1913}, dictWord{8, 10, 317}, dictWord{9, 10, 302}, dictWord{10, 10, 612}, dictWord{141, 10, 22}, dictWord{4, 0, 5}, dictWord{5, 0, 498}, dictWord{8, 0, 637}, dictWord{ 9, 0, 521, }, dictWord{4, 11, 213}, dictWord{4, 10, 261}, dictWord{7, 11, 223}, dictWord{7, 10, 510}, dictWord{136, 11, 80}, dictWord{5, 0, 927}, dictWord{7, 0, 101}, dictWord{4, 10, 291}, dictWord{7, 11, 381}, dictWord{7, 11, 806}, dictWord{7, 11, 820}, dictWord{8, 11, 354}, dictWord{8, 11, 437}, dictWord{8, 11, 787}, dictWord{9, 10, 515}, dictWord{9, 11, 657}, dictWord{10, 11, 58}, dictWord{10, 11, 339}, dictWord{10, 11, 749}, dictWord{11, 11, 914}, dictWord{12, 10, 152}, dictWord{12, 11, 162}, dictWord{12, 10, 443}, dictWord{13, 11, 75}, dictWord{13, 10, 392}, dictWord{14, 11, 106}, dictWord{14, 11, 198}, dictWord{ 14, 11, 320, }, dictWord{14, 10, 357}, dictWord{14, 11, 413}, dictWord{146, 11, 43}, dictWord{6, 0, 1153}, dictWord{7, 0, 1441}, dictWord{136, 11, 747}, dictWord{ 4, 0, 893, }, dictWord{5, 0, 780}, dictWord{133, 0, 893}, dictWord{138, 11, 654}, dictWord{133, 11, 692}, dictWord{133, 0, 238}, dictWord{134, 11, 191}, dictWord{4, 10, 130}, dictWord{135, 10, 843}, dictWord{6, 0, 1296}, dictWord{5, 10, 42}, dictWord{5, 10, 879}, dictWord{7, 10, 245}, dictWord{7, 10, 324}, dictWord{ 7, 10, 1532, }, dictWord{11, 10, 463}, dictWord{11, 10, 472}, dictWord{13, 10, 363}, dictWord{144, 10, 52}, dictWord{134, 0, 1729}, dictWord{6, 0, 1999}, dictWord{136, 0, 969}, dictWord{4, 10, 134}, dictWord{133, 10, 372}, dictWord{4, 0, 60}, dictWord{7, 0, 941}, dictWord{7, 0, 1800}, dictWord{8, 0, 314}, dictWord{ 9, 0, 700, }, dictWord{139, 0, 487}, dictWord{134, 0, 1144}, dictWord{6, 11, 162}, dictWord{7, 11, 1960}, dictWord{136, 11, 831}, dictWord{132, 11, 706}, dictWord{135, 0, 1147}, dictWord{138, 11, 426}, dictWord{138, 11, 89}, dictWord{7, 0, 1853}, dictWord{138, 0, 437}, dictWord{136, 0, 419}, dictWord{ 135, 10, 1634, }, dictWord{133, 0, 828}, dictWord{5, 0, 806}, dictWord{7, 0, 176}, dictWord{7, 0, 178}, dictWord{7, 0, 1240}, dictWord{7, 0, 1976}, dictWord{ 132, 10, 644, }, dictWord{135, 11, 1877}, dictWord{5, 11, 420}, dictWord{135, 11, 1449}, dictWord{4, 0, 51}, dictWord{5, 0, 39}, dictWord{6, 0, 4}, dictWord{7, 0, 591}, dictWord{7, 0, 849}, dictWord{7, 0, 951}, dictWord{7, 0, 1613}, dictWord{7, 0, 1760}, dictWord{7, 0, 1988}, dictWord{9, 0, 434}, dictWord{10, 0, 754}, dictWord{ 11, 0, 25, }, dictWord{139, 0, 37}, dictWord{10, 11, 57}, dictWord{138, 11, 277}, dictWord{135, 10, 540}, dictWord{132, 11, 204}, dictWord{135, 0, 159}, dictWord{139, 11, 231}, dictWord{133, 0, 902}, dictWord{7, 0, 928}, dictWord{7, 11, 366}, dictWord{9, 11, 287}, dictWord{12, 11, 199}, dictWord{12, 11, 556}, dictWord{140, 11, 577}, dictWord{6, 10, 623}, dictWord{136, 10, 789}, dictWord{4, 10, 908}, dictWord{5, 10, 359}, dictWord{5, 10, 508}, dictWord{6, 10, 1723}, dictWord{7, 10, 343}, dictWord{7, 10, 1996}, dictWord{135, 10, 2026}, dictWord{134, 0, 270}, dictWord{4, 10, 341}, dictWord{135, 10, 480}, dictWord{ 5, 11, 356, }, dictWord{135, 11, 224}, dictWord{11, 11, 588}, dictWord{11, 11, 864}, dictWord{11, 11, 968}, dictWord{143, 11, 160}, dictWord{132, 0, 556}, dictWord{137, 0, 801}, dictWord{132, 0, 416}, dictWord{142, 0, 372}, dictWord{5, 0, 152}, dictWord{5, 0, 197}, dictWord{7, 0, 340}, dictWord{7, 0, 867}, dictWord{ 10, 0, 548, }, dictWord{10, 0, 581}, dictWord{11, 0, 6}, dictWord{12, 0, 3}, dictWord{12, 0, 19}, dictWord{14, 0, 110}, dictWord{142, 0, 289}, dictWord{139, 0, 369}, dictWord{7, 11, 630}, dictWord{9, 11, 567}, dictWord{11, 11, 150}, dictWord{11, 11, 444}, dictWord{141, 11, 119}, dictWord{134, 11, 539}, dictWord{ 7, 10, 1995, }, dictWord{8, 10, 299}, dictWord{11, 10, 890}, dictWord{140, 10, 674}, dictWord{7, 0, 34}, dictWord{7, 0, 190}, dictWord{8, 0, 28}, dictWord{8, 0, 141}, dictWord{8, 0, 444}, dictWord{8, 0, 811}, dictWord{9, 0, 468}, dictWord{11, 0, 334}, dictWord{12, 0, 24}, dictWord{12, 0, 386}, dictWord{140, 0, 576}, dictWord{ 133, 0, 757, }, dictWord{7, 0, 1553}, dictWord{136, 0, 898}, dictWord{133, 0, 721}, dictWord{136, 0, 1012}, dictWord{4, 0, 789}, dictWord{5, 0, 647}, dictWord{ 135, 0, 1102, }, dictWord{132, 0, 898}, dictWord{10, 0, 183}, dictWord{4, 10, 238}, dictWord{5, 10, 503}, dictWord{6, 10, 179}, dictWord{7, 10, 2003}, dictWord{ 8, 10, 381, }, dictWord{8, 10, 473}, dictWord{9, 10, 149}, dictWord{10, 10, 788}, dictWord{15, 10, 45}, dictWord{15, 10, 86}, dictWord{20, 10, 110}, dictWord{ 150, 10, 57, }, dictWord{9, 0, 136}, dictWord{19, 0, 107}, dictWord{4, 10, 121}, dictWord{5, 10, 156}, dictWord{5, 10, 349}, dictWord{10, 10, 605}, dictWord{ 142, 10, 342, }, dictWord{4, 11, 235}, dictWord{135, 11, 255}, dictWord{4, 11, 194}, dictWord{5, 11, 584}, dictWord{6, 11, 384}, dictWord{7, 11, 583}, dictWord{ 10, 11, 761, }, dictWord{11, 11, 760}, dictWord{139, 11, 851}, dictWord{6, 10, 80}, dictWord{6, 10, 1694}, dictWord{7, 10, 173}, dictWord{7, 10, 1974}, dictWord{ 9, 10, 547, }, dictWord{10, 10, 730}, dictWord{14, 10, 18}, dictWord{150, 10, 39}, dictWord{4, 10, 923}, dictWord{134, 10, 1711}, dictWord{5, 0, 277}, dictWord{141, 0, 247}, dictWord{132, 0, 435}, dictWord{133, 11, 562}, dictWord{134, 0, 1311}, dictWord{5, 11, 191}, dictWord{137, 11, 271}, dictWord{ 132, 10, 595, }, dictWord{7, 11, 1537}, dictWord{14, 11, 96}, dictWord{143, 11, 73}, dictWord{5, 0, 437}, dictWord{7, 0, 502}, dictWord{7, 0, 519}, dictWord{7, 0, 1122}, dictWord{7, 0, 1751}, dictWord{14, 0, 211}, dictWord{6, 10, 459}, dictWord{7, 10, 1753}, dictWord{7, 10, 1805}, dictWord{8, 10, 658}, dictWord{9, 10, 1}, dictWord{11, 10, 959}, dictWord{141, 10, 446}, dictWord{6, 0, 814}, dictWord{4, 11, 470}, dictWord{5, 11, 473}, dictWord{6, 11, 153}, dictWord{7, 11, 1503}, dictWord{7, 11, 1923}, dictWord{10, 11, 701}, dictWord{11, 11, 132}, dictWord{11, 11, 168}, dictWord{11, 11, 227}, dictWord{11, 11, 320}, dictWord{ 11, 11, 436, }, dictWord{11, 11, 525}, dictWord{11, 11, 855}, dictWord{12, 11, 41}, dictWord{12, 11, 286}, dictWord{13, 11, 103}, dictWord{13, 11, 284}, dictWord{ 14, 11, 255, }, dictWord{14, 11, 262}, dictWord{15, 11, 117}, dictWord{143, 11, 127}, dictWord{5, 0, 265}, dictWord{6, 0, 212}, dictWord{135, 0, 28}, dictWord{ 138, 0, 750, }, dictWord{133, 11, 327}, dictWord{6, 11, 552}, dictWord{7, 11, 1754}, dictWord{137, 11, 604}, dictWord{134, 0, 2012}, dictWord{132, 0, 702}, dictWord{5, 11, 80}, dictWord{6, 11, 405}, dictWord{7, 11, 403}, dictWord{7, 11, 1502}, dictWord{7, 11, 1626}, dictWord{8, 11, 456}, dictWord{9, 11, 487}, dictWord{9, 11, 853}, dictWord{9, 11, 889}, dictWord{10, 11, 309}, dictWord{11, 11, 721}, dictWord{11, 11, 994}, dictWord{12, 11, 430}, dictWord{ 141, 11, 165, }, dictWord{5, 0, 808}, dictWord{135, 0, 2045}, dictWord{5, 0, 166}, dictWord{8, 0, 739}, dictWord{140, 0, 511}, dictWord{134, 10, 490}, dictWord{ 4, 11, 453, }, dictWord{5, 11, 887}, dictWord{6, 11, 535}, dictWord{8, 11, 6}, dictWord{136, 11, 543}, dictWord{4, 0, 119}, dictWord{5, 0, 170}, dictWord{5, 0, 447}, dictWord{7, 0, 1708}, dictWord{7, 0, 1889}, dictWord{9, 0, 357}, dictWord{9, 0, 719}, dictWord{12, 0, 486}, dictWord{140, 0, 596}, dictWord{137, 0, 500}, dictWord{ 7, 10, 250, }, dictWord{136, 10, 507}, dictWord{132, 10, 158}, dictWord{6, 0, 809}, dictWord{134, 0, 1500}, dictWord{9, 0, 327}, dictWord{11, 0, 350}, dictWord{11, 0, 831}, dictWord{13, 0, 352}, dictWord{4, 10, 140}, dictWord{7, 10, 362}, dictWord{8, 10, 209}, dictWord{9, 10, 10}, dictWord{9, 10, 503}, dictWord{ 9, 10, 614, }, dictWord{10, 10, 689}, dictWord{11, 10, 327}, dictWord{11, 10, 725}, dictWord{12, 10, 252}, dictWord{12, 10, 583}, dictWord{13, 10, 192}, dictWord{14, 10, 269}, dictWord{14, 10, 356}, dictWord{148, 10, 50}, dictWord{135, 11, 741}, dictWord{4, 0, 450}, dictWord{7, 0, 1158}, dictWord{19, 10, 1}, dictWord{19, 10, 26}, dictWord{150, 10, 9}, dictWord{6, 0, 597}, dictWord{135, 0, 1318}, dictWord{134, 0, 1602}, dictWord{6, 10, 228}, dictWord{7, 10, 1341}, dictWord{9, 10, 408}, dictWord{138, 10, 343}, dictWord{7, 0, 1375}, dictWord{7, 0, 1466}, dictWord{138, 0, 331}, dictWord{132, 0, 754}, dictWord{ 132, 10, 557, }, dictWord{5, 11, 101}, dictWord{6, 11, 88}, dictWord{6, 11, 543}, dictWord{7, 11, 1677}, dictWord{9, 11, 100}, dictWord{10, 11, 677}, dictWord{ 14, 11, 169, }, dictWord{14, 11, 302}, dictWord{14, 11, 313}, dictWord{15, 11, 48}, dictWord{143, 11, 84}, dictWord{134, 0, 1368}, dictWord{4, 11, 310}, dictWord{ 9, 11, 795, }, dictWord{10, 11, 733}, dictWord{11, 11, 451}, dictWord{12, 11, 249}, dictWord{14, 11, 115}, dictWord{14, 11, 286}, dictWord{143, 11, 100}, dictWord{132, 10, 548}, dictWord{10, 0, 557}, dictWord{7, 10, 197}, dictWord{8, 10, 142}, dictWord{8, 10, 325}, dictWord{9, 10, 150}, dictWord{9, 10, 596}, dictWord{10, 10, 353}, dictWord{11, 10, 74}, dictWord{11, 10, 315}, dictWord{12, 10, 662}, dictWord{12, 10, 681}, dictWord{14, 10, 423}, dictWord{ 143, 10, 141, }, dictWord{133, 11, 587}, dictWord{5, 0, 850}, dictWord{136, 0, 799}, dictWord{10, 0, 908}, dictWord{12, 0, 701}, dictWord{12, 0, 757}, dictWord{ 142, 0, 466, }, dictWord{4, 0, 62}, dictWord{5, 0, 275}, dictWord{18, 0, 19}, dictWord{6, 10, 399}, dictWord{6, 10, 579}, dictWord{7, 10, 692}, dictWord{7, 10, 846}, dictWord{ 7, 10, 1015, }, dictWord{7, 10, 1799}, dictWord{8, 10, 403}, dictWord{9, 10, 394}, dictWord{10, 10, 133}, dictWord{12, 10, 4}, dictWord{12, 10, 297}, dictWord{12, 10, 452}, dictWord{16, 10, 81}, dictWord{18, 10, 25}, dictWord{21, 10, 14}, dictWord{22, 10, 12}, dictWord{151, 10, 18}, dictWord{12, 0, 459}, dictWord{ 7, 10, 1546, }, dictWord{11, 10, 299}, dictWord{142, 10, 407}, dictWord{132, 10, 177}, dictWord{132, 11, 498}, dictWord{7, 11, 217}, dictWord{ 8, 11, 140, }, dictWord{138, 11, 610}, dictWord{5, 10, 411}, dictWord{135, 10, 653}, dictWord{134, 0, 1802}, dictWord{7, 10, 439}, dictWord{10, 10, 727}, dictWord{11, 10, 260}, dictWord{139, 10, 684}, dictWord{133, 11, 905}, dictWord{11, 11, 580}, dictWord{142, 11, 201}, dictWord{134, 0, 1397}, dictWord{ 5, 10, 208, }, dictWord{7, 10, 753}, dictWord{135, 10, 1528}, dictWord{7, 0, 238}, dictWord{7, 0, 2033}, dictWord{8, 0, 120}, dictWord{8, 0, 188}, dictWord{8, 0, 659}, dictWord{9, 0, 598}, dictWord{10, 0, 466}, dictWord{12, 0, 342}, dictWord{12, 0, 588}, dictWord{13, 0, 503}, dictWord{14, 0, 246}, dictWord{143, 0, 92}, dictWord{135, 11, 1041}, dictWord{4, 11, 456}, dictWord{7, 11, 105}, dictWord{7, 11, 358}, dictWord{7, 11, 1637}, dictWord{8, 11, 643}, dictWord{139, 11, 483}, dictWord{6, 0, 1318}, dictWord{134, 0, 1324}, dictWord{4, 0, 201}, dictWord{7, 0, 1744}, dictWord{8, 0, 602}, dictWord{11, 0, 247}, dictWord{11, 0, 826}, dictWord{17, 0, 65}, dictWord{133, 10, 242}, dictWord{8, 0, 164}, dictWord{146, 0, 62}, dictWord{133, 10, 953}, dictWord{139, 10, 802}, dictWord{133, 0, 615}, dictWord{7, 11, 1566}, dictWord{8, 11, 269}, dictWord{9, 11, 212}, dictWord{9, 11, 718}, dictWord{14, 11, 15}, dictWord{14, 11, 132}, dictWord{142, 11, 227}, dictWord{133, 10, 290}, dictWord{132, 10, 380}, dictWord{5, 10, 52}, dictWord{7, 10, 277}, dictWord{9, 10, 368}, dictWord{139, 10, 791}, dictWord{ 135, 0, 1243, }, dictWord{133, 11, 539}, dictWord{11, 11, 919}, dictWord{141, 11, 409}, dictWord{136, 0, 968}, dictWord{133, 11, 470}, dictWord{134, 0, 882}, dictWord{132, 0, 907}, dictWord{5, 0, 100}, dictWord{10, 0, 329}, dictWord{12, 0, 416}, dictWord{149, 0, 29}, dictWord{10, 10, 138}, dictWord{139, 10, 476}, dictWord{5, 10, 725}, dictWord{5, 10, 727}, dictWord{6, 11, 91}, dictWord{7, 11, 435}, dictWord{135, 10, 1811}, dictWord{4, 11, 16}, dictWord{5, 11, 316}, dictWord{5, 11, 842}, dictWord{6, 11, 370}, dictWord{6, 11, 1778}, dictWord{8, 11, 166}, dictWord{11, 11, 812}, dictWord{12, 11, 206}, dictWord{12, 11, 351}, dictWord{14, 11, 418}, dictWord{16, 11, 15}, dictWord{16, 11, 34}, dictWord{18, 11, 3}, dictWord{19, 11, 3}, dictWord{19, 11, 7}, dictWord{20, 11, 4}, dictWord{ 149, 11, 21, }, dictWord{132, 0, 176}, dictWord{5, 0, 636}, dictWord{5, 0, 998}, dictWord{7, 0, 9}, dictWord{7, 0, 1508}, dictWord{8, 0, 26}, dictWord{9, 0, 317}, dictWord{ 9, 0, 358, }, dictWord{10, 0, 210}, dictWord{10, 0, 292}, dictWord{10, 0, 533}, dictWord{11, 0, 555}, dictWord{12, 0, 526}, dictWord{12, 0, 607}, dictWord{ 13, 0, 263, }, dictWord{13, 0, 459}, dictWord{142, 0, 271}, dictWord{6, 0, 256}, dictWord{8, 0, 265}, dictWord{4, 10, 38}, dictWord{7, 10, 307}, dictWord{7, 10, 999}, dictWord{7, 10, 1481}, dictWord{7, 10, 1732}, dictWord{7, 10, 1738}, dictWord{9, 10, 414}, dictWord{11, 10, 316}, dictWord{12, 10, 52}, dictWord{13, 10, 420}, dictWord{147, 10, 100}, dictWord{135, 10, 1296}, dictWord{4, 11, 611}, dictWord{133, 11, 606}, dictWord{4, 0, 643}, dictWord{142, 11, 21}, dictWord{ 133, 11, 715, }, dictWord{133, 10, 723}, dictWord{6, 0, 610}, dictWord{135, 11, 597}, dictWord{10, 0, 127}, dictWord{141, 0, 27}, dictWord{6, 0, 1995}, dictWord{ 6, 0, 2001, }, dictWord{8, 0, 119}, dictWord{136, 0, 973}, dictWord{4, 11, 149}, dictWord{138, 11, 368}, dictWord{12, 0, 522}, dictWord{4, 11, 154}, dictWord{ 5, 10, 109, }, dictWord{6, 10, 1784}, dictWord{7, 11, 1134}, dictWord{7, 10, 1895}, dictWord{8, 11, 105}, dictWord{12, 10, 296}, dictWord{140, 10, 302}, dictWord{4, 11, 31}, dictWord{6, 11, 429}, dictWord{7, 11, 962}, dictWord{9, 11, 458}, dictWord{139, 11, 691}, dictWord{10, 0, 553}, dictWord{11, 0, 876}, dictWord{13, 0, 193}, dictWord{13, 0, 423}, dictWord{14, 0, 166}, dictWord{19, 0, 84}, dictWord{4, 11, 312}, dictWord{5, 10, 216}, dictWord{7, 10, 1879}, dictWord{ 9, 10, 141, }, dictWord{9, 10, 270}, dictWord{9, 10, 679}, dictWord{10, 10, 159}, dictWord{11, 10, 197}, dictWord{12, 10, 538}, dictWord{12, 10, 559}, dictWord{14, 10, 144}, dictWord{14, 10, 167}, dictWord{143, 10, 67}, dictWord{134, 0, 1582}, dictWord{7, 0, 1578}, dictWord{135, 11, 1578}, dictWord{ 137, 10, 81, }, dictWord{132, 11, 236}, dictWord{134, 10, 391}, dictWord{134, 0, 795}, dictWord{7, 10, 322}, dictWord{136, 10, 249}, dictWord{5, 11, 836}, dictWord{ 5, 11, 857, }, dictWord{6, 11, 1680}, dictWord{7, 11, 59}, dictWord{147, 11, 53}, dictWord{135, 0, 432}, dictWord{10, 11, 68}, dictWord{139, 11, 494}, dictWord{4, 11, 81}, dictWord{139, 11, 867}, dictWord{7, 0, 126}, dictWord{136, 0, 84}, dictWord{142, 11, 280}, dictWord{5, 11, 282}, dictWord{8, 11, 650}, dictWord{ 9, 11, 295, }, dictWord{9, 11, 907}, dictWord{138, 11, 443}, dictWord{136, 0, 790}, dictWord{5, 10, 632}, dictWord{138, 10, 526}, dictWord{6, 0, 64}, dictWord{12, 0, 377}, dictWord{13, 0, 309}, dictWord{14, 0, 141}, dictWord{14, 0, 429}, dictWord{14, 11, 141}, dictWord{142, 11, 429}, dictWord{134, 0, 1529}, dictWord{6, 0, 321}, dictWord{7, 0, 1857}, dictWord{9, 0, 530}, dictWord{19, 0, 99}, dictWord{7, 10, 948}, dictWord{7, 10, 1042}, dictWord{8, 10, 235}, dictWord{ 8, 10, 461, }, dictWord{9, 10, 453}, dictWord{10, 10, 354}, dictWord{145, 10, 77}, dictWord{7, 0, 1104}, dictWord{11, 0, 269}, dictWord{11, 0, 539}, dictWord{ 11, 0, 627, }, dictWord{11, 0, 706}, dictWord{11, 0, 975}, dictWord{12, 0, 248}, dictWord{12, 0, 434}, dictWord{12, 0, 600}, dictWord{12, 0, 622}, dictWord{ 13, 0, 297, }, dictWord{13, 0, 485}, dictWord{14, 0, 69}, dictWord{14, 0, 409}, dictWord{143, 0, 108}, dictWord{4, 10, 362}, dictWord{7, 10, 52}, dictWord{7, 10, 303}, dictWord{10, 11, 70}, dictWord{12, 11, 26}, dictWord{14, 11, 17}, dictWord{14, 11, 178}, dictWord{15, 11, 34}, dictWord{149, 11, 12}, dictWord{11, 0, 977}, dictWord{141, 0, 507}, dictWord{9, 0, 34}, dictWord{139, 0, 484}, dictWord{5, 10, 196}, dictWord{6, 10, 486}, dictWord{7, 10, 212}, dictWord{8, 10, 309}, dictWord{136, 10, 346}, dictWord{6, 0, 1700}, dictWord{7, 0, 26}, dictWord{7, 0, 293}, dictWord{7, 0, 382}, dictWord{7, 0, 1026}, dictWord{7, 0, 1087}, dictWord{ 7, 0, 2027, }, dictWord{8, 0, 24}, dictWord{8, 0, 114}, dictWord{8, 0, 252}, dictWord{8, 0, 727}, dictWord{8, 0, 729}, dictWord{9, 0, 30}, dictWord{9, 0, 199}, dictWord{ 9, 0, 231, }, dictWord{9, 0, 251}, dictWord{9, 0, 334}, dictWord{9, 0, 361}, dictWord{9, 0, 712}, dictWord{10, 0, 55}, dictWord{10, 0, 60}, dictWord{10, 0, 232}, dictWord{ 10, 0, 332, }, dictWord{10, 0, 384}, dictWord{10, 0, 396}, dictWord{10, 0, 504}, dictWord{10, 0, 542}, dictWord{10, 0, 652}, dictWord{11, 0, 20}, dictWord{11, 0, 48}, dictWord{11, 0, 207}, dictWord{11, 0, 291}, dictWord{11, 0, 298}, dictWord{11, 0, 342}, dictWord{11, 0, 365}, dictWord{11, 0, 394}, dictWord{11, 0, 620}, dictWord{11, 0, 705}, dictWord{11, 0, 1017}, dictWord{12, 0, 123}, dictWord{12, 0, 340}, dictWord{12, 0, 406}, dictWord{12, 0, 643}, dictWord{13, 0, 61}, dictWord{ 13, 0, 269, }, dictWord{13, 0, 311}, dictWord{13, 0, 319}, dictWord{13, 0, 486}, dictWord{14, 0, 234}, dictWord{15, 0, 62}, dictWord{15, 0, 85}, dictWord{16, 0, 71}, dictWord{18, 0, 119}, dictWord{20, 0, 105}, dictWord{135, 10, 1912}, dictWord{4, 11, 71}, dictWord{5, 11, 376}, dictWord{7, 11, 119}, dictWord{138, 11, 665}, dictWord{10, 0, 918}, dictWord{10, 0, 926}, dictWord{4, 10, 686}, dictWord{136, 11, 55}, dictWord{138, 10, 625}, dictWord{136, 10, 706}, dictWord{ 132, 11, 479, }, dictWord{4, 10, 30}, dictWord{133, 10, 43}, dictWord{6, 0, 379}, dictWord{7, 0, 270}, dictWord{8, 0, 176}, dictWord{8, 0, 183}, dictWord{9, 0, 432}, dictWord{ 9, 0, 661, }, dictWord{12, 0, 247}, dictWord{12, 0, 617}, dictWord{18, 0, 125}, dictWord{7, 11, 607}, dictWord{8, 11, 99}, dictWord{152, 11, 4}, dictWord{ 5, 0, 792, }, dictWord{133, 0, 900}, dictWord{4, 11, 612}, dictWord{133, 11, 561}, dictWord{4, 11, 41}, dictWord{4, 10, 220}, dictWord{5, 11, 74}, dictWord{ 7, 10, 1535, }, dictWord{7, 11, 1627}, dictWord{11, 11, 871}, dictWord{140, 11, 619}, dictWord{135, 0, 1920}, dictWord{7, 11, 94}, dictWord{11, 11, 329}, dictWord{11, 11, 965}, dictWord{12, 11, 241}, dictWord{14, 11, 354}, dictWord{15, 11, 22}, dictWord{148, 11, 63}, dictWord{9, 11, 209}, dictWord{137, 11, 300}, dictWord{134, 0, 771}, dictWord{135, 0, 1979}, dictWord{4, 0, 901}, dictWord{133, 0, 776}, dictWord{142, 0, 254}, dictWord{133, 11, 98}, dictWord{ 9, 11, 16, }, dictWord{141, 11, 386}, dictWord{133, 11, 984}, dictWord{4, 11, 182}, dictWord{6, 11, 205}, dictWord{135, 11, 220}, dictWord{7, 10, 1725}, dictWord{ 7, 10, 1774, }, dictWord{138, 10, 393}, dictWord{5, 10, 263}, dictWord{134, 10, 414}, dictWord{4, 11, 42}, dictWord{9, 11, 205}, dictWord{9, 11, 786}, dictWord{138, 11, 659}, dictWord{14, 0, 140}, dictWord{148, 0, 41}, dictWord{8, 0, 440}, dictWord{10, 0, 359}, dictWord{6, 10, 178}, dictWord{6, 11, 289}, dictWord{ 6, 10, 1750, }, dictWord{7, 11, 1670}, dictWord{9, 10, 690}, dictWord{10, 10, 155}, dictWord{10, 10, 373}, dictWord{11, 10, 698}, dictWord{12, 11, 57}, dictWord{13, 10, 155}, dictWord{20, 10, 93}, dictWord{151, 11, 4}, dictWord{4, 0, 37}, dictWord{5, 0, 334}, dictWord{7, 0, 1253}, dictWord{151, 11, 25}, dictWord{ 4, 0, 508, }, dictWord{4, 11, 635}, dictWord{5, 10, 97}, dictWord{137, 10, 393}, dictWord{139, 11, 533}, dictWord{4, 0, 640}, dictWord{133, 0, 513}, dictWord{ 134, 10, 1639, }, dictWord{132, 11, 371}, dictWord{4, 11, 272}, dictWord{7, 11, 836}, dictWord{7, 11, 1651}, dictWord{145, 11, 89}, dictWord{5, 11, 825}, dictWord{6, 11, 444}, dictWord{6, 11, 1640}, dictWord{136, 11, 308}, dictWord{4, 10, 191}, dictWord{7, 10, 934}, dictWord{8, 10, 647}, dictWord{145, 10, 97}, dictWord{12, 0, 246}, dictWord{15, 0, 162}, dictWord{19, 0, 64}, dictWord{20, 0, 8}, dictWord{20, 0, 95}, dictWord{22, 0, 24}, dictWord{152, 0, 17}, dictWord{4, 0, 533}, dictWord{5, 10, 165}, dictWord{9, 10, 346}, dictWord{138, 10, 655}, dictWord{5, 11, 737}, dictWord{139, 10, 885}, dictWord{133, 10, 877}, dictWord{ 8, 10, 128, }, dictWord{139, 10, 179}, dictWord{137, 11, 307}, dictWord{140, 0, 752}, dictWord{133, 0, 920}, dictWord{135, 0, 1048}, dictWord{5, 0, 153}, dictWord{ 6, 0, 580, }, dictWord{6, 10, 1663}, dictWord{7, 10, 132}, dictWord{7, 10, 1154}, dictWord{7, 10, 1415}, dictWord{7, 10, 1507}, dictWord{12, 10, 493}, dictWord{15, 10, 105}, dictWord{151, 10, 15}, dictWord{5, 10, 459}, dictWord{7, 10, 1073}, dictWord{8, 10, 241}, dictWord{136, 10, 334}, dictWord{138, 0, 391}, dictWord{135, 0, 1952}, dictWord{133, 11, 525}, dictWord{8, 11, 641}, dictWord{11, 11, 388}, dictWord{140, 11, 580}, dictWord{142, 0, 126}, dictWord{ 134, 0, 640, }, dictWord{132, 0, 483}, dictWord{7, 0, 1616}, dictWord{9, 0, 69}, dictWord{6, 10, 324}, dictWord{6, 10, 520}, dictWord{7, 10, 338}, dictWord{ 7, 10, 1729, }, dictWord{8, 10, 228}, dictWord{139, 10, 750}, dictWord{5, 11, 493}, dictWord{134, 11, 528}, dictWord{135, 0, 734}, dictWord{4, 11, 174}, dictWord{135, 11, 911}, dictWord{138, 0, 480}, dictWord{9, 0, 495}, dictWord{146, 0, 104}, dictWord{135, 10, 705}, dictWord{9, 0, 472}, dictWord{4, 10, 73}, dictWord{6, 10, 612}, dictWord{7, 10, 927}, dictWord{7, 10, 1330}, dictWord{7, 10, 1822}, dictWord{8, 10, 217}, dictWord{9, 10, 765}, dictWord{9, 10, 766}, dictWord{10, 10, 408}, dictWord{11, 10, 51}, dictWord{11, 10, 793}, dictWord{12, 10, 266}, dictWord{15, 10, 158}, dictWord{20, 10, 89}, dictWord{150, 10, 32}, dictWord{7, 11, 548}, dictWord{137, 11, 58}, dictWord{4, 11, 32}, dictWord{5, 11, 215}, dictWord{6, 11, 269}, dictWord{7, 11, 1782}, dictWord{7, 11, 1892}, dictWord{10, 11, 16}, dictWord{11, 11, 822}, dictWord{11, 11, 954}, dictWord{141, 11, 481}, dictWord{132, 0, 874}, dictWord{9, 0, 229}, dictWord{5, 10, 389}, dictWord{136, 10, 636}, dictWord{7, 11, 1749}, dictWord{136, 11, 477}, dictWord{134, 0, 948}, dictWord{5, 11, 308}, dictWord{135, 11, 1088}, dictWord{ 4, 0, 748, }, dictWord{139, 0, 1009}, dictWord{136, 10, 21}, dictWord{6, 0, 555}, dictWord{135, 0, 485}, dictWord{5, 11, 126}, dictWord{8, 11, 297}, dictWord{ 9, 11, 366, }, dictWord{9, 11, 445}, dictWord{12, 11, 53}, dictWord{12, 11, 374}, dictWord{141, 11, 492}, dictWord{7, 11, 1551}, dictWord{139, 11, 361}, dictWord{136, 0, 193}, dictWord{136, 0, 472}, dictWord{8, 0, 653}, dictWord{13, 0, 93}, dictWord{147, 0, 14}, dictWord{132, 0, 984}, dictWord{132, 11, 175}, dictWord{5, 0, 172}, dictWord{6, 0, 1971}, dictWord{132, 11, 685}, dictWord{149, 11, 8}, dictWord{133, 11, 797}, dictWord{13, 0, 83}, dictWord{5, 10, 189}, dictWord{ 7, 10, 442, }, dictWord{7, 10, 443}, dictWord{8, 10, 281}, dictWord{12, 10, 174}, dictWord{141, 10, 261}, dictWord{134, 0, 1568}, dictWord{133, 11, 565}, dictWord{139, 0, 384}, dictWord{133, 0, 260}, dictWord{7, 0, 758}, dictWord{7, 0, 880}, dictWord{7, 0, 1359}, dictWord{9, 0, 164}, dictWord{9, 0, 167}, dictWord{ 10, 0, 156, }, dictWord{10, 0, 588}, dictWord{12, 0, 101}, dictWord{14, 0, 48}, dictWord{15, 0, 70}, dictWord{6, 10, 2}, dictWord{7, 10, 1262}, dictWord{ 7, 10, 1737, }, dictWord{8, 10, 22}, dictWord{8, 10, 270}, dictWord{8, 10, 612}, dictWord{9, 10, 312}, dictWord{9, 10, 436}, dictWord{10, 10, 311}, dictWord{ 10, 10, 623, }, dictWord{11, 10, 72}, dictWord{11, 10, 330}, dictWord{11, 10, 455}, dictWord{12, 10, 321}, dictWord{12, 10, 504}, dictWord{12, 10, 530}, dictWord{ 12, 10, 543, }, dictWord{13, 10, 17}, dictWord{13, 10, 156}, dictWord{13, 10, 334}, dictWord{17, 10, 60}, dictWord{148, 10, 64}, dictWord{4, 11, 252}, dictWord{ 7, 11, 1068, }, dictWord{10, 11, 434}, dictWord{11, 11, 228}, dictWord{11, 11, 426}, dictWord{13, 11, 231}, dictWord{18, 11, 106}, dictWord{148, 11, 87}, dictWord{7, 10, 354}, dictWord{10, 10, 410}, dictWord{139, 10, 815}, dictWord{6, 0, 367}, dictWord{7, 10, 670}, dictWord{7, 10, 1327}, dictWord{8, 10, 411}, dictWord{8, 10, 435}, dictWord{9, 10, 653}, dictWord{9, 10, 740}, dictWord{10, 10, 385}, dictWord{11, 10, 222}, dictWord{11, 10, 324}, dictWord{11, 10, 829}, dictWord{140, 10, 611}, dictWord{7, 0, 1174}, dictWord{6, 10, 166}, dictWord{135, 10, 374}, dictWord{146, 0, 121}, dictWord{132, 0, 828}, dictWord{ 5, 11, 231, }, dictWord{138, 11, 509}, dictWord{7, 11, 601}, dictWord{9, 11, 277}, dictWord{9, 11, 674}, dictWord{10, 11, 178}, dictWord{10, 11, 257}, dictWord{ 10, 11, 418, }, dictWord{11, 11, 531}, dictWord{11, 11, 544}, dictWord{11, 11, 585}, dictWord{12, 11, 113}, dictWord{12, 11, 475}, dictWord{13, 11, 99}, dictWord{142, 11, 428}, dictWord{134, 0, 1541}, dictWord{135, 11, 1779}, dictWord{5, 0, 343}, dictWord{134, 10, 398}, dictWord{135, 10, 50}, dictWord{ 135, 11, 1683, }, dictWord{4, 0, 440}, dictWord{7, 0, 57}, dictWord{8, 0, 167}, dictWord{8, 0, 375}, dictWord{9, 0, 82}, dictWord{9, 0, 561}, dictWord{9, 0, 744}, dictWord{ 10, 0, 620, }, dictWord{137, 11, 744}, dictWord{134, 0, 926}, dictWord{6, 10, 517}, dictWord{7, 10, 1159}, dictWord{10, 10, 621}, dictWord{139, 10, 192}, dictWord{137, 0, 827}, dictWord{8, 0, 194}, dictWord{136, 0, 756}, dictWord{10, 10, 223}, dictWord{139, 10, 645}, dictWord{7, 10, 64}, dictWord{ 136, 10, 245, }, dictWord{4, 11, 399}, dictWord{5, 11, 119}, dictWord{5, 11, 494}, dictWord{7, 11, 751}, dictWord{137, 11, 556}, dictWord{132, 0, 808}, dictWord{ 135, 0, 22, }, dictWord{7, 10, 1763}, dictWord{140, 10, 310}, dictWord{5, 0, 639}, dictWord{7, 0, 1249}, dictWord{11, 0, 896}, dictWord{134, 11, 584}, dictWord{ 134, 0, 1614, }, dictWord{135, 0, 860}, dictWord{135, 11, 1121}, dictWord{5, 10, 129}, dictWord{6, 10, 61}, dictWord{135, 10, 947}, dictWord{4, 0, 102}, dictWord{ 7, 0, 815, }, dictWord{7, 0, 1699}, dictWord{139, 0, 964}, dictWord{13, 10, 505}, dictWord{141, 10, 506}, dictWord{139, 10, 1000}, dictWord{ 132, 11, 679, }, dictWord{132, 0, 899}, dictWord{132, 0, 569}, dictWord{5, 11, 694}, dictWord{137, 11, 714}, dictWord{136, 0, 795}, dictWord{6, 0, 2045}, dictWord{ 139, 11, 7, }, dictWord{6, 0, 52}, dictWord{9, 0, 104}, dictWord{9, 0, 559}, dictWord{12, 0, 308}, dictWord{147, 0, 87}, dictWord{4, 0, 301}, dictWord{132, 0, 604}, dictWord{133, 10, 637}, dictWord{136, 0, 779}, dictWord{5, 11, 143}, dictWord{5, 11, 769}, dictWord{6, 11, 1760}, dictWord{7, 11, 682}, dictWord{7, 11, 1992}, dictWord{136, 11, 736}, dictWord{137, 10, 590}, dictWord{147, 0, 32}, dictWord{137, 11, 527}, dictWord{5, 10, 280}, dictWord{135, 10, 1226}, dictWord{134, 0, 494}, dictWord{6, 0, 677}, dictWord{6, 0, 682}, dictWord{134, 0, 1044}, dictWord{133, 10, 281}, dictWord{135, 10, 1064}, dictWord{7, 0, 508}, dictWord{133, 11, 860}, dictWord{6, 11, 422}, dictWord{7, 11, 0}, dictWord{7, 11, 1544}, dictWord{9, 11, 577}, dictWord{11, 11, 990}, dictWord{12, 11, 141}, dictWord{12, 11, 453}, dictWord{13, 11, 47}, dictWord{141, 11, 266}, dictWord{134, 0, 1014}, dictWord{5, 11, 515}, dictWord{137, 11, 131}, dictWord{ 134, 0, 957, }, dictWord{132, 11, 646}, dictWord{6, 0, 310}, dictWord{7, 0, 1849}, dictWord{8, 0, 72}, dictWord{8, 0, 272}, dictWord{8, 0, 431}, dictWord{9, 0, 12}, dictWord{ 9, 0, 376, }, dictWord{10, 0, 563}, dictWord{10, 0, 630}, dictWord{10, 0, 796}, dictWord{10, 0, 810}, dictWord{11, 0, 367}, dictWord{11, 0, 599}, dictWord{ 11, 0, 686, }, dictWord{140, 0, 672}, dictWord{7, 0, 570}, dictWord{4, 11, 396}, dictWord{7, 10, 120}, dictWord{7, 11, 728}, dictWord{8, 10, 489}, dictWord{9, 11, 117}, dictWord{9, 10, 319}, dictWord{10, 10, 820}, dictWord{11, 10, 1004}, dictWord{12, 10, 379}, dictWord{12, 10, 679}, dictWord{13, 10, 117}, dictWord{ 13, 11, 202, }, dictWord{13, 10, 412}, dictWord{14, 10, 25}, dictWord{15, 10, 52}, dictWord{15, 10, 161}, dictWord{16, 10, 47}, dictWord{20, 11, 51}, dictWord{ 149, 10, 2, }, dictWord{6, 11, 121}, dictWord{6, 11, 124}, dictWord{6, 11, 357}, dictWord{7, 11, 1138}, dictWord{7, 11, 1295}, dictWord{8, 11, 162}, dictWord{ 139, 11, 655, }, dictWord{8, 0, 449}, dictWord{4, 10, 937}, dictWord{5, 10, 801}, dictWord{136, 11, 449}, dictWord{139, 11, 958}, dictWord{6, 0, 181}, dictWord{ 7, 0, 537, }, dictWord{8, 0, 64}, dictWord{9, 0, 127}, dictWord{10, 0, 496}, dictWord{12, 0, 510}, dictWord{141, 0, 384}, dictWord{138, 11, 253}, dictWord{4, 0, 244}, dictWord{135, 0, 233}, dictWord{133, 11, 237}, dictWord{132, 10, 365}, dictWord{6, 0, 1650}, dictWord{10, 0, 702}, dictWord{139, 0, 245}, dictWord{ 5, 10, 7, }, dictWord{139, 10, 774}, dictWord{13, 0, 463}, dictWord{20, 0, 49}, dictWord{13, 11, 463}, dictWord{148, 11, 49}, dictWord{4, 10, 734}, dictWord{ 5, 10, 662, }, dictWord{134, 10, 430}, dictWord{4, 10, 746}, dictWord{135, 10, 1090}, dictWord{5, 10, 360}, dictWord{136, 10, 237}, dictWord{137, 0, 338}, dictWord{143, 11, 10}, dictWord{7, 11, 571}, dictWord{138, 11, 366}, dictWord{134, 0, 1279}, dictWord{9, 11, 513}, dictWord{10, 11, 22}, dictWord{10, 11, 39}, dictWord{12, 11, 122}, dictWord{140, 11, 187}, dictWord{133, 0, 896}, dictWord{146, 0, 178}, dictWord{134, 0, 695}, dictWord{137, 0, 808}, dictWord{ 134, 11, 587, }, dictWord{7, 11, 107}, dictWord{7, 11, 838}, dictWord{8, 11, 550}, dictWord{138, 11, 401}, dictWord{7, 0, 1117}, dictWord{136, 0, 539}, dictWord{ 4, 10, 277, }, dictWord{5, 10, 608}, dictWord{6, 10, 493}, dictWord{7, 10, 457}, dictWord{140, 10, 384}, dictWord{133, 11, 768}, dictWord{12, 0, 257}, dictWord{ 7, 10, 27, }, dictWord{135, 10, 316}, dictWord{140, 0, 1003}, dictWord{4, 0, 207}, dictWord{5, 0, 586}, dictWord{5, 0, 676}, dictWord{6, 0, 448}, dictWord{ 8, 0, 244, }, dictWord{11, 0, 1}, dictWord{13, 0, 3}, dictWord{16, 0, 54}, dictWord{17, 0, 4}, dictWord{18, 0, 13}, dictWord{133, 10, 552}, dictWord{4, 10, 401}, dictWord{ 137, 10, 264, }, dictWord{5, 0, 516}, dictWord{7, 0, 1883}, dictWord{135, 11, 1883}, dictWord{12, 0, 960}, dictWord{132, 11, 894}, dictWord{5, 0, 4}, dictWord{ 5, 0, 810, }, dictWord{6, 0, 13}, dictWord{6, 0, 538}, dictWord{6, 0, 1690}, dictWord{6, 0, 1726}, dictWord{7, 0, 499}, dictWord{7, 0, 1819}, dictWord{8, 0, 148}, dictWord{ 8, 0, 696, }, dictWord{8, 0, 791}, dictWord{12, 0, 125}, dictWord{143, 0, 9}, dictWord{135, 0, 1268}, dictWord{11, 0, 30}, dictWord{14, 0, 315}, dictWord{ 9, 10, 543, }, dictWord{10, 10, 524}, dictWord{12, 10, 524}, dictWord{16, 10, 18}, dictWord{20, 10, 26}, dictWord{148, 10, 65}, dictWord{6, 0, 748}, dictWord{ 4, 10, 205, }, dictWord{5, 10, 623}, dictWord{7, 10, 104}, dictWord{136, 10, 519}, dictWord{11, 0, 542}, dictWord{139, 0, 852}, dictWord{140, 0, 6}, dictWord{ 132, 0, 848, }, dictWord{7, 0, 1385}, dictWord{11, 0, 582}, dictWord{11, 0, 650}, dictWord{11, 0, 901}, dictWord{11, 0, 949}, dictWord{12, 0, 232}, dictWord{12, 0, 236}, dictWord{13, 0, 413}, dictWord{13, 0, 501}, dictWord{18, 0, 116}, dictWord{7, 10, 579}, dictWord{9, 10, 41}, dictWord{9, 10, 244}, dictWord{9, 10, 669}, dictWord{10, 10, 5}, dictWord{11, 10, 861}, dictWord{11, 10, 951}, dictWord{139, 10, 980}, dictWord{4, 0, 945}, dictWord{6, 0, 1811}, dictWord{6, 0, 1845}, dictWord{ 6, 0, 1853, }, dictWord{6, 0, 1858}, dictWord{8, 0, 862}, dictWord{12, 0, 782}, dictWord{12, 0, 788}, dictWord{18, 0, 160}, dictWord{148, 0, 117}, dictWord{ 132, 10, 717, }, dictWord{4, 0, 925}, dictWord{5, 0, 803}, dictWord{8, 0, 698}, dictWord{138, 0, 828}, dictWord{134, 0, 1416}, dictWord{132, 0, 610}, dictWord{ 139, 0, 992, }, dictWord{6, 0, 878}, dictWord{134, 0, 1477}, dictWord{135, 0, 1847}, dictWord{138, 11, 531}, dictWord{137, 11, 539}, dictWord{134, 11, 272}, dictWord{133, 0, 383}, dictWord{134, 0, 1404}, dictWord{132, 10, 489}, dictWord{4, 11, 9}, dictWord{5, 11, 128}, dictWord{7, 11, 368}, dictWord{ 11, 11, 480, }, dictWord{148, 11, 3}, dictWord{136, 0, 986}, dictWord{9, 0, 660}, dictWord{138, 0, 347}, dictWord{135, 10, 892}, dictWord{136, 11, 682}, dictWord{ 7, 0, 572, }, dictWord{9, 0, 592}, dictWord{11, 0, 680}, dictWord{12, 0, 356}, dictWord{140, 0, 550}, dictWord{7, 0, 1411}, dictWord{138, 11, 527}, dictWord{ 4, 11, 2, }, dictWord{7, 11, 545}, dictWord{135, 11, 894}, dictWord{137, 10, 473}, dictWord{11, 0, 64}, dictWord{7, 11, 481}, dictWord{7, 10, 819}, dictWord{9, 10, 26}, dictWord{9, 10, 392}, dictWord{9, 11, 792}, dictWord{10, 10, 152}, dictWord{10, 10, 226}, dictWord{12, 10, 276}, dictWord{12, 10, 426}, dictWord{ 12, 10, 589, }, dictWord{13, 10, 460}, dictWord{15, 10, 97}, dictWord{19, 10, 48}, dictWord{148, 10, 104}, dictWord{135, 10, 51}, dictWord{136, 11, 445}, dictWord{136, 11, 646}, dictWord{135, 0, 606}, dictWord{132, 10, 674}, dictWord{6, 0, 1829}, dictWord{134, 0, 1830}, dictWord{132, 10, 770}, dictWord{ 5, 10, 79, }, dictWord{7, 10, 1027}, dictWord{7, 10, 1477}, dictWord{139, 10, 52}, dictWord{5, 11, 530}, dictWord{142, 11, 113}, dictWord{134, 10, 1666}, dictWord{ 7, 0, 748, }, dictWord{139, 0, 700}, dictWord{134, 10, 195}, dictWord{133, 10, 789}, dictWord{9, 0, 87}, dictWord{10, 0, 365}, dictWord{4, 10, 251}, dictWord{ 4, 10, 688, }, dictWord{7, 10, 513}, dictWord{135, 10, 1284}, dictWord{136, 11, 111}, dictWord{133, 0, 127}, dictWord{6, 0, 198}, dictWord{140, 0, 83}, dictWord{133, 11, 556}, dictWord{133, 10, 889}, dictWord{4, 10, 160}, dictWord{5, 10, 330}, dictWord{7, 10, 1434}, dictWord{136, 10, 174}, dictWord{5, 0, 276}, dictWord{6, 0, 55}, dictWord{7, 0, 1369}, dictWord{138, 0, 864}, dictWord{8, 11, 16}, dictWord{140, 11, 568}, dictWord{6, 0, 1752}, dictWord{136, 0, 726}, dictWord{135, 0, 1066}, dictWord{133, 0, 764}, dictWord{6, 11, 186}, dictWord{137, 11, 426}, dictWord{11, 0, 683}, dictWord{139, 11, 683}, dictWord{ 6, 0, 309, }, dictWord{7, 0, 331}, dictWord{138, 0, 550}, dictWord{133, 10, 374}, dictWord{6, 0, 1212}, dictWord{6, 0, 1852}, dictWord{7, 0, 1062}, dictWord{ 8, 0, 874, }, dictWord{8, 0, 882}, dictWord{138, 0, 936}, dictWord{132, 11, 585}, dictWord{134, 0, 1364}, dictWord{7, 0, 986}, dictWord{133, 10, 731}, dictWord{ 6, 0, 723, }, dictWord{6, 0, 1408}, dictWord{138, 0, 381}, dictWord{135, 0, 1573}, dictWord{134, 0, 1025}, dictWord{4, 10, 626}, dictWord{5, 10, 642}, dictWord{ 6, 10, 425, }, dictWord{10, 10, 202}, dictWord{139, 10, 141}, dictWord{4, 11, 93}, dictWord{5, 11, 252}, dictWord{6, 11, 229}, dictWord{7, 11, 291}, dictWord{ 9, 11, 550, }, dictWord{139, 11, 644}, dictWord{137, 11, 749}, dictWord{137, 11, 162}, dictWord{132, 11, 381}, dictWord{135, 0, 1559}, dictWord{ 6, 0, 194, }, dictWord{7, 0, 133}, dictWord{10, 0, 493}, dictWord{10, 0, 570}, dictWord{139, 0, 664}, dictWord{5, 0, 24}, dictWord{5, 0, 569}, dictWord{6, 0, 3}, dictWord{ 6, 0, 119, }, dictWord{6, 0, 143}, dictWord{6, 0, 440}, dictWord{7, 0, 295}, dictWord{7, 0, 599}, dictWord{7, 0, 1686}, dictWord{7, 0, 1854}, dictWord{8, 0, 424}, dictWord{ 9, 0, 43, }, dictWord{9, 0, 584}, dictWord{9, 0, 760}, dictWord{10, 0, 148}, dictWord{10, 0, 328}, dictWord{11, 0, 159}, dictWord{11, 0, 253}, dictWord{11, 0, 506}, dictWord{12, 0, 487}, dictWord{140, 0, 531}, dictWord{6, 0, 661}, dictWord{134, 0, 1517}, dictWord{136, 10, 835}, dictWord{151, 10, 17}, dictWord{5, 0, 14}, dictWord{5, 0, 892}, dictWord{6, 0, 283}, dictWord{7, 0, 234}, dictWord{136, 0, 537}, dictWord{139, 0, 541}, dictWord{4, 0, 126}, dictWord{8, 0, 635}, dictWord{ 147, 0, 34, }, dictWord{4, 0, 316}, dictWord{4, 0, 495}, dictWord{135, 0, 1561}, dictWord{4, 11, 187}, dictWord{5, 11, 184}, dictWord{5, 11, 690}, dictWord{ 7, 11, 1869, }, dictWord{138, 11, 756}, dictWord{139, 11, 783}, dictWord{4, 0, 998}, dictWord{137, 0, 861}, dictWord{136, 0, 1009}, dictWord{139, 11, 292}, dictWord{5, 11, 21}, dictWord{6, 11, 77}, dictWord{6, 11, 157}, dictWord{7, 11, 974}, dictWord{7, 11, 1301}, dictWord{7, 11, 1339}, dictWord{7, 11, 1490}, dictWord{ 7, 11, 1873, }, dictWord{137, 11, 628}, dictWord{7, 11, 1283}, dictWord{9, 11, 227}, dictWord{9, 11, 499}, dictWord{10, 11, 341}, dictWord{11, 11, 325}, dictWord{11, 11, 408}, dictWord{14, 11, 180}, dictWord{15, 11, 144}, dictWord{18, 11, 47}, dictWord{147, 11, 49}, dictWord{4, 0, 64}, dictWord{5, 0, 352}, dictWord{5, 0, 720}, dictWord{6, 0, 368}, dictWord{139, 0, 359}, dictWord{5, 10, 384}, dictWord{8, 10, 455}, dictWord{140, 10, 48}, dictWord{5, 10, 264}, dictWord{ 134, 10, 184, }, dictWord{7, 0, 1577}, dictWord{10, 0, 304}, dictWord{10, 0, 549}, dictWord{12, 0, 365}, dictWord{13, 0, 220}, dictWord{13, 0, 240}, dictWord{ 142, 0, 33, }, dictWord{134, 0, 1107}, dictWord{134, 0, 929}, dictWord{135, 0, 1142}, dictWord{6, 0, 175}, dictWord{137, 0, 289}, dictWord{5, 0, 432}, dictWord{ 133, 0, 913, }, dictWord{6, 0, 279}, dictWord{7, 0, 219}, dictWord{5, 10, 633}, dictWord{135, 10, 1323}, dictWord{7, 0, 785}, dictWord{7, 10, 359}, dictWord{ 8, 10, 243, }, dictWord{140, 10, 175}, dictWord{139, 0, 595}, dictWord{132, 10, 105}, dictWord{8, 11, 398}, dictWord{9, 11, 681}, dictWord{139, 11, 632}, dictWord{140, 0, 80}, dictWord{5, 0, 931}, dictWord{134, 0, 1698}, dictWord{142, 11, 241}, dictWord{134, 11, 20}, dictWord{134, 0, 1323}, dictWord{11, 0, 526}, dictWord{11, 0, 939}, dictWord{141, 0, 290}, dictWord{5, 0, 774}, dictWord{6, 0, 780}, dictWord{6, 0, 1637}, dictWord{6, 0, 1686}, dictWord{6, 0, 1751}, dictWord{ 8, 0, 559, }, dictWord{141, 0, 109}, dictWord{141, 0, 127}, dictWord{7, 0, 1167}, dictWord{11, 0, 934}, dictWord{13, 0, 391}, dictWord{17, 0, 76}, dictWord{ 135, 11, 709, }, dictWord{135, 0, 963}, dictWord{6, 0, 260}, dictWord{135, 0, 1484}, dictWord{134, 0, 573}, dictWord{4, 10, 758}, dictWord{139, 11, 941}, dictWord{135, 10, 1649}, dictWord{145, 11, 36}, dictWord{4, 0, 292}, dictWord{137, 0, 580}, dictWord{4, 0, 736}, dictWord{5, 0, 871}, dictWord{6, 0, 1689}, dictWord{135, 0, 1944}, dictWord{7, 11, 945}, dictWord{11, 11, 713}, dictWord{139, 11, 744}, dictWord{134, 0, 1164}, dictWord{135, 11, 937}, dictWord{ 6, 0, 1922, }, dictWord{9, 0, 982}, dictWord{15, 0, 173}, dictWord{15, 0, 178}, dictWord{15, 0, 200}, dictWord{18, 0, 189}, dictWord{18, 0, 207}, dictWord{21, 0, 47}, dictWord{135, 11, 1652}, dictWord{7, 0, 1695}, dictWord{139, 10, 128}, dictWord{6, 0, 63}, dictWord{135, 0, 920}, dictWord{133, 0, 793}, dictWord{ 143, 11, 134, }, dictWord{133, 10, 918}, dictWord{5, 0, 67}, dictWord{6, 0, 62}, dictWord{6, 0, 374}, dictWord{135, 0, 1391}, dictWord{9, 0, 790}, dictWord{12, 0, 47}, dictWord{4, 11, 579}, dictWord{5, 11, 226}, dictWord{5, 11, 323}, dictWord{135, 11, 960}, dictWord{10, 11, 784}, dictWord{141, 11, 191}, dictWord{4, 0, 391}, dictWord{135, 0, 1169}, dictWord{137, 0, 443}, dictWord{13, 11, 232}, dictWord{146, 11, 35}, dictWord{132, 10, 340}, dictWord{132, 0, 271}, dictWord{ 137, 11, 313, }, dictWord{5, 11, 973}, dictWord{137, 11, 659}, dictWord{134, 0, 1140}, dictWord{6, 11, 135}, dictWord{135, 11, 1176}, dictWord{4, 0, 253}, dictWord{5, 0, 544}, dictWord{7, 0, 300}, dictWord{137, 0, 340}, dictWord{7, 0, 897}, dictWord{5, 10, 985}, dictWord{7, 10, 509}, dictWord{145, 10, 96}, dictWord{ 138, 11, 735, }, dictWord{135, 10, 1919}, dictWord{138, 0, 890}, dictWord{5, 0, 818}, dictWord{134, 0, 1122}, dictWord{5, 0, 53}, dictWord{5, 0, 541}, dictWord{ 6, 0, 94, }, dictWord{6, 0, 499}, dictWord{7, 0, 230}, dictWord{139, 0, 321}, dictWord{4, 0, 920}, dictWord{5, 0, 25}, dictWord{5, 0, 790}, dictWord{6, 0, 457}, dictWord{ 7, 0, 853, }, dictWord{8, 0, 788}, dictWord{142, 11, 31}, dictWord{132, 10, 247}, dictWord{135, 11, 314}, dictWord{132, 0, 468}, dictWord{7, 0, 243}, dictWord{ 6, 10, 337, }, dictWord{7, 10, 494}, dictWord{8, 10, 27}, dictWord{8, 10, 599}, dictWord{138, 10, 153}, dictWord{4, 10, 184}, dictWord{5, 10, 390}, dictWord{ 7, 10, 618, }, dictWord{7, 10, 1456}, dictWord{139, 10, 710}, dictWord{134, 0, 870}, dictWord{134, 0, 1238}, dictWord{134, 0, 1765}, dictWord{10, 0, 853}, dictWord{10, 0, 943}, dictWord{14, 0, 437}, dictWord{14, 0, 439}, dictWord{14, 0, 443}, dictWord{14, 0, 446}, dictWord{14, 0, 452}, dictWord{14, 0, 469}, dictWord{ 14, 0, 471, }, dictWord{14, 0, 473}, dictWord{16, 0, 93}, dictWord{16, 0, 102}, dictWord{16, 0, 110}, dictWord{148, 0, 121}, dictWord{4, 0, 605}, dictWord{ 7, 0, 518, }, dictWord{7, 0, 1282}, dictWord{7, 0, 1918}, dictWord{10, 0, 180}, dictWord{139, 0, 218}, dictWord{133, 0, 822}, dictWord{4, 0, 634}, dictWord{ 11, 0, 916, }, dictWord{142, 0, 419}, dictWord{6, 11, 281}, dictWord{7, 11, 6}, dictWord{8, 11, 282}, dictWord{8, 11, 480}, dictWord{8, 11, 499}, dictWord{9, 11, 198}, dictWord{10, 11, 143}, dictWord{10, 11, 169}, dictWord{10, 11, 211}, dictWord{10, 11, 417}, dictWord{10, 11, 574}, dictWord{11, 11, 147}, dictWord{ 11, 11, 395, }, dictWord{12, 11, 75}, dictWord{12, 11, 407}, dictWord{12, 11, 608}, dictWord{13, 11, 500}, dictWord{142, 11, 251}, dictWord{134, 0, 898}, dictWord{ 6, 0, 36, }, dictWord{7, 0, 658}, dictWord{8, 0, 454}, dictWord{150, 11, 48}, dictWord{133, 11, 674}, dictWord{135, 11, 1776}, dictWord{4, 11, 419}, dictWord{ 10, 10, 227, }, dictWord{11, 10, 497}, dictWord{11, 10, 709}, dictWord{140, 10, 415}, dictWord{6, 10, 360}, dictWord{7, 10, 1664}, dictWord{136, 10, 478}, dictWord{137, 0, 806}, dictWord{12, 11, 508}, dictWord{14, 11, 102}, dictWord{14, 11, 226}, dictWord{144, 11, 57}, dictWord{135, 11, 1123}, dictWord{ 4, 11, 138, }, dictWord{7, 11, 1012}, dictWord{7, 11, 1280}, dictWord{137, 11, 76}, dictWord{5, 11, 29}, dictWord{140, 11, 638}, dictWord{136, 10, 699}, dictWord{134, 0, 1326}, dictWord{132, 0, 104}, dictWord{135, 11, 735}, dictWord{132, 10, 739}, dictWord{134, 0, 1331}, dictWord{7, 0, 260}, dictWord{ 135, 11, 260, }, dictWord{135, 11, 1063}, dictWord{7, 0, 45}, dictWord{9, 0, 542}, dictWord{9, 0, 566}, dictWord{10, 0, 728}, dictWord{137, 10, 869}, dictWord{ 4, 10, 67, }, dictWord{5, 10, 422}, dictWord{7, 10, 1037}, dictWord{7, 10, 1289}, dictWord{7, 10, 1555}, dictWord{9, 10, 741}, dictWord{145, 10, 108}, dictWord{ 139, 0, 263, }, dictWord{134, 0, 1516}, dictWord{14, 0, 146}, dictWord{15, 0, 42}, dictWord{16, 0, 23}, dictWord{17, 0, 86}, dictWord{146, 0, 17}, dictWord{ 138, 0, 468, }, dictWord{136, 0, 1005}, dictWord{4, 11, 17}, dictWord{5, 11, 23}, dictWord{7, 11, 995}, dictWord{11, 11, 383}, dictWord{11, 11, 437}, dictWord{ 12, 11, 460, }, dictWord{140, 11, 532}, dictWord{7, 0, 87}, dictWord{142, 0, 288}, dictWord{138, 10, 96}, dictWord{135, 11, 626}, dictWord{144, 10, 26}, dictWord{ 7, 0, 988, }, dictWord{7, 0, 1939}, dictWord{9, 0, 64}, dictWord{9, 0, 502}, dictWord{12, 0, 22}, dictWord{12, 0, 34}, dictWord{13, 0, 12}, dictWord{13, 0, 234}, dictWord{147, 0, 77}, dictWord{13, 0, 133}, dictWord{8, 10, 203}, dictWord{11, 10, 823}, dictWord{11, 10, 846}, dictWord{12, 10, 482}, dictWord{13, 10, 277}, dictWord{13, 10, 302}, dictWord{13, 10, 464}, dictWord{14, 10, 205}, dictWord{142, 10, 221}, dictWord{4, 10, 449}, dictWord{133, 10, 718}, dictWord{ 135, 0, 141, }, dictWord{6, 0, 1842}, dictWord{136, 0, 872}, dictWord{8, 11, 70}, dictWord{12, 11, 171}, dictWord{141, 11, 272}, dictWord{4, 10, 355}, dictWord{ 6, 10, 311, }, dictWord{9, 10, 256}, dictWord{138, 10, 404}, dictWord{132, 0, 619}, dictWord{137, 0, 261}, dictWord{10, 11, 233}, dictWord{10, 10, 758}, dictWord{139, 11, 76}, dictWord{5, 0, 246}, dictWord{8, 0, 189}, dictWord{9, 0, 355}, dictWord{9, 0, 512}, dictWord{10, 0, 124}, dictWord{10, 0, 453}, dictWord{ 11, 0, 143, }, dictWord{11, 0, 416}, dictWord{11, 0, 859}, dictWord{141, 0, 341}, dictWord{134, 11, 442}, dictWord{133, 10, 827}, dictWord{5, 10, 64}, dictWord{ 140, 10, 581, }, dictWord{4, 10, 442}, dictWord{7, 10, 1047}, dictWord{7, 10, 1352}, dictWord{135, 10, 1643}, dictWord{134, 11, 1709}, dictWord{5, 0, 678}, dictWord{6, 0, 305}, dictWord{7, 0, 775}, dictWord{7, 0, 1065}, dictWord{133, 10, 977}, dictWord{11, 11, 69}, dictWord{12, 11, 105}, dictWord{12, 11, 117}, dictWord{13, 11, 213}, dictWord{14, 11, 13}, dictWord{14, 11, 62}, dictWord{14, 11, 177}, dictWord{14, 11, 421}, dictWord{15, 11, 19}, dictWord{146, 11, 141}, dictWord{137, 11, 309}, dictWord{5, 0, 35}, dictWord{7, 0, 862}, dictWord{7, 0, 1886}, dictWord{138, 0, 179}, dictWord{136, 0, 285}, dictWord{132, 0, 517}, dictWord{7, 11, 976}, dictWord{9, 11, 146}, dictWord{10, 11, 206}, dictWord{10, 11, 596}, dictWord{13, 11, 218}, dictWord{142, 11, 153}, dictWord{ 132, 10, 254, }, dictWord{6, 0, 214}, dictWord{12, 0, 540}, dictWord{4, 10, 275}, dictWord{7, 10, 1219}, dictWord{140, 10, 376}, dictWord{8, 0, 667}, dictWord{ 11, 0, 403, }, dictWord{146, 0, 83}, dictWord{12, 0, 74}, dictWord{10, 11, 648}, dictWord{11, 11, 671}, dictWord{143, 11, 46}, dictWord{135, 0, 125}, dictWord{ 134, 10, 1753, }, dictWord{133, 0, 761}, dictWord{6, 0, 912}, dictWord{4, 11, 518}, dictWord{6, 10, 369}, dictWord{6, 10, 502}, dictWord{7, 10, 1036}, dictWord{ 7, 11, 1136, }, dictWord{8, 10, 348}, dictWord{9, 10, 452}, dictWord{10, 10, 26}, dictWord{11, 10, 224}, dictWord{11, 10, 387}, dictWord{11, 10, 772}, dictWord{12, 10, 95}, dictWord{12, 10, 629}, dictWord{13, 10, 195}, dictWord{13, 10, 207}, dictWord{13, 10, 241}, dictWord{14, 10, 260}, dictWord{14, 10, 270}, dictWord{143, 10, 140}, dictWord{10, 0, 131}, dictWord{140, 0, 72}, dictWord{132, 10, 269}, dictWord{5, 10, 480}, dictWord{7, 10, 532}, dictWord{ 7, 10, 1197, }, dictWord{7, 10, 1358}, dictWord{8, 10, 291}, dictWord{11, 10, 349}, dictWord{142, 10, 396}, dictWord{8, 11, 689}, dictWord{137, 11, 863}, dictWord{ 8, 0, 333, }, dictWord{138, 0, 182}, dictWord{4, 11, 18}, dictWord{7, 11, 145}, dictWord{7, 11, 444}, dictWord{7, 11, 1278}, dictWord{8, 11, 49}, dictWord{ 8, 11, 400, }, dictWord{9, 11, 71}, dictWord{9, 11, 250}, dictWord{10, 11, 459}, dictWord{12, 11, 160}, dictWord{144, 11, 24}, dictWord{14, 11, 35}, dictWord{ 142, 11, 191, }, dictWord{135, 11, 1864}, dictWord{135, 0, 1338}, dictWord{148, 10, 15}, dictWord{14, 0, 94}, dictWord{15, 0, 65}, dictWord{16, 0, 4}, dictWord{ 16, 0, 77, }, dictWord{16, 0, 80}, dictWord{145, 0, 5}, dictWord{12, 11, 82}, dictWord{143, 11, 36}, dictWord{133, 11, 1010}, dictWord{133, 0, 449}, dictWord{ 133, 0, 646, }, dictWord{7, 0, 86}, dictWord{8, 0, 103}, dictWord{135, 10, 657}, dictWord{7, 0, 2028}, dictWord{138, 0, 641}, dictWord{136, 10, 533}, dictWord{ 134, 0, 1, }, dictWord{139, 11, 970}, dictWord{5, 11, 87}, dictWord{7, 11, 313}, dictWord{7, 11, 1103}, dictWord{10, 11, 112}, dictWord{10, 11, 582}, dictWord{ 11, 11, 389, }, dictWord{11, 11, 813}, dictWord{12, 11, 385}, dictWord{13, 11, 286}, dictWord{14, 11, 124}, dictWord{146, 11, 108}, dictWord{6, 0, 869}, dictWord{ 132, 11, 267, }, dictWord{6, 0, 277}, dictWord{7, 0, 1274}, dictWord{7, 0, 1386}, dictWord{146, 0, 87}, dictWord{6, 0, 187}, dictWord{7, 0, 39}, dictWord{7, 0, 1203}, dictWord{8, 0, 380}, dictWord{14, 0, 117}, dictWord{149, 0, 28}, dictWord{4, 10, 211}, dictWord{4, 10, 332}, dictWord{5, 10, 335}, dictWord{6, 10, 238}, dictWord{ 7, 10, 269, }, dictWord{7, 10, 811}, dictWord{7, 10, 1797}, dictWord{8, 10, 836}, dictWord{9, 10, 507}, dictWord{141, 10, 242}, dictWord{4, 0, 785}, dictWord{ 5, 0, 368, }, dictWord{6, 0, 297}, dictWord{7, 0, 793}, dictWord{139, 0, 938}, dictWord{7, 0, 464}, dictWord{8, 0, 558}, dictWord{11, 0, 105}, dictWord{12, 0, 231}, dictWord{14, 0, 386}, dictWord{15, 0, 102}, dictWord{148, 0, 75}, dictWord{133, 10, 1009}, dictWord{8, 0, 877}, dictWord{140, 0, 731}, dictWord{ 139, 11, 289, }, dictWord{10, 11, 249}, dictWord{139, 11, 209}, dictWord{132, 11, 561}, dictWord{134, 0, 1608}, dictWord{132, 11, 760}, dictWord{134, 0, 1429}, dictWord{9, 11, 154}, dictWord{140, 11, 485}, dictWord{5, 10, 228}, dictWord{6, 10, 203}, dictWord{7, 10, 156}, dictWord{8, 10, 347}, dictWord{ 137, 10, 265, }, dictWord{7, 0, 1010}, dictWord{11, 0, 733}, dictWord{11, 0, 759}, dictWord{13, 0, 34}, dictWord{14, 0, 427}, dictWord{146, 0, 45}, dictWord{7, 10, 1131}, dictWord{135, 10, 1468}, dictWord{136, 11, 255}, dictWord{7, 0, 1656}, dictWord{9, 0, 369}, dictWord{10, 0, 338}, dictWord{10, 0, 490}, dictWord{ 11, 0, 154, }, dictWord{11, 0, 545}, dictWord{11, 0, 775}, dictWord{13, 0, 77}, dictWord{141, 0, 274}, dictWord{133, 11, 621}, dictWord{134, 0, 1038}, dictWord{ 4, 11, 368, }, dictWord{135, 11, 641}, dictWord{6, 0, 2010}, dictWord{8, 0, 979}, dictWord{8, 0, 985}, dictWord{10, 0, 951}, dictWord{138, 0, 1011}, dictWord{ 134, 0, 1005, }, dictWord{19, 0, 121}, dictWord{5, 10, 291}, dictWord{5, 10, 318}, dictWord{7, 10, 765}, dictWord{9, 10, 389}, dictWord{140, 10, 548}, dictWord{ 5, 0, 20, }, dictWord{6, 0, 298}, dictWord{7, 0, 659}, dictWord{137, 0, 219}, dictWord{7, 0, 1440}, dictWord{11, 0, 854}, dictWord{11, 0, 872}, dictWord{11, 0, 921}, dictWord{12, 0, 551}, dictWord{13, 0, 472}, dictWord{142, 0, 367}, dictWord{5, 0, 490}, dictWord{6, 0, 615}, dictWord{6, 0, 620}, dictWord{135, 0, 683}, dictWord{ 6, 0, 1070, }, dictWord{134, 0, 1597}, dictWord{139, 0, 522}, dictWord{132, 0, 439}, dictWord{136, 0, 669}, dictWord{6, 0, 766}, dictWord{6, 0, 1143}, dictWord{ 6, 0, 1245, }, dictWord{10, 10, 525}, dictWord{139, 10, 82}, dictWord{9, 11, 92}, dictWord{147, 11, 91}, dictWord{6, 0, 668}, dictWord{134, 0, 1218}, dictWord{ 6, 11, 525, }, dictWord{9, 11, 876}, dictWord{140, 11, 284}, dictWord{132, 0, 233}, dictWord{136, 0, 547}, dictWord{132, 10, 422}, dictWord{5, 10, 355}, dictWord{145, 10, 0}, dictWord{6, 11, 300}, dictWord{135, 11, 1515}, dictWord{4, 0, 482}, dictWord{137, 10, 905}, dictWord{4, 0, 886}, dictWord{7, 0, 346}, dictWord{133, 11, 594}, dictWord{133, 10, 865}, dictWord{5, 10, 914}, dictWord{134, 10, 1625}, dictWord{135, 0, 334}, dictWord{5, 0, 795}, dictWord{ 6, 0, 1741, }, dictWord{133, 10, 234}, dictWord{135, 10, 1383}, dictWord{6, 11, 1641}, dictWord{136, 11, 820}, dictWord{135, 0, 371}, dictWord{7, 11, 1313}, dictWord{138, 11, 660}, dictWord{135, 10, 1312}, dictWord{135, 0, 622}, dictWord{7, 0, 625}, dictWord{135, 0, 1750}, dictWord{135, 0, 339}, dictWord{ 4, 0, 203, }, dictWord{135, 0, 1936}, dictWord{15, 0, 29}, dictWord{16, 0, 38}, dictWord{15, 11, 29}, dictWord{144, 11, 38}, dictWord{5, 0, 338}, dictWord{ 135, 0, 1256, }, dictWord{135, 10, 1493}, dictWord{10, 0, 130}, dictWord{6, 10, 421}, dictWord{7, 10, 61}, dictWord{7, 10, 1540}, dictWord{138, 10, 501}, dictWord{ 6, 11, 389, }, dictWord{7, 11, 149}, dictWord{9, 11, 142}, dictWord{138, 11, 94}, dictWord{137, 10, 341}, dictWord{11, 0, 678}, dictWord{12, 0, 307}, dictWord{142, 10, 98}, dictWord{6, 11, 8}, dictWord{7, 11, 1881}, dictWord{136, 11, 91}, dictWord{135, 0, 2044}, dictWord{6, 0, 770}, dictWord{6, 0, 802}, dictWord{ 6, 0, 812, }, dictWord{7, 0, 311}, dictWord{9, 0, 308}, dictWord{12, 0, 255}, dictWord{6, 10, 102}, dictWord{7, 10, 72}, dictWord{15, 10, 142}, dictWord{ 147, 10, 67, }, dictWord{151, 10, 30}, dictWord{135, 10, 823}, dictWord{135, 0, 1266}, dictWord{135, 11, 1746}, dictWord{135, 10, 1870}, dictWord{4, 0, 400}, dictWord{5, 0, 267}, dictWord{135, 0, 232}, dictWord{7, 11, 24}, dictWord{11, 11, 542}, dictWord{139, 11, 852}, dictWord{135, 11, 1739}, dictWord{4, 11, 503}, dictWord{135, 11, 1661}, dictWord{5, 11, 130}, dictWord{7, 11, 1314}, dictWord{9, 11, 610}, dictWord{10, 11, 718}, dictWord{11, 11, 601}, dictWord{ 11, 11, 819, }, dictWord{11, 11, 946}, dictWord{140, 11, 536}, dictWord{10, 11, 149}, dictWord{11, 11, 280}, dictWord{142, 11, 336}, dictWord{7, 0, 739}, dictWord{11, 0, 690}, dictWord{7, 11, 1946}, dictWord{8, 10, 48}, dictWord{8, 10, 88}, dictWord{8, 10, 582}, dictWord{8, 10, 681}, dictWord{9, 10, 373}, dictWord{ 9, 10, 864, }, dictWord{11, 10, 157}, dictWord{11, 10, 843}, dictWord{148, 10, 27}, dictWord{134, 0, 990}, dictWord{4, 10, 88}, dictWord{5, 10, 137}, dictWord{ 5, 10, 174, }, dictWord{5, 10, 777}, dictWord{6, 10, 1664}, dictWord{6, 10, 1725}, dictWord{7, 10, 77}, dictWord{7, 10, 426}, dictWord{7, 10, 1317}, dictWord{ 7, 10, 1355, }, dictWord{8, 10, 126}, dictWord{8, 10, 563}, dictWord{9, 10, 523}, dictWord{9, 10, 750}, dictWord{10, 10, 310}, dictWord{10, 10, 836}, dictWord{ 11, 10, 42, }, dictWord{11, 10, 318}, dictWord{11, 10, 731}, dictWord{12, 10, 68}, dictWord{12, 10, 92}, dictWord{12, 10, 507}, dictWord{12, 10, 692}, dictWord{ 13, 10, 81, }, dictWord{13, 10, 238}, dictWord{13, 10, 374}, dictWord{14, 10, 436}, dictWord{18, 10, 138}, dictWord{19, 10, 78}, dictWord{19, 10, 111}, dictWord{20, 10, 55}, dictWord{20, 10, 77}, dictWord{148, 10, 92}, dictWord{141, 10, 418}, dictWord{7, 0, 1831}, dictWord{132, 10, 938}, dictWord{6, 0, 776}, dictWord{134, 0, 915}, dictWord{138, 10, 351}, dictWord{5, 11, 348}, dictWord{6, 11, 522}, dictWord{6, 10, 1668}, dictWord{7, 10, 1499}, dictWord{8, 10, 117}, dictWord{9, 10, 314}, dictWord{138, 10, 174}, dictWord{135, 10, 707}, dictWord{132, 0, 613}, dictWord{133, 10, 403}, dictWord{132, 11, 392}, dictWord{ 5, 11, 433, }, dictWord{9, 11, 633}, dictWord{139, 11, 629}, dictWord{133, 0, 763}, dictWord{132, 0, 878}, dictWord{132, 0, 977}, dictWord{132, 0, 100}, dictWord{6, 0, 463}, dictWord{4, 10, 44}, dictWord{5, 10, 311}, dictWord{7, 10, 639}, dictWord{7, 10, 762}, dictWord{7, 10, 1827}, dictWord{9, 10, 8}, dictWord{ 9, 10, 462, }, dictWord{148, 10, 83}, dictWord{134, 11, 234}, dictWord{4, 10, 346}, dictWord{7, 10, 115}, dictWord{9, 10, 180}, dictWord{9, 10, 456}, dictWord{ 138, 10, 363, }, dictWord{5, 0, 362}, dictWord{5, 0, 443}, dictWord{6, 0, 318}, dictWord{7, 0, 1019}, dictWord{139, 0, 623}, dictWord{5, 0, 463}, dictWord{8, 0, 296}, dictWord{7, 11, 140}, dictWord{7, 11, 1950}, dictWord{8, 11, 680}, dictWord{11, 11, 817}, dictWord{147, 11, 88}, dictWord{7, 11, 1222}, dictWord{ 138, 11, 386, }, dictWord{142, 0, 137}, dictWord{132, 0, 454}, dictWord{7, 0, 1914}, dictWord{6, 11, 5}, dictWord{7, 10, 1051}, dictWord{9, 10, 545}, dictWord{ 11, 11, 249, }, dictWord{12, 11, 313}, dictWord{16, 11, 66}, dictWord{145, 11, 26}, dictWord{135, 0, 1527}, dictWord{145, 0, 58}, dictWord{148, 11, 59}, dictWord{ 5, 0, 48, }, dictWord{5, 0, 404}, dictWord{6, 0, 557}, dictWord{7, 0, 458}, dictWord{8, 0, 597}, dictWord{10, 0, 455}, dictWord{10, 0, 606}, dictWord{11, 0, 49}, dictWord{ 11, 0, 548, }, dictWord{12, 0, 476}, dictWord{13, 0, 18}, dictWord{141, 0, 450}, dictWord{5, 11, 963}, dictWord{134, 11, 1773}, dictWord{133, 0, 729}, dictWord{138, 11, 586}, dictWord{5, 0, 442}, dictWord{135, 0, 1984}, dictWord{134, 0, 449}, dictWord{144, 0, 40}, dictWord{4, 0, 853}, dictWord{7, 11, 180}, dictWord{8, 11, 509}, dictWord{136, 11, 792}, dictWord{6, 10, 185}, dictWord{7, 10, 1899}, dictWord{9, 10, 875}, dictWord{139, 10, 673}, dictWord{ 134, 11, 524, }, dictWord{12, 0, 227}, dictWord{4, 10, 327}, dictWord{5, 10, 478}, dictWord{7, 10, 1332}, dictWord{136, 10, 753}, dictWord{6, 0, 1491}, dictWord{ 5, 10, 1020, }, dictWord{133, 10, 1022}, dictWord{4, 10, 103}, dictWord{133, 10, 401}, dictWord{132, 11, 931}, dictWord{4, 10, 499}, dictWord{135, 10, 1421}, dictWord{5, 0, 55}, dictWord{7, 0, 376}, dictWord{140, 0, 161}, dictWord{133, 0, 450}, dictWord{6, 0, 1174}, dictWord{134, 0, 1562}, dictWord{10, 0, 62}, dictWord{13, 0, 400}, dictWord{135, 11, 1837}, dictWord{140, 0, 207}, dictWord{135, 0, 869}, dictWord{4, 11, 773}, dictWord{5, 11, 618}, dictWord{ 137, 11, 756, }, dictWord{132, 10, 96}, dictWord{4, 0, 213}, dictWord{7, 0, 223}, dictWord{8, 0, 80}, dictWord{135, 10, 968}, dictWord{4, 11, 90}, dictWord{5, 11, 337}, dictWord{5, 11, 545}, dictWord{7, 11, 754}, dictWord{9, 11, 186}, dictWord{10, 11, 72}, dictWord{10, 11, 782}, dictWord{11, 11, 513}, dictWord{11, 11, 577}, dictWord{11, 11, 610}, dictWord{11, 11, 889}, dictWord{11, 11, 961}, dictWord{12, 11, 354}, dictWord{12, 11, 362}, dictWord{12, 11, 461}, dictWord{ 12, 11, 595, }, dictWord{13, 11, 79}, dictWord{143, 11, 121}, dictWord{7, 0, 381}, dictWord{7, 0, 806}, dictWord{7, 0, 820}, dictWord{8, 0, 354}, dictWord{8, 0, 437}, dictWord{8, 0, 787}, dictWord{9, 0, 657}, dictWord{10, 0, 58}, dictWord{10, 0, 339}, dictWord{10, 0, 749}, dictWord{11, 0, 914}, dictWord{12, 0, 162}, dictWord{ 13, 0, 75, }, dictWord{14, 0, 106}, dictWord{14, 0, 198}, dictWord{14, 0, 320}, dictWord{14, 0, 413}, dictWord{146, 0, 43}, dictWord{136, 0, 747}, dictWord{ 136, 0, 954, }, dictWord{134, 0, 1073}, dictWord{135, 0, 556}, dictWord{7, 11, 151}, dictWord{9, 11, 329}, dictWord{139, 11, 254}, dictWord{5, 0, 692}, dictWord{ 134, 0, 1395, }, dictWord{6, 10, 563}, dictWord{137, 10, 224}, dictWord{134, 0, 191}, dictWord{132, 0, 804}, dictWord{9, 11, 187}, dictWord{10, 11, 36}, dictWord{17, 11, 44}, dictWord{146, 11, 64}, dictWord{7, 11, 165}, dictWord{7, 11, 919}, dictWord{136, 11, 517}, dictWord{4, 11, 506}, dictWord{5, 11, 295}, dictWord{7, 11, 1680}, dictWord{15, 11, 14}, dictWord{144, 11, 5}, dictWord{4, 0, 706}, dictWord{6, 0, 162}, dictWord{7, 0, 1960}, dictWord{136, 0, 831}, dictWord{ 135, 11, 1376, }, dictWord{7, 11, 987}, dictWord{9, 11, 688}, dictWord{10, 11, 522}, dictWord{11, 11, 788}, dictWord{140, 11, 566}, dictWord{150, 0, 35}, dictWord{138, 0, 426}, dictWord{135, 0, 1235}, dictWord{135, 11, 1741}, dictWord{7, 11, 389}, dictWord{7, 11, 700}, dictWord{7, 11, 940}, dictWord{ 8, 11, 514, }, dictWord{9, 11, 116}, dictWord{9, 11, 535}, dictWord{10, 11, 118}, dictWord{11, 11, 107}, dictWord{11, 11, 148}, dictWord{11, 11, 922}, dictWord{ 12, 11, 254, }, dictWord{12, 11, 421}, dictWord{142, 11, 238}, dictWord{134, 0, 1234}, dictWord{132, 11, 743}, dictWord{4, 10, 910}, dictWord{5, 10, 832}, dictWord{135, 11, 1335}, dictWord{141, 0, 96}, dictWord{135, 11, 185}, dictWord{146, 0, 149}, dictWord{4, 0, 204}, dictWord{137, 0, 902}, dictWord{ 4, 11, 784, }, dictWord{133, 11, 745}, dictWord{136, 0, 833}, dictWord{136, 0, 949}, dictWord{7, 0, 366}, dictWord{9, 0, 287}, dictWord{12, 0, 199}, dictWord{ 12, 0, 556, }, dictWord{12, 0, 577}, dictWord{5, 11, 81}, dictWord{7, 11, 146}, dictWord{7, 11, 1342}, dictWord{7, 11, 1446}, dictWord{8, 11, 53}, dictWord{8, 11, 561}, dictWord{8, 11, 694}, dictWord{8, 11, 754}, dictWord{9, 11, 97}, dictWord{9, 11, 115}, dictWord{9, 11, 894}, dictWord{10, 11, 462}, dictWord{10, 11, 813}, dictWord{11, 11, 230}, dictWord{11, 11, 657}, dictWord{11, 11, 699}, dictWord{11, 11, 748}, dictWord{12, 11, 119}, dictWord{12, 11, 200}, dictWord{ 12, 11, 283, }, dictWord{14, 11, 273}, dictWord{145, 11, 15}, dictWord{5, 11, 408}, dictWord{137, 11, 747}, dictWord{9, 11, 498}, dictWord{140, 11, 181}, dictWord{ 6, 0, 2020, }, dictWord{136, 0, 992}, dictWord{5, 0, 356}, dictWord{135, 0, 224}, dictWord{134, 0, 784}, dictWord{7, 0, 630}, dictWord{9, 0, 567}, dictWord{ 11, 0, 150, }, dictWord{11, 0, 444}, dictWord{13, 0, 119}, dictWord{8, 10, 528}, dictWord{137, 10, 348}, dictWord{134, 0, 539}, dictWord{4, 10, 20}, dictWord{ 133, 10, 616, }, dictWord{142, 0, 27}, dictWord{7, 11, 30}, dictWord{8, 11, 86}, dictWord{8, 11, 315}, dictWord{8, 11, 700}, dictWord{9, 11, 576}, dictWord{9, 11, 858}, dictWord{11, 11, 310}, dictWord{11, 11, 888}, dictWord{11, 11, 904}, dictWord{12, 11, 361}, dictWord{141, 11, 248}, dictWord{138, 11, 839}, dictWord{ 134, 0, 755, }, dictWord{134, 0, 1063}, dictWord{7, 10, 1091}, dictWord{135, 10, 1765}, dictWord{134, 11, 428}, dictWord{7, 11, 524}, dictWord{8, 11, 169}, dictWord{8, 11, 234}, dictWord{9, 11, 480}, dictWord{138, 11, 646}, dictWord{139, 0, 814}, dictWord{7, 11, 1462}, dictWord{139, 11, 659}, dictWord{ 4, 10, 26, }, dictWord{5, 10, 429}, dictWord{6, 10, 245}, dictWord{7, 10, 704}, dictWord{7, 10, 1379}, dictWord{135, 10, 1474}, dictWord{7, 11, 1205}, dictWord{ 138, 11, 637, }, dictWord{139, 11, 803}, dictWord{132, 10, 621}, dictWord{136, 0, 987}, dictWord{4, 11, 266}, dictWord{8, 11, 4}, dictWord{9, 11, 39}, dictWord{ 10, 11, 166, }, dictWord{11, 11, 918}, dictWord{12, 11, 635}, dictWord{20, 11, 10}, dictWord{22, 11, 27}, dictWord{150, 11, 43}, dictWord{4, 0, 235}, dictWord{ 135, 0, 255, }, dictWord{4, 0, 194}, dictWord{5, 0, 584}, dictWord{6, 0, 384}, dictWord{7, 0, 583}, dictWord{10, 0, 761}, dictWord{11, 0, 760}, dictWord{139, 0, 851}, dictWord{133, 10, 542}, dictWord{134, 0, 1086}, dictWord{133, 10, 868}, dictWord{8, 0, 1016}, dictWord{136, 0, 1018}, dictWord{7, 0, 1396}, dictWord{ 7, 11, 1396, }, dictWord{136, 10, 433}, dictWord{135, 10, 1495}, dictWord{138, 10, 215}, dictWord{141, 10, 124}, dictWord{7, 11, 157}, dictWord{ 8, 11, 279, }, dictWord{9, 11, 759}, dictWord{16, 11, 31}, dictWord{16, 11, 39}, dictWord{16, 11, 75}, dictWord{18, 11, 24}, dictWord{20, 11, 42}, dictWord{152, 11, 1}, dictWord{5, 0, 562}, dictWord{134, 11, 604}, dictWord{134, 0, 913}, dictWord{5, 0, 191}, dictWord{137, 0, 271}, dictWord{4, 0, 470}, dictWord{6, 0, 153}, dictWord{7, 0, 1503}, dictWord{7, 0, 1923}, dictWord{10, 0, 701}, dictWord{11, 0, 132}, dictWord{11, 0, 227}, dictWord{11, 0, 320}, dictWord{11, 0, 436}, dictWord{ 11, 0, 525, }, dictWord{11, 0, 855}, dictWord{11, 0, 873}, dictWord{12, 0, 41}, dictWord{12, 0, 286}, dictWord{13, 0, 103}, dictWord{13, 0, 284}, dictWord{ 14, 0, 255, }, dictWord{14, 0, 262}, dictWord{15, 0, 117}, dictWord{143, 0, 127}, dictWord{7, 0, 475}, dictWord{12, 0, 45}, dictWord{147, 10, 112}, dictWord{ 132, 11, 567, }, dictWord{137, 11, 859}, dictWord{6, 0, 713}, dictWord{6, 0, 969}, dictWord{6, 0, 1290}, dictWord{134, 0, 1551}, dictWord{133, 0, 327}, dictWord{ 6, 0, 552, }, dictWord{6, 0, 1292}, dictWord{7, 0, 1754}, dictWord{137, 0, 604}, dictWord{4, 0, 223}, dictWord{6, 0, 359}, dictWord{11, 0, 3}, dictWord{13, 0, 108}, dictWord{14, 0, 89}, dictWord{16, 0, 22}, dictWord{5, 11, 762}, dictWord{7, 11, 1880}, dictWord{9, 11, 680}, dictWord{139, 11, 798}, dictWord{5, 0, 80}, dictWord{ 6, 0, 405, }, dictWord{7, 0, 403}, dictWord{7, 0, 1502}, dictWord{8, 0, 456}, dictWord{9, 0, 487}, dictWord{9, 0, 853}, dictWord{9, 0, 889}, dictWord{10, 0, 309}, dictWord{ 11, 0, 721, }, dictWord{11, 0, 994}, dictWord{12, 0, 430}, dictWord{141, 0, 165}, dictWord{133, 11, 298}, dictWord{132, 10, 647}, dictWord{134, 0, 2016}, dictWord{18, 10, 10}, dictWord{146, 11, 10}, dictWord{4, 0, 453}, dictWord{5, 0, 887}, dictWord{6, 0, 535}, dictWord{8, 0, 6}, dictWord{8, 0, 543}, dictWord{ 136, 0, 826, }, dictWord{136, 0, 975}, dictWord{10, 0, 961}, dictWord{138, 0, 962}, dictWord{138, 10, 220}, dictWord{6, 0, 1891}, dictWord{6, 0, 1893}, dictWord{ 9, 0, 916, }, dictWord{9, 0, 965}, dictWord{9, 0, 972}, dictWord{12, 0, 801}, dictWord{12, 0, 859}, dictWord{12, 0, 883}, dictWord{15, 0, 226}, dictWord{149, 0, 51}, dictWord{132, 10, 109}, dictWord{135, 11, 267}, dictWord{7, 11, 92}, dictWord{7, 11, 182}, dictWord{8, 11, 453}, dictWord{9, 11, 204}, dictWord{11, 11, 950}, dictWord{12, 11, 94}, dictWord{12, 11, 644}, dictWord{16, 11, 20}, dictWord{16, 11, 70}, dictWord{16, 11, 90}, dictWord{147, 11, 55}, dictWord{ 134, 10, 1746, }, dictWord{6, 11, 71}, dictWord{7, 11, 845}, dictWord{7, 11, 1308}, dictWord{8, 11, 160}, dictWord{137, 11, 318}, dictWord{5, 0, 101}, dictWord{6, 0, 88}, dictWord{7, 0, 263}, dictWord{7, 0, 628}, dictWord{7, 0, 1677}, dictWord{8, 0, 349}, dictWord{9, 0, 100}, dictWord{10, 0, 677}, dictWord{14, 0, 169}, dictWord{ 14, 0, 302, }, dictWord{14, 0, 313}, dictWord{15, 0, 48}, dictWord{15, 0, 84}, dictWord{7, 11, 237}, dictWord{8, 11, 664}, dictWord{9, 11, 42}, dictWord{9, 11, 266}, dictWord{9, 11, 380}, dictWord{9, 11, 645}, dictWord{10, 11, 177}, dictWord{138, 11, 276}, dictWord{138, 11, 69}, dictWord{4, 0, 310}, dictWord{7, 0, 708}, dictWord{7, 0, 996}, dictWord{9, 0, 795}, dictWord{10, 0, 390}, dictWord{10, 0, 733}, dictWord{11, 0, 451}, dictWord{12, 0, 249}, dictWord{14, 0, 115}, dictWord{ 14, 0, 286, }, dictWord{143, 0, 100}, dictWord{5, 0, 587}, dictWord{4, 10, 40}, dictWord{10, 10, 67}, dictWord{11, 10, 117}, dictWord{11, 10, 768}, dictWord{ 139, 10, 935, }, dictWord{6, 0, 1942}, dictWord{7, 0, 512}, dictWord{136, 0, 983}, dictWord{7, 10, 992}, dictWord{8, 10, 301}, dictWord{9, 10, 722}, dictWord{12, 10, 63}, dictWord{13, 10, 29}, dictWord{14, 10, 161}, dictWord{143, 10, 18}, dictWord{136, 11, 76}, dictWord{139, 10, 923}, dictWord{134, 0, 645}, dictWord{ 134, 0, 851, }, dictWord{4, 0, 498}, dictWord{132, 11, 293}, dictWord{7, 0, 217}, dictWord{8, 0, 140}, dictWord{10, 0, 610}, dictWord{14, 11, 352}, dictWord{ 17, 11, 53, }, dictWord{18, 11, 146}, dictWord{18, 11, 152}, dictWord{19, 11, 11}, dictWord{150, 11, 54}, dictWord{134, 0, 1448}, dictWord{138, 11, 841}, dictWord{133, 0, 905}, dictWord{4, 11, 605}, dictWord{7, 11, 518}, dictWord{7, 11, 1282}, dictWord{7, 11, 1918}, dictWord{10, 11, 180}, dictWord{139, 11, 218}, dictWord{139, 11, 917}, dictWord{135, 10, 825}, dictWord{140, 10, 328}, dictWord{4, 0, 456}, dictWord{7, 0, 105}, dictWord{7, 0, 358}, dictWord{7, 0, 1637}, dictWord{8, 0, 643}, dictWord{139, 0, 483}, dictWord{134, 0, 792}, dictWord{6, 11, 96}, dictWord{135, 11, 1426}, dictWord{137, 11, 691}, dictWord{ 4, 11, 651, }, dictWord{133, 11, 289}, dictWord{7, 11, 688}, dictWord{8, 11, 35}, dictWord{9, 11, 511}, dictWord{10, 11, 767}, dictWord{147, 11, 118}, dictWord{ 150, 0, 56, }, dictWord{5, 0, 243}, dictWord{5, 0, 535}, dictWord{6, 10, 204}, dictWord{10, 10, 320}, dictWord{10, 10, 583}, dictWord{13, 10, 502}, dictWord{ 14, 10, 72, }, dictWord{14, 10, 274}, dictWord{14, 10, 312}, dictWord{14, 10, 344}, dictWord{15, 10, 159}, dictWord{16, 10, 62}, dictWord{16, 10, 69}, dictWord{ 17, 10, 30, }, dictWord{18, 10, 42}, dictWord{18, 10, 53}, dictWord{18, 10, 84}, dictWord{18, 10, 140}, dictWord{19, 10, 68}, dictWord{19, 10, 85}, dictWord{20, 10, 5}, dictWord{20, 10, 45}, dictWord{20, 10, 101}, dictWord{22, 10, 7}, dictWord{150, 10, 20}, dictWord{4, 10, 558}, dictWord{6, 10, 390}, dictWord{7, 10, 162}, dictWord{7, 10, 689}, dictWord{9, 10, 360}, dictWord{138, 10, 653}, dictWord{146, 11, 23}, dictWord{135, 0, 1748}, dictWord{5, 10, 856}, dictWord{ 6, 10, 1672, }, dictWord{6, 10, 1757}, dictWord{134, 10, 1781}, dictWord{5, 0, 539}, dictWord{5, 0, 754}, dictWord{6, 0, 876}, dictWord{132, 11, 704}, dictWord{ 135, 11, 1078, }, dictWord{5, 10, 92}, dictWord{10, 10, 736}, dictWord{140, 10, 102}, dictWord{17, 0, 91}, dictWord{5, 10, 590}, dictWord{137, 10, 213}, dictWord{134, 0, 1565}, dictWord{6, 0, 91}, dictWord{135, 0, 435}, dictWord{4, 0, 939}, dictWord{140, 0, 792}, dictWord{134, 0, 1399}, dictWord{4, 0, 16}, dictWord{ 5, 0, 316, }, dictWord{5, 0, 842}, dictWord{6, 0, 370}, dictWord{6, 0, 1778}, dictWord{8, 0, 166}, dictWord{11, 0, 812}, dictWord{12, 0, 206}, dictWord{12, 0, 351}, dictWord{14, 0, 418}, dictWord{16, 0, 15}, dictWord{16, 0, 34}, dictWord{18, 0, 3}, dictWord{19, 0, 3}, dictWord{19, 0, 7}, dictWord{20, 0, 4}, dictWord{21, 0, 21}, dictWord{ 4, 11, 720, }, dictWord{133, 11, 306}, dictWord{144, 0, 95}, dictWord{133, 11, 431}, dictWord{132, 11, 234}, dictWord{135, 0, 551}, dictWord{4, 0, 999}, dictWord{6, 0, 1966}, dictWord{134, 0, 2042}, dictWord{7, 0, 619}, dictWord{10, 0, 547}, dictWord{11, 0, 122}, dictWord{12, 0, 601}, dictWord{15, 0, 7}, dictWord{148, 0, 20}, dictWord{5, 11, 464}, dictWord{6, 11, 236}, dictWord{7, 11, 276}, dictWord{7, 11, 696}, dictWord{7, 11, 914}, dictWord{7, 11, 1108}, dictWord{ 7, 11, 1448, }, dictWord{9, 11, 15}, dictWord{9, 11, 564}, dictWord{10, 11, 14}, dictWord{12, 11, 565}, dictWord{13, 11, 449}, dictWord{14, 11, 53}, dictWord{ 15, 11, 13, }, dictWord{16, 11, 64}, dictWord{145, 11, 41}, dictWord{6, 0, 884}, dictWord{6, 0, 1019}, dictWord{134, 0, 1150}, dictWord{6, 11, 1767}, dictWord{ 12, 11, 194, }, dictWord{145, 11, 107}, dictWord{136, 10, 503}, dictWord{133, 11, 840}, dictWord{7, 0, 671}, dictWord{134, 10, 466}, dictWord{132, 0, 888}, dictWord{4, 0, 149}, dictWord{138, 0, 368}, dictWord{4, 0, 154}, dictWord{7, 0, 1134}, dictWord{136, 0, 105}, dictWord{135, 0, 983}, dictWord{9, 11, 642}, dictWord{11, 11, 236}, dictWord{142, 11, 193}, dictWord{4, 0, 31}, dictWord{6, 0, 429}, dictWord{7, 0, 962}, dictWord{9, 0, 458}, dictWord{139, 0, 691}, dictWord{ 6, 0, 643, }, dictWord{134, 0, 1102}, dictWord{132, 0, 312}, dictWord{4, 11, 68}, dictWord{5, 11, 634}, dictWord{6, 11, 386}, dictWord{7, 11, 794}, dictWord{ 8, 11, 273, }, dictWord{9, 11, 563}, dictWord{10, 11, 105}, dictWord{10, 11, 171}, dictWord{11, 11, 94}, dictWord{139, 11, 354}, dictWord{133, 0, 740}, dictWord{ 135, 0, 1642, }, dictWord{4, 11, 95}, dictWord{7, 11, 416}, dictWord{8, 11, 211}, dictWord{139, 11, 830}, dictWord{132, 0, 236}, dictWord{138, 10, 241}, dictWord{7, 11, 731}, dictWord{13, 11, 20}, dictWord{143, 11, 11}, dictWord{5, 0, 836}, dictWord{5, 0, 857}, dictWord{6, 0, 1680}, dictWord{135, 0, 59}, dictWord{ 10, 0, 68, }, dictWord{11, 0, 494}, dictWord{152, 11, 6}, dictWord{4, 0, 81}, dictWord{139, 0, 867}, dictWord{135, 0, 795}, dictWord{133, 11, 689}, dictWord{ 4, 0, 1001, }, dictWord{5, 0, 282}, dictWord{6, 0, 1932}, dictWord{6, 0, 1977}, dictWord{6, 0, 1987}, dictWord{6, 0, 1992}, dictWord{8, 0, 650}, dictWord{8, 0, 919}, dictWord{8, 0, 920}, dictWord{8, 0, 923}, dictWord{8, 0, 926}, dictWord{8, 0, 927}, dictWord{8, 0, 931}, dictWord{8, 0, 939}, dictWord{8, 0, 947}, dictWord{8, 0, 956}, dictWord{8, 0, 997}, dictWord{9, 0, 907}, dictWord{10, 0, 950}, dictWord{10, 0, 953}, dictWord{10, 0, 954}, dictWord{10, 0, 956}, dictWord{10, 0, 958}, dictWord{ 10, 0, 959, }, dictWord{10, 0, 964}, dictWord{10, 0, 970}, dictWord{10, 0, 972}, dictWord{10, 0, 973}, dictWord{10, 0, 975}, dictWord{10, 0, 976}, dictWord{ 10, 0, 980, }, dictWord{10, 0, 981}, dictWord{10, 0, 984}, dictWord{10, 0, 988}, dictWord{10, 0, 990}, dictWord{10, 0, 995}, dictWord{10, 0, 999}, dictWord{ 10, 0, 1002, }, dictWord{10, 0, 1003}, dictWord{10, 0, 1005}, dictWord{10, 0, 1006}, dictWord{10, 0, 1008}, dictWord{10, 0, 1009}, dictWord{10, 0, 1012}, dictWord{10, 0, 1014}, dictWord{10, 0, 1015}, dictWord{10, 0, 1019}, dictWord{10, 0, 1020}, dictWord{10, 0, 1022}, dictWord{12, 0, 959}, dictWord{12, 0, 961}, dictWord{12, 0, 962}, dictWord{12, 0, 963}, dictWord{12, 0, 964}, dictWord{12, 0, 965}, dictWord{12, 0, 967}, dictWord{12, 0, 968}, dictWord{12, 0, 969}, dictWord{12, 0, 970}, dictWord{12, 0, 971}, dictWord{12, 0, 972}, dictWord{12, 0, 973}, dictWord{12, 0, 974}, dictWord{12, 0, 975}, dictWord{12, 0, 976}, dictWord{ 12, 0, 977, }, dictWord{12, 0, 979}, dictWord{12, 0, 981}, dictWord{12, 0, 982}, dictWord{12, 0, 983}, dictWord{12, 0, 984}, dictWord{12, 0, 985}, dictWord{ 12, 0, 986, }, dictWord{12, 0, 987}, dictWord{12, 0, 989}, dictWord{12, 0, 990}, dictWord{12, 0, 992}, dictWord{12, 0, 993}, dictWord{12, 0, 995}, dictWord{12, 0, 998}, dictWord{12, 0, 999}, dictWord{12, 0, 1000}, dictWord{12, 0, 1001}, dictWord{12, 0, 1002}, dictWord{12, 0, 1004}, dictWord{12, 0, 1005}, dictWord{ 12, 0, 1006, }, dictWord{12, 0, 1007}, dictWord{12, 0, 1008}, dictWord{12, 0, 1009}, dictWord{12, 0, 1010}, dictWord{12, 0, 1011}, dictWord{12, 0, 1012}, dictWord{12, 0, 1014}, dictWord{12, 0, 1015}, dictWord{12, 0, 1016}, dictWord{12, 0, 1017}, dictWord{12, 0, 1018}, dictWord{12, 0, 1019}, dictWord{ 12, 0, 1022, }, dictWord{12, 0, 1023}, dictWord{14, 0, 475}, dictWord{14, 0, 477}, dictWord{14, 0, 478}, dictWord{14, 0, 479}, dictWord{14, 0, 480}, dictWord{ 14, 0, 482, }, dictWord{14, 0, 483}, dictWord{14, 0, 484}, dictWord{14, 0, 485}, dictWord{14, 0, 486}, dictWord{14, 0, 487}, dictWord{14, 0, 488}, dictWord{14, 0, 489}, dictWord{14, 0, 490}, dictWord{14, 0, 491}, dictWord{14, 0, 492}, dictWord{14, 0, 493}, dictWord{14, 0, 494}, dictWord{14, 0, 495}, dictWord{14, 0, 496}, dictWord{14, 0, 497}, dictWord{14, 0, 498}, dictWord{14, 0, 499}, dictWord{14, 0, 500}, dictWord{14, 0, 501}, dictWord{14, 0, 502}, dictWord{14, 0, 503}, dictWord{ 14, 0, 504, }, dictWord{14, 0, 506}, dictWord{14, 0, 507}, dictWord{14, 0, 508}, dictWord{14, 0, 509}, dictWord{14, 0, 510}, dictWord{14, 0, 511}, dictWord{ 16, 0, 113, }, dictWord{16, 0, 114}, dictWord{16, 0, 115}, dictWord{16, 0, 117}, dictWord{16, 0, 118}, dictWord{16, 0, 119}, dictWord{16, 0, 121}, dictWord{16, 0, 122}, dictWord{16, 0, 123}, dictWord{16, 0, 124}, dictWord{16, 0, 125}, dictWord{16, 0, 126}, dictWord{16, 0, 127}, dictWord{18, 0, 242}, dictWord{18, 0, 243}, dictWord{18, 0, 244}, dictWord{18, 0, 245}, dictWord{18, 0, 248}, dictWord{18, 0, 249}, dictWord{18, 0, 250}, dictWord{18, 0, 251}, dictWord{18, 0, 252}, dictWord{ 18, 0, 253, }, dictWord{18, 0, 254}, dictWord{18, 0, 255}, dictWord{20, 0, 125}, dictWord{20, 0, 126}, dictWord{148, 0, 127}, dictWord{7, 11, 1717}, dictWord{ 7, 11, 1769, }, dictWord{138, 11, 546}, dictWord{7, 11, 1127}, dictWord{7, 11, 1572}, dictWord{10, 11, 297}, dictWord{10, 11, 422}, dictWord{11, 11, 764}, dictWord{11, 11, 810}, dictWord{12, 11, 264}, dictWord{13, 11, 102}, dictWord{13, 11, 300}, dictWord{13, 11, 484}, dictWord{14, 11, 147}, dictWord{ 14, 11, 229, }, dictWord{17, 11, 71}, dictWord{18, 11, 118}, dictWord{147, 11, 120}, dictWord{6, 0, 1148}, dictWord{134, 0, 1586}, dictWord{132, 0, 775}, dictWord{135, 10, 954}, dictWord{133, 11, 864}, dictWord{133, 11, 928}, dictWord{138, 11, 189}, dictWord{135, 10, 1958}, dictWord{6, 10, 549}, dictWord{ 8, 10, 34, }, dictWord{8, 10, 283}, dictWord{9, 10, 165}, dictWord{138, 10, 475}, dictWord{5, 10, 652}, dictWord{5, 10, 701}, dictWord{135, 10, 449}, dictWord{135, 11, 695}, dictWord{4, 10, 655}, dictWord{7, 10, 850}, dictWord{17, 10, 75}, dictWord{146, 10, 137}, dictWord{140, 11, 682}, dictWord{ 133, 11, 523, }, dictWord{8, 0, 970}, dictWord{136, 10, 670}, dictWord{136, 11, 555}, dictWord{7, 11, 76}, dictWord{8, 11, 44}, dictWord{9, 11, 884}, dictWord{ 10, 11, 580, }, dictWord{11, 11, 399}, dictWord{11, 11, 894}, dictWord{15, 11, 122}, dictWord{18, 11, 144}, dictWord{147, 11, 61}, dictWord{6, 10, 159}, dictWord{ 6, 10, 364, }, dictWord{7, 10, 516}, dictWord{7, 10, 1439}, dictWord{137, 10, 518}, dictWord{4, 0, 71}, dictWord{5, 0, 376}, dictWord{7, 0, 119}, dictWord{ 138, 0, 665, }, dictWord{141, 10, 151}, dictWord{11, 0, 827}, dictWord{14, 0, 34}, dictWord{143, 0, 148}, dictWord{133, 11, 518}, dictWord{4, 0, 479}, dictWord{ 135, 11, 1787, }, dictWord{135, 11, 1852}, dictWord{135, 10, 993}, dictWord{7, 0, 607}, dictWord{136, 0, 99}, dictWord{134, 0, 1960}, dictWord{132, 0, 793}, dictWord{4, 0, 41}, dictWord{5, 0, 74}, dictWord{7, 0, 1627}, dictWord{11, 0, 871}, dictWord{140, 0, 619}, dictWord{7, 0, 94}, dictWord{11, 0, 329}, dictWord{ 11, 0, 965, }, dictWord{12, 0, 241}, dictWord{14, 0, 354}, dictWord{15, 0, 22}, dictWord{148, 0, 63}, dictWord{7, 10, 501}, dictWord{9, 10, 111}, dictWord{10, 10, 141}, dictWord{11, 10, 332}, dictWord{13, 10, 43}, dictWord{13, 10, 429}, dictWord{14, 10, 130}, dictWord{14, 10, 415}, dictWord{145, 10, 102}, dictWord{ 9, 0, 209, }, dictWord{137, 0, 300}, dictWord{134, 0, 1497}, dictWord{138, 11, 255}, dictWord{4, 11, 934}, dictWord{5, 11, 138}, dictWord{136, 11, 610}, dictWord{133, 0, 98}, dictWord{6, 0, 1316}, dictWord{10, 11, 804}, dictWord{138, 11, 832}, dictWord{8, 11, 96}, dictWord{9, 11, 36}, dictWord{10, 11, 607}, dictWord{11, 11, 423}, dictWord{11, 11, 442}, dictWord{12, 11, 309}, dictWord{14, 11, 199}, dictWord{15, 11, 90}, dictWord{145, 11, 110}, dictWord{ 132, 0, 463, }, dictWord{5, 10, 149}, dictWord{136, 10, 233}, dictWord{133, 10, 935}, dictWord{4, 11, 652}, dictWord{8, 11, 320}, dictWord{9, 11, 13}, dictWord{ 9, 11, 398, }, dictWord{9, 11, 727}, dictWord{10, 11, 75}, dictWord{10, 11, 184}, dictWord{10, 11, 230}, dictWord{10, 11, 564}, dictWord{10, 11, 569}, dictWord{ 11, 11, 973, }, dictWord{12, 11, 70}, dictWord{12, 11, 189}, dictWord{13, 11, 57}, dictWord{13, 11, 257}, dictWord{22, 11, 6}, dictWord{150, 11, 16}, dictWord{ 142, 0, 291, }, dictWord{12, 10, 582}, dictWord{146, 10, 131}, dictWord{136, 10, 801}, dictWord{133, 0, 984}, dictWord{145, 11, 116}, dictWord{4, 11, 692}, dictWord{133, 11, 321}, dictWord{4, 0, 182}, dictWord{6, 0, 205}, dictWord{135, 0, 220}, dictWord{4, 0, 42}, dictWord{9, 0, 205}, dictWord{9, 0, 786}, dictWord{ 138, 0, 659, }, dictWord{6, 0, 801}, dictWord{11, 11, 130}, dictWord{140, 11, 609}, dictWord{132, 0, 635}, dictWord{5, 11, 345}, dictWord{135, 11, 1016}, dictWord{139, 0, 533}, dictWord{132, 0, 371}, dictWord{4, 0, 272}, dictWord{135, 0, 836}, dictWord{6, 0, 1282}, dictWord{135, 11, 1100}, dictWord{5, 0, 825}, dictWord{134, 0, 1640}, dictWord{135, 11, 1325}, dictWord{133, 11, 673}, dictWord{4, 11, 287}, dictWord{133, 11, 1018}, dictWord{135, 0, 357}, dictWord{ 6, 0, 467, }, dictWord{137, 0, 879}, dictWord{7, 0, 317}, dictWord{135, 0, 569}, dictWord{6, 0, 924}, dictWord{134, 0, 1588}, dictWord{5, 11, 34}, dictWord{ 5, 10, 406, }, dictWord{10, 11, 724}, dictWord{12, 11, 444}, dictWord{13, 11, 354}, dictWord{18, 11, 32}, dictWord{23, 11, 24}, dictWord{23, 11, 31}, dictWord{ 152, 11, 5, }, dictWord{6, 0, 1795}, dictWord{6, 0, 1835}, dictWord{6, 0, 1836}, dictWord{6, 0, 1856}, dictWord{8, 0, 844}, dictWord{8, 0, 849}, dictWord{8, 0, 854}, dictWord{8, 0, 870}, dictWord{8, 0, 887}, dictWord{10, 0, 852}, dictWord{138, 0, 942}, dictWord{6, 10, 69}, dictWord{135, 10, 117}, dictWord{137, 0, 307}, dictWord{ 4, 0, 944, }, dictWord{6, 0, 1799}, dictWord{6, 0, 1825}, dictWord{10, 0, 848}, dictWord{10, 0, 875}, dictWord{10, 0, 895}, dictWord{10, 0, 899}, dictWord{ 10, 0, 902, }, dictWord{140, 0, 773}, dictWord{11, 0, 43}, dictWord{13, 0, 72}, dictWord{141, 0, 142}, dictWord{135, 10, 1830}, dictWord{134, 11, 382}, dictWord{ 4, 10, 432, }, dictWord{135, 10, 824}, dictWord{132, 11, 329}, dictWord{7, 0, 1820}, dictWord{139, 11, 124}, dictWord{133, 10, 826}, dictWord{ 133, 0, 525, }, dictWord{132, 11, 906}, dictWord{7, 11, 1940}, dictWord{136, 11, 366}, dictWord{138, 11, 10}, dictWord{4, 11, 123}, dictWord{4, 11, 649}, dictWord{ 5, 11, 605, }, dictWord{7, 11, 1509}, dictWord{136, 11, 36}, dictWord{6, 0, 110}, dictWord{135, 0, 1681}, dictWord{133, 0, 493}, dictWord{133, 11, 767}, dictWord{4, 0, 174}, dictWord{135, 0, 911}, dictWord{138, 11, 786}, dictWord{8, 0, 417}, dictWord{137, 0, 782}, dictWord{133, 10, 1000}, dictWord{7, 0, 733}, dictWord{137, 0, 583}, dictWord{4, 10, 297}, dictWord{6, 10, 529}, dictWord{7, 10, 152}, dictWord{7, 10, 713}, dictWord{7, 10, 1845}, dictWord{8, 10, 710}, dictWord{8, 10, 717}, dictWord{12, 10, 639}, dictWord{140, 10, 685}, dictWord{4, 0, 32}, dictWord{5, 0, 215}, dictWord{6, 0, 269}, dictWord{7, 0, 1782}, dictWord{ 7, 0, 1892, }, dictWord{10, 0, 16}, dictWord{11, 0, 822}, dictWord{11, 0, 954}, dictWord{141, 0, 481}, dictWord{4, 11, 273}, dictWord{5, 11, 658}, dictWord{ 133, 11, 995, }, dictWord{136, 0, 477}, dictWord{134, 11, 72}, dictWord{135, 11, 1345}, dictWord{5, 0, 308}, dictWord{7, 0, 1088}, dictWord{4, 10, 520}, dictWord{ 135, 10, 575, }, dictWord{133, 11, 589}, dictWord{5, 0, 126}, dictWord{8, 0, 297}, dictWord{9, 0, 366}, dictWord{140, 0, 374}, dictWord{7, 0, 1551}, dictWord{ 139, 0, 361, }, dictWord{5, 11, 117}, dictWord{6, 11, 514}, dictWord{6, 11, 541}, dictWord{7, 11, 1164}, dictWord{7, 11, 1436}, dictWord{8, 11, 220}, dictWord{ 8, 11, 648, }, dictWord{10, 11, 688}, dictWord{139, 11, 560}, dictWord{133, 11, 686}, dictWord{4, 0, 946}, dictWord{6, 0, 1807}, dictWord{8, 0, 871}, dictWord{ 10, 0, 854, }, dictWord{10, 0, 870}, dictWord{10, 0, 888}, dictWord{10, 0, 897}, dictWord{10, 0, 920}, dictWord{12, 0, 722}, dictWord{12, 0, 761}, dictWord{ 12, 0, 763, }, dictWord{12, 0, 764}, dictWord{14, 0, 454}, dictWord{14, 0, 465}, dictWord{16, 0, 107}, dictWord{18, 0, 167}, dictWord{18, 0, 168}, dictWord{ 146, 0, 172, }, dictWord{132, 0, 175}, dictWord{135, 0, 1307}, dictWord{132, 0, 685}, dictWord{135, 11, 1834}, dictWord{133, 0, 797}, dictWord{6, 0, 745}, dictWord{ 6, 0, 858, }, dictWord{134, 0, 963}, dictWord{133, 0, 565}, dictWord{5, 10, 397}, dictWord{6, 10, 154}, dictWord{7, 11, 196}, dictWord{7, 10, 676}, dictWord{ 8, 10, 443, }, dictWord{8, 10, 609}, dictWord{9, 10, 24}, dictWord{9, 10, 325}, dictWord{10, 10, 35}, dictWord{10, 11, 765}, dictWord{11, 11, 347}, dictWord{ 11, 10, 535, }, dictWord{11, 11, 552}, dictWord{11, 11, 576}, dictWord{11, 10, 672}, dictWord{11, 11, 790}, dictWord{11, 10, 1018}, dictWord{12, 11, 263}, dictWord{12, 10, 637}, dictWord{13, 11, 246}, dictWord{13, 11, 270}, dictWord{13, 11, 395}, dictWord{14, 11, 74}, dictWord{14, 11, 176}, dictWord{ 14, 11, 190, }, dictWord{14, 11, 398}, dictWord{14, 11, 412}, dictWord{15, 11, 32}, dictWord{15, 11, 63}, dictWord{16, 10, 30}, dictWord{16, 11, 88}, dictWord{ 147, 11, 105, }, dictWord{13, 11, 84}, dictWord{141, 11, 122}, dictWord{4, 0, 252}, dictWord{7, 0, 1068}, dictWord{10, 0, 434}, dictWord{11, 0, 228}, dictWord{ 11, 0, 426, }, dictWord{13, 0, 231}, dictWord{18, 0, 106}, dictWord{148, 0, 87}, dictWord{137, 0, 826}, dictWord{4, 11, 589}, dictWord{139, 11, 282}, dictWord{ 5, 11, 381, }, dictWord{135, 11, 1792}, dictWord{132, 0, 791}, dictWord{5, 0, 231}, dictWord{10, 0, 509}, dictWord{133, 10, 981}, dictWord{7, 0, 601}, dictWord{ 9, 0, 277, }, dictWord{9, 0, 674}, dictWord{10, 0, 178}, dictWord{10, 0, 418}, dictWord{10, 0, 571}, dictWord{11, 0, 531}, dictWord{12, 0, 113}, dictWord{12, 0, 475}, dictWord{13, 0, 99}, dictWord{142, 0, 428}, dictWord{4, 10, 56}, dictWord{7, 11, 616}, dictWord{7, 10, 1791}, dictWord{8, 10, 607}, dictWord{8, 10, 651}, dictWord{10, 11, 413}, dictWord{11, 10, 465}, dictWord{11, 10, 835}, dictWord{12, 10, 337}, dictWord{141, 10, 480}, dictWord{7, 0, 1591}, dictWord{144, 0, 43}, dictWord{9, 10, 158}, dictWord{138, 10, 411}, dictWord{135, 0, 1683}, dictWord{8, 0, 289}, dictWord{11, 0, 45}, dictWord{12, 0, 278}, dictWord{140, 0, 537}, dictWord{6, 11, 120}, dictWord{7, 11, 1188}, dictWord{7, 11, 1710}, dictWord{8, 11, 286}, dictWord{9, 11, 667}, dictWord{11, 11, 592}, dictWord{ 139, 11, 730, }, dictWord{136, 10, 617}, dictWord{135, 0, 1120}, dictWord{135, 11, 1146}, dictWord{139, 10, 563}, dictWord{4, 11, 352}, dictWord{4, 10, 369}, dictWord{135, 11, 687}, dictWord{143, 11, 38}, dictWord{4, 0, 399}, dictWord{5, 0, 119}, dictWord{5, 0, 494}, dictWord{7, 0, 751}, dictWord{9, 0, 556}, dictWord{ 14, 11, 179, }, dictWord{15, 11, 151}, dictWord{150, 11, 11}, dictWord{4, 11, 192}, dictWord{5, 11, 49}, dictWord{6, 11, 200}, dictWord{6, 11, 293}, dictWord{ 6, 11, 1696, }, dictWord{135, 11, 488}, dictWord{4, 0, 398}, dictWord{133, 0, 660}, dictWord{7, 0, 1030}, dictWord{134, 10, 622}, dictWord{135, 11, 595}, dictWord{141, 0, 168}, dictWord{132, 11, 147}, dictWord{7, 0, 973}, dictWord{10, 10, 624}, dictWord{142, 10, 279}, dictWord{132, 10, 363}, dictWord{ 132, 0, 642, }, dictWord{133, 11, 934}, dictWord{134, 0, 1615}, dictWord{7, 11, 505}, dictWord{135, 11, 523}, dictWord{7, 0, 594}, dictWord{7, 0, 851}, dictWord{ 7, 0, 1858, }, dictWord{9, 0, 411}, dictWord{9, 0, 574}, dictWord{9, 0, 666}, dictWord{9, 0, 737}, dictWord{10, 0, 346}, dictWord{10, 0, 712}, dictWord{11, 0, 246}, dictWord{11, 0, 432}, dictWord{11, 0, 517}, dictWord{11, 0, 647}, dictWord{11, 0, 679}, dictWord{11, 0, 727}, dictWord{12, 0, 304}, dictWord{12, 0, 305}, dictWord{ 12, 0, 323, }, dictWord{12, 0, 483}, dictWord{12, 0, 572}, dictWord{12, 0, 593}, dictWord{12, 0, 602}, dictWord{13, 0, 95}, dictWord{13, 0, 101}, dictWord{ 13, 0, 171, }, dictWord{13, 0, 315}, dictWord{13, 0, 378}, dictWord{13, 0, 425}, dictWord{13, 0, 475}, dictWord{14, 0, 63}, dictWord{14, 0, 380}, dictWord{14, 0, 384}, dictWord{15, 0, 133}, dictWord{18, 0, 112}, dictWord{148, 0, 72}, dictWord{135, 0, 1093}, dictWord{132, 0, 679}, dictWord{8, 0, 913}, dictWord{10, 0, 903}, dictWord{10, 0, 915}, dictWord{12, 0, 648}, dictWord{12, 0, 649}, dictWord{14, 0, 455}, dictWord{16, 0, 112}, dictWord{138, 11, 438}, dictWord{137, 0, 203}, dictWord{134, 10, 292}, dictWord{134, 0, 1492}, dictWord{7, 0, 1374}, dictWord{8, 0, 540}, dictWord{5, 10, 177}, dictWord{6, 10, 616}, dictWord{7, 10, 827}, dictWord{9, 10, 525}, dictWord{138, 10, 656}, dictWord{135, 0, 1486}, dictWord{9, 0, 714}, dictWord{138, 10, 31}, dictWord{136, 0, 825}, dictWord{ 134, 0, 1511, }, dictWord{132, 11, 637}, dictWord{134, 0, 952}, dictWord{4, 10, 161}, dictWord{133, 10, 631}, dictWord{5, 0, 143}, dictWord{5, 0, 769}, dictWord{ 6, 0, 1760, }, dictWord{7, 0, 682}, dictWord{7, 0, 1992}, dictWord{136, 0, 736}, dictWord{132, 0, 700}, dictWord{134, 0, 1540}, dictWord{132, 11, 777}, dictWord{ 9, 11, 867, }, dictWord{138, 11, 837}, dictWord{7, 0, 1557}, dictWord{135, 10, 1684}, dictWord{133, 0, 860}, dictWord{6, 0, 422}, dictWord{7, 0, 0}, dictWord{ 7, 0, 1544, }, dictWord{9, 0, 605}, dictWord{11, 0, 990}, dictWord{12, 0, 235}, dictWord{12, 0, 453}, dictWord{13, 0, 47}, dictWord{13, 0, 266}, dictWord{9, 10, 469}, dictWord{9, 10, 709}, dictWord{12, 10, 512}, dictWord{14, 10, 65}, dictWord{145, 10, 12}, dictWord{11, 0, 807}, dictWord{10, 10, 229}, dictWord{11, 10, 73}, dictWord{139, 10, 376}, dictWord{6, 11, 170}, dictWord{7, 11, 1080}, dictWord{8, 11, 395}, dictWord{8, 11, 487}, dictWord{11, 11, 125}, dictWord{ 141, 11, 147, }, dictWord{5, 0, 515}, dictWord{137, 0, 131}, dictWord{7, 0, 1605}, dictWord{11, 0, 962}, dictWord{146, 0, 139}, dictWord{132, 0, 646}, dictWord{ 4, 0, 396, }, dictWord{7, 0, 728}, dictWord{9, 0, 117}, dictWord{13, 0, 202}, dictWord{148, 0, 51}, dictWord{6, 0, 121}, dictWord{6, 0, 124}, dictWord{6, 0, 357}, dictWord{ 7, 0, 1138, }, dictWord{7, 0, 1295}, dictWord{8, 0, 162}, dictWord{8, 0, 508}, dictWord{11, 0, 655}, dictWord{4, 11, 535}, dictWord{6, 10, 558}, dictWord{ 7, 10, 651, }, dictWord{8, 11, 618}, dictWord{9, 10, 0}, dictWord{10, 10, 34}, dictWord{139, 10, 1008}, dictWord{135, 11, 1245}, dictWord{138, 0, 357}, dictWord{ 150, 11, 23, }, dictWord{133, 0, 237}, dictWord{135, 0, 1784}, dictWord{7, 10, 1832}, dictWord{138, 10, 374}, dictWord{132, 0, 713}, dictWord{132, 11, 46}, dictWord{6, 0, 1536}, dictWord{10, 0, 348}, dictWord{5, 11, 811}, dictWord{6, 11, 1679}, dictWord{6, 11, 1714}, dictWord{135, 11, 2032}, dictWord{ 11, 11, 182, }, dictWord{142, 11, 195}, dictWord{6, 0, 523}, dictWord{7, 0, 738}, dictWord{7, 10, 771}, dictWord{7, 10, 1731}, dictWord{9, 10, 405}, dictWord{ 138, 10, 421, }, dictWord{7, 11, 1458}, dictWord{9, 11, 407}, dictWord{139, 11, 15}, dictWord{6, 11, 34}, dictWord{7, 11, 69}, dictWord{7, 11, 640}, dictWord{ 7, 11, 1089, }, dictWord{8, 11, 708}, dictWord{8, 11, 721}, dictWord{9, 11, 363}, dictWord{9, 11, 643}, dictWord{10, 11, 628}, dictWord{148, 11, 98}, dictWord{ 133, 0, 434, }, dictWord{135, 0, 1877}, dictWord{7, 0, 571}, dictWord{138, 0, 366}, dictWord{5, 10, 881}, dictWord{133, 10, 885}, dictWord{9, 0, 513}, dictWord{ 10, 0, 25, }, dictWord{10, 0, 39}, dictWord{12, 0, 122}, dictWord{140, 0, 187}, dictWord{132, 0, 580}, dictWord{5, 10, 142}, dictWord{134, 10, 546}, dictWord{ 132, 11, 462, }, dictWord{137, 0, 873}, dictWord{5, 10, 466}, dictWord{11, 10, 571}, dictWord{12, 10, 198}, dictWord{13, 10, 283}, dictWord{14, 10, 186}, dictWord{15, 10, 21}, dictWord{143, 10, 103}, dictWord{7, 0, 171}, dictWord{4, 10, 185}, dictWord{5, 10, 257}, dictWord{5, 10, 839}, dictWord{5, 10, 936}, dictWord{ 9, 10, 399, }, dictWord{10, 10, 258}, dictWord{10, 10, 395}, dictWord{10, 10, 734}, dictWord{11, 10, 1014}, dictWord{12, 10, 23}, dictWord{13, 10, 350}, dictWord{14, 10, 150}, dictWord{147, 10, 6}, dictWord{134, 0, 625}, dictWord{7, 0, 107}, dictWord{7, 0, 838}, dictWord{8, 0, 550}, dictWord{138, 0, 401}, dictWord{ 5, 11, 73, }, dictWord{6, 11, 23}, dictWord{134, 11, 338}, dictWord{4, 0, 943}, dictWord{6, 0, 1850}, dictWord{12, 0, 713}, dictWord{142, 0, 434}, dictWord{ 11, 0, 588, }, dictWord{11, 0, 864}, dictWord{11, 0, 936}, dictWord{11, 0, 968}, dictWord{12, 0, 73}, dictWord{12, 0, 343}, dictWord{12, 0, 394}, dictWord{13, 0, 275}, dictWord{14, 0, 257}, dictWord{15, 0, 160}, dictWord{7, 10, 404}, dictWord{7, 10, 1377}, dictWord{7, 10, 1430}, dictWord{7, 10, 2017}, dictWord{8, 10, 149}, dictWord{8, 10, 239}, dictWord{8, 10, 512}, dictWord{8, 10, 793}, dictWord{8, 10, 818}, dictWord{9, 10, 474}, dictWord{9, 10, 595}, dictWord{10, 10, 122}, dictWord{10, 10, 565}, dictWord{10, 10, 649}, dictWord{10, 10, 783}, dictWord{11, 10, 239}, dictWord{11, 10, 295}, dictWord{11, 10, 447}, dictWord{ 11, 10, 528, }, dictWord{11, 10, 639}, dictWord{11, 10, 800}, dictWord{12, 10, 25}, dictWord{12, 10, 157}, dictWord{12, 10, 316}, dictWord{12, 10, 390}, dictWord{ 12, 10, 391, }, dictWord{12, 10, 395}, dictWord{12, 10, 478}, dictWord{12, 10, 503}, dictWord{12, 10, 592}, dictWord{12, 10, 680}, dictWord{13, 10, 50}, dictWord{13, 10, 53}, dictWord{13, 10, 132}, dictWord{13, 10, 198}, dictWord{13, 10, 322}, dictWord{13, 10, 415}, dictWord{13, 10, 511}, dictWord{14, 10, 71}, dictWord{14, 10, 395}, dictWord{15, 10, 71}, dictWord{15, 10, 136}, dictWord{17, 10, 123}, dictWord{18, 10, 93}, dictWord{147, 10, 58}, dictWord{ 133, 0, 768, }, dictWord{11, 0, 103}, dictWord{142, 0, 0}, dictWord{136, 10, 712}, dictWord{132, 0, 799}, dictWord{132, 0, 894}, dictWord{7, 11, 725}, dictWord{ 8, 11, 498, }, dictWord{139, 11, 268}, dictWord{135, 11, 1798}, dictWord{135, 11, 773}, dictWord{141, 11, 360}, dictWord{4, 10, 377}, dictWord{152, 10, 13}, dictWord{135, 0, 1673}, dictWord{132, 11, 583}, dictWord{134, 0, 1052}, dictWord{133, 11, 220}, dictWord{140, 11, 69}, dictWord{132, 11, 544}, dictWord{ 4, 10, 180, }, dictWord{135, 10, 1906}, dictWord{134, 0, 272}, dictWord{4, 0, 441}, dictWord{134, 0, 1421}, dictWord{4, 0, 9}, dictWord{5, 0, 128}, dictWord{ 7, 0, 368, }, dictWord{11, 0, 480}, dictWord{148, 0, 3}, dictWord{5, 11, 176}, dictWord{6, 11, 437}, dictWord{6, 11, 564}, dictWord{11, 11, 181}, dictWord{ 141, 11, 183, }, dictWord{132, 10, 491}, dictWord{7, 0, 1182}, dictWord{141, 11, 67}, dictWord{6, 0, 1346}, dictWord{4, 10, 171}, dictWord{138, 10, 234}, dictWord{ 4, 10, 586, }, dictWord{7, 10, 1186}, dictWord{138, 10, 631}, dictWord{136, 0, 682}, dictWord{134, 0, 1004}, dictWord{15, 0, 24}, dictWord{143, 11, 24}, dictWord{134, 0, 968}, dictWord{4, 0, 2}, dictWord{6, 0, 742}, dictWord{6, 0, 793}, dictWord{7, 0, 545}, dictWord{7, 0, 894}, dictWord{9, 10, 931}, dictWord{ 10, 10, 334, }, dictWord{148, 10, 71}, dictWord{136, 11, 600}, dictWord{133, 10, 765}, dictWord{9, 0, 769}, dictWord{140, 0, 185}, dictWord{4, 11, 790}, dictWord{ 5, 11, 273, }, dictWord{134, 11, 394}, dictWord{7, 0, 474}, dictWord{137, 0, 578}, dictWord{4, 11, 135}, dictWord{6, 11, 127}, dictWord{7, 11, 1185}, dictWord{ 7, 11, 1511, }, dictWord{8, 11, 613}, dictWord{11, 11, 5}, dictWord{12, 11, 133}, dictWord{12, 11, 495}, dictWord{12, 11, 586}, dictWord{14, 11, 385}, dictWord{15, 11, 118}, dictWord{17, 11, 20}, dictWord{146, 11, 98}, dictWord{133, 10, 424}, dictWord{5, 0, 530}, dictWord{142, 0, 113}, dictWord{6, 11, 230}, dictWord{7, 11, 961}, dictWord{7, 11, 1085}, dictWord{136, 11, 462}, dictWord{7, 11, 1954}, dictWord{137, 11, 636}, dictWord{136, 10, 714}, dictWord{ 149, 11, 6, }, dictWord{135, 10, 685}, dictWord{9, 10, 420}, dictWord{10, 10, 269}, dictWord{10, 10, 285}, dictWord{10, 10, 576}, dictWord{11, 10, 397}, dictWord{13, 10, 175}, dictWord{145, 10, 90}, dictWord{132, 10, 429}, dictWord{5, 0, 556}, dictWord{5, 11, 162}, dictWord{136, 11, 68}, dictWord{132, 11, 654}, dictWord{4, 11, 156}, dictWord{7, 11, 998}, dictWord{7, 11, 1045}, dictWord{7, 11, 1860}, dictWord{9, 11, 48}, dictWord{9, 11, 692}, dictWord{11, 11, 419}, dictWord{139, 11, 602}, dictWord{6, 0, 1317}, dictWord{8, 0, 16}, dictWord{9, 0, 825}, dictWord{12, 0, 568}, dictWord{7, 11, 1276}, dictWord{8, 11, 474}, dictWord{137, 11, 652}, dictWord{18, 0, 97}, dictWord{7, 10, 18}, dictWord{7, 10, 699}, dictWord{7, 10, 1966}, dictWord{8, 10, 752}, dictWord{9, 10, 273}, dictWord{ 9, 10, 412, }, dictWord{9, 10, 703}, dictWord{10, 10, 71}, dictWord{10, 10, 427}, dictWord{138, 10, 508}, dictWord{10, 0, 703}, dictWord{7, 11, 1454}, dictWord{138, 11, 703}, dictWord{4, 10, 53}, dictWord{5, 10, 186}, dictWord{135, 10, 752}, dictWord{134, 0, 892}, dictWord{134, 0, 1571}, dictWord{8, 10, 575}, dictWord{10, 10, 289}, dictWord{139, 10, 319}, dictWord{6, 0, 186}, dictWord{137, 0, 426}, dictWord{134, 0, 1101}, dictWord{132, 10, 675}, dictWord{ 132, 0, 585, }, dictWord{6, 0, 1870}, dictWord{137, 0, 937}, dictWord{152, 11, 10}, dictWord{9, 11, 197}, dictWord{10, 11, 300}, dictWord{12, 11, 473}, dictWord{ 13, 11, 90, }, dictWord{141, 11, 405}, dictWord{4, 0, 93}, dictWord{5, 0, 252}, dictWord{6, 0, 229}, dictWord{7, 0, 291}, dictWord{9, 0, 550}, dictWord{139, 0, 644}, dictWord{137, 0, 749}, dictWord{9, 0, 162}, dictWord{6, 10, 209}, dictWord{8, 10, 468}, dictWord{9, 10, 210}, dictWord{11, 10, 36}, dictWord{12, 10, 28}, dictWord{12, 10, 630}, dictWord{13, 10, 21}, dictWord{13, 10, 349}, dictWord{14, 10, 7}, dictWord{145, 10, 13}, dictWord{132, 0, 381}, dictWord{132, 11, 606}, dictWord{4, 10, 342}, dictWord{135, 10, 1179}, dictWord{7, 11, 1587}, dictWord{7, 11, 1707}, dictWord{10, 11, 528}, dictWord{139, 11, 504}, dictWord{ 12, 11, 39, }, dictWord{13, 11, 265}, dictWord{141, 11, 439}, dictWord{4, 10, 928}, dictWord{133, 10, 910}, dictWord{7, 10, 1838}, dictWord{7, 11, 1978}, dictWord{136, 11, 676}, dictWord{6, 0, 762}, dictWord{6, 0, 796}, dictWord{134, 0, 956}, dictWord{4, 10, 318}, dictWord{4, 10, 496}, dictWord{7, 10, 856}, dictWord{139, 10, 654}, dictWord{137, 11, 242}, dictWord{4, 11, 361}, dictWord{133, 11, 315}, dictWord{132, 11, 461}, dictWord{132, 11, 472}, dictWord{ 132, 0, 857, }, dictWord{5, 0, 21}, dictWord{6, 0, 77}, dictWord{6, 0, 157}, dictWord{7, 0, 974}, dictWord{7, 0, 1301}, dictWord{7, 0, 1339}, dictWord{7, 0, 1490}, dictWord{ 7, 0, 1873, }, dictWord{9, 0, 628}, dictWord{7, 10, 915}, dictWord{8, 10, 247}, dictWord{147, 10, 0}, dictWord{4, 10, 202}, dictWord{5, 10, 382}, dictWord{ 6, 10, 454, }, dictWord{7, 10, 936}, dictWord{7, 10, 1803}, dictWord{8, 10, 758}, dictWord{9, 10, 375}, dictWord{9, 10, 895}, dictWord{10, 10, 743}, dictWord{ 10, 10, 792, }, dictWord{11, 10, 978}, dictWord{11, 10, 1012}, dictWord{142, 10, 109}, dictWord{7, 11, 617}, dictWord{10, 11, 498}, dictWord{11, 11, 501}, dictWord{12, 11, 16}, dictWord{140, 11, 150}, dictWord{7, 10, 1150}, dictWord{7, 10, 1425}, dictWord{7, 10, 1453}, dictWord{10, 11, 747}, dictWord{ 140, 10, 513, }, dictWord{133, 11, 155}, dictWord{11, 0, 919}, dictWord{141, 0, 409}, dictWord{138, 10, 791}, dictWord{10, 0, 633}, dictWord{139, 11, 729}, dictWord{ 7, 11, 163, }, dictWord{8, 11, 319}, dictWord{9, 11, 402}, dictWord{10, 11, 24}, dictWord{10, 11, 681}, dictWord{11, 11, 200}, dictWord{11, 11, 567}, dictWord{12, 11, 253}, dictWord{12, 11, 410}, dictWord{142, 11, 219}, dictWord{5, 11, 475}, dictWord{7, 11, 1780}, dictWord{9, 11, 230}, dictWord{11, 11, 297}, dictWord{11, 11, 558}, dictWord{14, 11, 322}, dictWord{147, 11, 76}, dictWord{7, 0, 332}, dictWord{6, 10, 445}, dictWord{137, 10, 909}, dictWord{ 135, 11, 1956, }, dictWord{136, 11, 274}, dictWord{134, 10, 578}, dictWord{135, 0, 1489}, dictWord{135, 11, 1848}, dictWord{5, 11, 944}, dictWord{ 134, 11, 1769, }, dictWord{132, 11, 144}, dictWord{136, 10, 766}, dictWord{4, 0, 832}, dictWord{135, 10, 541}, dictWord{8, 0, 398}, dictWord{9, 0, 681}, dictWord{ 139, 0, 632, }, dictWord{136, 0, 645}, dictWord{9, 0, 791}, dictWord{10, 0, 93}, dictWord{16, 0, 13}, dictWord{17, 0, 23}, dictWord{18, 0, 135}, dictWord{19, 0, 12}, dictWord{20, 0, 1}, dictWord{20, 0, 12}, dictWord{148, 0, 14}, dictWord{6, 11, 247}, dictWord{137, 11, 555}, dictWord{134, 0, 20}, dictWord{132, 0, 800}, dictWord{135, 0, 1841}, dictWord{139, 10, 983}, dictWord{137, 10, 768}, dictWord{132, 10, 584}, dictWord{141, 11, 51}, dictWord{6, 0, 1993}, dictWord{ 4, 11, 620, }, dictWord{138, 11, 280}, dictWord{136, 0, 769}, dictWord{11, 0, 290}, dictWord{11, 0, 665}, dictWord{7, 11, 1810}, dictWord{11, 11, 866}, dictWord{ 12, 11, 103, }, dictWord{13, 11, 495}, dictWord{17, 11, 67}, dictWord{147, 11, 74}, dictWord{134, 0, 1426}, dictWord{139, 0, 60}, dictWord{4, 10, 326}, dictWord{135, 10, 1770}, dictWord{7, 0, 1874}, dictWord{9, 0, 641}, dictWord{132, 10, 226}, dictWord{6, 0, 644}, dictWord{5, 10, 426}, dictWord{8, 10, 30}, dictWord{ 9, 10, 2, }, dictWord{11, 10, 549}, dictWord{147, 10, 122}, dictWord{5, 11, 428}, dictWord{138, 11, 442}, dictWord{135, 11, 1871}, dictWord{ 135, 0, 1757, }, dictWord{147, 10, 117}, dictWord{135, 0, 937}, dictWord{135, 0, 1652}, dictWord{6, 0, 654}, dictWord{134, 0, 1476}, dictWord{133, 11, 99}, dictWord{135, 0, 527}, dictWord{132, 10, 345}, dictWord{4, 10, 385}, dictWord{4, 11, 397}, dictWord{7, 10, 265}, dictWord{135, 10, 587}, dictWord{4, 0, 579}, dictWord{5, 0, 226}, dictWord{5, 0, 323}, dictWord{135, 0, 960}, dictWord{134, 0, 1486}, dictWord{8, 11, 502}, dictWord{144, 11, 9}, dictWord{4, 10, 347}, dictWord{ 5, 10, 423, }, dictWord{5, 10, 996}, dictWord{135, 10, 1329}, dictWord{7, 11, 727}, dictWord{146, 11, 73}, dictWord{4, 11, 485}, dictWord{7, 11, 353}, dictWord{7, 10, 1259}, dictWord{7, 11, 1523}, dictWord{9, 10, 125}, dictWord{139, 10, 65}, dictWord{6, 0, 325}, dictWord{5, 10, 136}, dictWord{6, 11, 366}, dictWord{ 7, 11, 1384, }, dictWord{7, 11, 1601}, dictWord{136, 10, 644}, dictWord{138, 11, 160}, dictWord{6, 0, 1345}, dictWord{137, 11, 282}, dictWord{18, 0, 91}, dictWord{147, 0, 70}, dictWord{136, 0, 404}, dictWord{4, 11, 157}, dictWord{133, 11, 471}, dictWord{133, 0, 973}, dictWord{6, 0, 135}, dictWord{ 135, 0, 1176, }, dictWord{8, 11, 116}, dictWord{11, 11, 551}, dictWord{142, 11, 159}, dictWord{4, 0, 549}, dictWord{4, 10, 433}, dictWord{133, 10, 719}, dictWord{ 136, 0, 976, }, dictWord{5, 11, 160}, dictWord{7, 11, 363}, dictWord{7, 11, 589}, dictWord{10, 11, 170}, dictWord{141, 11, 55}, dictWord{144, 0, 21}, dictWord{ 144, 0, 51, }, dictWord{135, 0, 314}, dictWord{135, 10, 1363}, dictWord{4, 11, 108}, dictWord{7, 11, 405}, dictWord{10, 11, 491}, dictWord{139, 11, 498}, dictWord{146, 0, 4}, dictWord{4, 10, 555}, dictWord{8, 10, 536}, dictWord{10, 10, 288}, dictWord{139, 10, 1005}, dictWord{135, 11, 1005}, dictWord{6, 0, 281}, dictWord{7, 0, 6}, dictWord{8, 0, 282}, dictWord{8, 0, 480}, dictWord{8, 0, 499}, dictWord{9, 0, 198}, dictWord{10, 0, 143}, dictWord{10, 0, 169}, dictWord{ 10, 0, 211, }, dictWord{10, 0, 417}, dictWord{10, 0, 574}, dictWord{11, 0, 147}, dictWord{11, 0, 395}, dictWord{12, 0, 75}, dictWord{12, 0, 407}, dictWord{12, 0, 608}, dictWord{13, 0, 500}, dictWord{142, 0, 251}, dictWord{6, 0, 1093}, dictWord{6, 0, 1405}, dictWord{9, 10, 370}, dictWord{138, 10, 90}, dictWord{4, 11, 926}, dictWord{133, 11, 983}, dictWord{135, 0, 1776}, dictWord{134, 0, 1528}, dictWord{132, 0, 419}, dictWord{132, 11, 538}, dictWord{6, 11, 294}, dictWord{ 7, 11, 1267, }, dictWord{136, 11, 624}, dictWord{135, 11, 1772}, dictWord{138, 11, 301}, dictWord{4, 10, 257}, dictWord{135, 10, 2031}, dictWord{4, 0, 138}, dictWord{7, 0, 1012}, dictWord{7, 0, 1280}, dictWord{9, 0, 76}, dictWord{135, 10, 1768}, dictWord{132, 11, 757}, dictWord{5, 0, 29}, dictWord{140, 0, 638}, dictWord{7, 11, 655}, dictWord{135, 11, 1844}, dictWord{7, 0, 1418}, dictWord{6, 11, 257}, dictWord{135, 11, 1522}, dictWord{8, 11, 469}, dictWord{ 138, 11, 47, }, dictWord{142, 11, 278}, dictWord{6, 10, 83}, dictWord{6, 10, 1733}, dictWord{135, 10, 1389}, dictWord{11, 11, 204}, dictWord{11, 11, 243}, dictWord{140, 11, 293}, dictWord{135, 11, 1875}, dictWord{6, 0, 1710}, dictWord{135, 0, 2038}, dictWord{137, 11, 299}, dictWord{4, 0, 17}, dictWord{5, 0, 23}, dictWord{7, 0, 995}, dictWord{11, 0, 383}, dictWord{11, 0, 437}, dictWord{12, 0, 460}, dictWord{140, 0, 532}, dictWord{133, 0, 862}, dictWord{137, 10, 696}, dictWord{6, 0, 592}, dictWord{138, 0, 946}, dictWord{138, 11, 599}, dictWord{7, 10, 1718}, dictWord{9, 10, 95}, dictWord{9, 10, 274}, dictWord{10, 10, 279}, dictWord{10, 10, 317}, dictWord{10, 10, 420}, dictWord{11, 10, 303}, dictWord{11, 10, 808}, dictWord{12, 10, 134}, dictWord{12, 10, 367}, dictWord{ 13, 10, 149, }, dictWord{13, 10, 347}, dictWord{14, 10, 349}, dictWord{14, 10, 406}, dictWord{18, 10, 22}, dictWord{18, 10, 89}, dictWord{18, 10, 122}, dictWord{ 147, 10, 47, }, dictWord{8, 0, 70}, dictWord{12, 0, 171}, dictWord{141, 0, 272}, dictWord{133, 10, 26}, dictWord{132, 10, 550}, dictWord{137, 0, 812}, dictWord{ 10, 0, 233, }, dictWord{139, 0, 76}, dictWord{134, 0, 988}, dictWord{134, 0, 442}, dictWord{136, 10, 822}, dictWord{7, 0, 896}, dictWord{4, 10, 902}, dictWord{ 5, 10, 809, }, dictWord{134, 10, 122}, dictWord{5, 11, 150}, dictWord{7, 11, 106}, dictWord{8, 11, 603}, dictWord{9, 11, 593}, dictWord{9, 11, 634}, dictWord{ 10, 11, 44, }, dictWord{10, 11, 173}, dictWord{11, 11, 462}, dictWord{11, 11, 515}, dictWord{13, 11, 216}, dictWord{13, 11, 288}, dictWord{142, 11, 400}, dictWord{136, 0, 483}, dictWord{135, 10, 262}, dictWord{6, 0, 1709}, dictWord{133, 10, 620}, dictWord{4, 10, 34}, dictWord{5, 10, 574}, dictWord{7, 10, 279}, dictWord{7, 10, 1624}, dictWord{136, 10, 601}, dictWord{137, 10, 170}, dictWord{147, 0, 119}, dictWord{12, 11, 108}, dictWord{141, 11, 291}, dictWord{ 11, 0, 69, }, dictWord{12, 0, 105}, dictWord{12, 0, 117}, dictWord{13, 0, 213}, dictWord{14, 0, 13}, dictWord{14, 0, 62}, dictWord{14, 0, 177}, dictWord{14, 0, 421}, dictWord{15, 0, 19}, dictWord{146, 0, 141}, dictWord{137, 0, 309}, dictWord{11, 11, 278}, dictWord{142, 11, 73}, dictWord{7, 0, 608}, dictWord{7, 0, 976}, dictWord{9, 0, 146}, dictWord{10, 0, 206}, dictWord{10, 0, 596}, dictWord{13, 0, 218}, dictWord{142, 0, 153}, dictWord{133, 10, 332}, dictWord{6, 10, 261}, dictWord{ 8, 10, 182, }, dictWord{139, 10, 943}, dictWord{4, 11, 493}, dictWord{144, 11, 55}, dictWord{134, 10, 1721}, dictWord{132, 0, 768}, dictWord{4, 10, 933}, dictWord{133, 10, 880}, dictWord{7, 11, 555}, dictWord{7, 11, 1316}, dictWord{7, 11, 1412}, dictWord{7, 11, 1839}, dictWord{9, 11, 192}, dictWord{ 9, 11, 589, }, dictWord{11, 11, 241}, dictWord{11, 11, 676}, dictWord{11, 11, 811}, dictWord{11, 11, 891}, dictWord{12, 11, 140}, dictWord{12, 11, 346}, dictWord{ 12, 11, 479, }, dictWord{13, 11, 30}, dictWord{13, 11, 49}, dictWord{13, 11, 381}, dictWord{14, 11, 188}, dictWord{15, 11, 150}, dictWord{16, 11, 76}, dictWord{18, 11, 30}, dictWord{148, 11, 52}, dictWord{4, 0, 518}, dictWord{135, 0, 1136}, dictWord{6, 11, 568}, dictWord{7, 11, 112}, dictWord{7, 11, 1804}, dictWord{8, 11, 362}, dictWord{8, 11, 410}, dictWord{8, 11, 830}, dictWord{9, 11, 514}, dictWord{11, 11, 649}, dictWord{142, 11, 157}, dictWord{135, 11, 673}, dictWord{8, 0, 689}, dictWord{137, 0, 863}, dictWord{4, 0, 18}, dictWord{7, 0, 145}, dictWord{7, 0, 444}, dictWord{7, 0, 1278}, dictWord{8, 0, 49}, dictWord{8, 0, 400}, dictWord{9, 0, 71}, dictWord{9, 0, 250}, dictWord{10, 0, 459}, dictWord{12, 0, 160}, dictWord{16, 0, 24}, dictWord{132, 11, 625}, dictWord{140, 0, 1020}, dictWord{4, 0, 997}, dictWord{6, 0, 1946}, dictWord{6, 0, 1984}, dictWord{134, 0, 1998}, dictWord{6, 11, 16}, dictWord{6, 11, 158}, dictWord{7, 11, 43}, dictWord{ 7, 11, 129, }, dictWord{7, 11, 181}, dictWord{8, 11, 276}, dictWord{8, 11, 377}, dictWord{10, 11, 523}, dictWord{11, 11, 816}, dictWord{12, 11, 455}, dictWord{ 13, 11, 303, }, dictWord{142, 11, 135}, dictWord{133, 10, 812}, dictWord{134, 0, 658}, dictWord{4, 11, 1}, dictWord{7, 11, 1143}, dictWord{7, 11, 1463}, dictWord{8, 11, 61}, dictWord{9, 11, 207}, dictWord{9, 11, 390}, dictWord{9, 11, 467}, dictWord{139, 11, 836}, dictWord{150, 11, 26}, dictWord{140, 0, 106}, dictWord{6, 0, 1827}, dictWord{10, 0, 931}, dictWord{18, 0, 166}, dictWord{20, 0, 114}, dictWord{4, 10, 137}, dictWord{7, 10, 1178}, dictWord{7, 11, 1319}, dictWord{135, 10, 1520}, dictWord{133, 0, 1010}, dictWord{4, 11, 723}, dictWord{5, 11, 895}, dictWord{7, 11, 1031}, dictWord{8, 11, 199}, dictWord{8, 11, 340}, dictWord{9, 11, 153}, dictWord{9, 11, 215}, dictWord{10, 11, 21}, dictWord{10, 11, 59}, dictWord{10, 11, 80}, dictWord{10, 11, 224}, dictWord{11, 11, 229}, dictWord{11, 11, 652}, dictWord{12, 11, 192}, dictWord{13, 11, 146}, dictWord{142, 11, 91}, dictWord{132, 11, 295}, dictWord{6, 11, 619}, dictWord{ 7, 11, 898, }, dictWord{7, 11, 1092}, dictWord{8, 11, 485}, dictWord{18, 11, 28}, dictWord{147, 11, 116}, dictWord{137, 11, 51}, dictWord{6, 10, 1661}, dictWord{ 7, 10, 1975, }, dictWord{7, 10, 2009}, dictWord{135, 10, 2011}, dictWord{5, 11, 309}, dictWord{140, 11, 211}, dictWord{5, 0, 87}, dictWord{7, 0, 313}, dictWord{ 7, 0, 1103, }, dictWord{10, 0, 208}, dictWord{10, 0, 582}, dictWord{11, 0, 389}, dictWord{11, 0, 813}, dictWord{12, 0, 385}, dictWord{13, 0, 286}, dictWord{ 14, 0, 124, }, dictWord{146, 0, 108}, dictWord{5, 11, 125}, dictWord{8, 11, 77}, dictWord{138, 11, 15}, dictWord{132, 0, 267}, dictWord{133, 0, 703}, dictWord{ 137, 11, 155, }, dictWord{133, 11, 439}, dictWord{11, 11, 164}, dictWord{140, 11, 76}, dictWord{9, 0, 496}, dictWord{5, 10, 89}, dictWord{7, 10, 1915}, dictWord{ 9, 10, 185, }, dictWord{9, 10, 235}, dictWord{10, 10, 64}, dictWord{10, 10, 270}, dictWord{10, 10, 403}, dictWord{10, 10, 469}, dictWord{10, 10, 529}, dictWord{10, 10, 590}, dictWord{11, 10, 140}, dictWord{11, 10, 860}, dictWord{13, 10, 1}, dictWord{13, 10, 422}, dictWord{14, 10, 341}, dictWord{14, 10, 364}, dictWord{17, 10, 93}, dictWord{18, 10, 113}, dictWord{19, 10, 97}, dictWord{147, 10, 113}, dictWord{133, 10, 695}, dictWord{135, 0, 1121}, dictWord{ 5, 10, 6, }, dictWord{6, 10, 183}, dictWord{7, 10, 680}, dictWord{7, 10, 978}, dictWord{7, 10, 1013}, dictWord{7, 10, 1055}, dictWord{12, 10, 230}, dictWord{ 13, 10, 172, }, dictWord{146, 10, 29}, dictWord{4, 11, 8}, dictWord{7, 11, 1152}, dictWord{7, 11, 1153}, dictWord{7, 11, 1715}, dictWord{9, 11, 374}, dictWord{ 10, 11, 478, }, dictWord{139, 11, 648}, dictWord{135, 11, 1099}, dictWord{6, 10, 29}, dictWord{139, 10, 63}, dictWord{4, 0, 561}, dictWord{10, 0, 249}, dictWord{ 139, 0, 209, }, dictWord{132, 0, 760}, dictWord{7, 11, 799}, dictWord{138, 11, 511}, dictWord{136, 11, 87}, dictWord{9, 0, 154}, dictWord{140, 0, 485}, dictWord{136, 0, 255}, dictWord{132, 0, 323}, dictWord{140, 0, 419}, dictWord{132, 10, 311}, dictWord{134, 10, 1740}, dictWord{4, 0, 368}, dictWord{ 135, 0, 641, }, dictWord{7, 10, 170}, dictWord{8, 10, 90}, dictWord{8, 10, 177}, dictWord{8, 10, 415}, dictWord{11, 10, 714}, dictWord{142, 10, 281}, dictWord{ 4, 11, 69, }, dictWord{5, 11, 122}, dictWord{9, 11, 656}, dictWord{138, 11, 464}, dictWord{5, 11, 849}, dictWord{134, 11, 1633}, dictWord{8, 0, 522}, dictWord{ 142, 0, 328, }, dictWord{11, 10, 91}, dictWord{13, 10, 129}, dictWord{15, 10, 101}, dictWord{145, 10, 125}, dictWord{7, 0, 562}, dictWord{8, 0, 551}, dictWord{ 4, 10, 494, }, dictWord{6, 10, 74}, dictWord{7, 10, 44}, dictWord{11, 11, 499}, dictWord{12, 10, 17}, dictWord{15, 10, 5}, dictWord{148, 10, 11}, dictWord{4, 10, 276}, dictWord{133, 10, 296}, dictWord{9, 0, 92}, dictWord{147, 0, 91}, dictWord{4, 10, 7}, dictWord{5, 10, 90}, dictWord{5, 10, 158}, dictWord{6, 10, 542}, dictWord{ 7, 10, 221, }, dictWord{7, 10, 1574}, dictWord{9, 10, 490}, dictWord{10, 10, 540}, dictWord{11, 10, 443}, dictWord{139, 10, 757}, dictWord{6, 0, 525}, dictWord{ 6, 0, 1976, }, dictWord{8, 0, 806}, dictWord{9, 0, 876}, dictWord{140, 0, 284}, dictWord{5, 11, 859}, dictWord{7, 10, 588}, dictWord{7, 11, 1160}, dictWord{ 8, 11, 107, }, dictWord{9, 10, 175}, dictWord{9, 11, 291}, dictWord{9, 11, 439}, dictWord{10, 10, 530}, dictWord{10, 11, 663}, dictWord{11, 11, 609}, dictWord{ 140, 11, 197, }, dictWord{7, 11, 168}, dictWord{13, 11, 196}, dictWord{141, 11, 237}, dictWord{139, 0, 958}, dictWord{133, 0, 594}, dictWord{135, 10, 580}, dictWord{7, 10, 88}, dictWord{136, 10, 627}, dictWord{6, 0, 479}, dictWord{6, 0, 562}, dictWord{7, 0, 1060}, dictWord{13, 0, 6}, dictWord{5, 10, 872}, dictWord{ 6, 10, 57, }, dictWord{7, 10, 471}, dictWord{9, 10, 447}, dictWord{137, 10, 454}, dictWord{136, 11, 413}, dictWord{145, 11, 19}, dictWord{4, 11, 117}, dictWord{ 6, 11, 372, }, dictWord{7, 11, 1905}, dictWord{142, 11, 323}, dictWord{4, 11, 722}, dictWord{139, 11, 471}, dictWord{17, 0, 61}, dictWord{5, 10, 31}, dictWord{134, 10, 614}, dictWord{8, 10, 330}, dictWord{140, 10, 477}, dictWord{7, 10, 1200}, dictWord{138, 10, 460}, dictWord{6, 10, 424}, dictWord{ 135, 10, 1866, }, dictWord{6, 0, 1641}, dictWord{136, 0, 820}, dictWord{6, 0, 1556}, dictWord{134, 0, 1618}, dictWord{9, 11, 5}, dictWord{12, 11, 216}, dictWord{ 12, 11, 294, }, dictWord{12, 11, 298}, dictWord{12, 11, 400}, dictWord{12, 11, 518}, dictWord{13, 11, 229}, dictWord{143, 11, 139}, dictWord{15, 11, 155}, dictWord{144, 11, 79}, dictWord{4, 0, 302}, dictWord{135, 0, 1766}, dictWord{5, 10, 13}, dictWord{134, 10, 142}, dictWord{6, 0, 148}, dictWord{7, 0, 1313}, dictWord{ 7, 10, 116, }, dictWord{8, 10, 322}, dictWord{8, 10, 755}, dictWord{9, 10, 548}, dictWord{10, 10, 714}, dictWord{11, 10, 884}, dictWord{141, 10, 324}, dictWord{137, 0, 676}, dictWord{9, 11, 88}, dictWord{139, 11, 270}, dictWord{5, 11, 12}, dictWord{7, 11, 375}, dictWord{137, 11, 438}, dictWord{134, 0, 1674}, dictWord{7, 10, 1472}, dictWord{135, 10, 1554}, dictWord{11, 0, 178}, dictWord{7, 10, 1071}, dictWord{7, 10, 1541}, dictWord{7, 10, 1767}, dictWord{ 7, 10, 1806, }, dictWord{11, 10, 162}, dictWord{11, 10, 242}, dictWord{12, 10, 605}, dictWord{15, 10, 26}, dictWord{144, 10, 44}, dictWord{6, 0, 389}, dictWord{ 7, 0, 149, }, dictWord{9, 0, 142}, dictWord{138, 0, 94}, dictWord{140, 11, 71}, dictWord{145, 10, 115}, dictWord{6, 0, 8}, dictWord{7, 0, 1881}, dictWord{8, 0, 91}, dictWord{11, 11, 966}, dictWord{12, 11, 287}, dictWord{13, 11, 342}, dictWord{13, 11, 402}, dictWord{15, 11, 110}, dictWord{143, 11, 163}, dictWord{ 4, 11, 258, }, dictWord{136, 11, 639}, dictWord{6, 11, 22}, dictWord{7, 11, 903}, dictWord{138, 11, 577}, dictWord{133, 11, 681}, dictWord{135, 10, 1111}, dictWord{135, 11, 1286}, dictWord{9, 0, 112}, dictWord{8, 10, 1}, dictWord{138, 10, 326}, dictWord{5, 10, 488}, dictWord{6, 10, 527}, dictWord{7, 10, 489}, dictWord{ 7, 10, 1636, }, dictWord{8, 10, 121}, dictWord{8, 10, 144}, dictWord{8, 10, 359}, dictWord{9, 10, 193}, dictWord{9, 10, 241}, dictWord{9, 10, 336}, dictWord{ 9, 10, 882, }, dictWord{11, 10, 266}, dictWord{11, 10, 372}, dictWord{11, 10, 944}, dictWord{12, 10, 401}, dictWord{140, 10, 641}, dictWord{4, 11, 664}, dictWord{133, 11, 804}, dictWord{6, 0, 747}, dictWord{134, 0, 1015}, dictWord{135, 0, 1746}, dictWord{9, 10, 31}, dictWord{10, 10, 244}, dictWord{ 10, 10, 699, }, dictWord{12, 10, 149}, dictWord{141, 10, 497}, dictWord{133, 10, 377}, dictWord{135, 0, 24}, dictWord{6, 0, 1352}, dictWord{5, 11, 32}, dictWord{ 145, 10, 101, }, dictWord{7, 0, 1530}, dictWord{10, 0, 158}, dictWord{13, 0, 13}, dictWord{13, 0, 137}, dictWord{13, 0, 258}, dictWord{14, 0, 111}, dictWord{ 14, 0, 225, }, dictWord{14, 0, 253}, dictWord{14, 0, 304}, dictWord{14, 0, 339}, dictWord{14, 0, 417}, dictWord{146, 0, 33}, dictWord{4, 0, 503}, dictWord{ 135, 0, 1661, }, dictWord{5, 0, 130}, dictWord{6, 0, 845}, dictWord{7, 0, 1314}, dictWord{9, 0, 610}, dictWord{10, 0, 718}, dictWord{11, 0, 601}, dictWord{11, 0, 819}, dictWord{11, 0, 946}, dictWord{140, 0, 536}, dictWord{10, 0, 149}, dictWord{11, 0, 280}, dictWord{142, 0, 336}, dictWord{134, 0, 1401}, dictWord{ 135, 0, 1946, }, dictWord{8, 0, 663}, dictWord{144, 0, 8}, dictWord{134, 0, 1607}, dictWord{135, 10, 2023}, dictWord{4, 11, 289}, dictWord{7, 11, 629}, dictWord{ 7, 11, 1698, }, dictWord{7, 11, 1711}, dictWord{140, 11, 215}, dictWord{6, 11, 450}, dictWord{136, 11, 109}, dictWord{10, 0, 882}, dictWord{10, 0, 883}, dictWord{10, 0, 914}, dictWord{138, 0, 928}, dictWord{133, 10, 843}, dictWord{136, 11, 705}, dictWord{132, 10, 554}, dictWord{133, 10, 536}, dictWord{ 5, 0, 417, }, dictWord{9, 10, 79}, dictWord{11, 10, 625}, dictWord{145, 10, 7}, dictWord{7, 11, 1238}, dictWord{142, 11, 37}, dictWord{4, 0, 392}, dictWord{ 135, 0, 1597, }, dictWord{5, 0, 433}, dictWord{9, 0, 633}, dictWord{11, 0, 629}, dictWord{132, 10, 424}, dictWord{7, 10, 336}, dictWord{136, 10, 785}, dictWord{ 134, 11, 355, }, dictWord{6, 0, 234}, dictWord{7, 0, 769}, dictWord{9, 0, 18}, dictWord{138, 0, 358}, dictWord{4, 10, 896}, dictWord{134, 10, 1777}, dictWord{ 138, 11, 323, }, dictWord{7, 0, 140}, dictWord{7, 0, 1950}, dictWord{8, 0, 680}, dictWord{11, 0, 817}, dictWord{147, 0, 88}, dictWord{7, 0, 1222}, dictWord{ 138, 0, 386, }, dictWord{139, 11, 908}, dictWord{11, 0, 249}, dictWord{12, 0, 313}, dictWord{16, 0, 66}, dictWord{145, 0, 26}, dictWord{134, 0, 5}, dictWord{7, 10, 750}, dictWord{9, 10, 223}, dictWord{11, 10, 27}, dictWord{11, 10, 466}, dictWord{12, 10, 624}, dictWord{14, 10, 265}, dictWord{146, 10, 61}, dictWord{ 134, 11, 26, }, dictWord{134, 0, 1216}, dictWord{5, 0, 963}, dictWord{134, 0, 1773}, dictWord{4, 11, 414}, dictWord{5, 11, 467}, dictWord{9, 11, 654}, dictWord{ 10, 11, 451, }, dictWord{12, 11, 59}, dictWord{141, 11, 375}, dictWord{135, 11, 17}, dictWord{4, 10, 603}, dictWord{133, 10, 661}, dictWord{4, 10, 11}, dictWord{ 6, 10, 128, }, dictWord{7, 10, 231}, dictWord{7, 10, 1533}, dictWord{138, 10, 725}, dictWord{135, 11, 955}, dictWord{7, 0, 180}, dictWord{8, 0, 509}, dictWord{ 136, 0, 792, }, dictWord{132, 10, 476}, dictWord{132, 0, 1002}, dictWord{133, 11, 538}, dictWord{135, 10, 1807}, dictWord{132, 0, 931}, dictWord{7, 0, 943}, dictWord{11, 0, 614}, dictWord{140, 0, 747}, dictWord{135, 0, 1837}, dictWord{9, 10, 20}, dictWord{10, 10, 324}, dictWord{10, 10, 807}, dictWord{ 139, 10, 488, }, dictWord{134, 0, 641}, dictWord{6, 11, 280}, dictWord{10, 11, 502}, dictWord{11, 11, 344}, dictWord{140, 11, 38}, dictWord{5, 11, 45}, dictWord{ 7, 11, 1161, }, dictWord{11, 11, 448}, dictWord{11, 11, 880}, dictWord{13, 11, 139}, dictWord{13, 11, 407}, dictWord{15, 11, 16}, dictWord{17, 11, 95}, dictWord{ 18, 11, 66, }, dictWord{18, 11, 88}, dictWord{18, 11, 123}, dictWord{149, 11, 7}, dictWord{9, 0, 280}, dictWord{138, 0, 134}, dictWord{22, 0, 22}, dictWord{23, 0, 5}, dictWord{151, 0, 29}, dictWord{136, 11, 777}, dictWord{4, 0, 90}, dictWord{5, 0, 545}, dictWord{7, 0, 754}, dictWord{9, 0, 186}, dictWord{10, 0, 72}, dictWord{ 10, 0, 782, }, dictWord{11, 0, 577}, dictWord{11, 0, 610}, dictWord{11, 0, 960}, dictWord{12, 0, 354}, dictWord{12, 0, 362}, dictWord{12, 0, 595}, dictWord{ 4, 11, 410, }, dictWord{135, 11, 521}, dictWord{135, 11, 1778}, dictWord{5, 10, 112}, dictWord{6, 10, 103}, dictWord{134, 10, 150}, dictWord{138, 10, 356}, dictWord{132, 0, 742}, dictWord{7, 0, 151}, dictWord{9, 0, 329}, dictWord{139, 0, 254}, dictWord{8, 0, 853}, dictWord{8, 0, 881}, dictWord{8, 0, 911}, dictWord{ 8, 0, 912, }, dictWord{10, 0, 872}, dictWord{12, 0, 741}, dictWord{12, 0, 742}, dictWord{152, 0, 18}, dictWord{4, 11, 573}, dictWord{136, 11, 655}, dictWord{ 6, 0, 921, }, dictWord{134, 0, 934}, dictWord{9, 0, 187}, dictWord{10, 0, 36}, dictWord{11, 0, 1016}, dictWord{17, 0, 44}, dictWord{146, 0, 64}, dictWord{7, 0, 833}, dictWord{136, 0, 517}, dictWord{4, 0, 506}, dictWord{5, 0, 295}, dictWord{135, 0, 1680}, dictWord{4, 10, 708}, dictWord{8, 10, 15}, dictWord{9, 10, 50}, dictWord{ 9, 10, 386, }, dictWord{11, 10, 18}, dictWord{11, 10, 529}, dictWord{140, 10, 228}, dictWord{7, 0, 251}, dictWord{7, 0, 1701}, dictWord{8, 0, 436}, dictWord{ 4, 10, 563, }, dictWord{7, 10, 592}, dictWord{7, 10, 637}, dictWord{7, 10, 770}, dictWord{8, 10, 463}, dictWord{9, 10, 60}, dictWord{9, 10, 335}, dictWord{9, 10, 904}, dictWord{10, 10, 73}, dictWord{11, 10, 434}, dictWord{12, 10, 585}, dictWord{13, 10, 331}, dictWord{18, 10, 110}, dictWord{148, 10, 60}, dictWord{ 132, 10, 502, }, dictWord{136, 0, 584}, dictWord{6, 10, 347}, dictWord{138, 10, 161}, dictWord{7, 0, 987}, dictWord{9, 0, 688}, dictWord{10, 0, 522}, dictWord{ 11, 0, 788, }, dictWord{12, 0, 137}, dictWord{12, 0, 566}, dictWord{14, 0, 9}, dictWord{14, 0, 24}, dictWord{14, 0, 64}, dictWord{7, 11, 899}, dictWord{142, 11, 325}, dictWord{4, 0, 214}, dictWord{5, 0, 500}, dictWord{5, 10, 102}, dictWord{6, 10, 284}, dictWord{7, 10, 1079}, dictWord{7, 10, 1423}, dictWord{7, 10, 1702}, dictWord{ 8, 10, 470, }, dictWord{9, 10, 554}, dictWord{9, 10, 723}, dictWord{139, 10, 333}, dictWord{7, 10, 246}, dictWord{135, 10, 840}, dictWord{6, 10, 10}, dictWord{ 8, 10, 571, }, dictWord{9, 10, 739}, dictWord{143, 10, 91}, dictWord{133, 10, 626}, dictWord{146, 0, 195}, dictWord{134, 0, 1775}, dictWord{7, 0, 389}, dictWord{7, 0, 700}, dictWord{7, 0, 940}, dictWord{8, 0, 514}, dictWord{9, 0, 116}, dictWord{9, 0, 535}, dictWord{10, 0, 118}, dictWord{11, 0, 107}, dictWord{ 11, 0, 148, }, dictWord{11, 0, 922}, dictWord{12, 0, 254}, dictWord{12, 0, 421}, dictWord{142, 0, 238}, dictWord{5, 10, 18}, dictWord{6, 10, 526}, dictWord{13, 10, 24}, dictWord{13, 10, 110}, dictWord{19, 10, 5}, dictWord{147, 10, 44}, dictWord{132, 0, 743}, dictWord{11, 0, 292}, dictWord{4, 10, 309}, dictWord{5, 10, 462}, dictWord{7, 10, 970}, dictWord{135, 10, 1097}, dictWord{22, 10, 30}, dictWord{150, 10, 33}, dictWord{139, 11, 338}, dictWord{135, 11, 1598}, dictWord{ 7, 0, 1283, }, dictWord{9, 0, 227}, dictWord{11, 0, 325}, dictWord{11, 0, 408}, dictWord{14, 0, 180}, dictWord{146, 0, 47}, dictWord{4, 0, 953}, dictWord{6, 0, 1805}, dictWord{6, 0, 1814}, dictWord{6, 0, 1862}, dictWord{140, 0, 774}, dictWord{6, 11, 611}, dictWord{135, 11, 1733}, dictWord{135, 11, 1464}, dictWord{ 5, 0, 81, }, dictWord{7, 0, 146}, dictWord{7, 0, 1342}, dictWord{8, 0, 53}, dictWord{8, 0, 561}, dictWord{8, 0, 694}, dictWord{8, 0, 754}, dictWord{9, 0, 115}, dictWord{ 9, 0, 179, }, dictWord{9, 0, 894}, dictWord{10, 0, 462}, dictWord{10, 0, 813}, dictWord{11, 0, 230}, dictWord{11, 0, 657}, dictWord{11, 0, 699}, dictWord{11, 0, 748}, dictWord{12, 0, 119}, dictWord{12, 0, 200}, dictWord{12, 0, 283}, dictWord{142, 0, 273}, dictWord{5, 0, 408}, dictWord{6, 0, 789}, dictWord{6, 0, 877}, dictWord{ 6, 0, 1253, }, dictWord{6, 0, 1413}, dictWord{137, 0, 747}, dictWord{134, 10, 1704}, dictWord{135, 11, 663}, dictWord{6, 0, 1910}, dictWord{6, 0, 1915}, dictWord{6, 0, 1923}, dictWord{9, 0, 913}, dictWord{9, 0, 928}, dictWord{9, 0, 950}, dictWord{9, 0, 954}, dictWord{9, 0, 978}, dictWord{9, 0, 993}, dictWord{12, 0, 812}, dictWord{12, 0, 819}, dictWord{12, 0, 831}, dictWord{12, 0, 833}, dictWord{12, 0, 838}, dictWord{12, 0, 909}, dictWord{12, 0, 928}, dictWord{12, 0, 931}, dictWord{12, 0, 950}, dictWord{15, 0, 186}, dictWord{15, 0, 187}, dictWord{15, 0, 195}, dictWord{15, 0, 196}, dictWord{15, 0, 209}, dictWord{15, 0, 215}, dictWord{ 15, 0, 236, }, dictWord{15, 0, 241}, dictWord{15, 0, 249}, dictWord{15, 0, 253}, dictWord{18, 0, 180}, dictWord{18, 0, 221}, dictWord{18, 0, 224}, dictWord{ 18, 0, 227, }, dictWord{18, 0, 229}, dictWord{149, 0, 60}, dictWord{7, 0, 1826}, dictWord{135, 0, 1938}, dictWord{11, 0, 490}, dictWord{18, 0, 143}, dictWord{ 5, 10, 86, }, dictWord{7, 10, 743}, dictWord{9, 10, 85}, dictWord{10, 10, 281}, dictWord{10, 10, 432}, dictWord{12, 10, 251}, dictWord{13, 10, 118}, dictWord{ 142, 10, 378, }, dictWord{5, 10, 524}, dictWord{133, 10, 744}, dictWord{141, 11, 442}, dictWord{10, 10, 107}, dictWord{140, 10, 436}, dictWord{135, 11, 503}, dictWord{134, 0, 1162}, dictWord{132, 10, 927}, dictWord{7, 0, 30}, dictWord{8, 0, 86}, dictWord{8, 0, 315}, dictWord{8, 0, 700}, dictWord{9, 0, 576}, dictWord{ 9, 0, 858, }, dictWord{10, 0, 414}, dictWord{11, 0, 310}, dictWord{11, 0, 888}, dictWord{11, 0, 904}, dictWord{12, 0, 361}, dictWord{13, 0, 248}, dictWord{13, 0, 371}, dictWord{14, 0, 142}, dictWord{12, 10, 670}, dictWord{146, 10, 94}, dictWord{134, 0, 721}, dictWord{4, 11, 113}, dictWord{5, 11, 163}, dictWord{5, 11, 735}, dictWord{7, 11, 1009}, dictWord{7, 10, 1149}, dictWord{9, 11, 9}, dictWord{9, 10, 156}, dictWord{9, 11, 771}, dictWord{12, 11, 90}, dictWord{13, 11, 138}, dictWord{13, 11, 410}, dictWord{143, 11, 128}, dictWord{138, 0, 839}, dictWord{133, 10, 778}, dictWord{137, 0, 617}, dictWord{133, 10, 502}, dictWord{ 8, 10, 196, }, dictWord{10, 10, 283}, dictWord{139, 10, 406}, dictWord{6, 0, 428}, dictWord{7, 0, 524}, dictWord{8, 0, 169}, dictWord{8, 0, 234}, dictWord{9, 0, 480}, dictWord{138, 0, 646}, dictWord{133, 10, 855}, dictWord{134, 0, 1648}, dictWord{7, 0, 1205}, dictWord{138, 0, 637}, dictWord{7, 0, 1596}, dictWord{ 4, 11, 935, }, dictWord{133, 11, 823}, dictWord{5, 11, 269}, dictWord{7, 11, 434}, dictWord{7, 11, 891}, dictWord{8, 11, 339}, dictWord{9, 11, 702}, dictWord{ 11, 11, 594, }, dictWord{11, 11, 718}, dictWord{145, 11, 100}, dictWord{7, 11, 878}, dictWord{9, 11, 485}, dictWord{141, 11, 264}, dictWord{4, 0, 266}, dictWord{ 8, 0, 4, }, dictWord{9, 0, 39}, dictWord{10, 0, 166}, dictWord{11, 0, 918}, dictWord{12, 0, 635}, dictWord{20, 0, 10}, dictWord{22, 0, 27}, dictWord{22, 0, 43}, dictWord{ 22, 0, 52, }, dictWord{134, 11, 1713}, dictWord{7, 10, 1400}, dictWord{9, 10, 446}, dictWord{138, 10, 45}, dictWord{135, 11, 900}, dictWord{132, 0, 862}, dictWord{134, 0, 1554}, dictWord{135, 11, 1033}, dictWord{19, 0, 16}, dictWord{147, 11, 16}, dictWord{135, 11, 1208}, dictWord{7, 0, 157}, dictWord{ 136, 0, 279, }, dictWord{6, 0, 604}, dictWord{136, 0, 391}, dictWord{13, 10, 455}, dictWord{15, 10, 99}, dictWord{15, 10, 129}, dictWord{144, 10, 68}, dictWord{ 135, 10, 172, }, dictWord{7, 0, 945}, dictWord{11, 0, 713}, dictWord{139, 0, 744}, dictWord{4, 0, 973}, dictWord{10, 0, 877}, dictWord{10, 0, 937}, dictWord{ 10, 0, 938, }, dictWord{140, 0, 711}, dictWord{139, 0, 1022}, dictWord{132, 10, 568}, dictWord{142, 11, 143}, dictWord{4, 0, 567}, dictWord{9, 0, 859}, dictWord{ 132, 10, 732, }, dictWord{7, 0, 1846}, dictWord{136, 0, 628}, dictWord{136, 10, 733}, dictWord{133, 0, 762}, dictWord{4, 10, 428}, dictWord{135, 10, 1789}, dictWord{10, 0, 784}, dictWord{13, 0, 191}, dictWord{7, 10, 2015}, dictWord{140, 10, 665}, dictWord{133, 0, 298}, dictWord{7, 0, 633}, dictWord{7, 0, 905}, dictWord{7, 0, 909}, dictWord{7, 0, 1538}, dictWord{9, 0, 767}, dictWord{140, 0, 636}, dictWord{138, 10, 806}, dictWord{132, 0, 795}, dictWord{139, 0, 301}, dictWord{135, 0, 1970}, dictWord{5, 11, 625}, dictWord{135, 11, 1617}, dictWord{135, 11, 275}, dictWord{7, 11, 37}, dictWord{8, 11, 425}, dictWord{ 8, 11, 693, }, dictWord{9, 11, 720}, dictWord{10, 11, 380}, dictWord{10, 11, 638}, dictWord{11, 11, 273}, dictWord{11, 11, 307}, dictWord{11, 11, 473}, dictWord{ 12, 11, 61, }, dictWord{143, 11, 43}, dictWord{135, 11, 198}, dictWord{134, 0, 1236}, dictWord{7, 0, 369}, dictWord{12, 0, 644}, dictWord{12, 0, 645}, dictWord{144, 0, 90}, dictWord{19, 0, 15}, dictWord{149, 0, 27}, dictWord{6, 0, 71}, dictWord{7, 0, 845}, dictWord{8, 0, 160}, dictWord{9, 0, 318}, dictWord{6, 10, 1623}, dictWord{134, 10, 1681}, dictWord{134, 0, 1447}, dictWord{134, 0, 1255}, dictWord{138, 0, 735}, dictWord{8, 0, 76}, dictWord{132, 11, 168}, dictWord{ 6, 10, 1748, }, dictWord{8, 10, 715}, dictWord{9, 10, 802}, dictWord{10, 10, 46}, dictWord{10, 10, 819}, dictWord{13, 10, 308}, dictWord{14, 10, 351}, dictWord{14, 10, 363}, dictWord{146, 10, 67}, dictWord{135, 11, 91}, dictWord{6, 0, 474}, dictWord{4, 10, 63}, dictWord{133, 10, 347}, dictWord{133, 10, 749}, dictWord{138, 0, 841}, dictWord{133, 10, 366}, dictWord{6, 0, 836}, dictWord{132, 11, 225}, dictWord{135, 0, 1622}, dictWord{135, 10, 89}, dictWord{ 140, 0, 735, }, dictWord{134, 0, 1601}, dictWord{138, 11, 145}, dictWord{6, 0, 1390}, dictWord{137, 0, 804}, dictWord{142, 0, 394}, dictWord{6, 11, 15}, dictWord{ 7, 11, 70, }, dictWord{10, 11, 240}, dictWord{147, 11, 93}, dictWord{6, 0, 96}, dictWord{135, 0, 1426}, dictWord{4, 0, 651}, dictWord{133, 0, 289}, dictWord{ 7, 11, 956, }, dictWord{7, 10, 977}, dictWord{7, 11, 1157}, dictWord{7, 11, 1506}, dictWord{7, 11, 1606}, dictWord{7, 11, 1615}, dictWord{7, 11, 1619}, dictWord{ 7, 11, 1736, }, dictWord{7, 11, 1775}, dictWord{8, 11, 590}, dictWord{9, 11, 324}, dictWord{9, 11, 736}, dictWord{9, 11, 774}, dictWord{9, 11, 776}, dictWord{ 9, 11, 784, }, dictWord{10, 11, 567}, dictWord{10, 11, 708}, dictWord{11, 11, 518}, dictWord{11, 11, 613}, dictWord{11, 11, 695}, dictWord{11, 11, 716}, dictWord{11, 11, 739}, dictWord{11, 11, 770}, dictWord{11, 11, 771}, dictWord{11, 11, 848}, dictWord{11, 11, 857}, dictWord{11, 11, 931}, dictWord{ 11, 11, 947, }, dictWord{12, 11, 326}, dictWord{12, 11, 387}, dictWord{12, 11, 484}, dictWord{12, 11, 528}, dictWord{12, 11, 552}, dictWord{12, 11, 613}, dictWord{ 13, 11, 189, }, dictWord{13, 11, 256}, dictWord{13, 11, 340}, dictWord{13, 11, 432}, dictWord{13, 11, 436}, dictWord{13, 11, 440}, dictWord{13, 11, 454}, dictWord{14, 11, 174}, dictWord{14, 11, 220}, dictWord{14, 11, 284}, dictWord{14, 11, 390}, dictWord{145, 11, 121}, dictWord{7, 0, 688}, dictWord{8, 0, 35}, dictWord{9, 0, 511}, dictWord{10, 0, 767}, dictWord{147, 0, 118}, dictWord{134, 0, 667}, dictWord{4, 0, 513}, dictWord{5, 10, 824}, dictWord{133, 10, 941}, dictWord{7, 10, 440}, dictWord{8, 10, 230}, dictWord{139, 10, 106}, dictWord{134, 0, 2034}, dictWord{135, 11, 1399}, dictWord{143, 11, 66}, dictWord{ 135, 11, 1529, }, dictWord{4, 11, 145}, dictWord{6, 11, 176}, dictWord{7, 11, 395}, dictWord{9, 11, 562}, dictWord{144, 11, 28}, dictWord{132, 11, 501}, dictWord{132, 0, 704}, dictWord{134, 0, 1524}, dictWord{7, 0, 1078}, dictWord{134, 11, 464}, dictWord{6, 11, 509}, dictWord{10, 11, 82}, dictWord{20, 11, 91}, dictWord{151, 11, 13}, dictWord{4, 0, 720}, dictWord{133, 0, 306}, dictWord{133, 0, 431}, dictWord{7, 0, 1196}, dictWord{4, 10, 914}, dictWord{5, 10, 800}, dictWord{133, 10, 852}, dictWord{135, 11, 1189}, dictWord{10, 0, 54}, dictWord{141, 10, 115}, dictWord{7, 10, 564}, dictWord{142, 10, 168}, dictWord{ 5, 0, 464, }, dictWord{6, 0, 236}, dictWord{7, 0, 696}, dictWord{7, 0, 914}, dictWord{7, 0, 1108}, dictWord{7, 0, 1448}, dictWord{9, 0, 15}, dictWord{9, 0, 564}, dictWord{ 10, 0, 14, }, dictWord{12, 0, 565}, dictWord{13, 0, 449}, dictWord{14, 0, 53}, dictWord{15, 0, 13}, dictWord{16, 0, 64}, dictWord{17, 0, 41}, dictWord{4, 10, 918}, dictWord{133, 10, 876}, dictWord{6, 0, 1418}, dictWord{134, 10, 1764}, dictWord{4, 10, 92}, dictWord{133, 10, 274}, dictWord{134, 0, 907}, dictWord{ 4, 11, 114, }, dictWord{8, 10, 501}, dictWord{9, 11, 492}, dictWord{13, 11, 462}, dictWord{142, 11, 215}, dictWord{4, 11, 77}, dictWord{5, 11, 361}, dictWord{ 6, 11, 139, }, dictWord{6, 11, 401}, dictWord{6, 11, 404}, dictWord{7, 11, 413}, dictWord{7, 11, 715}, dictWord{7, 11, 1716}, dictWord{11, 11, 279}, dictWord{ 12, 11, 179, }, dictWord{12, 11, 258}, dictWord{13, 11, 244}, dictWord{142, 11, 358}, dictWord{6, 0, 1767}, dictWord{12, 0, 194}, dictWord{145, 0, 107}, dictWord{ 134, 11, 1717, }, dictWord{5, 10, 743}, dictWord{142, 11, 329}, dictWord{4, 10, 49}, dictWord{7, 10, 280}, dictWord{135, 10, 1633}, dictWord{5, 0, 840}, dictWord{7, 11, 1061}, dictWord{8, 11, 82}, dictWord{11, 11, 250}, dictWord{12, 11, 420}, dictWord{141, 11, 184}, dictWord{135, 11, 724}, dictWord{ 134, 0, 900, }, dictWord{136, 10, 47}, dictWord{134, 0, 1436}, dictWord{144, 11, 0}, dictWord{6, 0, 675}, dictWord{7, 0, 1008}, dictWord{7, 0, 1560}, dictWord{ 9, 0, 642, }, dictWord{11, 0, 236}, dictWord{14, 0, 193}, dictWord{5, 10, 272}, dictWord{5, 10, 908}, dictWord{5, 10, 942}, dictWord{8, 10, 197}, dictWord{9, 10, 47}, dictWord{11, 10, 538}, dictWord{139, 10, 742}, dictWord{4, 0, 68}, dictWord{5, 0, 628}, dictWord{5, 0, 634}, dictWord{6, 0, 386}, dictWord{7, 0, 794}, dictWord{ 8, 0, 273, }, dictWord{9, 0, 563}, dictWord{10, 0, 105}, dictWord{10, 0, 171}, dictWord{11, 0, 94}, dictWord{139, 0, 354}, dictWord{135, 10, 1911}, dictWord{ 137, 10, 891, }, dictWord{4, 0, 95}, dictWord{6, 0, 1297}, dictWord{6, 0, 1604}, dictWord{7, 0, 416}, dictWord{139, 0, 830}, dictWord{6, 11, 513}, dictWord{ 135, 11, 1052, }, dictWord{7, 0, 731}, dictWord{13, 0, 20}, dictWord{143, 0, 11}, dictWord{137, 11, 899}, dictWord{10, 0, 850}, dictWord{140, 0, 697}, dictWord{ 4, 0, 662, }, dictWord{7, 11, 1417}, dictWord{12, 11, 382}, dictWord{17, 11, 48}, dictWord{152, 11, 12}, dictWord{133, 0, 736}, dictWord{132, 0, 861}, dictWord{ 4, 10, 407, }, dictWord{132, 10, 560}, dictWord{141, 10, 490}, dictWord{6, 11, 545}, dictWord{7, 11, 565}, dictWord{7, 11, 1669}, dictWord{10, 11, 114}, dictWord{11, 11, 642}, dictWord{140, 11, 618}, dictWord{6, 0, 871}, dictWord{134, 0, 1000}, dictWord{5, 0, 864}, dictWord{10, 0, 648}, dictWord{11, 0, 671}, dictWord{15, 0, 46}, dictWord{133, 11, 5}, dictWord{133, 0, 928}, dictWord{11, 0, 90}, dictWord{13, 0, 7}, dictWord{4, 10, 475}, dictWord{11, 10, 35}, dictWord{ 13, 10, 71, }, dictWord{13, 10, 177}, dictWord{142, 10, 422}, dictWord{136, 0, 332}, dictWord{135, 11, 192}, dictWord{134, 0, 1055}, dictWord{136, 11, 763}, dictWord{11, 0, 986}, dictWord{140, 0, 682}, dictWord{7, 0, 76}, dictWord{8, 0, 44}, dictWord{9, 0, 884}, dictWord{10, 0, 580}, dictWord{11, 0, 399}, dictWord{ 11, 0, 894, }, dictWord{143, 0, 122}, dictWord{135, 11, 1237}, dictWord{135, 10, 636}, dictWord{11, 0, 300}, dictWord{6, 10, 222}, dictWord{7, 10, 1620}, dictWord{ 8, 10, 409, }, dictWord{137, 10, 693}, dictWord{4, 11, 87}, dictWord{5, 11, 250}, dictWord{10, 11, 601}, dictWord{13, 11, 298}, dictWord{13, 11, 353}, dictWord{141, 11, 376}, dictWord{5, 0, 518}, dictWord{10, 0, 340}, dictWord{11, 0, 175}, dictWord{149, 0, 16}, dictWord{140, 0, 771}, dictWord{6, 0, 1108}, dictWord{137, 0, 831}, dictWord{132, 0, 836}, dictWord{135, 0, 1852}, dictWord{4, 0, 957}, dictWord{6, 0, 1804}, dictWord{8, 0, 842}, dictWord{8, 0, 843}, dictWord{ 8, 0, 851, }, dictWord{8, 0, 855}, dictWord{140, 0, 767}, dictWord{135, 11, 814}, dictWord{4, 11, 57}, dictWord{7, 11, 1195}, dictWord{7, 11, 1438}, dictWord{ 7, 11, 1548, }, dictWord{7, 11, 1835}, dictWord{7, 11, 1904}, dictWord{9, 11, 757}, dictWord{10, 11, 604}, dictWord{139, 11, 519}, dictWord{133, 10, 882}, dictWord{138, 0, 246}, dictWord{4, 0, 934}, dictWord{5, 0, 202}, dictWord{8, 0, 610}, dictWord{7, 11, 1897}, dictWord{12, 11, 290}, dictWord{13, 11, 80}, dictWord{13, 11, 437}, dictWord{145, 11, 74}, dictWord{8, 0, 96}, dictWord{9, 0, 36}, dictWord{10, 0, 607}, dictWord{10, 0, 804}, dictWord{10, 0, 832}, dictWord{ 11, 0, 423, }, dictWord{11, 0, 442}, dictWord{12, 0, 309}, dictWord{14, 0, 199}, dictWord{15, 0, 90}, dictWord{145, 0, 110}, dictWord{132, 10, 426}, dictWord{ 7, 0, 654, }, dictWord{8, 0, 240}, dictWord{6, 10, 58}, dictWord{7, 10, 745}, dictWord{7, 10, 1969}, dictWord{8, 10, 675}, dictWord{9, 10, 479}, dictWord{9, 10, 731}, dictWord{10, 10, 330}, dictWord{10, 10, 593}, dictWord{10, 10, 817}, dictWord{11, 10, 32}, dictWord{11, 10, 133}, dictWord{11, 10, 221}, dictWord{ 145, 10, 68, }, dictWord{9, 0, 13}, dictWord{9, 0, 398}, dictWord{9, 0, 727}, dictWord{10, 0, 75}, dictWord{10, 0, 184}, dictWord{10, 0, 230}, dictWord{10, 0, 564}, dictWord{ 10, 0, 569, }, dictWord{11, 0, 973}, dictWord{12, 0, 70}, dictWord{12, 0, 189}, dictWord{13, 0, 57}, dictWord{141, 0, 257}, dictWord{4, 11, 209}, dictWord{ 135, 11, 902, }, dictWord{7, 0, 391}, dictWord{137, 10, 538}, dictWord{134, 0, 403}, dictWord{6, 11, 303}, dictWord{7, 11, 335}, dictWord{7, 11, 1437}, dictWord{ 7, 11, 1668, }, dictWord{8, 11, 553}, dictWord{8, 11, 652}, dictWord{8, 11, 656}, dictWord{9, 11, 558}, dictWord{11, 11, 743}, dictWord{149, 11, 18}, dictWord{ 132, 11, 559, }, dictWord{11, 0, 75}, dictWord{142, 0, 267}, dictWord{6, 0, 815}, dictWord{141, 11, 2}, dictWord{141, 0, 366}, dictWord{137, 0, 631}, dictWord{ 133, 11, 1017, }, dictWord{5, 0, 345}, dictWord{135, 0, 1016}, dictWord{133, 11, 709}, dictWord{134, 11, 1745}, dictWord{133, 10, 566}, dictWord{7, 0, 952}, dictWord{6, 10, 48}, dictWord{9, 10, 139}, dictWord{10, 10, 399}, dictWord{11, 10, 469}, dictWord{12, 10, 634}, dictWord{141, 10, 223}, dictWord{ 133, 0, 673, }, dictWord{9, 0, 850}, dictWord{7, 11, 8}, dictWord{136, 11, 206}, dictWord{6, 0, 662}, dictWord{149, 0, 35}, dictWord{4, 0, 287}, dictWord{133, 0, 1018}, dictWord{6, 10, 114}, dictWord{7, 10, 1224}, dictWord{7, 10, 1556}, dictWord{136, 10, 3}, dictWord{8, 10, 576}, dictWord{137, 10, 267}, dictWord{4, 0, 884}, dictWord{5, 0, 34}, dictWord{10, 0, 724}, dictWord{12, 0, 444}, dictWord{13, 0, 354}, dictWord{18, 0, 32}, dictWord{23, 0, 24}, dictWord{23, 0, 31}, dictWord{ 152, 0, 5, }, dictWord{133, 10, 933}, dictWord{132, 11, 776}, dictWord{138, 0, 151}, dictWord{136, 0, 427}, dictWord{134, 0, 382}, dictWord{132, 0, 329}, dictWord{ 9, 0, 846, }, dictWord{10, 0, 827}, dictWord{138, 11, 33}, dictWord{9, 0, 279}, dictWord{10, 0, 407}, dictWord{14, 0, 84}, dictWord{22, 0, 18}, dictWord{ 135, 11, 1297, }, dictWord{136, 11, 406}, dictWord{132, 0, 906}, dictWord{136, 0, 366}, dictWord{134, 0, 843}, dictWord{134, 0, 1443}, dictWord{135, 0, 1372}, dictWord{138, 0, 992}, dictWord{4, 0, 123}, dictWord{5, 0, 605}, dictWord{7, 0, 1509}, dictWord{136, 0, 36}, dictWord{132, 0, 649}, dictWord{8, 11, 175}, dictWord{10, 11, 168}, dictWord{138, 11, 573}, dictWord{133, 0, 767}, dictWord{134, 0, 1018}, dictWord{135, 11, 1305}, dictWord{12, 10, 30}, dictWord{ 13, 10, 148, }, dictWord{14, 10, 87}, dictWord{14, 10, 182}, dictWord{16, 10, 42}, dictWord{148, 10, 70}, dictWord{134, 11, 607}, dictWord{4, 0, 273}, dictWord{ 5, 0, 658, }, dictWord{133, 0, 995}, dictWord{6, 0, 72}, dictWord{139, 11, 174}, dictWord{10, 0, 483}, dictWord{12, 0, 368}, dictWord{7, 10, 56}, dictWord{ 7, 10, 1989, }, dictWord{8, 10, 337}, dictWord{8, 10, 738}, dictWord{9, 10, 600}, dictWord{13, 10, 447}, dictWord{142, 10, 92}, dictWord{5, 11, 784}, dictWord{ 138, 10, 666, }, dictWord{135, 0, 1345}, dictWord{139, 11, 882}, dictWord{134, 0, 1293}, dictWord{133, 0, 589}, dictWord{134, 0, 1988}, dictWord{5, 0, 117}, dictWord{6, 0, 514}, dictWord{6, 0, 541}, dictWord{7, 0, 1164}, dictWord{7, 0, 1436}, dictWord{8, 0, 220}, dictWord{8, 0, 648}, dictWord{10, 0, 688}, dictWord{ 139, 0, 560, }, dictWord{136, 0, 379}, dictWord{5, 0, 686}, dictWord{7, 10, 866}, dictWord{135, 10, 1163}, dictWord{132, 10, 328}, dictWord{9, 11, 14}, dictWord{ 9, 11, 441, }, dictWord{10, 11, 306}, dictWord{139, 11, 9}, dictWord{4, 10, 101}, dictWord{135, 10, 1171}, dictWord{5, 10, 833}, dictWord{136, 10, 744}, dictWord{5, 11, 161}, dictWord{7, 11, 839}, dictWord{135, 11, 887}, dictWord{7, 0, 196}, dictWord{10, 0, 765}, dictWord{11, 0, 347}, dictWord{11, 0, 552}, dictWord{11, 0, 790}, dictWord{12, 0, 263}, dictWord{13, 0, 246}, dictWord{13, 0, 270}, dictWord{13, 0, 395}, dictWord{14, 0, 176}, dictWord{14, 0, 190}, dictWord{ 14, 0, 398, }, dictWord{14, 0, 412}, dictWord{15, 0, 32}, dictWord{15, 0, 63}, dictWord{16, 0, 88}, dictWord{147, 0, 105}, dictWord{6, 10, 9}, dictWord{6, 10, 397}, dictWord{7, 10, 53}, dictWord{7, 10, 1742}, dictWord{10, 10, 632}, dictWord{11, 10, 828}, dictWord{140, 10, 146}, dictWord{5, 0, 381}, dictWord{135, 0, 1792}, dictWord{134, 0, 1452}, dictWord{135, 11, 429}, dictWord{8, 0, 367}, dictWord{10, 0, 760}, dictWord{14, 0, 79}, dictWord{20, 0, 17}, dictWord{152, 0, 0}, dictWord{7, 0, 616}, dictWord{138, 0, 413}, dictWord{11, 10, 417}, dictWord{12, 10, 223}, dictWord{140, 10, 265}, dictWord{7, 11, 1611}, dictWord{13, 11, 14}, dictWord{15, 11, 44}, dictWord{19, 11, 13}, dictWord{148, 11, 76}, dictWord{135, 0, 1229}, dictWord{6, 0, 120}, dictWord{7, 0, 1188}, dictWord{7, 0, 1710}, dictWord{8, 0, 286}, dictWord{9, 0, 667}, dictWord{11, 0, 592}, dictWord{139, 0, 730}, dictWord{135, 11, 1814}, dictWord{135, 0, 1146}, dictWord{4, 10, 186}, dictWord{5, 10, 157}, dictWord{8, 10, 168}, dictWord{138, 10, 6}, dictWord{4, 0, 352}, dictWord{135, 0, 687}, dictWord{4, 0, 192}, dictWord{5, 0, 49}, dictWord{ 6, 0, 200, }, dictWord{6, 0, 293}, dictWord{6, 0, 1696}, dictWord{135, 0, 1151}, dictWord{133, 10, 875}, dictWord{5, 10, 773}, dictWord{5, 10, 991}, dictWord{ 6, 10, 1635, }, dictWord{134, 10, 1788}, dictWord{7, 10, 111}, dictWord{136, 10, 581}, dictWord{6, 0, 935}, dictWord{134, 0, 1151}, dictWord{134, 0, 1050}, dictWord{132, 0, 650}, dictWord{132, 0, 147}, dictWord{11, 0, 194}, dictWord{12, 0, 62}, dictWord{12, 0, 88}, dictWord{11, 11, 194}, dictWord{12, 11, 62}, dictWord{140, 11, 88}, dictWord{6, 0, 339}, dictWord{135, 0, 923}, dictWord{134, 10, 1747}, dictWord{7, 11, 643}, dictWord{136, 11, 236}, dictWord{ 133, 0, 934, }, dictWord{7, 10, 1364}, dictWord{7, 10, 1907}, dictWord{141, 10, 158}, dictWord{132, 10, 659}, dictWord{4, 10, 404}, dictWord{135, 10, 675}, dictWord{7, 11, 581}, dictWord{9, 11, 644}, dictWord{137, 11, 699}, dictWord{13, 0, 211}, dictWord{14, 0, 133}, dictWord{14, 0, 204}, dictWord{15, 0, 64}, dictWord{ 15, 0, 69, }, dictWord{15, 0, 114}, dictWord{16, 0, 10}, dictWord{19, 0, 23}, dictWord{19, 0, 35}, dictWord{19, 0, 39}, dictWord{19, 0, 51}, dictWord{19, 0, 71}, dictWord{19, 0, 75}, dictWord{152, 0, 15}, dictWord{133, 10, 391}, dictWord{5, 11, 54}, dictWord{135, 11, 1513}, dictWord{7, 0, 222}, dictWord{8, 0, 341}, dictWord{ 5, 10, 540, }, dictWord{134, 10, 1697}, dictWord{134, 10, 78}, dictWord{132, 11, 744}, dictWord{136, 0, 293}, dictWord{137, 11, 701}, dictWord{ 7, 11, 930, }, dictWord{10, 11, 402}, dictWord{10, 11, 476}, dictWord{13, 11, 452}, dictWord{18, 11, 55}, dictWord{147, 11, 104}, dictWord{132, 0, 637}, dictWord{133, 10, 460}, dictWord{8, 11, 50}, dictWord{137, 11, 624}, dictWord{132, 11, 572}, dictWord{134, 0, 1159}, dictWord{4, 10, 199}, dictWord{ 139, 10, 34, }, dictWord{134, 0, 847}, dictWord{134, 10, 388}, dictWord{6, 11, 43}, dictWord{7, 11, 38}, dictWord{8, 11, 248}, dictWord{9, 11, 504}, dictWord{ 138, 11, 513, }, dictWord{9, 0, 683}, dictWord{4, 10, 511}, dictWord{6, 10, 608}, dictWord{9, 10, 333}, dictWord{10, 10, 602}, dictWord{11, 10, 441}, dictWord{ 11, 10, 723, }, dictWord{11, 10, 976}, dictWord{140, 10, 357}, dictWord{9, 0, 867}, dictWord{138, 0, 837}, dictWord{6, 0, 944}, dictWord{135, 11, 326}, dictWord{ 135, 0, 1809, }, dictWord{5, 10, 938}, dictWord{7, 11, 783}, dictWord{136, 10, 707}, dictWord{133, 11, 766}, dictWord{133, 11, 363}, dictWord{6, 0, 170}, dictWord{7, 0, 1080}, dictWord{8, 0, 395}, dictWord{8, 0, 487}, dictWord{141, 0, 147}, dictWord{6, 11, 258}, dictWord{140, 11, 409}, dictWord{4, 0, 535}, dictWord{ 8, 0, 618, }, dictWord{5, 11, 249}, dictWord{148, 11, 82}, dictWord{6, 0, 1379}, dictWord{149, 11, 15}, dictWord{135, 0, 1625}, dictWord{150, 0, 23}, dictWord{ 5, 11, 393, }, dictWord{6, 11, 378}, dictWord{7, 11, 1981}, dictWord{9, 11, 32}, dictWord{9, 11, 591}, dictWord{10, 11, 685}, dictWord{10, 11, 741}, dictWord{ 142, 11, 382, }, dictWord{133, 11, 788}, dictWord{7, 11, 1968}, dictWord{10, 11, 19}, dictWord{139, 11, 911}, dictWord{7, 11, 1401}, dictWord{ 135, 11, 1476, }, dictWord{4, 11, 61}, dictWord{5, 11, 58}, dictWord{5, 11, 171}, dictWord{5, 11, 635}, dictWord{5, 11, 683}, dictWord{5, 11, 700}, dictWord{6, 11, 291}, dictWord{6, 11, 566}, dictWord{7, 11, 1650}, dictWord{11, 11, 523}, dictWord{12, 11, 273}, dictWord{12, 11, 303}, dictWord{15, 11, 39}, dictWord{ 143, 11, 111, }, dictWord{6, 10, 469}, dictWord{7, 10, 1709}, dictWord{138, 10, 515}, dictWord{4, 0, 778}, dictWord{134, 11, 589}, dictWord{132, 0, 46}, dictWord{ 5, 0, 811, }, dictWord{6, 0, 1679}, dictWord{6, 0, 1714}, dictWord{135, 0, 2032}, dictWord{7, 0, 1458}, dictWord{9, 0, 407}, dictWord{11, 0, 15}, dictWord{12, 0, 651}, dictWord{149, 0, 37}, dictWord{7, 0, 938}, dictWord{132, 10, 500}, dictWord{6, 0, 34}, dictWord{7, 0, 69}, dictWord{7, 0, 1089}, dictWord{7, 0, 1281}, dictWord{ 8, 0, 708, }, dictWord{8, 0, 721}, dictWord{9, 0, 363}, dictWord{148, 0, 98}, dictWord{10, 11, 231}, dictWord{147, 11, 124}, dictWord{7, 11, 726}, dictWord{ 152, 11, 9, }, dictWord{5, 10, 68}, dictWord{134, 10, 383}, dictWord{136, 11, 583}, dictWord{4, 11, 917}, dictWord{133, 11, 1005}, dictWord{11, 10, 216}, dictWord{139, 10, 340}, dictWord{135, 11, 1675}, dictWord{8, 0, 441}, dictWord{10, 0, 314}, dictWord{143, 0, 3}, dictWord{132, 11, 919}, dictWord{4, 10, 337}, dictWord{6, 10, 353}, dictWord{7, 10, 1934}, dictWord{8, 10, 488}, dictWord{137, 10, 429}, dictWord{7, 0, 889}, dictWord{7, 10, 1795}, dictWord{8, 10, 259}, dictWord{9, 10, 135}, dictWord{9, 10, 177}, dictWord{9, 10, 860}, dictWord{10, 10, 825}, dictWord{11, 10, 115}, dictWord{11, 10, 370}, dictWord{11, 10, 405}, dictWord{11, 10, 604}, dictWord{12, 10, 10}, dictWord{12, 10, 667}, dictWord{12, 10, 669}, dictWord{13, 10, 76}, dictWord{14, 10, 310}, dictWord{ 15, 10, 76, }, dictWord{15, 10, 147}, dictWord{148, 10, 23}, dictWord{4, 10, 15}, dictWord{4, 11, 255}, dictWord{5, 10, 22}, dictWord{5, 11, 302}, dictWord{6, 11, 132}, dictWord{6, 10, 244}, dictWord{7, 10, 40}, dictWord{7, 11, 128}, dictWord{7, 10, 200}, dictWord{7, 11, 283}, dictWord{7, 10, 906}, dictWord{7, 10, 1199}, dictWord{ 7, 11, 1299, }, dictWord{9, 10, 616}, dictWord{10, 11, 52}, dictWord{10, 11, 514}, dictWord{10, 10, 716}, dictWord{11, 10, 635}, dictWord{11, 10, 801}, dictWord{11, 11, 925}, dictWord{12, 10, 458}, dictWord{13, 11, 92}, dictWord{142, 11, 309}, dictWord{132, 0, 462}, dictWord{137, 11, 173}, dictWord{ 135, 10, 1735, }, dictWord{8, 0, 525}, dictWord{5, 10, 598}, dictWord{7, 10, 791}, dictWord{8, 10, 108}, dictWord{137, 10, 123}, dictWord{5, 0, 73}, dictWord{6, 0, 23}, dictWord{134, 0, 338}, dictWord{132, 0, 676}, dictWord{132, 10, 683}, dictWord{7, 0, 725}, dictWord{8, 0, 498}, dictWord{139, 0, 268}, dictWord{12, 0, 21}, dictWord{151, 0, 7}, dictWord{135, 0, 773}, dictWord{4, 10, 155}, dictWord{135, 10, 1689}, dictWord{4, 0, 164}, dictWord{5, 0, 730}, dictWord{5, 10, 151}, dictWord{ 5, 10, 741, }, dictWord{6, 11, 210}, dictWord{7, 10, 498}, dictWord{7, 10, 870}, dictWord{7, 10, 1542}, dictWord{12, 10, 213}, dictWord{14, 10, 36}, dictWord{ 14, 10, 391, }, dictWord{17, 10, 111}, dictWord{18, 10, 6}, dictWord{18, 10, 46}, dictWord{18, 10, 151}, dictWord{19, 10, 36}, dictWord{20, 10, 32}, dictWord{ 20, 10, 56, }, dictWord{20, 10, 69}, dictWord{20, 10, 102}, dictWord{21, 10, 4}, dictWord{22, 10, 8}, dictWord{22, 10, 10}, dictWord{22, 10, 14}, dictWord{ 150, 10, 31, }, dictWord{4, 10, 624}, dictWord{135, 10, 1752}, dictWord{4, 0, 583}, dictWord{9, 0, 936}, dictWord{15, 0, 214}, dictWord{18, 0, 199}, dictWord{24, 0, 26}, dictWord{134, 11, 588}, dictWord{7, 0, 1462}, dictWord{11, 0, 659}, dictWord{4, 11, 284}, dictWord{134, 11, 223}, dictWord{133, 0, 220}, dictWord{ 139, 0, 803, }, dictWord{132, 0, 544}, dictWord{4, 10, 492}, dictWord{133, 10, 451}, dictWord{16, 0, 98}, dictWord{148, 0, 119}, dictWord{4, 11, 218}, dictWord{ 7, 11, 526, }, dictWord{143, 11, 137}, dictWord{135, 10, 835}, dictWord{4, 11, 270}, dictWord{5, 11, 192}, dictWord{6, 11, 332}, dictWord{7, 11, 1322}, dictWord{ 13, 11, 9, }, dictWord{13, 10, 70}, dictWord{14, 11, 104}, dictWord{142, 11, 311}, dictWord{132, 10, 539}, dictWord{140, 11, 661}, dictWord{5, 0, 176}, dictWord{ 6, 0, 437, }, dictWord{6, 0, 564}, dictWord{11, 0, 181}, dictWord{141, 0, 183}, dictWord{135, 0, 1192}, dictWord{6, 10, 113}, dictWord{135, 10, 436}, dictWord{136, 10, 718}, dictWord{135, 10, 520}, dictWord{135, 0, 1878}, dictWord{140, 11, 196}, dictWord{7, 11, 379}, dictWord{8, 11, 481}, dictWord{ 137, 11, 377, }, dictWord{5, 11, 1003}, dictWord{6, 11, 149}, dictWord{137, 11, 746}, dictWord{8, 11, 262}, dictWord{9, 11, 627}, dictWord{10, 11, 18}, dictWord{ 11, 11, 214, }, dictWord{11, 11, 404}, dictWord{11, 11, 457}, dictWord{11, 11, 780}, dictWord{11, 11, 849}, dictWord{11, 11, 913}, dictWord{13, 11, 330}, dictWord{13, 11, 401}, dictWord{142, 11, 200}, dictWord{149, 0, 26}, dictWord{136, 11, 304}, dictWord{132, 11, 142}, dictWord{135, 0, 944}, dictWord{ 4, 0, 790, }, dictWord{5, 0, 273}, dictWord{134, 0, 394}, dictWord{134, 0, 855}, dictWord{4, 0, 135}, dictWord{6, 0, 127}, dictWord{7, 0, 1185}, dictWord{7, 0, 1511}, dictWord{8, 0, 613}, dictWord{11, 0, 5}, dictWord{12, 0, 336}, dictWord{12, 0, 495}, dictWord{12, 0, 586}, dictWord{12, 0, 660}, dictWord{12, 0, 668}, dictWord{ 14, 0, 385, }, dictWord{15, 0, 118}, dictWord{17, 0, 20}, dictWord{146, 0, 98}, dictWord{6, 0, 230}, dictWord{9, 0, 752}, dictWord{18, 0, 109}, dictWord{12, 10, 610}, dictWord{13, 10, 431}, dictWord{144, 10, 59}, dictWord{7, 0, 1954}, dictWord{135, 11, 925}, dictWord{4, 11, 471}, dictWord{5, 11, 51}, dictWord{6, 11, 602}, dictWord{8, 11, 484}, dictWord{10, 11, 195}, dictWord{140, 11, 159}, dictWord{132, 10, 307}, dictWord{136, 11, 688}, dictWord{132, 11, 697}, dictWord{ 7, 11, 812, }, dictWord{7, 11, 1261}, dictWord{7, 11, 1360}, dictWord{9, 11, 632}, dictWord{140, 11, 352}, dictWord{5, 0, 162}, dictWord{8, 0, 68}, dictWord{ 133, 10, 964, }, dictWord{4, 0, 654}, dictWord{136, 11, 212}, dictWord{4, 0, 156}, dictWord{7, 0, 998}, dictWord{7, 0, 1045}, dictWord{7, 0, 1860}, dictWord{9, 0, 48}, dictWord{9, 0, 692}, dictWord{11, 0, 419}, dictWord{139, 0, 602}, dictWord{133, 11, 221}, dictWord{4, 11, 373}, dictWord{5, 11, 283}, dictWord{6, 11, 480}, dictWord{135, 11, 609}, dictWord{142, 11, 216}, dictWord{132, 0, 240}, dictWord{6, 11, 192}, dictWord{9, 11, 793}, dictWord{145, 11, 55}, dictWord{ 4, 10, 75, }, dictWord{5, 10, 180}, dictWord{6, 10, 500}, dictWord{7, 10, 58}, dictWord{7, 10, 710}, dictWord{138, 10, 645}, dictWord{4, 11, 132}, dictWord{5, 11, 69}, dictWord{5, 10, 649}, dictWord{135, 11, 1242}, dictWord{6, 10, 276}, dictWord{7, 10, 282}, dictWord{7, 10, 879}, dictWord{7, 10, 924}, dictWord{8, 10, 459}, dictWord{9, 10, 599}, dictWord{9, 10, 754}, dictWord{11, 10, 574}, dictWord{12, 10, 128}, dictWord{12, 10, 494}, dictWord{13, 10, 52}, dictWord{13, 10, 301}, dictWord{15, 10, 30}, dictWord{143, 10, 132}, dictWord{132, 10, 200}, dictWord{4, 11, 111}, dictWord{135, 11, 302}, dictWord{9, 0, 197}, dictWord{ 10, 0, 300, }, dictWord{12, 0, 473}, dictWord{13, 0, 90}, dictWord{141, 0, 405}, dictWord{132, 11, 767}, dictWord{6, 11, 42}, dictWord{7, 11, 1416}, dictWord{ 7, 11, 1590, }, dictWord{7, 11, 2005}, dictWord{8, 11, 131}, dictWord{8, 11, 466}, dictWord{9, 11, 672}, dictWord{13, 11, 252}, dictWord{148, 11, 103}, dictWord{ 8, 0, 958, }, dictWord{8, 0, 999}, dictWord{10, 0, 963}, dictWord{138, 0, 1001}, dictWord{135, 10, 1621}, dictWord{135, 0, 858}, dictWord{4, 0, 606}, dictWord{ 137, 11, 444, }, dictWord{6, 11, 44}, dictWord{136, 11, 368}, dictWord{139, 11, 172}, dictWord{4, 11, 570}, dictWord{133, 11, 120}, dictWord{139, 11, 624}, dictWord{7, 0, 1978}, dictWord{8, 0, 676}, dictWord{6, 10, 225}, dictWord{137, 10, 211}, dictWord{7, 0, 972}, dictWord{11, 0, 102}, dictWord{136, 10, 687}, dictWord{6, 11, 227}, dictWord{135, 11, 1589}, dictWord{8, 10, 58}, dictWord{9, 10, 724}, dictWord{11, 10, 809}, dictWord{13, 10, 113}, dictWord{ 145, 10, 72, }, dictWord{4, 0, 361}, dictWord{133, 0, 315}, dictWord{132, 0, 461}, dictWord{6, 10, 345}, dictWord{135, 10, 1247}, dictWord{132, 0, 472}, dictWord{ 8, 10, 767, }, dictWord{8, 10, 803}, dictWord{9, 10, 301}, dictWord{137, 10, 903}, dictWord{135, 11, 1333}, dictWord{135, 11, 477}, dictWord{7, 10, 1949}, dictWord{136, 10, 674}, dictWord{6, 0, 905}, dictWord{138, 0, 747}, dictWord{133, 0, 155}, dictWord{134, 10, 259}, dictWord{7, 0, 163}, dictWord{8, 0, 319}, dictWord{9, 0, 402}, dictWord{10, 0, 24}, dictWord{10, 0, 681}, dictWord{11, 0, 200}, dictWord{12, 0, 253}, dictWord{12, 0, 410}, dictWord{142, 0, 219}, dictWord{ 5, 0, 475, }, dictWord{7, 0, 1780}, dictWord{9, 0, 230}, dictWord{11, 0, 297}, dictWord{11, 0, 558}, dictWord{14, 0, 322}, dictWord{19, 0, 76}, dictWord{6, 11, 1667}, dictWord{7, 11, 2036}, dictWord{138, 11, 600}, dictWord{136, 10, 254}, dictWord{6, 0, 848}, dictWord{135, 0, 1956}, dictWord{6, 11, 511}, dictWord{ 140, 11, 132, }, dictWord{5, 11, 568}, dictWord{6, 11, 138}, dictWord{135, 11, 1293}, dictWord{6, 0, 631}, dictWord{137, 0, 838}, dictWord{149, 0, 36}, dictWord{ 4, 11, 565, }, dictWord{8, 11, 23}, dictWord{136, 11, 827}, dictWord{5, 0, 944}, dictWord{134, 0, 1769}, dictWord{4, 0, 144}, dictWord{6, 0, 842}, dictWord{ 6, 0, 1400, }, dictWord{4, 11, 922}, dictWord{133, 11, 1023}, dictWord{133, 10, 248}, dictWord{9, 10, 800}, dictWord{10, 10, 693}, dictWord{11, 10, 482}, dictWord{11, 10, 734}, dictWord{139, 10, 789}, dictWord{7, 11, 1002}, dictWord{139, 11, 145}, dictWord{4, 10, 116}, dictWord{5, 10, 95}, dictWord{5, 10, 445}, dictWord{7, 10, 1688}, dictWord{8, 10, 29}, dictWord{9, 10, 272}, dictWord{11, 10, 509}, dictWord{139, 10, 915}, dictWord{14, 0, 369}, dictWord{146, 0, 72}, dictWord{135, 10, 1641}, dictWord{132, 11, 740}, dictWord{133, 10, 543}, dictWord{140, 11, 116}, dictWord{6, 0, 247}, dictWord{9, 0, 555}, dictWord{ 5, 10, 181, }, dictWord{136, 10, 41}, dictWord{133, 10, 657}, dictWord{136, 0, 996}, dictWord{138, 10, 709}, dictWord{7, 0, 189}, dictWord{8, 10, 202}, dictWord{ 138, 10, 536, }, dictWord{136, 11, 402}, dictWord{4, 11, 716}, dictWord{141, 11, 31}, dictWord{10, 0, 280}, dictWord{138, 0, 797}, dictWord{9, 10, 423}, dictWord{140, 10, 89}, dictWord{8, 10, 113}, dictWord{9, 10, 877}, dictWord{10, 10, 554}, dictWord{11, 10, 83}, dictWord{12, 10, 136}, dictWord{147, 10, 109}, dictWord{133, 10, 976}, dictWord{7, 0, 746}, dictWord{132, 10, 206}, dictWord{136, 0, 526}, dictWord{139, 0, 345}, dictWord{136, 0, 1017}, dictWord{ 8, 11, 152, }, dictWord{9, 11, 53}, dictWord{9, 11, 268}, dictWord{9, 11, 901}, dictWord{10, 11, 518}, dictWord{10, 11, 829}, dictWord{11, 11, 188}, dictWord{ 13, 11, 74, }, dictWord{14, 11, 46}, dictWord{15, 11, 17}, dictWord{15, 11, 33}, dictWord{17, 11, 40}, dictWord{18, 11, 36}, dictWord{19, 11, 20}, dictWord{22, 11, 1}, dictWord{152, 11, 2}, dictWord{133, 11, 736}, dictWord{136, 11, 532}, dictWord{5, 0, 428}, dictWord{138, 0, 651}, dictWord{135, 11, 681}, dictWord{ 135, 0, 1162, }, dictWord{7, 0, 327}, dictWord{13, 0, 230}, dictWord{17, 0, 113}, dictWord{8, 10, 226}, dictWord{10, 10, 537}, dictWord{11, 10, 570}, dictWord{ 11, 10, 605, }, dictWord{11, 10, 799}, dictWord{11, 10, 804}, dictWord{12, 10, 85}, dictWord{12, 10, 516}, dictWord{12, 10, 623}, dictWord{12, 11, 677}, dictWord{ 13, 10, 361, }, dictWord{14, 10, 77}, dictWord{14, 10, 78}, dictWord{147, 10, 110}, dictWord{4, 0, 792}, dictWord{7, 0, 1717}, dictWord{10, 0, 546}, dictWord{ 132, 10, 769, }, dictWord{4, 11, 684}, dictWord{136, 11, 384}, dictWord{132, 10, 551}, dictWord{134, 0, 1203}, dictWord{9, 10, 57}, dictWord{9, 10, 459}, dictWord{10, 10, 425}, dictWord{11, 10, 119}, dictWord{12, 10, 184}, dictWord{12, 10, 371}, dictWord{13, 10, 358}, dictWord{145, 10, 51}, dictWord{5, 0, 672}, dictWord{5, 10, 814}, dictWord{8, 10, 10}, dictWord{9, 10, 421}, dictWord{9, 10, 729}, dictWord{10, 10, 609}, dictWord{139, 10, 689}, dictWord{138, 0, 189}, dictWord{134, 10, 624}, dictWord{7, 11, 110}, dictWord{7, 11, 188}, dictWord{8, 11, 290}, dictWord{8, 11, 591}, dictWord{9, 11, 382}, dictWord{9, 11, 649}, dictWord{11, 11, 71}, dictWord{11, 11, 155}, dictWord{11, 11, 313}, dictWord{12, 11, 5}, dictWord{13, 11, 325}, dictWord{142, 11, 287}, dictWord{133, 0, 99}, dictWord{6, 0, 1053}, dictWord{135, 0, 298}, dictWord{7, 11, 360}, dictWord{7, 11, 425}, dictWord{9, 11, 66}, dictWord{9, 11, 278}, dictWord{138, 11, 644}, dictWord{4, 0, 397}, dictWord{136, 0, 555}, dictWord{137, 10, 269}, dictWord{132, 10, 528}, dictWord{4, 11, 900}, dictWord{133, 11, 861}, dictWord{ 6, 0, 1157, }, dictWord{5, 11, 254}, dictWord{7, 11, 985}, dictWord{136, 11, 73}, dictWord{7, 11, 1959}, dictWord{136, 11, 683}, dictWord{12, 0, 398}, dictWord{ 20, 0, 39, }, dictWord{21, 0, 11}, dictWord{150, 0, 41}, dictWord{4, 0, 485}, dictWord{7, 0, 353}, dictWord{135, 0, 1523}, dictWord{6, 0, 366}, dictWord{7, 0, 1384}, dictWord{135, 0, 1601}, dictWord{138, 0, 787}, dictWord{137, 0, 282}, dictWord{5, 10, 104}, dictWord{6, 10, 173}, dictWord{135, 10, 1631}, dictWord{ 139, 11, 146, }, dictWord{4, 0, 157}, dictWord{133, 0, 471}, dictWord{134, 0, 941}, dictWord{132, 11, 725}, dictWord{7, 0, 1336}, dictWord{8, 10, 138}, dictWord{ 8, 10, 342, }, dictWord{9, 10, 84}, dictWord{10, 10, 193}, dictWord{11, 10, 883}, dictWord{140, 10, 359}, dictWord{134, 11, 196}, dictWord{136, 0, 116}, dictWord{133, 11, 831}, dictWord{134, 0, 787}, dictWord{134, 10, 95}, dictWord{6, 10, 406}, dictWord{10, 10, 409}, dictWord{10, 10, 447}, dictWord{ 11, 10, 44, }, dictWord{140, 10, 100}, dictWord{5, 0, 160}, dictWord{7, 0, 363}, dictWord{7, 0, 589}, dictWord{10, 0, 170}, dictWord{141, 0, 55}, dictWord{134, 0, 1815}, dictWord{132, 0, 866}, dictWord{6, 0, 889}, dictWord{6, 0, 1067}, dictWord{6, 0, 1183}, dictWord{4, 11, 321}, dictWord{134, 11, 569}, dictWord{5, 11, 848}, dictWord{134, 11, 66}, dictWord{4, 11, 36}, dictWord{6, 10, 1636}, dictWord{7, 11, 1387}, dictWord{10, 11, 205}, dictWord{11, 11, 755}, dictWord{ 141, 11, 271, }, dictWord{132, 0, 689}, dictWord{9, 0, 820}, dictWord{4, 10, 282}, dictWord{7, 10, 1034}, dictWord{11, 10, 398}, dictWord{11, 10, 634}, dictWord{ 12, 10, 1, }, dictWord{12, 10, 79}, dictWord{12, 10, 544}, dictWord{14, 10, 237}, dictWord{17, 10, 10}, dictWord{146, 10, 20}, dictWord{4, 0, 108}, dictWord{7, 0, 804}, dictWord{139, 0, 498}, dictWord{132, 11, 887}, dictWord{6, 0, 1119}, dictWord{135, 11, 620}, dictWord{6, 11, 165}, dictWord{138, 11, 388}, dictWord{ 5, 0, 244, }, dictWord{5, 10, 499}, dictWord{6, 10, 476}, dictWord{7, 10, 600}, dictWord{7, 10, 888}, dictWord{135, 10, 1096}, dictWord{140, 0, 609}, dictWord{ 135, 0, 1005, }, dictWord{4, 0, 412}, dictWord{133, 0, 581}, dictWord{4, 11, 719}, dictWord{135, 11, 155}, dictWord{7, 10, 296}, dictWord{7, 10, 596}, dictWord{ 8, 10, 560, }, dictWord{8, 10, 586}, dictWord{9, 10, 612}, dictWord{11, 10, 304}, dictWord{12, 10, 46}, dictWord{13, 10, 89}, dictWord{14, 10, 112}, dictWord{ 145, 10, 122, }, dictWord{4, 0, 895}, dictWord{133, 0, 772}, dictWord{142, 11, 307}, dictWord{135, 0, 1898}, dictWord{4, 0, 926}, dictWord{133, 0, 983}, dictWord{4, 11, 353}, dictWord{6, 11, 146}, dictWord{6, 11, 1789}, dictWord{7, 11, 288}, dictWord{7, 11, 990}, dictWord{7, 11, 1348}, dictWord{9, 11, 665}, dictWord{ 9, 11, 898, }, dictWord{11, 11, 893}, dictWord{142, 11, 212}, dictWord{132, 0, 538}, dictWord{133, 11, 532}, dictWord{6, 0, 294}, dictWord{7, 0, 1267}, dictWord{8, 0, 624}, dictWord{141, 0, 496}, dictWord{7, 0, 1325}, dictWord{4, 11, 45}, dictWord{135, 11, 1257}, dictWord{138, 0, 301}, dictWord{9, 0, 298}, dictWord{12, 0, 291}, dictWord{13, 0, 276}, dictWord{14, 0, 6}, dictWord{17, 0, 18}, dictWord{21, 0, 32}, dictWord{7, 10, 1599}, dictWord{7, 10, 1723}, dictWord{ 8, 10, 79, }, dictWord{8, 10, 106}, dictWord{8, 10, 190}, dictWord{8, 10, 302}, dictWord{8, 10, 383}, dictWord{8, 10, 713}, dictWord{9, 10, 119}, dictWord{9, 10, 233}, dictWord{9, 10, 419}, dictWord{9, 10, 471}, dictWord{10, 10, 181}, dictWord{10, 10, 406}, dictWord{11, 10, 57}, dictWord{11, 10, 85}, dictWord{11, 10, 120}, dictWord{11, 10, 177}, dictWord{11, 10, 296}, dictWord{11, 10, 382}, dictWord{11, 10, 454}, dictWord{11, 10, 758}, dictWord{11, 10, 999}, dictWord{ 12, 10, 27, }, dictWord{12, 10, 131}, dictWord{12, 10, 245}, dictWord{12, 10, 312}, dictWord{12, 10, 446}, dictWord{12, 10, 454}, dictWord{13, 10, 98}, dictWord{ 13, 10, 426, }, dictWord{13, 10, 508}, dictWord{14, 10, 163}, dictWord{14, 10, 272}, dictWord{14, 10, 277}, dictWord{14, 10, 370}, dictWord{15, 10, 95}, dictWord{15, 10, 138}, dictWord{15, 10, 167}, dictWord{17, 10, 38}, dictWord{148, 10, 96}, dictWord{132, 0, 757}, dictWord{134, 0, 1263}, dictWord{4, 0, 820}, dictWord{134, 10, 1759}, dictWord{133, 0, 722}, dictWord{136, 11, 816}, dictWord{138, 10, 372}, dictWord{145, 10, 16}, dictWord{134, 0, 1039}, dictWord{ 4, 0, 991, }, dictWord{134, 0, 2028}, dictWord{133, 10, 258}, dictWord{7, 0, 1875}, dictWord{139, 0, 124}, dictWord{6, 11, 559}, dictWord{6, 11, 1691}, dictWord{135, 11, 586}, dictWord{5, 0, 324}, dictWord{7, 0, 881}, dictWord{8, 10, 134}, dictWord{9, 10, 788}, dictWord{140, 10, 438}, dictWord{7, 11, 1823}, dictWord{139, 11, 693}, dictWord{6, 0, 1348}, dictWord{134, 0, 1545}, dictWord{134, 0, 911}, dictWord{132, 0, 954}, dictWord{8, 0, 329}, dictWord{8, 0, 414}, dictWord{7, 10, 1948}, dictWord{135, 10, 2004}, dictWord{5, 0, 517}, dictWord{6, 10, 439}, dictWord{7, 10, 780}, dictWord{135, 10, 1040}, dictWord{ 132, 0, 816, }, dictWord{5, 10, 1}, dictWord{6, 10, 81}, dictWord{138, 10, 520}, dictWord{9, 0, 713}, dictWord{10, 0, 222}, dictWord{5, 10, 482}, dictWord{8, 10, 98}, dictWord{10, 10, 700}, dictWord{10, 10, 822}, dictWord{11, 10, 302}, dictWord{11, 10, 778}, dictWord{12, 10, 50}, dictWord{12, 10, 127}, dictWord{12, 10, 396}, dictWord{13, 10, 62}, dictWord{13, 10, 328}, dictWord{14, 10, 122}, dictWord{147, 10, 72}, dictWord{137, 0, 33}, dictWord{5, 10, 2}, dictWord{7, 10, 1494}, dictWord{136, 10, 589}, dictWord{6, 10, 512}, dictWord{7, 10, 797}, dictWord{8, 10, 253}, dictWord{9, 10, 77}, dictWord{10, 10, 1}, dictWord{10, 11, 108}, dictWord{10, 10, 129}, dictWord{10, 10, 225}, dictWord{11, 11, 116}, dictWord{11, 10, 118}, dictWord{11, 10, 226}, dictWord{11, 10, 251}, dictWord{ 11, 10, 430, }, dictWord{11, 10, 701}, dictWord{11, 10, 974}, dictWord{11, 10, 982}, dictWord{12, 10, 64}, dictWord{12, 10, 260}, dictWord{12, 10, 488}, dictWord{ 140, 10, 690, }, dictWord{134, 11, 456}, dictWord{133, 11, 925}, dictWord{5, 0, 150}, dictWord{7, 0, 106}, dictWord{7, 0, 774}, dictWord{8, 0, 603}, dictWord{ 9, 0, 593, }, dictWord{9, 0, 634}, dictWord{10, 0, 44}, dictWord{10, 0, 173}, dictWord{11, 0, 462}, dictWord{11, 0, 515}, dictWord{13, 0, 216}, dictWord{13, 0, 288}, dictWord{142, 0, 400}, dictWord{137, 10, 347}, dictWord{5, 0, 748}, dictWord{134, 0, 553}, dictWord{12, 0, 108}, dictWord{141, 0, 291}, dictWord{7, 0, 420}, dictWord{4, 10, 12}, dictWord{7, 10, 522}, dictWord{7, 10, 809}, dictWord{8, 10, 797}, dictWord{141, 10, 88}, dictWord{6, 11, 193}, dictWord{7, 11, 240}, dictWord{ 7, 11, 1682, }, dictWord{10, 11, 51}, dictWord{10, 11, 640}, dictWord{11, 11, 410}, dictWord{13, 11, 82}, dictWord{14, 11, 247}, dictWord{14, 11, 331}, dictWord{142, 11, 377}, dictWord{133, 10, 528}, dictWord{135, 0, 1777}, dictWord{4, 0, 493}, dictWord{144, 0, 55}, dictWord{136, 11, 633}, dictWord{ 139, 0, 81, }, dictWord{6, 0, 980}, dictWord{136, 0, 321}, dictWord{148, 10, 109}, dictWord{5, 10, 266}, dictWord{9, 10, 290}, dictWord{9, 10, 364}, dictWord{ 10, 10, 293, }, dictWord{11, 10, 606}, dictWord{142, 10, 45}, dictWord{6, 0, 568}, dictWord{7, 0, 112}, dictWord{7, 0, 1804}, dictWord{8, 0, 362}, dictWord{8, 0, 410}, dictWord{8, 0, 830}, dictWord{9, 0, 514}, dictWord{11, 0, 649}, dictWord{142, 0, 157}, dictWord{4, 0, 74}, dictWord{6, 0, 510}, dictWord{6, 10, 594}, dictWord{ 9, 10, 121, }, dictWord{10, 10, 49}, dictWord{10, 10, 412}, dictWord{139, 10, 834}, dictWord{134, 0, 838}, dictWord{136, 10, 748}, dictWord{132, 10, 466}, dictWord{132, 0, 625}, dictWord{135, 11, 1443}, dictWord{4, 11, 237}, dictWord{135, 11, 514}, dictWord{9, 10, 378}, dictWord{141, 10, 162}, dictWord{6, 0, 16}, dictWord{6, 0, 158}, dictWord{7, 0, 43}, dictWord{7, 0, 129}, dictWord{7, 0, 181}, dictWord{8, 0, 276}, dictWord{8, 0, 377}, dictWord{10, 0, 523}, dictWord{ 11, 0, 816, }, dictWord{12, 0, 455}, dictWord{13, 0, 303}, dictWord{142, 0, 135}, dictWord{135, 0, 281}, dictWord{4, 0, 1}, dictWord{7, 0, 1143}, dictWord{7, 0, 1463}, dictWord{8, 0, 61}, dictWord{9, 0, 207}, dictWord{9, 0, 390}, dictWord{9, 0, 467}, dictWord{139, 0, 836}, dictWord{6, 11, 392}, dictWord{7, 11, 65}, dictWord{ 135, 11, 2019, }, dictWord{132, 10, 667}, dictWord{4, 0, 723}, dictWord{5, 0, 895}, dictWord{7, 0, 1031}, dictWord{8, 0, 199}, dictWord{8, 0, 340}, dictWord{9, 0, 153}, dictWord{9, 0, 215}, dictWord{10, 0, 21}, dictWord{10, 0, 59}, dictWord{10, 0, 80}, dictWord{10, 0, 224}, dictWord{10, 0, 838}, dictWord{11, 0, 229}, dictWord{ 11, 0, 652, }, dictWord{12, 0, 192}, dictWord{13, 0, 146}, dictWord{142, 0, 91}, dictWord{132, 0, 295}, dictWord{137, 0, 51}, dictWord{9, 11, 222}, dictWord{ 10, 11, 43, }, dictWord{139, 11, 900}, dictWord{5, 0, 309}, dictWord{140, 0, 211}, dictWord{5, 0, 125}, dictWord{8, 0, 77}, dictWord{138, 0, 15}, dictWord{136, 11, 604}, dictWord{138, 0, 789}, dictWord{5, 0, 173}, dictWord{4, 10, 39}, dictWord{7, 10, 1843}, dictWord{8, 10, 407}, dictWord{11, 10, 144}, dictWord{140, 10, 523}, dictWord{138, 11, 265}, dictWord{133, 0, 439}, dictWord{132, 10, 510}, dictWord{7, 0, 648}, dictWord{7, 0, 874}, dictWord{11, 0, 164}, dictWord{12, 0, 76}, dictWord{18, 0, 9}, dictWord{7, 10, 1980}, dictWord{10, 10, 487}, dictWord{138, 10, 809}, dictWord{12, 0, 111}, dictWord{14, 0, 294}, dictWord{19, 0, 45}, dictWord{13, 10, 260}, dictWord{146, 10, 63}, dictWord{133, 11, 549}, dictWord{134, 10, 570}, dictWord{4, 0, 8}, dictWord{7, 0, 1152}, dictWord{7, 0, 1153}, dictWord{7, 0, 1715}, dictWord{9, 0, 374}, dictWord{10, 0, 478}, dictWord{139, 0, 648}, dictWord{135, 0, 1099}, dictWord{5, 0, 575}, dictWord{6, 0, 354}, dictWord{ 135, 0, 701, }, dictWord{7, 11, 36}, dictWord{8, 11, 201}, dictWord{136, 11, 605}, dictWord{4, 10, 787}, dictWord{136, 11, 156}, dictWord{6, 0, 518}, dictWord{ 149, 11, 13, }, dictWord{140, 11, 224}, dictWord{134, 0, 702}, dictWord{132, 10, 516}, dictWord{5, 11, 724}, dictWord{10, 11, 305}, dictWord{11, 11, 151}, dictWord{12, 11, 33}, dictWord{12, 11, 121}, dictWord{12, 11, 381}, dictWord{17, 11, 3}, dictWord{17, 11, 27}, dictWord{17, 11, 78}, dictWord{18, 11, 18}, dictWord{19, 11, 54}, dictWord{149, 11, 5}, dictWord{8, 0, 87}, dictWord{4, 11, 523}, dictWord{5, 11, 638}, dictWord{11, 10, 887}, dictWord{14, 10, 365}, dictWord{ 142, 10, 375, }, dictWord{138, 0, 438}, dictWord{136, 10, 821}, dictWord{135, 11, 1908}, dictWord{6, 11, 242}, dictWord{7, 11, 227}, dictWord{7, 11, 1581}, dictWord{8, 11, 104}, dictWord{9, 11, 113}, dictWord{9, 11, 220}, dictWord{9, 11, 427}, dictWord{10, 11, 74}, dictWord{10, 11, 239}, dictWord{11, 11, 579}, dictWord{11, 11, 1023}, dictWord{13, 11, 4}, dictWord{13, 11, 204}, dictWord{13, 11, 316}, dictWord{18, 11, 95}, dictWord{148, 11, 86}, dictWord{4, 0, 69}, dictWord{5, 0, 122}, dictWord{5, 0, 849}, dictWord{6, 0, 1633}, dictWord{9, 0, 656}, dictWord{138, 0, 464}, dictWord{7, 0, 1802}, dictWord{4, 10, 10}, dictWord{ 139, 10, 786, }, dictWord{135, 11, 861}, dictWord{139, 0, 499}, dictWord{7, 0, 476}, dictWord{7, 0, 1592}, dictWord{138, 0, 87}, dictWord{133, 10, 684}, dictWord{ 4, 0, 840, }, dictWord{134, 10, 27}, dictWord{142, 0, 283}, dictWord{6, 0, 1620}, dictWord{7, 11, 1328}, dictWord{136, 11, 494}, dictWord{5, 0, 859}, dictWord{ 7, 0, 1160, }, dictWord{8, 0, 107}, dictWord{9, 0, 291}, dictWord{9, 0, 439}, dictWord{10, 0, 663}, dictWord{11, 0, 609}, dictWord{140, 0, 197}, dictWord{ 7, 11, 1306, }, dictWord{8, 11, 505}, dictWord{9, 11, 482}, dictWord{10, 11, 126}, dictWord{11, 11, 225}, dictWord{12, 11, 347}, dictWord{12, 11, 449}, dictWord{ 13, 11, 19, }, dictWord{142, 11, 218}, dictWord{5, 11, 268}, dictWord{10, 11, 764}, dictWord{12, 11, 120}, dictWord{13, 11, 39}, dictWord{145, 11, 127}, dictWord{145, 10, 56}, dictWord{7, 11, 1672}, dictWord{10, 11, 472}, dictWord{11, 11, 189}, dictWord{143, 11, 51}, dictWord{6, 10, 342}, dictWord{6, 10, 496}, dictWord{8, 10, 275}, dictWord{137, 10, 206}, dictWord{133, 0, 600}, dictWord{4, 0, 117}, dictWord{6, 0, 372}, dictWord{7, 0, 1905}, dictWord{142, 0, 323}, dictWord{4, 10, 909}, dictWord{5, 10, 940}, dictWord{135, 11, 1471}, dictWord{132, 10, 891}, dictWord{4, 0, 722}, dictWord{139, 0, 471}, dictWord{4, 11, 384}, dictWord{135, 11, 1022}, dictWord{132, 10, 687}, dictWord{9, 0, 5}, dictWord{12, 0, 216}, dictWord{12, 0, 294}, dictWord{12, 0, 298}, dictWord{12, 0, 400}, dictWord{12, 0, 518}, dictWord{13, 0, 229}, dictWord{143, 0, 139}, dictWord{135, 11, 1703}, dictWord{7, 11, 1602}, dictWord{10, 11, 698}, dictWord{ 12, 11, 212, }, dictWord{141, 11, 307}, dictWord{6, 10, 41}, dictWord{141, 10, 160}, dictWord{135, 11, 1077}, dictWord{9, 11, 159}, dictWord{11, 11, 28}, dictWord{140, 11, 603}, dictWord{4, 0, 514}, dictWord{7, 0, 1304}, dictWord{138, 0, 477}, dictWord{134, 0, 1774}, dictWord{9, 0, 88}, dictWord{139, 0, 270}, dictWord{5, 0, 12}, dictWord{7, 0, 375}, dictWord{9, 0, 438}, dictWord{134, 10, 1718}, dictWord{132, 11, 515}, dictWord{136, 10, 778}, dictWord{8, 11, 632}, dictWord{8, 11, 697}, dictWord{137, 11, 854}, dictWord{6, 0, 362}, dictWord{6, 0, 997}, dictWord{146, 0, 51}, dictWord{7, 0, 816}, dictWord{7, 0, 1241}, dictWord{ 9, 0, 283, }, dictWord{9, 0, 520}, dictWord{10, 0, 213}, dictWord{10, 0, 307}, dictWord{10, 0, 463}, dictWord{10, 0, 671}, dictWord{10, 0, 746}, dictWord{11, 0, 401}, dictWord{11, 0, 794}, dictWord{12, 0, 517}, dictWord{18, 0, 107}, dictWord{147, 0, 115}, dictWord{133, 10, 115}, dictWord{150, 11, 28}, dictWord{4, 11, 136}, dictWord{133, 11, 551}, dictWord{142, 10, 314}, dictWord{132, 0, 258}, dictWord{6, 0, 22}, dictWord{7, 0, 903}, dictWord{7, 0, 1963}, dictWord{8, 0, 639}, dictWord{138, 0, 577}, dictWord{5, 0, 681}, dictWord{8, 0, 782}, dictWord{13, 0, 130}, dictWord{17, 0, 84}, dictWord{5, 10, 193}, dictWord{140, 10, 178}, dictWord{ 9, 11, 17, }, dictWord{138, 11, 291}, dictWord{7, 11, 1287}, dictWord{9, 11, 44}, dictWord{10, 11, 552}, dictWord{10, 11, 642}, dictWord{11, 11, 839}, dictWord{12, 11, 274}, dictWord{12, 11, 275}, dictWord{12, 11, 372}, dictWord{13, 11, 91}, dictWord{142, 11, 125}, dictWord{135, 10, 174}, dictWord{4, 0, 664}, dictWord{5, 0, 804}, dictWord{139, 0, 1013}, dictWord{134, 0, 942}, dictWord{6, 0, 1349}, dictWord{6, 0, 1353}, dictWord{6, 0, 1450}, dictWord{7, 11, 1518}, dictWord{139, 11, 694}, dictWord{11, 0, 356}, dictWord{4, 10, 122}, dictWord{5, 10, 796}, dictWord{5, 10, 952}, dictWord{6, 10, 1660}, dictWord{ 6, 10, 1671, }, dictWord{8, 10, 567}, dictWord{9, 10, 687}, dictWord{9, 10, 742}, dictWord{10, 10, 686}, dictWord{11, 10, 682}, dictWord{140, 10, 281}, dictWord{ 5, 0, 32, }, dictWord{6, 11, 147}, dictWord{7, 11, 886}, dictWord{9, 11, 753}, dictWord{138, 11, 268}, dictWord{5, 10, 179}, dictWord{7, 10, 1095}, dictWord{ 135, 10, 1213, }, dictWord{4, 10, 66}, dictWord{7, 10, 722}, dictWord{135, 10, 904}, dictWord{135, 10, 352}, dictWord{9, 11, 245}, dictWord{138, 11, 137}, dictWord{4, 0, 289}, dictWord{7, 0, 629}, dictWord{7, 0, 1698}, dictWord{7, 0, 1711}, dictWord{12, 0, 215}, dictWord{133, 11, 414}, dictWord{6, 0, 1975}, dictWord{135, 11, 1762}, dictWord{6, 0, 450}, dictWord{136, 0, 109}, dictWord{141, 10, 35}, dictWord{134, 11, 599}, dictWord{136, 0, 705}, dictWord{ 133, 0, 664, }, dictWord{134, 11, 1749}, dictWord{11, 11, 402}, dictWord{12, 11, 109}, dictWord{12, 11, 431}, dictWord{13, 11, 179}, dictWord{13, 11, 206}, dictWord{14, 11, 175}, dictWord{14, 11, 217}, dictWord{16, 11, 3}, dictWord{148, 11, 53}, dictWord{135, 0, 1238}, dictWord{134, 11, 1627}, dictWord{ 132, 11, 488, }, dictWord{13, 0, 318}, dictWord{10, 10, 592}, dictWord{10, 10, 753}, dictWord{12, 10, 317}, dictWord{12, 10, 355}, dictWord{12, 10, 465}, dictWord{ 12, 10, 469, }, dictWord{12, 10, 560}, dictWord{140, 10, 578}, dictWord{133, 10, 564}, dictWord{132, 11, 83}, dictWord{140, 11, 676}, dictWord{6, 0, 1872}, dictWord{6, 0, 1906}, dictWord{6, 0, 1907}, dictWord{9, 0, 934}, dictWord{9, 0, 956}, dictWord{9, 0, 960}, dictWord{9, 0, 996}, dictWord{12, 0, 794}, dictWord{ 12, 0, 876, }, dictWord{12, 0, 880}, dictWord{12, 0, 918}, dictWord{15, 0, 230}, dictWord{18, 0, 234}, dictWord{18, 0, 238}, dictWord{21, 0, 38}, dictWord{149, 0, 62}, dictWord{134, 10, 556}, dictWord{134, 11, 278}, dictWord{137, 0, 103}, dictWord{7, 10, 544}, dictWord{8, 10, 719}, dictWord{138, 10, 61}, dictWord{ 4, 10, 5, }, dictWord{5, 10, 498}, dictWord{8, 10, 637}, dictWord{137, 10, 521}, dictWord{7, 0, 777}, dictWord{12, 0, 229}, dictWord{12, 0, 239}, dictWord{15, 0, 12}, dictWord{12, 11, 229}, dictWord{12, 11, 239}, dictWord{143, 11, 12}, dictWord{6, 0, 26}, dictWord{7, 11, 388}, dictWord{7, 11, 644}, dictWord{139, 11, 781}, dictWord{7, 11, 229}, dictWord{8, 11, 59}, dictWord{9, 11, 190}, dictWord{9, 11, 257}, dictWord{10, 11, 378}, dictWord{140, 11, 191}, dictWord{133, 10, 927}, dictWord{135, 10, 1441}, dictWord{4, 10, 893}, dictWord{5, 10, 780}, dictWord{133, 10, 893}, dictWord{4, 0, 414}, dictWord{5, 0, 467}, dictWord{9, 0, 654}, dictWord{10, 0, 451}, dictWord{12, 0, 59}, dictWord{141, 0, 375}, dictWord{142, 0, 173}, dictWord{135, 0, 17}, dictWord{7, 0, 1350}, dictWord{133, 10, 238}, dictWord{135, 0, 955}, dictWord{4, 0, 960}, dictWord{10, 0, 887}, dictWord{12, 0, 753}, dictWord{18, 0, 161}, dictWord{18, 0, 162}, dictWord{152, 0, 19}, dictWord{136, 11, 344}, dictWord{6, 10, 1729}, dictWord{137, 11, 288}, dictWord{132, 11, 660}, dictWord{4, 0, 217}, dictWord{5, 0, 710}, dictWord{7, 0, 760}, dictWord{7, 0, 1926}, dictWord{9, 0, 428}, dictWord{9, 0, 708}, dictWord{10, 0, 254}, dictWord{10, 0, 296}, dictWord{10, 0, 720}, dictWord{11, 0, 109}, dictWord{ 11, 0, 255, }, dictWord{12, 0, 165}, dictWord{12, 0, 315}, dictWord{13, 0, 107}, dictWord{13, 0, 203}, dictWord{14, 0, 54}, dictWord{14, 0, 99}, dictWord{14, 0, 114}, dictWord{14, 0, 388}, dictWord{16, 0, 85}, dictWord{17, 0, 9}, dictWord{17, 0, 33}, dictWord{20, 0, 25}, dictWord{20, 0, 28}, dictWord{20, 0, 29}, dictWord{21, 0, 9}, dictWord{21, 0, 10}, dictWord{21, 0, 34}, dictWord{22, 0, 17}, dictWord{4, 10, 60}, dictWord{7, 10, 1800}, dictWord{8, 10, 314}, dictWord{9, 10, 700}, dictWord{ 139, 10, 487, }, dictWord{7, 11, 1035}, dictWord{138, 11, 737}, dictWord{7, 11, 690}, dictWord{9, 11, 217}, dictWord{9, 11, 587}, dictWord{140, 11, 521}, dictWord{6, 0, 919}, dictWord{7, 11, 706}, dictWord{7, 11, 1058}, dictWord{138, 11, 538}, dictWord{7, 10, 1853}, dictWord{138, 10, 437}, dictWord{ 136, 10, 419, }, dictWord{6, 0, 280}, dictWord{10, 0, 502}, dictWord{11, 0, 344}, dictWord{140, 0, 38}, dictWord{5, 0, 45}, dictWord{7, 0, 1161}, dictWord{11, 0, 448}, dictWord{11, 0, 880}, dictWord{13, 0, 139}, dictWord{13, 0, 407}, dictWord{15, 0, 16}, dictWord{17, 0, 95}, dictWord{18, 0, 66}, dictWord{18, 0, 88}, dictWord{ 18, 0, 123, }, dictWord{149, 0, 7}, dictWord{11, 11, 92}, dictWord{11, 11, 196}, dictWord{11, 11, 409}, dictWord{11, 11, 450}, dictWord{11, 11, 666}, dictWord{ 11, 11, 777, }, dictWord{12, 11, 262}, dictWord{13, 11, 385}, dictWord{13, 11, 393}, dictWord{15, 11, 115}, dictWord{16, 11, 45}, dictWord{145, 11, 82}, dictWord{136, 0, 777}, dictWord{134, 11, 1744}, dictWord{4, 0, 410}, dictWord{7, 0, 521}, dictWord{133, 10, 828}, dictWord{134, 0, 673}, dictWord{7, 0, 1110}, dictWord{7, 0, 1778}, dictWord{7, 10, 176}, dictWord{135, 10, 178}, dictWord{5, 10, 806}, dictWord{7, 11, 268}, dictWord{7, 10, 1976}, dictWord{ 136, 11, 569, }, dictWord{4, 11, 733}, dictWord{9, 11, 194}, dictWord{10, 11, 92}, dictWord{11, 11, 198}, dictWord{12, 11, 84}, dictWord{12, 11, 87}, dictWord{ 13, 11, 128, }, dictWord{144, 11, 74}, dictWord{5, 0, 341}, dictWord{7, 0, 1129}, dictWord{11, 0, 414}, dictWord{4, 10, 51}, dictWord{6, 10, 4}, dictWord{7, 10, 591}, dictWord{7, 10, 849}, dictWord{7, 10, 951}, dictWord{7, 10, 1613}, dictWord{7, 10, 1760}, dictWord{7, 10, 1988}, dictWord{9, 10, 434}, dictWord{10, 10, 754}, dictWord{11, 10, 25}, dictWord{139, 10, 37}, dictWord{133, 10, 902}, dictWord{135, 10, 928}, dictWord{135, 0, 787}, dictWord{132, 0, 436}, dictWord{ 134, 10, 270, }, dictWord{7, 0, 1587}, dictWord{135, 0, 1707}, dictWord{6, 0, 377}, dictWord{7, 0, 1025}, dictWord{9, 0, 613}, dictWord{145, 0, 104}, dictWord{ 7, 11, 982, }, dictWord{7, 11, 1361}, dictWord{10, 11, 32}, dictWord{143, 11, 56}, dictWord{139, 0, 96}, dictWord{132, 0, 451}, dictWord{132, 10, 416}, dictWord{ 142, 10, 372, }, dictWord{5, 10, 152}, dictWord{5, 10, 197}, dictWord{7, 11, 306}, dictWord{7, 10, 340}, dictWord{7, 10, 867}, dictWord{10, 10, 548}, dictWord{ 10, 10, 581, }, dictWord{11, 10, 6}, dictWord{12, 10, 3}, dictWord{12, 10, 19}, dictWord{14, 10, 110}, dictWord{142, 10, 289}, dictWord{134, 0, 680}, dictWord{ 134, 11, 609, }, dictWord{7, 0, 483}, dictWord{7, 10, 190}, dictWord{8, 10, 28}, dictWord{8, 10, 141}, dictWord{8, 10, 444}, dictWord{8, 10, 811}, dictWord{ 9, 10, 468, }, dictWord{11, 10, 334}, dictWord{12, 10, 24}, dictWord{12, 10, 386}, dictWord{140, 10, 576}, dictWord{10, 0, 916}, dictWord{133, 10, 757}, dictWord{ 5, 10, 721, }, dictWord{135, 10, 1553}, dictWord{133, 11, 178}, dictWord{134, 0, 937}, dictWord{132, 10, 898}, dictWord{133, 0, 739}, dictWord{ 147, 0, 82, }, dictWord{135, 0, 663}, dictWord{146, 0, 128}, dictWord{5, 10, 277}, dictWord{141, 10, 247}, dictWord{134, 0, 1087}, dictWord{132, 10, 435}, dictWord{ 6, 11, 381, }, dictWord{7, 11, 645}, dictWord{7, 11, 694}, dictWord{136, 11, 546}, dictWord{7, 0, 503}, dictWord{135, 0, 1885}, dictWord{6, 0, 1965}, dictWord{ 8, 0, 925, }, dictWord{138, 0, 955}, dictWord{4, 0, 113}, dictWord{5, 0, 163}, dictWord{5, 0, 735}, dictWord{7, 0, 1009}, dictWord{9, 0, 9}, dictWord{9, 0, 771}, dictWord{12, 0, 90}, dictWord{13, 0, 138}, dictWord{13, 0, 410}, dictWord{143, 0, 128}, dictWord{4, 0, 324}, dictWord{138, 0, 104}, dictWord{7, 0, 460}, dictWord{ 5, 10, 265, }, dictWord{134, 10, 212}, dictWord{133, 11, 105}, dictWord{7, 11, 261}, dictWord{7, 11, 1107}, dictWord{7, 11, 1115}, dictWord{7, 11, 1354}, dictWord{7, 11, 1588}, dictWord{7, 11, 1705}, dictWord{7, 11, 1902}, dictWord{9, 11, 465}, dictWord{10, 11, 248}, dictWord{10, 11, 349}, dictWord{10, 11, 647}, dictWord{11, 11, 527}, dictWord{11, 11, 660}, dictWord{11, 11, 669}, dictWord{12, 11, 529}, dictWord{141, 11, 305}, dictWord{5, 11, 438}, dictWord{ 9, 11, 694, }, dictWord{12, 11, 627}, dictWord{141, 11, 210}, dictWord{152, 11, 11}, dictWord{4, 0, 935}, dictWord{133, 0, 823}, dictWord{132, 10, 702}, dictWord{ 5, 0, 269, }, dictWord{7, 0, 434}, dictWord{7, 0, 891}, dictWord{8, 0, 339}, dictWord{9, 0, 702}, dictWord{11, 0, 594}, dictWord{11, 0, 718}, dictWord{17, 0, 100}, dictWord{5, 10, 808}, dictWord{135, 10, 2045}, dictWord{7, 0, 1014}, dictWord{9, 0, 485}, dictWord{141, 0, 264}, dictWord{134, 0, 1713}, dictWord{7, 0, 1810}, dictWord{11, 0, 866}, dictWord{12, 0, 103}, dictWord{13, 0, 495}, dictWord{140, 11, 233}, dictWord{4, 0, 423}, dictWord{10, 0, 949}, dictWord{138, 0, 1013}, dictWord{135, 0, 900}, dictWord{8, 11, 25}, dictWord{138, 11, 826}, dictWord{5, 10, 166}, dictWord{8, 10, 739}, dictWord{140, 10, 511}, dictWord{ 134, 0, 2018, }, dictWord{7, 11, 1270}, dictWord{139, 11, 612}, dictWord{4, 10, 119}, dictWord{5, 10, 170}, dictWord{5, 10, 447}, dictWord{7, 10, 1708}, dictWord{ 7, 10, 1889, }, dictWord{9, 10, 357}, dictWord{9, 10, 719}, dictWord{12, 10, 486}, dictWord{140, 10, 596}, dictWord{12, 0, 574}, dictWord{140, 11, 574}, dictWord{132, 11, 308}, dictWord{6, 0, 964}, dictWord{6, 0, 1206}, dictWord{134, 0, 1302}, dictWord{4, 10, 450}, dictWord{135, 10, 1158}, dictWord{ 135, 11, 150, }, dictWord{136, 11, 649}, dictWord{14, 0, 213}, dictWord{148, 0, 38}, dictWord{9, 11, 45}, dictWord{9, 11, 311}, dictWord{141, 11, 42}, dictWord{ 134, 11, 521, }, dictWord{7, 10, 1375}, dictWord{7, 10, 1466}, dictWord{138, 10, 331}, dictWord{132, 10, 754}, dictWord{5, 11, 339}, dictWord{7, 11, 1442}, dictWord{14, 11, 3}, dictWord{15, 11, 41}, dictWord{147, 11, 66}, dictWord{136, 11, 378}, dictWord{134, 0, 1022}, dictWord{5, 10, 850}, dictWord{136, 10, 799}, dictWord{142, 0, 143}, dictWord{135, 0, 2029}, dictWord{134, 11, 1628}, dictWord{8, 0, 523}, dictWord{150, 0, 34}, dictWord{5, 0, 625}, dictWord{ 135, 0, 1617, }, dictWord{7, 0, 275}, dictWord{7, 10, 238}, dictWord{7, 10, 2033}, dictWord{8, 10, 120}, dictWord{8, 10, 188}, dictWord{8, 10, 659}, dictWord{ 9, 10, 598, }, dictWord{10, 10, 466}, dictWord{12, 10, 342}, dictWord{12, 10, 588}, dictWord{13, 10, 503}, dictWord{14, 10, 246}, dictWord{143, 10, 92}, dictWord{ 7, 0, 37, }, dictWord{8, 0, 425}, dictWord{8, 0, 693}, dictWord{9, 0, 720}, dictWord{10, 0, 380}, dictWord{10, 0, 638}, dictWord{11, 0, 273}, dictWord{11, 0, 473}, dictWord{12, 0, 61}, dictWord{143, 0, 43}, dictWord{135, 11, 829}, dictWord{135, 0, 1943}, dictWord{132, 0, 765}, dictWord{5, 11, 486}, dictWord{ 135, 11, 1349, }, dictWord{7, 11, 1635}, dictWord{8, 11, 17}, dictWord{10, 11, 217}, dictWord{138, 11, 295}, dictWord{4, 10, 201}, dictWord{7, 10, 1744}, dictWord{ 8, 10, 602, }, dictWord{11, 10, 247}, dictWord{11, 10, 826}, dictWord{145, 10, 65}, dictWord{138, 11, 558}, dictWord{11, 0, 551}, dictWord{142, 0, 159}, dictWord{8, 10, 164}, dictWord{146, 10, 62}, dictWord{139, 11, 176}, dictWord{132, 0, 168}, dictWord{136, 0, 1010}, dictWord{134, 0, 1994}, dictWord{ 135, 0, 91, }, dictWord{138, 0, 532}, dictWord{135, 10, 1243}, dictWord{135, 0, 1884}, dictWord{132, 10, 907}, dictWord{5, 10, 100}, dictWord{10, 10, 329}, dictWord{12, 10, 416}, dictWord{149, 10, 29}, dictWord{134, 11, 447}, dictWord{132, 10, 176}, dictWord{5, 10, 636}, dictWord{5, 10, 998}, dictWord{7, 10, 9}, dictWord{7, 10, 1508}, dictWord{8, 10, 26}, dictWord{9, 10, 317}, dictWord{9, 10, 358}, dictWord{10, 10, 210}, dictWord{10, 10, 292}, dictWord{10, 10, 533}, dictWord{11, 10, 555}, dictWord{12, 10, 526}, dictWord{12, 10, 607}, dictWord{13, 10, 263}, dictWord{13, 10, 459}, dictWord{142, 10, 271}, dictWord{ 4, 11, 609, }, dictWord{135, 11, 756}, dictWord{6, 0, 15}, dictWord{7, 0, 70}, dictWord{10, 0, 240}, dictWord{147, 0, 93}, dictWord{4, 11, 930}, dictWord{133, 11, 947}, dictWord{134, 0, 1227}, dictWord{134, 0, 1534}, dictWord{133, 11, 939}, dictWord{133, 11, 962}, dictWord{5, 11, 651}, dictWord{8, 11, 170}, dictWord{ 9, 11, 61, }, dictWord{9, 11, 63}, dictWord{10, 11, 23}, dictWord{10, 11, 37}, dictWord{10, 11, 834}, dictWord{11, 11, 4}, dictWord{11, 11, 187}, dictWord{ 11, 11, 281, }, dictWord{11, 11, 503}, dictWord{11, 11, 677}, dictWord{12, 11, 96}, dictWord{12, 11, 130}, dictWord{12, 11, 244}, dictWord{14, 11, 5}, dictWord{ 14, 11, 40, }, dictWord{14, 11, 162}, dictWord{14, 11, 202}, dictWord{146, 11, 133}, dictWord{4, 11, 406}, dictWord{5, 11, 579}, dictWord{12, 11, 492}, dictWord{ 150, 11, 15, }, dictWord{139, 0, 392}, dictWord{6, 10, 610}, dictWord{10, 10, 127}, dictWord{141, 10, 27}, dictWord{7, 0, 655}, dictWord{7, 0, 1844}, dictWord{ 136, 10, 119, }, dictWord{4, 0, 145}, dictWord{6, 0, 176}, dictWord{7, 0, 395}, dictWord{137, 0, 562}, dictWord{132, 0, 501}, dictWord{140, 11, 145}, dictWord{ 136, 0, 1019, }, dictWord{134, 0, 509}, dictWord{139, 0, 267}, dictWord{6, 11, 17}, dictWord{7, 11, 16}, dictWord{7, 11, 1001}, dictWord{7, 11, 1982}, dictWord{ 9, 11, 886, }, dictWord{10, 11, 489}, dictWord{10, 11, 800}, dictWord{11, 11, 782}, dictWord{12, 11, 320}, dictWord{13, 11, 467}, dictWord{14, 11, 145}, dictWord{14, 11, 387}, dictWord{143, 11, 119}, dictWord{145, 11, 17}, dictWord{6, 0, 1099}, dictWord{133, 11, 458}, dictWord{7, 11, 1983}, dictWord{8, 11, 0}, dictWord{8, 11, 171}, dictWord{9, 11, 120}, dictWord{9, 11, 732}, dictWord{10, 11, 473}, dictWord{11, 11, 656}, dictWord{11, 11, 998}, dictWord{18, 11, 0}, dictWord{18, 11, 2}, dictWord{147, 11, 21}, dictWord{12, 11, 427}, dictWord{146, 11, 38}, dictWord{10, 0, 948}, dictWord{138, 0, 968}, dictWord{7, 10, 126}, dictWord{136, 10, 84}, dictWord{136, 10, 790}, dictWord{4, 0, 114}, dictWord{9, 0, 492}, dictWord{13, 0, 462}, dictWord{142, 0, 215}, dictWord{6, 10, 64}, dictWord{12, 10, 377}, dictWord{141, 10, 309}, dictWord{4, 0, 77}, dictWord{5, 0, 361}, dictWord{6, 0, 139}, dictWord{6, 0, 401}, dictWord{6, 0, 404}, dictWord{ 7, 0, 413, }, dictWord{7, 0, 715}, dictWord{7, 0, 1716}, dictWord{11, 0, 279}, dictWord{12, 0, 179}, dictWord{12, 0, 258}, dictWord{13, 0, 244}, dictWord{142, 0, 358}, dictWord{134, 0, 1717}, dictWord{7, 0, 772}, dictWord{7, 0, 1061}, dictWord{7, 0, 1647}, dictWord{8, 0, 82}, dictWord{11, 0, 250}, dictWord{11, 0, 607}, dictWord{12, 0, 311}, dictWord{12, 0, 420}, dictWord{13, 0, 184}, dictWord{13, 0, 367}, dictWord{7, 10, 1104}, dictWord{11, 10, 269}, dictWord{11, 10, 539}, dictWord{11, 10, 627}, dictWord{11, 10, 706}, dictWord{11, 10, 975}, dictWord{12, 10, 248}, dictWord{12, 10, 434}, dictWord{12, 10, 600}, dictWord{ 12, 10, 622, }, dictWord{13, 10, 297}, dictWord{13, 10, 485}, dictWord{14, 10, 69}, dictWord{14, 10, 409}, dictWord{143, 10, 108}, dictWord{135, 0, 724}, dictWord{ 4, 11, 512, }, dictWord{4, 11, 519}, dictWord{133, 11, 342}, dictWord{134, 0, 1133}, dictWord{145, 11, 29}, dictWord{11, 10, 977}, dictWord{141, 10, 507}, dictWord{6, 0, 841}, dictWord{6, 0, 1042}, dictWord{6, 0, 1194}, dictWord{10, 0, 993}, dictWord{140, 0, 1021}, dictWord{6, 11, 31}, dictWord{7, 11, 491}, dictWord{7, 11, 530}, dictWord{8, 11, 592}, dictWord{9, 10, 34}, dictWord{11, 11, 53}, dictWord{11, 10, 484}, dictWord{11, 11, 779}, dictWord{12, 11, 167}, dictWord{12, 11, 411}, dictWord{14, 11, 14}, dictWord{14, 11, 136}, dictWord{15, 11, 72}, dictWord{16, 11, 17}, dictWord{144, 11, 72}, dictWord{4, 0, 1021}, dictWord{6, 0, 2037}, dictWord{133, 11, 907}, dictWord{7, 0, 373}, dictWord{8, 0, 335}, dictWord{8, 0, 596}, dictWord{9, 0, 488}, dictWord{6, 10, 1700}, dictWord{ 7, 10, 293, }, dictWord{7, 10, 382}, dictWord{7, 10, 1026}, dictWord{7, 10, 1087}, dictWord{7, 10, 2027}, dictWord{8, 10, 252}, dictWord{8, 10, 727}, dictWord{ 8, 10, 729, }, dictWord{9, 10, 30}, dictWord{9, 10, 199}, dictWord{9, 10, 231}, dictWord{9, 10, 251}, dictWord{9, 10, 334}, dictWord{9, 10, 361}, dictWord{9, 10, 712}, dictWord{10, 10, 55}, dictWord{10, 10, 60}, dictWord{10, 10, 232}, dictWord{10, 10, 332}, dictWord{10, 10, 384}, dictWord{10, 10, 396}, dictWord{ 10, 10, 504, }, dictWord{10, 10, 542}, dictWord{10, 10, 652}, dictWord{11, 10, 20}, dictWord{11, 10, 48}, dictWord{11, 10, 207}, dictWord{11, 10, 291}, dictWord{ 11, 10, 298, }, dictWord{11, 10, 342}, dictWord{11, 10, 365}, dictWord{11, 10, 394}, dictWord{11, 10, 620}, dictWord{11, 10, 705}, dictWord{11, 10, 1017}, dictWord{12, 10, 123}, dictWord{12, 10, 340}, dictWord{12, 10, 406}, dictWord{12, 10, 643}, dictWord{13, 10, 61}, dictWord{13, 10, 269}, dictWord{ 13, 10, 311, }, dictWord{13, 10, 319}, dictWord{13, 10, 486}, dictWord{14, 10, 234}, dictWord{15, 10, 62}, dictWord{15, 10, 85}, dictWord{16, 10, 71}, dictWord{ 18, 10, 119, }, dictWord{148, 10, 105}, dictWord{150, 0, 37}, dictWord{4, 11, 208}, dictWord{5, 11, 106}, dictWord{6, 11, 531}, dictWord{8, 11, 408}, dictWord{ 9, 11, 188, }, dictWord{138, 11, 572}, dictWord{132, 0, 564}, dictWord{6, 0, 513}, dictWord{135, 0, 1052}, dictWord{132, 0, 825}, dictWord{9, 0, 899}, dictWord{ 140, 11, 441, }, dictWord{134, 0, 778}, dictWord{133, 11, 379}, dictWord{7, 0, 1417}, dictWord{12, 0, 382}, dictWord{17, 0, 48}, dictWord{152, 0, 12}, dictWord{ 132, 11, 241, }, dictWord{7, 0, 1116}, dictWord{6, 10, 379}, dictWord{7, 10, 270}, dictWord{8, 10, 176}, dictWord{8, 10, 183}, dictWord{9, 10, 432}, dictWord{ 9, 10, 661, }, dictWord{12, 10, 247}, dictWord{12, 10, 617}, dictWord{146, 10, 125}, dictWord{5, 10, 792}, dictWord{133, 10, 900}, dictWord{6, 0, 545}, dictWord{ 7, 0, 565, }, dictWord{7, 0, 1669}, dictWord{10, 0, 114}, dictWord{11, 0, 642}, dictWord{140, 0, 618}, dictWord{133, 0, 5}, dictWord{138, 11, 7}, dictWord{ 132, 11, 259, }, dictWord{135, 0, 192}, dictWord{134, 0, 701}, dictWord{136, 0, 763}, dictWord{135, 10, 1979}, dictWord{4, 10, 901}, dictWord{133, 10, 776}, dictWord{10, 0, 755}, dictWord{147, 0, 29}, dictWord{133, 0, 759}, dictWord{4, 11, 173}, dictWord{5, 11, 312}, dictWord{5, 11, 512}, dictWord{135, 11, 1285}, dictWord{7, 11, 1603}, dictWord{7, 11, 1691}, dictWord{9, 11, 464}, dictWord{11, 11, 195}, dictWord{12, 11, 279}, dictWord{12, 11, 448}, dictWord{ 14, 11, 11, }, dictWord{147, 11, 102}, dictWord{7, 0, 370}, dictWord{7, 0, 1007}, dictWord{7, 0, 1177}, dictWord{135, 0, 1565}, dictWord{135, 0, 1237}, dictWord{ 4, 0, 87, }, dictWord{5, 0, 250}, dictWord{141, 0, 298}, dictWord{4, 11, 452}, dictWord{5, 11, 583}, dictWord{5, 11, 817}, dictWord{6, 11, 433}, dictWord{7, 11, 593}, dictWord{7, 11, 720}, dictWord{7, 11, 1378}, dictWord{8, 11, 161}, dictWord{9, 11, 284}, dictWord{10, 11, 313}, dictWord{139, 11, 886}, dictWord{4, 11, 547}, dictWord{135, 11, 1409}, dictWord{136, 11, 722}, dictWord{4, 10, 37}, dictWord{5, 10, 334}, dictWord{135, 10, 1253}, dictWord{132, 10, 508}, dictWord{ 12, 0, 107, }, dictWord{146, 0, 31}, dictWord{8, 11, 420}, dictWord{139, 11, 193}, dictWord{135, 0, 814}, dictWord{135, 11, 409}, dictWord{140, 0, 991}, dictWord{4, 0, 57}, dictWord{7, 0, 1195}, dictWord{7, 0, 1438}, dictWord{7, 0, 1548}, dictWord{7, 0, 1835}, dictWord{7, 0, 1904}, dictWord{9, 0, 757}, dictWord{ 10, 0, 604, }, dictWord{139, 0, 519}, dictWord{132, 0, 540}, dictWord{138, 11, 308}, dictWord{132, 10, 533}, dictWord{136, 0, 608}, dictWord{144, 11, 65}, dictWord{4, 0, 1014}, dictWord{134, 0, 2029}, dictWord{4, 0, 209}, dictWord{7, 0, 902}, dictWord{5, 11, 1002}, dictWord{136, 11, 745}, dictWord{134, 0, 2030}, dictWord{6, 0, 303}, dictWord{7, 0, 335}, dictWord{7, 0, 1437}, dictWord{7, 0, 1668}, dictWord{8, 0, 553}, dictWord{8, 0, 652}, dictWord{8, 0, 656}, dictWord{ 9, 0, 558, }, dictWord{11, 0, 743}, dictWord{149, 0, 18}, dictWord{5, 11, 575}, dictWord{6, 11, 354}, dictWord{135, 11, 701}, dictWord{4, 11, 239}, dictWord{ 6, 11, 477, }, dictWord{7, 11, 1607}, dictWord{11, 11, 68}, dictWord{139, 11, 617}, dictWord{132, 0, 559}, dictWord{8, 0, 527}, dictWord{18, 0, 60}, dictWord{ 147, 0, 24, }, dictWord{133, 10, 920}, dictWord{138, 0, 511}, dictWord{133, 0, 1017}, dictWord{133, 0, 675}, dictWord{138, 10, 391}, dictWord{11, 0, 156}, dictWord{135, 10, 1952}, dictWord{138, 11, 369}, dictWord{132, 11, 367}, dictWord{133, 0, 709}, dictWord{6, 0, 698}, dictWord{134, 0, 887}, dictWord{ 142, 10, 126, }, dictWord{134, 0, 1745}, dictWord{132, 10, 483}, dictWord{13, 11, 299}, dictWord{142, 11, 75}, dictWord{133, 0, 714}, dictWord{7, 0, 8}, dictWord{ 136, 0, 206, }, dictWord{138, 10, 480}, dictWord{4, 11, 694}, dictWord{9, 10, 495}, dictWord{146, 10, 104}, dictWord{7, 11, 1248}, dictWord{11, 11, 621}, dictWord{139, 11, 702}, dictWord{140, 11, 687}, dictWord{132, 0, 776}, dictWord{139, 10, 1009}, dictWord{135, 0, 1272}, dictWord{134, 0, 1059}, dictWord{ 8, 10, 653, }, dictWord{13, 10, 93}, dictWord{147, 10, 14}, dictWord{135, 11, 213}, dictWord{136, 0, 406}, dictWord{133, 10, 172}, dictWord{132, 0, 947}, dictWord{8, 0, 175}, dictWord{10, 0, 168}, dictWord{138, 0, 573}, dictWord{132, 0, 870}, dictWord{6, 0, 1567}, dictWord{151, 11, 28}, dictWord{ 134, 11, 472, }, dictWord{5, 10, 260}, dictWord{136, 11, 132}, dictWord{4, 11, 751}, dictWord{11, 11, 390}, dictWord{140, 11, 32}, dictWord{4, 11, 409}, dictWord{ 133, 11, 78, }, dictWord{12, 0, 554}, dictWord{6, 11, 473}, dictWord{145, 11, 105}, dictWord{133, 0, 784}, dictWord{8, 0, 908}, dictWord{136, 11, 306}, dictWord{139, 0, 882}, dictWord{6, 0, 358}, dictWord{7, 0, 1393}, dictWord{8, 0, 396}, dictWord{10, 0, 263}, dictWord{14, 0, 154}, dictWord{16, 0, 48}, dictWord{ 17, 0, 8, }, dictWord{7, 11, 1759}, dictWord{8, 11, 396}, dictWord{10, 11, 263}, dictWord{14, 11, 154}, dictWord{16, 11, 48}, dictWord{145, 11, 8}, dictWord{ 13, 11, 163, }, dictWord{13, 11, 180}, dictWord{18, 11, 78}, dictWord{148, 11, 35}, dictWord{14, 0, 32}, dictWord{18, 0, 85}, dictWord{20, 0, 2}, dictWord{152, 0, 16}, dictWord{7, 0, 228}, dictWord{10, 0, 770}, dictWord{8, 10, 167}, dictWord{8, 10, 375}, dictWord{9, 10, 82}, dictWord{9, 10, 561}, dictWord{138, 10, 620}, dictWord{132, 0, 845}, dictWord{9, 0, 14}, dictWord{9, 0, 441}, dictWord{10, 0, 306}, dictWord{139, 0, 9}, dictWord{11, 0, 966}, dictWord{12, 0, 287}, dictWord{ 13, 0, 342, }, dictWord{13, 0, 402}, dictWord{15, 0, 110}, dictWord{15, 0, 163}, dictWord{8, 10, 194}, dictWord{136, 10, 756}, dictWord{134, 0, 1578}, dictWord{ 4, 0, 967, }, dictWord{6, 0, 1820}, dictWord{6, 0, 1847}, dictWord{140, 0, 716}, dictWord{136, 0, 594}, dictWord{7, 0, 1428}, dictWord{7, 0, 1640}, dictWord{ 7, 0, 1867, }, dictWord{9, 0, 169}, dictWord{9, 0, 182}, dictWord{9, 0, 367}, dictWord{9, 0, 478}, dictWord{9, 0, 506}, dictWord{9, 0, 551}, dictWord{9, 0, 557}, dictWord{ 9, 0, 648, }, dictWord{9, 0, 697}, dictWord{9, 0, 705}, dictWord{9, 0, 725}, dictWord{9, 0, 787}, dictWord{9, 0, 794}, dictWord{10, 0, 198}, dictWord{10, 0, 214}, dictWord{10, 0, 267}, dictWord{10, 0, 275}, dictWord{10, 0, 456}, dictWord{10, 0, 551}, dictWord{10, 0, 561}, dictWord{10, 0, 613}, dictWord{10, 0, 627}, dictWord{ 10, 0, 668, }, dictWord{10, 0, 675}, dictWord{10, 0, 691}, dictWord{10, 0, 695}, dictWord{10, 0, 707}, dictWord{10, 0, 715}, dictWord{11, 0, 183}, dictWord{ 11, 0, 201, }, dictWord{11, 0, 244}, dictWord{11, 0, 262}, dictWord{11, 0, 352}, dictWord{11, 0, 439}, dictWord{11, 0, 493}, dictWord{11, 0, 572}, dictWord{11, 0, 591}, dictWord{11, 0, 608}, dictWord{11, 0, 611}, dictWord{11, 0, 646}, dictWord{11, 0, 674}, dictWord{11, 0, 711}, dictWord{11, 0, 751}, dictWord{11, 0, 761}, dictWord{11, 0, 776}, dictWord{11, 0, 785}, dictWord{11, 0, 850}, dictWord{11, 0, 853}, dictWord{11, 0, 862}, dictWord{11, 0, 865}, dictWord{11, 0, 868}, dictWord{ 11, 0, 875, }, dictWord{11, 0, 898}, dictWord{11, 0, 902}, dictWord{11, 0, 903}, dictWord{11, 0, 910}, dictWord{11, 0, 932}, dictWord{11, 0, 942}, dictWord{ 11, 0, 957, }, dictWord{11, 0, 967}, dictWord{11, 0, 972}, dictWord{12, 0, 148}, dictWord{12, 0, 195}, dictWord{12, 0, 220}, dictWord{12, 0, 237}, dictWord{12, 0, 318}, dictWord{12, 0, 339}, dictWord{12, 0, 393}, dictWord{12, 0, 445}, dictWord{12, 0, 450}, dictWord{12, 0, 474}, dictWord{12, 0, 505}, dictWord{12, 0, 509}, dictWord{12, 0, 533}, dictWord{12, 0, 591}, dictWord{12, 0, 594}, dictWord{12, 0, 597}, dictWord{12, 0, 621}, dictWord{12, 0, 633}, dictWord{12, 0, 642}, dictWord{ 13, 0, 59, }, dictWord{13, 0, 60}, dictWord{13, 0, 145}, dictWord{13, 0, 239}, dictWord{13, 0, 250}, dictWord{13, 0, 329}, dictWord{13, 0, 344}, dictWord{13, 0, 365}, dictWord{13, 0, 372}, dictWord{13, 0, 387}, dictWord{13, 0, 403}, dictWord{13, 0, 414}, dictWord{13, 0, 456}, dictWord{13, 0, 470}, dictWord{13, 0, 478}, dictWord{13, 0, 483}, dictWord{13, 0, 489}, dictWord{14, 0, 55}, dictWord{14, 0, 57}, dictWord{14, 0, 81}, dictWord{14, 0, 90}, dictWord{14, 0, 148}, dictWord{ 14, 0, 239, }, dictWord{14, 0, 266}, dictWord{14, 0, 321}, dictWord{14, 0, 326}, dictWord{14, 0, 327}, dictWord{14, 0, 330}, dictWord{14, 0, 347}, dictWord{14, 0, 355}, dictWord{14, 0, 401}, dictWord{14, 0, 404}, dictWord{14, 0, 411}, dictWord{14, 0, 414}, dictWord{14, 0, 416}, dictWord{14, 0, 420}, dictWord{15, 0, 61}, dictWord{15, 0, 74}, dictWord{15, 0, 87}, dictWord{15, 0, 88}, dictWord{15, 0, 94}, dictWord{15, 0, 96}, dictWord{15, 0, 116}, dictWord{15, 0, 149}, dictWord{15, 0, 154}, dictWord{16, 0, 50}, dictWord{16, 0, 63}, dictWord{16, 0, 73}, dictWord{17, 0, 2}, dictWord{17, 0, 66}, dictWord{17, 0, 92}, dictWord{17, 0, 103}, dictWord{ 17, 0, 112, }, dictWord{17, 0, 120}, dictWord{18, 0, 50}, dictWord{18, 0, 54}, dictWord{18, 0, 82}, dictWord{18, 0, 86}, dictWord{18, 0, 90}, dictWord{18, 0, 111}, dictWord{ 18, 0, 115, }, dictWord{18, 0, 156}, dictWord{19, 0, 40}, dictWord{19, 0, 79}, dictWord{20, 0, 78}, dictWord{21, 0, 22}, dictWord{135, 11, 883}, dictWord{5, 0, 161}, dictWord{135, 0, 839}, dictWord{4, 0, 782}, dictWord{13, 11, 293}, dictWord{142, 11, 56}, dictWord{133, 11, 617}, dictWord{139, 11, 50}, dictWord{ 135, 10, 22, }, dictWord{145, 0, 64}, dictWord{5, 10, 639}, dictWord{7, 10, 1249}, dictWord{139, 10, 896}, dictWord{138, 0, 998}, dictWord{135, 11, 2042}, dictWord{ 4, 11, 546, }, dictWord{142, 11, 233}, dictWord{6, 0, 1043}, dictWord{134, 0, 1574}, dictWord{134, 0, 1496}, dictWord{4, 10, 102}, dictWord{7, 10, 815}, dictWord{7, 10, 1699}, dictWord{139, 10, 964}, dictWord{12, 0, 781}, dictWord{142, 0, 461}, dictWord{4, 11, 313}, dictWord{133, 11, 577}, dictWord{ 6, 0, 639, }, dictWord{6, 0, 1114}, dictWord{137, 0, 817}, dictWord{8, 11, 184}, dictWord{141, 11, 433}, dictWord{7, 0, 1814}, dictWord{135, 11, 935}, dictWord{ 10, 0, 997, }, dictWord{140, 0, 958}, dictWord{4, 0, 812}, dictWord{137, 11, 625}, dictWord{132, 10, 899}, dictWord{136, 10, 795}, dictWord{5, 11, 886}, dictWord{6, 11, 46}, dictWord{6, 11, 1790}, dictWord{7, 11, 14}, dictWord{7, 11, 732}, dictWord{7, 11, 1654}, dictWord{8, 11, 95}, dictWord{8, 11, 327}, dictWord{ 8, 11, 616, }, dictWord{10, 11, 598}, dictWord{10, 11, 769}, dictWord{11, 11, 134}, dictWord{11, 11, 747}, dictWord{12, 11, 378}, dictWord{142, 11, 97}, dictWord{136, 0, 139}, dictWord{6, 10, 52}, dictWord{9, 10, 104}, dictWord{9, 10, 559}, dictWord{12, 10, 308}, dictWord{147, 10, 87}, dictWord{133, 11, 1021}, dictWord{132, 10, 604}, dictWord{132, 10, 301}, dictWord{136, 10, 779}, dictWord{7, 0, 643}, dictWord{136, 0, 236}, dictWord{132, 11, 153}, dictWord{ 134, 0, 1172, }, dictWord{147, 10, 32}, dictWord{133, 11, 798}, dictWord{6, 0, 1338}, dictWord{132, 11, 587}, dictWord{6, 11, 598}, dictWord{7, 11, 42}, dictWord{ 8, 11, 695, }, dictWord{10, 11, 212}, dictWord{11, 11, 158}, dictWord{14, 11, 196}, dictWord{145, 11, 85}, dictWord{135, 10, 508}, dictWord{5, 11, 957}, dictWord{5, 11, 1008}, dictWord{135, 11, 249}, dictWord{4, 11, 129}, dictWord{135, 11, 465}, dictWord{5, 0, 54}, dictWord{7, 11, 470}, dictWord{7, 11, 1057}, dictWord{7, 11, 1201}, dictWord{9, 11, 755}, dictWord{11, 11, 906}, dictWord{140, 11, 527}, dictWord{7, 11, 908}, dictWord{146, 11, 7}, dictWord{ 5, 11, 148, }, dictWord{136, 11, 450}, dictWord{144, 11, 1}, dictWord{4, 0, 256}, dictWord{135, 0, 1488}, dictWord{9, 0, 351}, dictWord{6, 10, 310}, dictWord{ 7, 10, 1849, }, dictWord{8, 10, 72}, dictWord{8, 10, 272}, dictWord{8, 10, 431}, dictWord{9, 10, 12}, dictWord{10, 10, 563}, dictWord{10, 10, 630}, dictWord{ 10, 10, 796, }, dictWord{10, 10, 810}, dictWord{11, 10, 367}, dictWord{11, 10, 599}, dictWord{11, 10, 686}, dictWord{140, 10, 672}, dictWord{6, 0, 1885}, dictWord{ 6, 0, 1898, }, dictWord{6, 0, 1899}, dictWord{140, 0, 955}, dictWord{4, 0, 714}, dictWord{133, 0, 469}, dictWord{6, 0, 1270}, dictWord{134, 0, 1456}, dictWord{132, 0, 744}, dictWord{6, 0, 313}, dictWord{7, 10, 537}, dictWord{8, 10, 64}, dictWord{9, 10, 127}, dictWord{10, 10, 496}, dictWord{12, 10, 510}, dictWord{141, 10, 384}, dictWord{4, 11, 217}, dictWord{4, 10, 244}, dictWord{5, 11, 710}, dictWord{7, 10, 233}, dictWord{7, 11, 1926}, dictWord{9, 11, 428}, dictWord{9, 11, 708}, dictWord{10, 11, 254}, dictWord{10, 11, 296}, dictWord{10, 11, 720}, dictWord{11, 11, 109}, dictWord{11, 11, 255}, dictWord{12, 11, 165}, dictWord{12, 11, 315}, dictWord{13, 11, 107}, dictWord{13, 11, 203}, dictWord{14, 11, 54}, dictWord{14, 11, 99}, dictWord{14, 11, 114}, dictWord{ 14, 11, 388, }, dictWord{16, 11, 85}, dictWord{17, 11, 9}, dictWord{17, 11, 33}, dictWord{20, 11, 25}, dictWord{20, 11, 28}, dictWord{20, 11, 29}, dictWord{21, 11, 9}, dictWord{21, 11, 10}, dictWord{21, 11, 34}, dictWord{150, 11, 17}, dictWord{138, 0, 402}, dictWord{7, 0, 969}, dictWord{146, 0, 55}, dictWord{8, 0, 50}, dictWord{ 137, 0, 624, }, dictWord{134, 0, 1355}, dictWord{132, 0, 572}, dictWord{134, 10, 1650}, dictWord{10, 10, 702}, dictWord{139, 10, 245}, dictWord{ 10, 0, 847, }, dictWord{142, 0, 445}, dictWord{6, 0, 43}, dictWord{7, 0, 38}, dictWord{8, 0, 248}, dictWord{138, 0, 513}, dictWord{133, 0, 369}, dictWord{137, 10, 338}, dictWord{133, 0, 766}, dictWord{133, 0, 363}, dictWord{133, 10, 896}, dictWord{8, 11, 392}, dictWord{11, 11, 54}, dictWord{13, 11, 173}, dictWord{ 13, 11, 294, }, dictWord{148, 11, 7}, dictWord{134, 0, 678}, dictWord{7, 11, 1230}, dictWord{136, 11, 531}, dictWord{6, 0, 258}, dictWord{140, 0, 409}, dictWord{ 5, 0, 249, }, dictWord{148, 0, 82}, dictWord{7, 10, 1117}, dictWord{136, 10, 539}, dictWord{5, 0, 393}, dictWord{6, 0, 378}, dictWord{7, 0, 1981}, dictWord{9, 0, 32}, dictWord{9, 0, 591}, dictWord{10, 0, 685}, dictWord{10, 0, 741}, dictWord{142, 0, 382}, dictWord{133, 0, 788}, dictWord{134, 0, 1281}, dictWord{ 134, 0, 1295, }, dictWord{7, 0, 1968}, dictWord{141, 0, 509}, dictWord{4, 0, 61}, dictWord{5, 0, 58}, dictWord{5, 0, 171}, dictWord{5, 0, 683}, dictWord{6, 0, 291}, dictWord{ 6, 0, 566, }, dictWord{7, 0, 1650}, dictWord{11, 0, 523}, dictWord{12, 0, 273}, dictWord{12, 0, 303}, dictWord{15, 0, 39}, dictWord{143, 0, 111}, dictWord{ 6, 0, 706, }, dictWord{134, 0, 1283}, dictWord{134, 0, 589}, dictWord{135, 11, 1433}, dictWord{133, 11, 435}, dictWord{7, 0, 1059}, dictWord{13, 0, 54}, dictWord{ 5, 10, 4, }, dictWord{5, 10, 810}, dictWord{6, 10, 13}, dictWord{6, 10, 538}, dictWord{6, 10, 1690}, dictWord{6, 10, 1726}, dictWord{7, 10, 1819}, dictWord{ 8, 10, 148, }, dictWord{8, 10, 696}, dictWord{8, 10, 791}, dictWord{12, 10, 125}, dictWord{143, 10, 9}, dictWord{135, 10, 1268}, dictWord{5, 11, 85}, dictWord{ 6, 11, 419, }, dictWord{7, 11, 134}, dictWord{7, 11, 305}, dictWord{7, 11, 361}, dictWord{7, 11, 1337}, dictWord{8, 11, 71}, dictWord{140, 11, 519}, dictWord{ 137, 0, 824, }, dictWord{140, 11, 688}, dictWord{5, 11, 691}, dictWord{7, 11, 345}, dictWord{7, 10, 1385}, dictWord{9, 11, 94}, dictWord{11, 10, 582}, dictWord{ 11, 10, 650, }, dictWord{11, 10, 901}, dictWord{11, 10, 949}, dictWord{12, 11, 169}, dictWord{12, 10, 232}, dictWord{12, 10, 236}, dictWord{13, 10, 413}, dictWord{13, 10, 501}, dictWord{146, 10, 116}, dictWord{4, 0, 917}, dictWord{133, 0, 1005}, dictWord{7, 0, 1598}, dictWord{5, 11, 183}, dictWord{6, 11, 582}, dictWord{9, 11, 344}, dictWord{10, 11, 679}, dictWord{140, 11, 435}, dictWord{4, 10, 925}, dictWord{5, 10, 803}, dictWord{8, 10, 698}, dictWord{ 138, 10, 828, }, dictWord{132, 0, 919}, dictWord{135, 11, 511}, dictWord{139, 10, 992}, dictWord{4, 0, 255}, dictWord{5, 0, 302}, dictWord{6, 0, 132}, dictWord{ 7, 0, 128, }, dictWord{7, 0, 283}, dictWord{7, 0, 1299}, dictWord{10, 0, 52}, dictWord{10, 0, 514}, dictWord{11, 0, 925}, dictWord{13, 0, 92}, dictWord{142, 0, 309}, dictWord{134, 0, 1369}, dictWord{135, 10, 1847}, dictWord{134, 0, 328}, dictWord{7, 11, 1993}, dictWord{136, 11, 684}, dictWord{133, 10, 383}, dictWord{137, 0, 173}, dictWord{134, 11, 583}, dictWord{134, 0, 1411}, dictWord{19, 0, 65}, dictWord{5, 11, 704}, dictWord{8, 11, 357}, dictWord{10, 11, 745}, dictWord{14, 11, 426}, dictWord{17, 11, 94}, dictWord{147, 11, 57}, dictWord{9, 10, 660}, dictWord{138, 10, 347}, dictWord{4, 11, 179}, dictWord{5, 11, 198}, dictWord{133, 11, 697}, dictWord{7, 11, 347}, dictWord{7, 11, 971}, dictWord{8, 11, 181}, dictWord{138, 11, 711}, dictWord{141, 0, 442}, dictWord{ 11, 0, 842, }, dictWord{11, 0, 924}, dictWord{13, 0, 317}, dictWord{13, 0, 370}, dictWord{13, 0, 469}, dictWord{13, 0, 471}, dictWord{14, 0, 397}, dictWord{18, 0, 69}, dictWord{18, 0, 145}, dictWord{7, 10, 572}, dictWord{9, 10, 592}, dictWord{11, 10, 680}, dictWord{12, 10, 356}, dictWord{140, 10, 550}, dictWord{14, 11, 19}, dictWord{14, 11, 28}, dictWord{144, 11, 29}, dictWord{136, 0, 534}, dictWord{4, 11, 243}, dictWord{5, 11, 203}, dictWord{7, 11, 19}, dictWord{7, 11, 71}, dictWord{7, 11, 113}, dictWord{10, 11, 405}, dictWord{11, 11, 357}, dictWord{142, 11, 240}, dictWord{6, 0, 210}, dictWord{10, 0, 845}, dictWord{138, 0, 862}, dictWord{7, 11, 1351}, dictWord{9, 11, 581}, dictWord{10, 11, 639}, dictWord{11, 11, 453}, dictWord{140, 11, 584}, dictWord{7, 11, 1450}, dictWord{ 139, 11, 99, }, dictWord{10, 0, 892}, dictWord{12, 0, 719}, dictWord{144, 0, 105}, dictWord{4, 0, 284}, dictWord{6, 0, 223}, dictWord{134, 11, 492}, dictWord{5, 11, 134}, dictWord{6, 11, 408}, dictWord{6, 11, 495}, dictWord{135, 11, 1593}, dictWord{136, 0, 529}, dictWord{137, 0, 807}, dictWord{4, 0, 218}, dictWord{7, 0, 526}, dictWord{143, 0, 137}, dictWord{6, 0, 1444}, dictWord{142, 11, 4}, dictWord{132, 11, 665}, dictWord{4, 0, 270}, dictWord{5, 0, 192}, dictWord{6, 0, 332}, dictWord{7, 0, 1322}, dictWord{4, 11, 248}, dictWord{7, 11, 137}, dictWord{137, 11, 349}, dictWord{140, 0, 661}, dictWord{7, 0, 1517}, dictWord{11, 0, 597}, dictWord{14, 0, 76}, dictWord{14, 0, 335}, dictWord{20, 0, 33}, dictWord{7, 10, 748}, dictWord{139, 10, 700}, dictWord{5, 11, 371}, dictWord{135, 11, 563}, dictWord{146, 11, 57}, dictWord{133, 10, 127}, dictWord{133, 0, 418}, dictWord{4, 11, 374}, dictWord{7, 11, 547}, dictWord{7, 11, 1700}, dictWord{7, 11, 1833}, dictWord{139, 11, 858}, dictWord{6, 10, 198}, dictWord{140, 10, 83}, dictWord{7, 11, 1812}, dictWord{13, 11, 259}, dictWord{13, 11, 356}, dictWord{ 14, 11, 242, }, dictWord{147, 11, 114}, dictWord{7, 0, 379}, dictWord{8, 0, 481}, dictWord{9, 0, 377}, dictWord{5, 10, 276}, dictWord{6, 10, 55}, dictWord{ 135, 10, 1369, }, dictWord{138, 11, 286}, dictWord{5, 0, 1003}, dictWord{6, 0, 149}, dictWord{6, 10, 1752}, dictWord{136, 10, 726}, dictWord{8, 0, 262}, dictWord{ 9, 0, 627, }, dictWord{10, 0, 18}, dictWord{11, 0, 214}, dictWord{11, 0, 404}, dictWord{11, 0, 457}, dictWord{11, 0, 780}, dictWord{11, 0, 913}, dictWord{13, 0, 401}, dictWord{14, 0, 200}, dictWord{6, 11, 1647}, dictWord{7, 11, 1552}, dictWord{7, 11, 2010}, dictWord{9, 11, 494}, dictWord{137, 11, 509}, dictWord{ 135, 0, 742, }, dictWord{136, 0, 304}, dictWord{132, 0, 142}, dictWord{133, 10, 764}, dictWord{6, 10, 309}, dictWord{7, 10, 331}, dictWord{138, 10, 550}, dictWord{135, 10, 1062}, dictWord{6, 11, 123}, dictWord{7, 11, 214}, dictWord{7, 10, 986}, dictWord{9, 11, 728}, dictWord{10, 11, 157}, dictWord{11, 11, 346}, dictWord{11, 11, 662}, dictWord{143, 11, 106}, dictWord{135, 10, 1573}, dictWord{7, 0, 925}, dictWord{137, 0, 799}, dictWord{4, 0, 471}, dictWord{5, 0, 51}, dictWord{6, 0, 602}, dictWord{8, 0, 484}, dictWord{138, 0, 195}, dictWord{136, 0, 688}, dictWord{132, 0, 697}, dictWord{6, 0, 1169}, dictWord{6, 0, 1241}, dictWord{6, 10, 194}, dictWord{7, 10, 133}, dictWord{10, 10, 493}, dictWord{10, 10, 570}, dictWord{139, 10, 664}, dictWord{140, 0, 751}, dictWord{7, 0, 929}, dictWord{10, 0, 452}, dictWord{11, 0, 878}, dictWord{16, 0, 33}, dictWord{5, 10, 24}, dictWord{5, 10, 569}, dictWord{6, 10, 3}, dictWord{6, 10, 119}, dictWord{ 6, 10, 143, }, dictWord{6, 10, 440}, dictWord{7, 10, 599}, dictWord{7, 10, 1686}, dictWord{7, 10, 1854}, dictWord{8, 10, 424}, dictWord{9, 10, 43}, dictWord{ 9, 10, 584, }, dictWord{9, 10, 760}, dictWord{10, 10, 328}, dictWord{11, 10, 159}, dictWord{11, 10, 253}, dictWord{12, 10, 487}, dictWord{140, 10, 531}, dictWord{ 4, 11, 707, }, dictWord{13, 11, 106}, dictWord{18, 11, 49}, dictWord{147, 11, 41}, dictWord{5, 0, 221}, dictWord{5, 11, 588}, dictWord{134, 11, 393}, dictWord{134, 0, 1437}, dictWord{6, 11, 211}, dictWord{7, 11, 1690}, dictWord{11, 11, 486}, dictWord{140, 11, 369}, dictWord{5, 10, 14}, dictWord{5, 10, 892}, dictWord{6, 10, 283}, dictWord{7, 10, 234}, dictWord{136, 10, 537}, dictWord{4, 0, 988}, dictWord{136, 0, 955}, dictWord{135, 0, 1251}, dictWord{4, 10, 126}, dictWord{8, 10, 635}, dictWord{147, 10, 34}, dictWord{4, 10, 316}, dictWord{135, 10, 1561}, dictWord{137, 10, 861}, dictWord{4, 10, 64}, dictWord{ 5, 10, 352, }, dictWord{5, 10, 720}, dictWord{6, 10, 368}, dictWord{139, 10, 359}, dictWord{134, 0, 192}, dictWord{4, 0, 132}, dictWord{5, 0, 69}, dictWord{ 135, 0, 1242, }, dictWord{7, 10, 1577}, dictWord{10, 10, 304}, dictWord{10, 10, 549}, dictWord{12, 10, 365}, dictWord{13, 10, 220}, dictWord{13, 10, 240}, dictWord{142, 10, 33}, dictWord{4, 0, 111}, dictWord{7, 0, 865}, dictWord{134, 11, 219}, dictWord{5, 11, 582}, dictWord{6, 11, 1646}, dictWord{7, 11, 99}, dictWord{ 7, 11, 1962, }, dictWord{7, 11, 1986}, dictWord{8, 11, 515}, dictWord{8, 11, 773}, dictWord{9, 11, 23}, dictWord{9, 11, 491}, dictWord{12, 11, 620}, dictWord{ 14, 11, 52, }, dictWord{145, 11, 50}, dictWord{132, 0, 767}, dictWord{7, 11, 568}, dictWord{148, 11, 21}, dictWord{6, 0, 42}, dictWord{7, 0, 1416}, dictWord{ 7, 0, 2005, }, dictWord{8, 0, 131}, dictWord{8, 0, 466}, dictWord{9, 0, 672}, dictWord{13, 0, 252}, dictWord{20, 0, 103}, dictWord{133, 11, 851}, dictWord{ 135, 0, 1050, }, dictWord{6, 10, 175}, dictWord{137, 10, 289}, dictWord{5, 10, 432}, dictWord{133, 10, 913}, dictWord{6, 0, 44}, dictWord{136, 0, 368}, dictWord{ 135, 11, 784, }, dictWord{132, 0, 570}, dictWord{133, 0, 120}, dictWord{139, 10, 595}, dictWord{140, 0, 29}, dictWord{6, 0, 227}, dictWord{135, 0, 1589}, dictWord{4, 11, 98}, dictWord{7, 11, 1365}, dictWord{9, 11, 422}, dictWord{9, 11, 670}, dictWord{10, 11, 775}, dictWord{11, 11, 210}, dictWord{13, 11, 26}, dictWord{13, 11, 457}, dictWord{141, 11, 476}, dictWord{140, 10, 80}, dictWord{5, 10, 931}, dictWord{134, 10, 1698}, dictWord{133, 0, 522}, dictWord{ 134, 0, 1120, }, dictWord{135, 0, 1529}, dictWord{12, 0, 739}, dictWord{14, 0, 448}, dictWord{142, 0, 467}, dictWord{11, 10, 526}, dictWord{11, 10, 939}, dictWord{141, 10, 290}, dictWord{5, 10, 774}, dictWord{6, 10, 1637}, dictWord{6, 10, 1686}, dictWord{134, 10, 1751}, dictWord{6, 0, 1667}, dictWord{ 135, 0, 2036, }, dictWord{7, 10, 1167}, dictWord{11, 10, 934}, dictWord{13, 10, 391}, dictWord{145, 10, 76}, dictWord{137, 11, 147}, dictWord{6, 10, 260}, dictWord{ 7, 10, 1484, }, dictWord{11, 11, 821}, dictWord{12, 11, 110}, dictWord{12, 11, 153}, dictWord{18, 11, 41}, dictWord{150, 11, 19}, dictWord{6, 0, 511}, dictWord{12, 0, 132}, dictWord{134, 10, 573}, dictWord{5, 0, 568}, dictWord{6, 0, 138}, dictWord{135, 0, 1293}, dictWord{132, 0, 1020}, dictWord{8, 0, 258}, dictWord{9, 0, 208}, dictWord{137, 0, 359}, dictWord{4, 0, 565}, dictWord{8, 0, 23}, dictWord{136, 0, 827}, dictWord{134, 0, 344}, dictWord{4, 0, 922}, dictWord{ 5, 0, 1023, }, dictWord{13, 11, 477}, dictWord{14, 11, 120}, dictWord{148, 11, 61}, dictWord{134, 0, 240}, dictWord{5, 11, 209}, dictWord{6, 11, 30}, dictWord{ 11, 11, 56, }, dictWord{139, 11, 305}, dictWord{6, 0, 171}, dictWord{7, 0, 1002}, dictWord{7, 0, 1324}, dictWord{9, 0, 415}, dictWord{14, 0, 230}, dictWord{ 18, 0, 68, }, dictWord{4, 10, 292}, dictWord{4, 10, 736}, dictWord{5, 10, 871}, dictWord{6, 10, 1689}, dictWord{7, 10, 1944}, dictWord{137, 10, 580}, dictWord{ 9, 11, 635, }, dictWord{139, 11, 559}, dictWord{4, 11, 150}, dictWord{5, 11, 303}, dictWord{134, 11, 327}, dictWord{6, 10, 63}, dictWord{135, 10, 920}, dictWord{ 133, 10, 793, }, dictWord{8, 11, 192}, dictWord{10, 11, 78}, dictWord{10, 11, 555}, dictWord{11, 11, 308}, dictWord{13, 11, 359}, dictWord{147, 11, 95}, dictWord{135, 11, 786}, dictWord{135, 11, 1712}, dictWord{136, 0, 402}, dictWord{6, 0, 754}, dictWord{6, 11, 1638}, dictWord{7, 11, 79}, dictWord{7, 11, 496}, dictWord{9, 11, 138}, dictWord{10, 11, 336}, dictWord{11, 11, 12}, dictWord{12, 11, 412}, dictWord{12, 11, 440}, dictWord{142, 11, 305}, dictWord{4, 0, 716}, dictWord{141, 0, 31}, dictWord{133, 0, 982}, dictWord{8, 0, 691}, dictWord{8, 0, 731}, dictWord{5, 10, 67}, dictWord{6, 10, 62}, dictWord{6, 10, 374}, dictWord{ 135, 10, 1391, }, dictWord{9, 10, 790}, dictWord{140, 10, 47}, dictWord{139, 11, 556}, dictWord{151, 11, 1}, dictWord{7, 11, 204}, dictWord{7, 11, 415}, dictWord{8, 11, 42}, dictWord{10, 11, 85}, dictWord{11, 11, 33}, dictWord{11, 11, 564}, dictWord{12, 11, 571}, dictWord{149, 11, 1}, dictWord{8, 0, 888}, dictWord{ 7, 11, 610, }, dictWord{135, 11, 1501}, dictWord{4, 10, 391}, dictWord{135, 10, 1169}, dictWord{5, 0, 847}, dictWord{9, 0, 840}, dictWord{138, 0, 803}, dictWord{137, 0, 823}, dictWord{134, 0, 785}, dictWord{8, 0, 152}, dictWord{9, 0, 53}, dictWord{9, 0, 268}, dictWord{9, 0, 901}, dictWord{10, 0, 518}, dictWord{ 10, 0, 829, }, dictWord{11, 0, 188}, dictWord{13, 0, 74}, dictWord{14, 0, 46}, dictWord{15, 0, 17}, dictWord{15, 0, 33}, dictWord{17, 0, 40}, dictWord{18, 0, 36}, dictWord{ 19, 0, 20, }, dictWord{22, 0, 1}, dictWord{152, 0, 2}, dictWord{4, 11, 3}, dictWord{5, 11, 247}, dictWord{5, 11, 644}, dictWord{7, 11, 744}, dictWord{7, 11, 1207}, dictWord{7, 11, 1225}, dictWord{7, 11, 1909}, dictWord{146, 11, 147}, dictWord{136, 0, 532}, dictWord{135, 0, 681}, dictWord{132, 10, 271}, dictWord{ 140, 0, 314, }, dictWord{140, 0, 677}, dictWord{4, 0, 684}, dictWord{136, 0, 384}, dictWord{5, 11, 285}, dictWord{9, 11, 67}, dictWord{13, 11, 473}, dictWord{ 143, 11, 82, }, dictWord{4, 10, 253}, dictWord{5, 10, 544}, dictWord{7, 10, 300}, dictWord{137, 10, 340}, dictWord{7, 0, 110}, dictWord{7, 0, 447}, dictWord{8, 0, 290}, dictWord{8, 0, 591}, dictWord{9, 0, 382}, dictWord{9, 0, 649}, dictWord{11, 0, 71}, dictWord{11, 0, 155}, dictWord{11, 0, 313}, dictWord{12, 0, 5}, dictWord{13, 0, 325}, dictWord{142, 0, 287}, dictWord{134, 0, 1818}, dictWord{136, 0, 1007}, dictWord{138, 0, 321}, dictWord{7, 0, 360}, dictWord{7, 0, 425}, dictWord{9, 0, 66}, dictWord{9, 0, 278}, dictWord{138, 0, 644}, dictWord{133, 10, 818}, dictWord{5, 0, 385}, dictWord{5, 10, 541}, dictWord{6, 10, 94}, dictWord{6, 10, 499}, dictWord{ 7, 10, 230, }, dictWord{139, 10, 321}, dictWord{4, 10, 920}, dictWord{5, 10, 25}, dictWord{5, 10, 790}, dictWord{6, 10, 457}, dictWord{7, 10, 853}, dictWord{ 136, 10, 788, }, dictWord{4, 0, 900}, dictWord{133, 0, 861}, dictWord{5, 0, 254}, dictWord{7, 0, 985}, dictWord{136, 0, 73}, dictWord{7, 0, 1959}, dictWord{ 136, 0, 683, }, dictWord{134, 10, 1765}, dictWord{133, 10, 822}, dictWord{132, 10, 634}, dictWord{4, 11, 29}, dictWord{6, 11, 532}, dictWord{7, 11, 1628}, dictWord{ 7, 11, 1648, }, dictWord{9, 11, 303}, dictWord{9, 11, 350}, dictWord{10, 11, 433}, dictWord{11, 11, 97}, dictWord{11, 11, 557}, dictWord{11, 11, 745}, dictWord{12, 11, 289}, dictWord{12, 11, 335}, dictWord{12, 11, 348}, dictWord{12, 11, 606}, dictWord{13, 11, 116}, dictWord{13, 11, 233}, dictWord{ 13, 11, 466, }, dictWord{14, 11, 181}, dictWord{14, 11, 209}, dictWord{14, 11, 232}, dictWord{14, 11, 236}, dictWord{14, 11, 300}, dictWord{16, 11, 41}, dictWord{ 148, 11, 97, }, dictWord{19, 0, 86}, dictWord{6, 10, 36}, dictWord{7, 10, 658}, dictWord{136, 10, 454}, dictWord{135, 11, 1692}, dictWord{132, 0, 725}, dictWord{ 5, 11, 501, }, dictWord{7, 11, 1704}, dictWord{9, 11, 553}, dictWord{11, 11, 520}, dictWord{12, 11, 557}, dictWord{141, 11, 249}, dictWord{134, 0, 196}, dictWord{133, 0, 831}, dictWord{136, 0, 723}, dictWord{7, 0, 1897}, dictWord{13, 0, 80}, dictWord{13, 0, 437}, dictWord{145, 0, 74}, dictWord{4, 0, 992}, dictWord{ 6, 0, 627, }, dictWord{136, 0, 994}, dictWord{135, 11, 1294}, dictWord{132, 10, 104}, dictWord{5, 0, 848}, dictWord{6, 0, 66}, dictWord{136, 0, 764}, dictWord{ 4, 0, 36, }, dictWord{7, 0, 1387}, dictWord{10, 0, 205}, dictWord{139, 0, 755}, dictWord{6, 0, 1046}, dictWord{134, 0, 1485}, dictWord{134, 0, 950}, dictWord{132, 0, 887}, dictWord{14, 0, 450}, dictWord{148, 0, 111}, dictWord{7, 0, 620}, dictWord{7, 0, 831}, dictWord{9, 10, 542}, dictWord{9, 10, 566}, dictWord{ 138, 10, 728, }, dictWord{6, 0, 165}, dictWord{138, 0, 388}, dictWord{139, 10, 263}, dictWord{4, 0, 719}, dictWord{135, 0, 155}, dictWord{138, 10, 468}, dictWord{6, 11, 453}, dictWord{144, 11, 36}, dictWord{134, 11, 129}, dictWord{5, 0, 533}, dictWord{7, 0, 755}, dictWord{138, 0, 780}, dictWord{134, 0, 1465}, dictWord{4, 0, 353}, dictWord{6, 0, 146}, dictWord{6, 0, 1789}, dictWord{7, 0, 427}, dictWord{7, 0, 990}, dictWord{7, 0, 1348}, dictWord{9, 0, 665}, dictWord{9, 0, 898}, dictWord{11, 0, 893}, dictWord{142, 0, 212}, dictWord{7, 10, 87}, dictWord{142, 10, 288}, dictWord{4, 0, 45}, dictWord{135, 0, 1257}, dictWord{12, 0, 7}, dictWord{7, 10, 988}, dictWord{7, 10, 1939}, dictWord{9, 10, 64}, dictWord{9, 10, 502}, dictWord{12, 10, 34}, dictWord{13, 10, 12}, dictWord{13, 10, 234}, dictWord{147, 10, 77}, dictWord{4, 0, 607}, dictWord{5, 11, 60}, dictWord{6, 11, 504}, dictWord{7, 11, 614}, dictWord{7, 11, 1155}, dictWord{140, 11, 0}, dictWord{ 135, 10, 141, }, dictWord{8, 11, 198}, dictWord{11, 11, 29}, dictWord{140, 11, 534}, dictWord{140, 0, 65}, dictWord{136, 0, 816}, dictWord{132, 10, 619}, dictWord{139, 0, 88}, dictWord{5, 10, 246}, dictWord{8, 10, 189}, dictWord{9, 10, 355}, dictWord{9, 10, 512}, dictWord{10, 10, 124}, dictWord{10, 10, 453}, dictWord{11, 10, 143}, dictWord{11, 10, 416}, dictWord{11, 10, 859}, dictWord{141, 10, 341}, dictWord{4, 11, 379}, dictWord{135, 11, 1397}, dictWord{ 4, 0, 600, }, dictWord{137, 0, 621}, dictWord{133, 0, 367}, dictWord{134, 0, 561}, dictWord{6, 0, 559}, dictWord{134, 0, 1691}, dictWord{6, 0, 585}, dictWord{ 134, 11, 585, }, dictWord{135, 11, 1228}, dictWord{4, 11, 118}, dictWord{5, 10, 678}, dictWord{6, 11, 274}, dictWord{6, 11, 361}, dictWord{7, 11, 75}, dictWord{ 141, 11, 441, }, dictWord{135, 11, 1818}, dictWord{137, 11, 841}, dictWord{5, 0, 573}, dictWord{6, 0, 287}, dictWord{7, 10, 862}, dictWord{7, 10, 1886}, dictWord{138, 10, 179}, dictWord{132, 10, 517}, dictWord{140, 11, 693}, dictWord{5, 11, 314}, dictWord{6, 11, 221}, dictWord{7, 11, 419}, dictWord{ 10, 11, 650, }, dictWord{11, 11, 396}, dictWord{12, 11, 156}, dictWord{13, 11, 369}, dictWord{14, 11, 333}, dictWord{145, 11, 47}, dictWord{140, 10, 540}, dictWord{136, 10, 667}, dictWord{11, 10, 403}, dictWord{146, 10, 83}, dictWord{6, 0, 672}, dictWord{133, 10, 761}, dictWord{9, 0, 157}, dictWord{10, 10, 131}, dictWord{140, 10, 72}, dictWord{7, 0, 714}, dictWord{134, 11, 460}, dictWord{134, 0, 456}, dictWord{133, 0, 925}, dictWord{5, 11, 682}, dictWord{ 135, 11, 1887, }, dictWord{136, 11, 510}, dictWord{136, 11, 475}, dictWord{133, 11, 1016}, dictWord{9, 0, 19}, dictWord{7, 11, 602}, dictWord{8, 11, 179}, dictWord{ 10, 11, 781, }, dictWord{140, 11, 126}, dictWord{6, 11, 329}, dictWord{138, 11, 111}, dictWord{6, 0, 822}, dictWord{134, 0, 1473}, dictWord{144, 11, 86}, dictWord{11, 0, 113}, dictWord{139, 11, 113}, dictWord{5, 11, 821}, dictWord{134, 11, 1687}, dictWord{133, 10, 449}, dictWord{7, 0, 463}, dictWord{ 17, 0, 69, }, dictWord{136, 10, 103}, dictWord{7, 10, 2028}, dictWord{138, 10, 641}, dictWord{6, 0, 193}, dictWord{7, 0, 240}, dictWord{7, 0, 1682}, dictWord{ 10, 0, 51, }, dictWord{10, 0, 640}, dictWord{11, 0, 410}, dictWord{13, 0, 82}, dictWord{14, 0, 247}, dictWord{14, 0, 331}, dictWord{142, 0, 377}, dictWord{6, 0, 471}, dictWord{11, 0, 411}, dictWord{142, 0, 2}, dictWord{5, 11, 71}, dictWord{7, 11, 1407}, dictWord{9, 11, 388}, dictWord{9, 11, 704}, dictWord{10, 11, 261}, dictWord{ 10, 11, 619, }, dictWord{11, 11, 547}, dictWord{11, 11, 619}, dictWord{143, 11, 157}, dictWord{136, 0, 633}, dictWord{135, 0, 1148}, dictWord{6, 0, 554}, dictWord{7, 0, 1392}, dictWord{12, 0, 129}, dictWord{7, 10, 1274}, dictWord{7, 10, 1386}, dictWord{7, 11, 2008}, dictWord{9, 11, 337}, dictWord{10, 11, 517}, dictWord{146, 10, 87}, dictWord{7, 0, 803}, dictWord{8, 0, 542}, dictWord{6, 10, 187}, dictWord{7, 10, 1203}, dictWord{8, 10, 380}, dictWord{14, 10, 117}, dictWord{149, 10, 28}, dictWord{6, 10, 297}, dictWord{7, 10, 793}, dictWord{139, 10, 938}, dictWord{8, 0, 438}, dictWord{11, 0, 363}, dictWord{7, 10, 464}, dictWord{11, 10, 105}, dictWord{12, 10, 231}, dictWord{14, 10, 386}, dictWord{15, 10, 102}, dictWord{148, 10, 75}, dictWord{5, 11, 16}, dictWord{6, 11, 86}, dictWord{6, 11, 603}, dictWord{7, 11, 292}, dictWord{7, 11, 561}, dictWord{8, 11, 257}, dictWord{8, 11, 382}, dictWord{9, 11, 721}, dictWord{9, 11, 778}, dictWord{ 11, 11, 581, }, dictWord{140, 11, 466}, dictWord{6, 0, 717}, dictWord{4, 11, 486}, dictWord{133, 11, 491}, dictWord{132, 0, 875}, dictWord{132, 11, 72}, dictWord{6, 11, 265}, dictWord{135, 11, 847}, dictWord{4, 0, 237}, dictWord{135, 0, 514}, dictWord{6, 0, 392}, dictWord{7, 0, 65}, dictWord{135, 0, 2019}, dictWord{140, 11, 261}, dictWord{135, 11, 922}, dictWord{137, 11, 404}, dictWord{12, 0, 563}, dictWord{14, 0, 101}, dictWord{18, 0, 129}, dictWord{ 7, 10, 1010, }, dictWord{11, 10, 733}, dictWord{11, 10, 759}, dictWord{13, 10, 34}, dictWord{146, 10, 45}, dictWord{7, 10, 1656}, dictWord{9, 10, 369}, dictWord{ 10, 10, 338, }, dictWord{10, 10, 490}, dictWord{11, 10, 154}, dictWord{11, 10, 545}, dictWord{11, 10, 775}, dictWord{13, 10, 77}, dictWord{141, 10, 274}, dictWord{4, 0, 444}, dictWord{10, 0, 146}, dictWord{140, 0, 9}, dictWord{139, 11, 163}, dictWord{7, 0, 1260}, dictWord{135, 0, 1790}, dictWord{9, 0, 222}, dictWord{10, 0, 43}, dictWord{139, 0, 900}, dictWord{137, 11, 234}, dictWord{138, 0, 971}, dictWord{137, 0, 761}, dictWord{134, 0, 699}, dictWord{ 136, 11, 434, }, dictWord{6, 0, 1116}, dictWord{7, 0, 1366}, dictWord{5, 10, 20}, dictWord{6, 11, 197}, dictWord{6, 10, 298}, dictWord{7, 10, 659}, dictWord{8, 11, 205}, dictWord{137, 10, 219}, dictWord{132, 11, 490}, dictWord{11, 11, 820}, dictWord{150, 11, 51}, dictWord{7, 10, 1440}, dictWord{11, 10, 854}, dictWord{ 11, 10, 872, }, dictWord{11, 10, 921}, dictWord{12, 10, 551}, dictWord{13, 10, 472}, dictWord{142, 10, 367}, dictWord{140, 11, 13}, dictWord{132, 0, 829}, dictWord{12, 0, 242}, dictWord{132, 10, 439}, dictWord{136, 10, 669}, dictWord{6, 0, 593}, dictWord{6, 11, 452}, dictWord{7, 11, 312}, dictWord{ 138, 11, 219, }, dictWord{4, 11, 333}, dictWord{9, 11, 176}, dictWord{12, 11, 353}, dictWord{141, 11, 187}, dictWord{7, 0, 36}, dictWord{8, 0, 201}, dictWord{ 136, 0, 605, }, dictWord{140, 0, 224}, dictWord{132, 10, 233}, dictWord{134, 0, 1430}, dictWord{134, 0, 1806}, dictWord{4, 0, 523}, dictWord{133, 0, 638}, dictWord{ 6, 0, 1889, }, dictWord{9, 0, 958}, dictWord{9, 0, 971}, dictWord{9, 0, 976}, dictWord{12, 0, 796}, dictWord{12, 0, 799}, dictWord{12, 0, 808}, dictWord{ 12, 0, 835, }, dictWord{12, 0, 836}, dictWord{12, 0, 914}, dictWord{12, 0, 946}, dictWord{15, 0, 216}, dictWord{15, 0, 232}, dictWord{18, 0, 183}, dictWord{18, 0, 187}, dictWord{18, 0, 194}, dictWord{18, 0, 212}, dictWord{18, 0, 232}, dictWord{149, 0, 49}, dictWord{132, 10, 482}, dictWord{6, 0, 827}, dictWord{134, 0, 1434}, dictWord{135, 10, 346}, dictWord{134, 0, 2043}, dictWord{6, 0, 242}, dictWord{7, 0, 227}, dictWord{7, 0, 1581}, dictWord{8, 0, 104}, dictWord{9, 0, 113}, dictWord{9, 0, 220}, dictWord{9, 0, 427}, dictWord{10, 0, 136}, dictWord{10, 0, 239}, dictWord{11, 0, 579}, dictWord{11, 0, 1023}, dictWord{13, 0, 4}, dictWord{ 13, 0, 204, }, dictWord{13, 0, 316}, dictWord{148, 0, 86}, dictWord{134, 11, 1685}, dictWord{7, 0, 148}, dictWord{8, 0, 284}, dictWord{141, 0, 63}, dictWord{ 142, 0, 10, }, dictWord{135, 11, 584}, dictWord{134, 0, 1249}, dictWord{7, 0, 861}, dictWord{135, 10, 334}, dictWord{5, 10, 795}, dictWord{6, 10, 1741}, dictWord{ 137, 11, 70, }, dictWord{132, 0, 807}, dictWord{7, 11, 135}, dictWord{8, 11, 7}, dictWord{8, 11, 62}, dictWord{9, 11, 243}, dictWord{10, 11, 658}, dictWord{ 10, 11, 697, }, dictWord{11, 11, 456}, dictWord{139, 11, 756}, dictWord{9, 11, 395}, dictWord{138, 11, 79}, dictWord{137, 11, 108}, dictWord{147, 0, 94}, dictWord{136, 0, 494}, dictWord{135, 11, 631}, dictWord{135, 10, 622}, dictWord{7, 0, 1510}, dictWord{135, 10, 1750}, dictWord{4, 10, 203}, dictWord{ 135, 10, 1936, }, dictWord{7, 11, 406}, dictWord{7, 11, 459}, dictWord{8, 11, 606}, dictWord{139, 11, 726}, dictWord{7, 0, 1306}, dictWord{8, 0, 505}, dictWord{ 9, 0, 482, }, dictWord{10, 0, 126}, dictWord{11, 0, 225}, dictWord{12, 0, 347}, dictWord{12, 0, 449}, dictWord{13, 0, 19}, dictWord{14, 0, 218}, dictWord{142, 0, 435}, dictWord{5, 0, 268}, dictWord{10, 0, 764}, dictWord{12, 0, 120}, dictWord{13, 0, 39}, dictWord{145, 0, 127}, dictWord{142, 11, 68}, dictWord{11, 10, 678}, dictWord{140, 10, 307}, dictWord{12, 11, 268}, dictWord{12, 11, 640}, dictWord{142, 11, 119}, dictWord{135, 10, 2044}, dictWord{133, 11, 612}, dictWord{ 4, 11, 372, }, dictWord{7, 11, 482}, dictWord{8, 11, 158}, dictWord{9, 11, 602}, dictWord{9, 11, 615}, dictWord{10, 11, 245}, dictWord{10, 11, 678}, dictWord{ 10, 11, 744, }, dictWord{11, 11, 248}, dictWord{139, 11, 806}, dictWord{7, 10, 311}, dictWord{9, 10, 308}, dictWord{140, 10, 255}, dictWord{4, 0, 384}, dictWord{135, 0, 1022}, dictWord{5, 11, 854}, dictWord{135, 11, 1991}, dictWord{135, 10, 1266}, dictWord{4, 10, 400}, dictWord{5, 10, 267}, dictWord{ 135, 10, 232, }, dictWord{135, 0, 1703}, dictWord{9, 0, 159}, dictWord{11, 0, 661}, dictWord{140, 0, 603}, dictWord{4, 0, 964}, dictWord{14, 0, 438}, dictWord{ 14, 0, 444, }, dictWord{14, 0, 456}, dictWord{22, 0, 60}, dictWord{22, 0, 63}, dictWord{9, 11, 106}, dictWord{9, 11, 163}, dictWord{9, 11, 296}, dictWord{10, 11, 167}, dictWord{10, 11, 172}, dictWord{10, 11, 777}, dictWord{139, 11, 16}, dictWord{136, 0, 583}, dictWord{132, 0, 515}, dictWord{8, 0, 632}, dictWord{8, 0, 697}, dictWord{137, 0, 854}, dictWord{5, 11, 195}, dictWord{135, 11, 1685}, dictWord{6, 0, 1123}, dictWord{134, 0, 1365}, dictWord{134, 11, 328}, dictWord{ 7, 11, 1997, }, dictWord{8, 11, 730}, dictWord{139, 11, 1006}, dictWord{4, 0, 136}, dictWord{133, 0, 551}, dictWord{134, 0, 1782}, dictWord{7, 0, 1287}, dictWord{ 9, 0, 44, }, dictWord{10, 0, 552}, dictWord{10, 0, 642}, dictWord{11, 0, 839}, dictWord{12, 0, 274}, dictWord{12, 0, 275}, dictWord{12, 0, 372}, dictWord{ 13, 0, 91, }, dictWord{142, 0, 125}, dictWord{5, 11, 751}, dictWord{11, 11, 797}, dictWord{140, 11, 203}, dictWord{133, 0, 732}, dictWord{7, 0, 679}, dictWord{ 8, 0, 313, }, dictWord{4, 10, 100}, dictWord{135, 11, 821}, dictWord{10, 0, 361}, dictWord{142, 0, 316}, dictWord{134, 0, 595}, dictWord{6, 0, 147}, dictWord{ 7, 0, 886, }, dictWord{9, 0, 753}, dictWord{138, 0, 268}, dictWord{5, 10, 362}, dictWord{5, 10, 443}, dictWord{6, 10, 318}, dictWord{7, 10, 1019}, dictWord{ 139, 10, 623, }, dictWord{5, 10, 463}, dictWord{136, 10, 296}, dictWord{4, 10, 454}, dictWord{5, 11, 950}, dictWord{5, 11, 994}, dictWord{134, 11, 351}, dictWord{ 138, 0, 137, }, dictWord{5, 10, 48}, dictWord{5, 10, 404}, dictWord{6, 10, 557}, dictWord{7, 10, 458}, dictWord{8, 10, 597}, dictWord{10, 10, 455}, dictWord{ 10, 10, 606, }, dictWord{11, 10, 49}, dictWord{11, 10, 548}, dictWord{12, 10, 476}, dictWord{13, 10, 18}, dictWord{141, 10, 450}, dictWord{133, 0, 414}, dictWord{ 135, 0, 1762, }, dictWord{5, 11, 421}, dictWord{135, 11, 47}, dictWord{5, 10, 442}, dictWord{135, 10, 1984}, dictWord{134, 0, 599}, dictWord{134, 0, 1749}, dictWord{134, 0, 1627}, dictWord{4, 0, 488}, dictWord{132, 11, 350}, dictWord{137, 11, 751}, dictWord{132, 0, 83}, dictWord{140, 0, 676}, dictWord{ 133, 11, 967, }, dictWord{7, 0, 1639}, dictWord{5, 10, 55}, dictWord{140, 10, 161}, dictWord{4, 11, 473}, dictWord{7, 11, 623}, dictWord{8, 11, 808}, dictWord{ 9, 11, 871, }, dictWord{9, 11, 893}, dictWord{11, 11, 38}, dictWord{11, 11, 431}, dictWord{12, 11, 112}, dictWord{12, 11, 217}, dictWord{12, 11, 243}, dictWord{ 12, 11, 562, }, dictWord{12, 11, 683}, dictWord{13, 11, 141}, dictWord{13, 11, 197}, dictWord{13, 11, 227}, dictWord{13, 11, 406}, dictWord{13, 11, 487}, dictWord{14, 11, 156}, dictWord{14, 11, 203}, dictWord{14, 11, 224}, dictWord{14, 11, 256}, dictWord{18, 11, 58}, dictWord{150, 11, 0}, dictWord{ 133, 10, 450, }, dictWord{7, 11, 736}, dictWord{139, 11, 264}, dictWord{134, 0, 278}, dictWord{4, 11, 222}, dictWord{7, 11, 286}, dictWord{136, 11, 629}, dictWord{ 135, 10, 869, }, dictWord{140, 0, 97}, dictWord{144, 0, 14}, dictWord{134, 0, 1085}, dictWord{4, 10, 213}, dictWord{7, 10, 223}, dictWord{136, 10, 80}, dictWord{ 7, 0, 388, }, dictWord{7, 0, 644}, dictWord{139, 0, 781}, dictWord{132, 0, 849}, dictWord{7, 0, 229}, dictWord{8, 0, 59}, dictWord{9, 0, 190}, dictWord{10, 0, 378}, dictWord{140, 0, 191}, dictWord{7, 10, 381}, dictWord{7, 10, 806}, dictWord{7, 10, 820}, dictWord{8, 10, 354}, dictWord{8, 10, 437}, dictWord{8, 10, 787}, dictWord{9, 10, 657}, dictWord{10, 10, 58}, dictWord{10, 10, 339}, dictWord{10, 10, 749}, dictWord{11, 10, 914}, dictWord{12, 10, 162}, dictWord{13, 10, 75}, dictWord{14, 10, 106}, dictWord{14, 10, 198}, dictWord{14, 10, 320}, dictWord{14, 10, 413}, dictWord{146, 10, 43}, dictWord{141, 11, 306}, dictWord{ 136, 10, 747, }, dictWord{134, 0, 1115}, dictWord{16, 0, 94}, dictWord{16, 0, 108}, dictWord{136, 11, 146}, dictWord{6, 0, 700}, dictWord{6, 0, 817}, dictWord{ 134, 0, 1002, }, dictWord{133, 10, 692}, dictWord{4, 11, 465}, dictWord{135, 11, 1663}, dictWord{134, 10, 191}, dictWord{6, 0, 1414}, dictWord{ 135, 11, 913, }, dictWord{132, 0, 660}, dictWord{7, 0, 1035}, dictWord{138, 0, 737}, dictWord{6, 10, 162}, dictWord{7, 10, 1960}, dictWord{136, 10, 831}, dictWord{ 132, 10, 706, }, dictWord{7, 0, 690}, dictWord{9, 0, 217}, dictWord{9, 0, 587}, dictWord{140, 0, 521}, dictWord{138, 10, 426}, dictWord{135, 10, 1235}, dictWord{ 6, 11, 82, }, dictWord{7, 11, 138}, dictWord{7, 11, 517}, dictWord{9, 11, 673}, dictWord{139, 11, 238}, dictWord{138, 0, 272}, dictWord{5, 11, 495}, dictWord{ 7, 11, 834, }, dictWord{9, 11, 733}, dictWord{139, 11, 378}, dictWord{134, 0, 1744}, dictWord{132, 0, 1011}, dictWord{7, 11, 828}, dictWord{142, 11, 116}, dictWord{4, 0, 733}, dictWord{9, 0, 194}, dictWord{10, 0, 92}, dictWord{11, 0, 198}, dictWord{12, 0, 84}, dictWord{13, 0, 128}, dictWord{133, 11, 559}, dictWord{ 10, 0, 57, }, dictWord{10, 0, 277}, dictWord{6, 11, 21}, dictWord{6, 11, 1737}, dictWord{7, 11, 1444}, dictWord{136, 11, 224}, dictWord{4, 10, 204}, dictWord{ 137, 10, 902, }, dictWord{136, 10, 833}, dictWord{11, 0, 348}, dictWord{12, 0, 99}, dictWord{18, 0, 1}, dictWord{18, 0, 11}, dictWord{19, 0, 4}, dictWord{7, 10, 366}, dictWord{9, 10, 287}, dictWord{12, 10, 199}, dictWord{12, 10, 556}, dictWord{140, 10, 577}, dictWord{6, 0, 1981}, dictWord{136, 0, 936}, dictWord{ 21, 0, 33, }, dictWord{150, 0, 40}, dictWord{5, 11, 519}, dictWord{138, 11, 204}, dictWord{5, 10, 356}, dictWord{135, 10, 224}, dictWord{134, 0, 775}, dictWord{ 135, 0, 306, }, dictWord{7, 10, 630}, dictWord{9, 10, 567}, dictWord{11, 10, 150}, dictWord{11, 10, 444}, dictWord{141, 10, 119}, dictWord{5, 0, 979}, dictWord{ 134, 10, 539, }, dictWord{133, 0, 611}, dictWord{4, 11, 402}, dictWord{135, 11, 1679}, dictWord{5, 0, 178}, dictWord{7, 11, 2}, dictWord{8, 11, 323}, dictWord{ 136, 11, 479, }, dictWord{5, 11, 59}, dictWord{135, 11, 672}, dictWord{4, 0, 1010}, dictWord{6, 0, 1969}, dictWord{138, 11, 237}, dictWord{133, 11, 412}, dictWord{146, 11, 34}, dictWord{7, 11, 1740}, dictWord{146, 11, 48}, dictWord{134, 0, 664}, dictWord{139, 10, 814}, dictWord{4, 11, 85}, dictWord{ 135, 11, 549, }, dictWord{133, 11, 94}, dictWord{133, 11, 457}, dictWord{132, 0, 390}, dictWord{134, 0, 1510}, dictWord{4, 10, 235}, dictWord{135, 10, 255}, dictWord{4, 10, 194}, dictWord{5, 10, 584}, dictWord{6, 11, 11}, dictWord{6, 10, 384}, dictWord{7, 11, 187}, dictWord{7, 10, 583}, dictWord{10, 10, 761}, dictWord{ 11, 10, 760, }, dictWord{139, 10, 851}, dictWord{4, 11, 522}, dictWord{139, 11, 802}, dictWord{135, 0, 493}, dictWord{10, 11, 776}, dictWord{13, 11, 345}, dictWord{142, 11, 425}, dictWord{146, 0, 37}, dictWord{4, 11, 52}, dictWord{135, 11, 661}, dictWord{134, 0, 724}, dictWord{134, 0, 829}, dictWord{ 133, 11, 520, }, dictWord{133, 10, 562}, dictWord{4, 11, 281}, dictWord{5, 11, 38}, dictWord{7, 11, 194}, dictWord{7, 11, 668}, dictWord{7, 11, 1893}, dictWord{ 137, 11, 397, }, dictWord{5, 10, 191}, dictWord{137, 10, 271}, dictWord{7, 0, 1537}, dictWord{14, 0, 96}, dictWord{143, 0, 73}, dictWord{5, 0, 473}, dictWord{ 11, 0, 168, }, dictWord{4, 10, 470}, dictWord{6, 10, 153}, dictWord{7, 10, 1503}, dictWord{7, 10, 1923}, dictWord{10, 10, 701}, dictWord{11, 10, 132}, dictWord{ 11, 10, 227, }, dictWord{11, 10, 320}, dictWord{11, 10, 436}, dictWord{11, 10, 525}, dictWord{11, 10, 855}, dictWord{12, 10, 41}, dictWord{12, 10, 286}, dictWord{13, 10, 103}, dictWord{13, 10, 284}, dictWord{14, 10, 255}, dictWord{14, 10, 262}, dictWord{15, 10, 117}, dictWord{143, 10, 127}, dictWord{ 133, 0, 105, }, dictWord{5, 0, 438}, dictWord{9, 0, 694}, dictWord{12, 0, 627}, dictWord{141, 0, 210}, dictWord{133, 10, 327}, dictWord{6, 10, 552}, dictWord{ 7, 10, 1754, }, dictWord{137, 10, 604}, dictWord{134, 0, 1256}, dictWord{152, 0, 11}, dictWord{5, 11, 448}, dictWord{11, 11, 98}, dictWord{139, 11, 524}, dictWord{ 7, 0, 1626, }, dictWord{5, 10, 80}, dictWord{6, 10, 405}, dictWord{7, 10, 403}, dictWord{7, 10, 1502}, dictWord{8, 10, 456}, dictWord{9, 10, 487}, dictWord{ 9, 10, 853, }, dictWord{9, 10, 889}, dictWord{10, 10, 309}, dictWord{11, 10, 721}, dictWord{11, 10, 994}, dictWord{12, 10, 430}, dictWord{13, 10, 165}, dictWord{ 14, 11, 16, }, dictWord{146, 11, 44}, dictWord{132, 0, 779}, dictWord{8, 0, 25}, dictWord{138, 0, 826}, dictWord{4, 10, 453}, dictWord{5, 10, 887}, dictWord{ 6, 10, 535, }, dictWord{8, 10, 6}, dictWord{8, 10, 543}, dictWord{136, 10, 826}, dictWord{137, 11, 461}, dictWord{140, 11, 632}, dictWord{132, 0, 308}, dictWord{135, 0, 741}, dictWord{132, 0, 671}, dictWord{7, 0, 150}, dictWord{8, 0, 649}, dictWord{136, 0, 1020}, dictWord{9, 0, 99}, dictWord{6, 11, 336}, dictWord{ 8, 11, 552, }, dictWord{9, 11, 285}, dictWord{10, 11, 99}, dictWord{139, 11, 568}, dictWord{134, 0, 521}, dictWord{5, 0, 339}, dictWord{14, 0, 3}, dictWord{ 15, 0, 41, }, dictWord{15, 0, 166}, dictWord{147, 0, 66}, dictWord{6, 11, 423}, dictWord{7, 11, 665}, dictWord{7, 11, 1210}, dictWord{9, 11, 218}, dictWord{ 141, 11, 222, }, dictWord{6, 0, 543}, dictWord{5, 10, 101}, dictWord{5, 11, 256}, dictWord{6, 10, 88}, dictWord{7, 10, 1677}, dictWord{9, 10, 100}, dictWord{10, 10, 677}, dictWord{14, 10, 169}, dictWord{14, 10, 302}, dictWord{14, 10, 313}, dictWord{15, 10, 48}, dictWord{143, 10, 84}, dictWord{4, 10, 310}, dictWord{ 7, 10, 708, }, dictWord{7, 10, 996}, dictWord{9, 10, 795}, dictWord{10, 10, 390}, dictWord{10, 10, 733}, dictWord{11, 10, 451}, dictWord{12, 10, 249}, dictWord{ 14, 10, 115, }, dictWord{14, 10, 286}, dictWord{143, 10, 100}, dictWord{133, 10, 587}, dictWord{13, 11, 417}, dictWord{14, 11, 129}, dictWord{143, 11, 15}, dictWord{134, 0, 1358}, dictWord{136, 11, 554}, dictWord{132, 10, 498}, dictWord{7, 10, 217}, dictWord{8, 10, 140}, dictWord{138, 10, 610}, dictWord{ 135, 11, 989, }, dictWord{135, 11, 634}, dictWord{6, 0, 155}, dictWord{140, 0, 234}, dictWord{135, 11, 462}, dictWord{132, 11, 618}, dictWord{ 134, 0, 1628, }, dictWord{132, 0, 766}, dictWord{4, 11, 339}, dictWord{5, 10, 905}, dictWord{135, 11, 259}, dictWord{135, 0, 829}, dictWord{4, 11, 759}, dictWord{ 141, 11, 169, }, dictWord{7, 0, 1445}, dictWord{4, 10, 456}, dictWord{7, 10, 358}, dictWord{7, 10, 1637}, dictWord{8, 10, 643}, dictWord{139, 10, 483}, dictWord{ 5, 0, 486, }, dictWord{135, 0, 1349}, dictWord{5, 11, 688}, dictWord{135, 11, 712}, dictWord{7, 0, 1635}, dictWord{8, 0, 17}, dictWord{10, 0, 217}, dictWord{ 10, 0, 295, }, dictWord{12, 0, 2}, dictWord{140, 11, 2}, dictWord{138, 0, 558}, dictWord{150, 10, 56}, dictWord{4, 11, 278}, dictWord{5, 11, 465}, dictWord{ 135, 11, 1367, }, dictWord{136, 11, 482}, dictWord{133, 10, 535}, dictWord{6, 0, 1362}, dictWord{6, 0, 1461}, dictWord{10, 11, 274}, dictWord{10, 11, 625}, dictWord{139, 11, 530}, dictWord{5, 0, 599}, dictWord{5, 11, 336}, dictWord{6, 11, 341}, dictWord{6, 11, 478}, dictWord{6, 11, 1763}, dictWord{136, 11, 386}, dictWord{7, 10, 1748}, dictWord{137, 11, 151}, dictWord{134, 0, 1376}, dictWord{133, 10, 539}, dictWord{135, 11, 73}, dictWord{135, 11, 1971}, dictWord{139, 11, 283}, dictWord{9, 0, 93}, dictWord{139, 0, 474}, dictWord{6, 10, 91}, dictWord{135, 10, 435}, dictWord{6, 0, 447}, dictWord{5, 11, 396}, dictWord{134, 11, 501}, dictWord{4, 10, 16}, dictWord{5, 10, 316}, dictWord{5, 10, 842}, dictWord{6, 10, 370}, dictWord{6, 10, 1778}, dictWord{8, 10, 166}, dictWord{11, 10, 812}, dictWord{12, 10, 206}, dictWord{12, 10, 351}, dictWord{14, 10, 418}, dictWord{16, 10, 15}, dictWord{16, 10, 34}, dictWord{18, 10, 3}, dictWord{19, 10, 3}, dictWord{19, 10, 7}, dictWord{20, 10, 4}, dictWord{149, 10, 21}, dictWord{7, 0, 577}, dictWord{7, 0, 1432}, dictWord{9, 0, 475}, dictWord{9, 0, 505}, dictWord{9, 0, 526}, dictWord{9, 0, 609}, dictWord{9, 0, 689}, dictWord{9, 0, 726}, dictWord{9, 0, 735}, dictWord{9, 0, 738}, dictWord{10, 0, 556}, dictWord{ 10, 0, 674, }, dictWord{10, 0, 684}, dictWord{11, 0, 89}, dictWord{11, 0, 202}, dictWord{11, 0, 272}, dictWord{11, 0, 380}, dictWord{11, 0, 415}, dictWord{11, 0, 505}, dictWord{11, 0, 537}, dictWord{11, 0, 550}, dictWord{11, 0, 562}, dictWord{11, 0, 640}, dictWord{11, 0, 667}, dictWord{11, 0, 688}, dictWord{11, 0, 847}, dictWord{11, 0, 927}, dictWord{11, 0, 930}, dictWord{11, 0, 940}, dictWord{12, 0, 144}, dictWord{12, 0, 325}, dictWord{12, 0, 329}, dictWord{12, 0, 389}, dictWord{ 12, 0, 403, }, dictWord{12, 0, 451}, dictWord{12, 0, 515}, dictWord{12, 0, 604}, dictWord{12, 0, 616}, dictWord{12, 0, 626}, dictWord{13, 0, 66}, dictWord{ 13, 0, 131, }, dictWord{13, 0, 167}, dictWord{13, 0, 236}, dictWord{13, 0, 368}, dictWord{13, 0, 411}, dictWord{13, 0, 434}, dictWord{13, 0, 453}, dictWord{13, 0, 461}, dictWord{13, 0, 474}, dictWord{14, 0, 59}, dictWord{14, 0, 60}, dictWord{14, 0, 139}, dictWord{14, 0, 152}, dictWord{14, 0, 276}, dictWord{14, 0, 353}, dictWord{ 14, 0, 402, }, dictWord{15, 0, 28}, dictWord{15, 0, 81}, dictWord{15, 0, 123}, dictWord{15, 0, 152}, dictWord{18, 0, 136}, dictWord{148, 0, 88}, dictWord{ 4, 11, 929, }, dictWord{133, 11, 799}, dictWord{136, 11, 46}, dictWord{142, 0, 307}, dictWord{4, 0, 609}, dictWord{7, 0, 756}, dictWord{9, 0, 544}, dictWord{ 11, 0, 413, }, dictWord{144, 0, 25}, dictWord{10, 0, 687}, dictWord{7, 10, 619}, dictWord{10, 10, 547}, dictWord{11, 10, 122}, dictWord{140, 10, 601}, dictWord{ 4, 0, 930, }, dictWord{133, 0, 947}, dictWord{133, 0, 939}, dictWord{142, 0, 21}, dictWord{4, 11, 892}, dictWord{133, 11, 770}, dictWord{133, 0, 962}, dictWord{ 5, 0, 651, }, dictWord{8, 0, 170}, dictWord{9, 0, 61}, dictWord{9, 0, 63}, dictWord{10, 0, 23}, dictWord{10, 0, 37}, dictWord{10, 0, 834}, dictWord{11, 0, 4}, dictWord{ 11, 0, 187, }, dictWord{11, 0, 281}, dictWord{11, 0, 503}, dictWord{11, 0, 677}, dictWord{12, 0, 96}, dictWord{12, 0, 130}, dictWord{12, 0, 244}, dictWord{14, 0, 5}, dictWord{14, 0, 40}, dictWord{14, 0, 162}, dictWord{14, 0, 202}, dictWord{146, 0, 133}, dictWord{4, 0, 406}, dictWord{5, 0, 579}, dictWord{12, 0, 492}, dictWord{ 150, 0, 15, }, dictWord{135, 11, 158}, dictWord{135, 0, 597}, dictWord{132, 0, 981}, dictWord{132, 10, 888}, dictWord{4, 10, 149}, dictWord{138, 10, 368}, dictWord{132, 0, 545}, dictWord{4, 10, 154}, dictWord{7, 10, 1134}, dictWord{136, 10, 105}, dictWord{135, 11, 2001}, dictWord{134, 0, 1558}, dictWord{ 4, 10, 31, }, dictWord{6, 10, 429}, dictWord{7, 10, 962}, dictWord{9, 10, 458}, dictWord{139, 10, 691}, dictWord{132, 10, 312}, dictWord{135, 10, 1642}, dictWord{ 6, 0, 17, }, dictWord{6, 0, 1304}, dictWord{7, 0, 16}, dictWord{7, 0, 1001}, dictWord{9, 0, 886}, dictWord{10, 0, 489}, dictWord{10, 0, 800}, dictWord{11, 0, 782}, dictWord{12, 0, 320}, dictWord{13, 0, 467}, dictWord{14, 0, 145}, dictWord{14, 0, 387}, dictWord{143, 0, 119}, dictWord{135, 0, 1982}, dictWord{17, 0, 17}, dictWord{7, 11, 1461}, dictWord{140, 11, 91}, dictWord{4, 10, 236}, dictWord{132, 11, 602}, dictWord{138, 0, 907}, dictWord{136, 0, 110}, dictWord{7, 0, 272}, dictWord{19, 0, 53}, dictWord{5, 10, 836}, dictWord{5, 10, 857}, dictWord{134, 10, 1680}, dictWord{5, 0, 458}, dictWord{7, 11, 1218}, dictWord{136, 11, 303}, dictWord{7, 0, 1983}, dictWord{8, 0, 0}, dictWord{8, 0, 171}, dictWord{9, 0, 120}, dictWord{9, 0, 732}, dictWord{10, 0, 473}, dictWord{11, 0, 656}, dictWord{ 11, 0, 998, }, dictWord{18, 0, 0}, dictWord{18, 0, 2}, dictWord{19, 0, 21}, dictWord{10, 10, 68}, dictWord{139, 10, 494}, dictWord{137, 11, 662}, dictWord{4, 11, 13}, dictWord{5, 11, 567}, dictWord{7, 11, 1498}, dictWord{9, 11, 124}, dictWord{11, 11, 521}, dictWord{140, 11, 405}, dictWord{4, 10, 81}, dictWord{139, 10, 867}, dictWord{135, 11, 1006}, dictWord{7, 11, 800}, dictWord{7, 11, 1783}, dictWord{138, 11, 12}, dictWord{9, 0, 295}, dictWord{10, 0, 443}, dictWord{ 5, 10, 282, }, dictWord{8, 10, 650}, dictWord{137, 10, 907}, dictWord{132, 11, 735}, dictWord{4, 11, 170}, dictWord{4, 10, 775}, dictWord{135, 11, 323}, dictWord{ 6, 0, 1844, }, dictWord{10, 0, 924}, dictWord{11, 11, 844}, dictWord{12, 11, 104}, dictWord{140, 11, 625}, dictWord{5, 11, 304}, dictWord{7, 11, 1403}, dictWord{140, 11, 498}, dictWord{134, 0, 1232}, dictWord{4, 0, 519}, dictWord{10, 0, 70}, dictWord{12, 0, 26}, dictWord{14, 0, 17}, dictWord{14, 0, 178}, dictWord{ 15, 0, 34, }, dictWord{149, 0, 12}, dictWord{132, 0, 993}, dictWord{4, 11, 148}, dictWord{133, 11, 742}, dictWord{6, 0, 31}, dictWord{7, 0, 491}, dictWord{7, 0, 530}, dictWord{8, 0, 592}, dictWord{11, 0, 53}, dictWord{11, 0, 779}, dictWord{12, 0, 167}, dictWord{12, 0, 411}, dictWord{14, 0, 14}, dictWord{14, 0, 136}, dictWord{ 15, 0, 72, }, dictWord{16, 0, 17}, dictWord{144, 0, 72}, dictWord{133, 0, 907}, dictWord{134, 0, 733}, dictWord{133, 11, 111}, dictWord{4, 10, 71}, dictWord{ 5, 10, 376, }, dictWord{7, 10, 119}, dictWord{138, 10, 665}, dictWord{136, 0, 55}, dictWord{8, 0, 430}, dictWord{136, 11, 430}, dictWord{4, 0, 208}, dictWord{ 5, 0, 106, }, dictWord{6, 0, 531}, dictWord{8, 0, 408}, dictWord{9, 0, 188}, dictWord{138, 0, 572}, dictWord{12, 0, 56}, dictWord{11, 10, 827}, dictWord{14, 10, 34}, dictWord{143, 10, 148}, dictWord{134, 0, 1693}, dictWord{133, 11, 444}, dictWord{132, 10, 479}, dictWord{140, 0, 441}, dictWord{9, 0, 449}, dictWord{ 10, 0, 192, }, dictWord{138, 0, 740}, dictWord{134, 0, 928}, dictWord{4, 0, 241}, dictWord{7, 10, 607}, dictWord{136, 10, 99}, dictWord{8, 11, 123}, dictWord{ 15, 11, 6, }, dictWord{144, 11, 7}, dictWord{6, 11, 285}, dictWord{8, 11, 654}, dictWord{11, 11, 749}, dictWord{12, 11, 190}, dictWord{12, 11, 327}, dictWord{ 13, 11, 120, }, dictWord{13, 11, 121}, dictWord{13, 11, 327}, dictWord{15, 11, 47}, dictWord{146, 11, 40}, dictWord{4, 10, 41}, dictWord{5, 10, 74}, dictWord{ 7, 10, 1627, }, dictWord{11, 10, 871}, dictWord{140, 10, 619}, dictWord{7, 0, 1525}, dictWord{11, 10, 329}, dictWord{11, 10, 965}, dictWord{12, 10, 241}, dictWord{14, 10, 354}, dictWord{15, 10, 22}, dictWord{148, 10, 63}, dictWord{132, 0, 259}, dictWord{135, 11, 183}, dictWord{9, 10, 209}, dictWord{ 137, 10, 300, }, dictWord{5, 11, 937}, dictWord{135, 11, 100}, dictWord{133, 10, 98}, dictWord{4, 0, 173}, dictWord{5, 0, 312}, dictWord{5, 0, 512}, dictWord{ 135, 0, 1285, }, dictWord{141, 0, 185}, dictWord{7, 0, 1603}, dictWord{7, 0, 1691}, dictWord{9, 0, 464}, dictWord{11, 0, 195}, dictWord{12, 0, 279}, dictWord{ 12, 0, 448, }, dictWord{14, 0, 11}, dictWord{147, 0, 102}, dictWord{135, 0, 1113}, dictWord{133, 10, 984}, dictWord{4, 0, 452}, dictWord{5, 0, 583}, dictWord{ 135, 0, 720, }, dictWord{4, 0, 547}, dictWord{5, 0, 817}, dictWord{6, 0, 433}, dictWord{7, 0, 593}, dictWord{7, 0, 1378}, dictWord{8, 0, 161}, dictWord{9, 0, 284}, dictWord{ 10, 0, 313, }, dictWord{139, 0, 886}, dictWord{8, 0, 722}, dictWord{4, 10, 182}, dictWord{6, 10, 205}, dictWord{135, 10, 220}, dictWord{150, 0, 13}, dictWord{ 4, 10, 42, }, dictWord{9, 10, 205}, dictWord{9, 10, 786}, dictWord{138, 10, 659}, dictWord{6, 0, 289}, dictWord{7, 0, 1670}, dictWord{12, 0, 57}, dictWord{151, 0, 4}, dictWord{132, 10, 635}, dictWord{14, 0, 43}, dictWord{146, 0, 21}, dictWord{139, 10, 533}, dictWord{135, 0, 1694}, dictWord{8, 0, 420}, dictWord{ 139, 0, 193, }, dictWord{135, 0, 409}, dictWord{132, 10, 371}, dictWord{4, 10, 272}, dictWord{135, 10, 836}, dictWord{5, 10, 825}, dictWord{134, 10, 1640}, dictWord{5, 11, 251}, dictWord{5, 11, 956}, dictWord{8, 11, 268}, dictWord{9, 11, 214}, dictWord{146, 11, 142}, dictWord{138, 0, 308}, dictWord{6, 0, 1863}, dictWord{141, 11, 37}, dictWord{137, 10, 879}, dictWord{7, 10, 317}, dictWord{135, 10, 569}, dictWord{132, 11, 294}, dictWord{134, 0, 790}, dictWord{ 5, 0, 1002, }, dictWord{136, 0, 745}, dictWord{5, 11, 346}, dictWord{5, 11, 711}, dictWord{136, 11, 390}, dictWord{135, 0, 289}, dictWord{5, 0, 504}, dictWord{ 11, 0, 68, }, dictWord{137, 10, 307}, dictWord{4, 0, 239}, dictWord{6, 0, 477}, dictWord{7, 0, 1607}, dictWord{139, 0, 617}, dictWord{149, 0, 13}, dictWord{ 133, 0, 609, }, dictWord{133, 11, 624}, dictWord{5, 11, 783}, dictWord{7, 11, 1998}, dictWord{135, 11, 2047}, dictWord{133, 10, 525}, dictWord{132, 0, 367}, dictWord{132, 11, 594}, dictWord{6, 0, 528}, dictWord{133, 10, 493}, dictWord{4, 10, 174}, dictWord{135, 10, 911}, dictWord{8, 10, 417}, dictWord{ 137, 10, 782, }, dictWord{132, 0, 694}, dictWord{7, 0, 548}, dictWord{137, 0, 58}, dictWord{4, 10, 32}, dictWord{5, 10, 215}, dictWord{6, 10, 269}, dictWord{7, 10, 1782}, dictWord{7, 10, 1892}, dictWord{10, 10, 16}, dictWord{11, 10, 822}, dictWord{11, 10, 954}, dictWord{141, 10, 481}, dictWord{140, 0, 687}, dictWord{ 7, 0, 1749, }, dictWord{136, 10, 477}, dictWord{132, 11, 569}, dictWord{133, 10, 308}, dictWord{135, 10, 1088}, dictWord{4, 0, 661}, dictWord{138, 0, 1004}, dictWord{5, 11, 37}, dictWord{6, 11, 39}, dictWord{6, 11, 451}, dictWord{7, 11, 218}, dictWord{7, 11, 667}, dictWord{7, 11, 1166}, dictWord{7, 11, 1687}, dictWord{8, 11, 662}, dictWord{144, 11, 2}, dictWord{9, 0, 445}, dictWord{12, 0, 53}, dictWord{13, 0, 492}, dictWord{5, 10, 126}, dictWord{8, 10, 297}, dictWord{ 9, 10, 366, }, dictWord{140, 10, 374}, dictWord{7, 10, 1551}, dictWord{139, 10, 361}, dictWord{148, 0, 74}, dictWord{134, 11, 508}, dictWord{135, 0, 213}, dictWord{132, 10, 175}, dictWord{132, 10, 685}, dictWord{6, 0, 760}, dictWord{6, 0, 834}, dictWord{134, 0, 1248}, dictWord{7, 11, 453}, dictWord{7, 11, 635}, dictWord{7, 11, 796}, dictWord{8, 11, 331}, dictWord{9, 11, 328}, dictWord{9, 11, 330}, dictWord{9, 11, 865}, dictWord{10, 11, 119}, dictWord{10, 11, 235}, dictWord{11, 11, 111}, dictWord{11, 11, 129}, dictWord{11, 11, 240}, dictWord{12, 11, 31}, dictWord{12, 11, 66}, dictWord{12, 11, 222}, dictWord{12, 11, 269}, dictWord{12, 11, 599}, dictWord{12, 11, 689}, dictWord{13, 11, 186}, dictWord{13, 11, 364}, dictWord{142, 11, 345}, dictWord{7, 0, 1672}, dictWord{ 139, 0, 189, }, dictWord{133, 10, 797}, dictWord{133, 10, 565}, dictWord{6, 0, 1548}, dictWord{6, 11, 98}, dictWord{7, 11, 585}, dictWord{135, 11, 702}, dictWord{ 9, 0, 968, }, dictWord{15, 0, 192}, dictWord{149, 0, 56}, dictWord{4, 10, 252}, dictWord{6, 11, 37}, dictWord{7, 11, 299}, dictWord{7, 10, 1068}, dictWord{ 7, 11, 1666, }, dictWord{8, 11, 195}, dictWord{8, 11, 316}, dictWord{9, 11, 178}, dictWord{9, 11, 276}, dictWord{9, 11, 339}, dictWord{9, 11, 536}, dictWord{ 10, 11, 102, }, dictWord{10, 11, 362}, dictWord{10, 10, 434}, dictWord{10, 11, 785}, dictWord{11, 11, 55}, dictWord{11, 11, 149}, dictWord{11, 10, 228}, dictWord{ 11, 10, 426, }, dictWord{11, 11, 773}, dictWord{13, 10, 231}, dictWord{13, 11, 416}, dictWord{13, 11, 419}, dictWord{14, 11, 38}, dictWord{14, 11, 41}, dictWord{14, 11, 210}, dictWord{18, 10, 106}, dictWord{148, 10, 87}, dictWord{4, 0, 751}, dictWord{11, 0, 390}, dictWord{140, 0, 32}, dictWord{4, 0, 409}, dictWord{133, 0, 78}, dictWord{11, 11, 458}, dictWord{12, 11, 15}, dictWord{140, 11, 432}, dictWord{7, 0, 1602}, dictWord{10, 0, 257}, dictWord{10, 0, 698}, dictWord{11, 0, 544}, dictWord{11, 0, 585}, dictWord{12, 0, 212}, dictWord{13, 0, 307}, dictWord{5, 10, 231}, dictWord{7, 10, 601}, dictWord{9, 10, 277}, dictWord{ 9, 10, 674, }, dictWord{10, 10, 178}, dictWord{10, 10, 418}, dictWord{10, 10, 509}, dictWord{11, 10, 531}, dictWord{12, 10, 113}, dictWord{12, 10, 475}, dictWord{13, 10, 99}, dictWord{142, 10, 428}, dictWord{6, 0, 473}, dictWord{145, 0, 105}, dictWord{6, 0, 1949}, dictWord{15, 0, 156}, dictWord{133, 11, 645}, dictWord{7, 10, 1591}, dictWord{144, 10, 43}, dictWord{135, 0, 1779}, dictWord{135, 10, 1683}, dictWord{4, 11, 290}, dictWord{135, 11, 1356}, dictWord{134, 0, 763}, dictWord{6, 11, 70}, dictWord{7, 11, 1292}, dictWord{10, 11, 762}, dictWord{139, 11, 288}, dictWord{142, 0, 29}, dictWord{140, 11, 428}, dictWord{7, 0, 883}, dictWord{7, 11, 131}, dictWord{7, 11, 422}, dictWord{8, 11, 210}, dictWord{140, 11, 573}, dictWord{134, 0, 488}, dictWord{4, 10, 399}, dictWord{5, 10, 119}, dictWord{5, 10, 494}, dictWord{7, 10, 751}, dictWord{137, 10, 556}, dictWord{133, 0, 617}, dictWord{132, 11, 936}, dictWord{ 139, 0, 50, }, dictWord{7, 0, 1518}, dictWord{139, 0, 694}, dictWord{137, 0, 785}, dictWord{4, 0, 546}, dictWord{135, 0, 2042}, dictWord{7, 11, 716}, dictWord{ 13, 11, 97, }, dictWord{141, 11, 251}, dictWord{132, 11, 653}, dictWord{145, 0, 22}, dictWord{134, 0, 1016}, dictWord{4, 0, 313}, dictWord{133, 0, 577}, dictWord{ 136, 11, 657, }, dictWord{8, 0, 184}, dictWord{141, 0, 433}, dictWord{135, 0, 935}, dictWord{6, 0, 720}, dictWord{9, 0, 114}, dictWord{146, 11, 80}, dictWord{ 12, 0, 186, }, dictWord{12, 0, 292}, dictWord{14, 0, 100}, dictWord{18, 0, 70}, dictWord{7, 10, 594}, dictWord{7, 10, 851}, dictWord{7, 10, 1858}, dictWord{ 9, 10, 411, }, dictWord{9, 10, 574}, dictWord{9, 10, 666}, dictWord{9, 10, 737}, dictWord{10, 10, 346}, dictWord{10, 10, 712}, dictWord{11, 10, 246}, dictWord{ 11, 10, 432, }, dictWord{11, 10, 517}, dictWord{11, 10, 647}, dictWord{11, 10, 679}, dictWord{11, 10, 727}, dictWord{12, 10, 304}, dictWord{12, 10, 305}, dictWord{12, 10, 323}, dictWord{12, 10, 483}, dictWord{12, 10, 572}, dictWord{12, 10, 593}, dictWord{12, 10, 602}, dictWord{13, 10, 95}, dictWord{13, 10, 101}, dictWord{13, 10, 171}, dictWord{13, 10, 315}, dictWord{13, 10, 378}, dictWord{13, 10, 425}, dictWord{13, 10, 475}, dictWord{14, 10, 63}, dictWord{ 14, 10, 380, }, dictWord{14, 10, 384}, dictWord{15, 10, 133}, dictWord{18, 10, 112}, dictWord{148, 10, 72}, dictWord{135, 10, 1093}, dictWord{135, 11, 1836}, dictWord{132, 10, 679}, dictWord{137, 10, 203}, dictWord{11, 0, 402}, dictWord{12, 0, 109}, dictWord{12, 0, 431}, dictWord{13, 0, 179}, dictWord{13, 0, 206}, dictWord{14, 0, 217}, dictWord{16, 0, 3}, dictWord{148, 0, 53}, dictWord{7, 11, 1368}, dictWord{8, 11, 232}, dictWord{8, 11, 361}, dictWord{10, 11, 682}, dictWord{138, 11, 742}, dictWord{137, 10, 714}, dictWord{5, 0, 886}, dictWord{6, 0, 46}, dictWord{6, 0, 1790}, dictWord{7, 0, 14}, dictWord{7, 0, 732}, dictWord{ 7, 0, 1654, }, dictWord{8, 0, 95}, dictWord{8, 0, 327}, dictWord{8, 0, 616}, dictWord{9, 0, 892}, dictWord{10, 0, 598}, dictWord{10, 0, 769}, dictWord{11, 0, 134}, dictWord{11, 0, 747}, dictWord{12, 0, 378}, dictWord{14, 0, 97}, dictWord{137, 11, 534}, dictWord{4, 0, 969}, dictWord{136, 10, 825}, dictWord{137, 11, 27}, dictWord{6, 0, 727}, dictWord{142, 11, 12}, dictWord{133, 0, 1021}, dictWord{134, 0, 1190}, dictWord{134, 11, 1657}, dictWord{5, 10, 143}, dictWord{ 5, 10, 769, }, dictWord{6, 10, 1760}, dictWord{7, 10, 682}, dictWord{7, 10, 1992}, dictWord{136, 10, 736}, dictWord{132, 0, 153}, dictWord{135, 11, 127}, dictWord{133, 0, 798}, dictWord{132, 0, 587}, dictWord{6, 0, 598}, dictWord{7, 0, 42}, dictWord{8, 0, 695}, dictWord{10, 0, 212}, dictWord{11, 0, 158}, dictWord{ 14, 0, 196, }, dictWord{145, 0, 85}, dictWord{133, 10, 860}, dictWord{6, 0, 1929}, dictWord{134, 0, 1933}, dictWord{5, 0, 957}, dictWord{5, 0, 1008}, dictWord{ 9, 0, 577, }, dictWord{12, 0, 141}, dictWord{6, 10, 422}, dictWord{7, 10, 0}, dictWord{7, 10, 1544}, dictWord{8, 11, 364}, dictWord{11, 10, 990}, dictWord{ 12, 10, 453, }, dictWord{13, 10, 47}, dictWord{141, 10, 266}, dictWord{134, 0, 1319}, dictWord{4, 0, 129}, dictWord{135, 0, 465}, dictWord{7, 0, 470}, dictWord{ 7, 0, 1057, }, dictWord{7, 0, 1201}, dictWord{9, 0, 755}, dictWord{11, 0, 906}, dictWord{140, 0, 527}, dictWord{7, 0, 908}, dictWord{146, 0, 7}, dictWord{5, 0, 148}, dictWord{136, 0, 450}, dictWord{5, 10, 515}, dictWord{137, 10, 131}, dictWord{7, 10, 1605}, dictWord{11, 10, 962}, dictWord{146, 10, 139}, dictWord{ 132, 10, 646, }, dictWord{134, 0, 1166}, dictWord{4, 10, 396}, dictWord{7, 10, 728}, dictWord{9, 10, 117}, dictWord{13, 10, 202}, dictWord{148, 10, 51}, dictWord{ 6, 10, 121, }, dictWord{6, 10, 124}, dictWord{6, 10, 357}, dictWord{7, 10, 1138}, dictWord{7, 10, 1295}, dictWord{8, 10, 162}, dictWord{139, 10, 655}, dictWord{14, 0, 374}, dictWord{142, 11, 374}, dictWord{138, 0, 253}, dictWord{139, 0, 1003}, dictWord{5, 11, 909}, dictWord{9, 11, 849}, dictWord{ 138, 11, 805, }, dictWord{133, 10, 237}, dictWord{7, 11, 525}, dictWord{7, 11, 1579}, dictWord{8, 11, 497}, dictWord{136, 11, 573}, dictWord{137, 0, 46}, dictWord{ 132, 0, 879, }, dictWord{134, 0, 806}, dictWord{135, 0, 1868}, dictWord{6, 0, 1837}, dictWord{134, 0, 1846}, dictWord{6, 0, 730}, dictWord{134, 0, 881}, dictWord{7, 0, 965}, dictWord{7, 0, 1460}, dictWord{7, 0, 1604}, dictWord{7, 11, 193}, dictWord{7, 11, 397}, dictWord{7, 11, 1105}, dictWord{8, 11, 124}, dictWord{ 8, 11, 619, }, dictWord{9, 11, 305}, dictWord{10, 11, 264}, dictWord{11, 11, 40}, dictWord{12, 11, 349}, dictWord{13, 11, 134}, dictWord{13, 11, 295}, dictWord{14, 11, 155}, dictWord{15, 11, 120}, dictWord{146, 11, 105}, dictWord{136, 0, 506}, dictWord{143, 0, 10}, dictWord{4, 11, 262}, dictWord{7, 11, 342}, dictWord{7, 10, 571}, dictWord{7, 10, 1877}, dictWord{10, 10, 366}, dictWord{141, 11, 23}, dictWord{133, 11, 641}, dictWord{10, 0, 22}, dictWord{9, 10, 513}, dictWord{10, 10, 39}, dictWord{12, 10, 122}, dictWord{140, 10, 187}, dictWord{135, 11, 1431}, dictWord{150, 11, 49}, dictWord{4, 11, 99}, dictWord{ 6, 11, 250, }, dictWord{6, 11, 346}, dictWord{8, 11, 127}, dictWord{138, 11, 81}, dictWord{6, 0, 2014}, dictWord{8, 0, 928}, dictWord{10, 0, 960}, dictWord{10, 0, 979}, dictWord{140, 0, 996}, dictWord{134, 0, 296}, dictWord{132, 11, 915}, dictWord{5, 11, 75}, dictWord{9, 11, 517}, dictWord{10, 11, 470}, dictWord{ 12, 11, 155, }, dictWord{141, 11, 224}, dictWord{137, 10, 873}, dictWord{4, 0, 854}, dictWord{140, 11, 18}, dictWord{134, 0, 587}, dictWord{7, 10, 107}, dictWord{ 7, 10, 838, }, dictWord{8, 10, 550}, dictWord{138, 10, 401}, dictWord{11, 0, 636}, dictWord{15, 0, 145}, dictWord{17, 0, 34}, dictWord{19, 0, 50}, dictWord{ 23, 0, 20, }, dictWord{11, 10, 588}, dictWord{11, 10, 864}, dictWord{11, 10, 968}, dictWord{143, 10, 160}, dictWord{135, 11, 216}, dictWord{7, 0, 982}, dictWord{ 10, 0, 32, }, dictWord{143, 0, 56}, dictWord{133, 10, 768}, dictWord{133, 11, 954}, dictWord{6, 11, 304}, dictWord{7, 11, 1114}, dictWord{8, 11, 418}, dictWord{ 10, 11, 345, }, dictWord{11, 11, 341}, dictWord{11, 11, 675}, dictWord{141, 11, 40}, dictWord{9, 11, 410}, dictWord{139, 11, 425}, dictWord{136, 0, 941}, dictWord{5, 0, 435}, dictWord{132, 10, 894}, dictWord{5, 0, 85}, dictWord{6, 0, 419}, dictWord{7, 0, 134}, dictWord{7, 0, 305}, dictWord{7, 0, 361}, dictWord{ 7, 0, 1337, }, dictWord{8, 0, 71}, dictWord{140, 0, 519}, dictWord{140, 0, 688}, dictWord{135, 0, 740}, dictWord{5, 0, 691}, dictWord{7, 0, 345}, dictWord{9, 0, 94}, dictWord{140, 0, 169}, dictWord{5, 0, 183}, dictWord{6, 0, 582}, dictWord{10, 0, 679}, dictWord{140, 0, 435}, dictWord{134, 11, 14}, dictWord{6, 0, 945}, dictWord{135, 0, 511}, dictWord{134, 11, 1708}, dictWord{5, 11, 113}, dictWord{6, 11, 243}, dictWord{7, 11, 1865}, dictWord{11, 11, 161}, dictWord{16, 11, 37}, dictWord{145, 11, 99}, dictWord{132, 11, 274}, dictWord{137, 0, 539}, dictWord{7, 0, 1993}, dictWord{8, 0, 684}, dictWord{134, 10, 272}, dictWord{ 6, 0, 659, }, dictWord{134, 0, 982}, dictWord{4, 10, 9}, dictWord{5, 10, 128}, dictWord{7, 10, 368}, dictWord{11, 10, 480}, dictWord{148, 10, 3}, dictWord{ 134, 0, 583, }, dictWord{132, 0, 803}, dictWord{133, 0, 704}, dictWord{4, 0, 179}, dictWord{5, 0, 198}, dictWord{133, 0, 697}, dictWord{7, 0, 347}, dictWord{7, 0, 971}, dictWord{8, 0, 181}, dictWord{10, 0, 711}, dictWord{135, 11, 166}, dictWord{136, 10, 682}, dictWord{4, 10, 2}, dictWord{7, 10, 545}, dictWord{7, 10, 894}, dictWord{136, 11, 521}, dictWord{135, 0, 481}, dictWord{132, 0, 243}, dictWord{5, 0, 203}, dictWord{7, 0, 19}, dictWord{7, 0, 71}, dictWord{7, 0, 113}, dictWord{ 10, 0, 405, }, dictWord{11, 0, 357}, dictWord{142, 0, 240}, dictWord{5, 11, 725}, dictWord{5, 11, 727}, dictWord{135, 11, 1811}, dictWord{6, 0, 826}, dictWord{ 137, 11, 304, }, dictWord{7, 0, 1450}, dictWord{139, 0, 99}, dictWord{133, 11, 654}, dictWord{134, 0, 492}, dictWord{5, 0, 134}, dictWord{6, 0, 408}, dictWord{ 6, 0, 495, }, dictWord{7, 0, 1593}, dictWord{6, 11, 273}, dictWord{10, 11, 188}, dictWord{13, 11, 377}, dictWord{146, 11, 77}, dictWord{9, 10, 769}, dictWord{ 140, 10, 185, }, dictWord{135, 11, 410}, dictWord{142, 0, 4}, dictWord{4, 0, 665}, dictWord{134, 11, 1785}, dictWord{4, 0, 248}, dictWord{7, 0, 137}, dictWord{ 137, 0, 349, }, dictWord{5, 10, 530}, dictWord{142, 10, 113}, dictWord{7, 0, 1270}, dictWord{139, 0, 612}, dictWord{132, 11, 780}, dictWord{5, 0, 371}, dictWord{135, 0, 563}, dictWord{135, 0, 826}, dictWord{6, 0, 1535}, dictWord{23, 0, 21}, dictWord{151, 0, 23}, dictWord{4, 0, 374}, dictWord{7, 0, 547}, dictWord{ 7, 0, 1700, }, dictWord{7, 0, 1833}, dictWord{139, 0, 858}, dictWord{133, 10, 556}, dictWord{7, 11, 612}, dictWord{8, 11, 545}, dictWord{8, 11, 568}, dictWord{ 8, 11, 642, }, dictWord{9, 11, 717}, dictWord{10, 11, 541}, dictWord{10, 11, 763}, dictWord{11, 11, 449}, dictWord{12, 11, 489}, dictWord{13, 11, 153}, dictWord{ 13, 11, 296, }, dictWord{14, 11, 138}, dictWord{14, 11, 392}, dictWord{15, 11, 50}, dictWord{16, 11, 6}, dictWord{16, 11, 12}, dictWord{148, 11, 9}, dictWord{ 9, 0, 311, }, dictWord{141, 0, 42}, dictWord{8, 10, 16}, dictWord{140, 10, 568}, dictWord{6, 0, 1968}, dictWord{6, 0, 2027}, dictWord{138, 0, 991}, dictWord{ 6, 0, 1647, }, dictWord{7, 0, 1552}, dictWord{7, 0, 2010}, dictWord{9, 0, 494}, dictWord{137, 0, 509}, dictWord{133, 11, 948}, dictWord{6, 10, 186}, dictWord{ 137, 10, 426, }, dictWord{134, 0, 769}, dictWord{134, 0, 642}, dictWord{132, 10, 585}, dictWord{6, 0, 123}, dictWord{7, 0, 214}, dictWord{9, 0, 728}, dictWord{ 10, 0, 157, }, dictWord{11, 0, 346}, dictWord{11, 0, 662}, dictWord{143, 0, 106}, dictWord{142, 11, 381}, dictWord{135, 0, 1435}, dictWord{4, 11, 532}, dictWord{ 5, 11, 706, }, dictWord{135, 11, 662}, dictWord{5, 11, 837}, dictWord{134, 11, 1651}, dictWord{4, 10, 93}, dictWord{5, 10, 252}, dictWord{6, 10, 229}, dictWord{ 7, 10, 291, }, dictWord{9, 10, 550}, dictWord{139, 10, 644}, dictWord{148, 0, 79}, dictWord{137, 10, 749}, dictWord{134, 0, 1425}, dictWord{ 137, 10, 162, }, dictWord{4, 11, 362}, dictWord{7, 11, 52}, dictWord{7, 11, 303}, dictWord{140, 11, 166}, dictWord{132, 10, 381}, dictWord{4, 11, 330}, dictWord{ 7, 11, 933, }, dictWord{7, 11, 2012}, dictWord{136, 11, 292}, dictWord{135, 11, 767}, dictWord{4, 0, 707}, dictWord{5, 0, 588}, dictWord{6, 0, 393}, dictWord{ 13, 0, 106, }, dictWord{18, 0, 49}, dictWord{147, 0, 41}, dictWord{6, 0, 211}, dictWord{7, 0, 1690}, dictWord{11, 0, 486}, dictWord{140, 0, 369}, dictWord{ 137, 11, 883, }, dictWord{4, 11, 703}, dictWord{135, 11, 207}, dictWord{4, 0, 187}, dictWord{5, 0, 184}, dictWord{5, 0, 690}, dictWord{7, 0, 1869}, dictWord{10, 0, 756}, dictWord{139, 0, 783}, dictWord{132, 11, 571}, dictWord{134, 0, 1382}, dictWord{5, 0, 175}, dictWord{6, 10, 77}, dictWord{6, 10, 157}, dictWord{7, 10, 974}, dictWord{7, 10, 1301}, dictWord{7, 10, 1339}, dictWord{7, 10, 1490}, dictWord{7, 10, 1873}, dictWord{137, 10, 628}, dictWord{134, 0, 1493}, dictWord{ 5, 11, 873, }, dictWord{133, 11, 960}, dictWord{134, 0, 1007}, dictWord{12, 11, 93}, dictWord{12, 11, 501}, dictWord{13, 11, 362}, dictWord{14, 11, 151}, dictWord{15, 11, 40}, dictWord{15, 11, 59}, dictWord{16, 11, 46}, dictWord{17, 11, 25}, dictWord{18, 11, 14}, dictWord{18, 11, 134}, dictWord{19, 11, 25}, dictWord{ 19, 11, 69, }, dictWord{20, 11, 16}, dictWord{20, 11, 19}, dictWord{20, 11, 66}, dictWord{21, 11, 23}, dictWord{21, 11, 25}, dictWord{150, 11, 42}, dictWord{ 11, 10, 919, }, dictWord{141, 10, 409}, dictWord{134, 0, 219}, dictWord{5, 0, 582}, dictWord{6, 0, 1646}, dictWord{7, 0, 99}, dictWord{7, 0, 1962}, dictWord{ 7, 0, 1986, }, dictWord{8, 0, 515}, dictWord{8, 0, 773}, dictWord{9, 0, 23}, dictWord{9, 0, 491}, dictWord{12, 0, 620}, dictWord{142, 0, 93}, dictWord{133, 0, 851}, dictWord{5, 11, 33}, dictWord{134, 11, 470}, dictWord{135, 11, 1291}, dictWord{134, 0, 1278}, dictWord{135, 11, 1882}, dictWord{135, 10, 1489}, dictWord{132, 0, 1000}, dictWord{138, 0, 982}, dictWord{8, 0, 762}, dictWord{8, 0, 812}, dictWord{137, 0, 910}, dictWord{6, 11, 47}, dictWord{7, 11, 90}, dictWord{ 7, 11, 664, }, dictWord{7, 11, 830}, dictWord{7, 11, 1380}, dictWord{7, 11, 2025}, dictWord{8, 11, 448}, dictWord{136, 11, 828}, dictWord{4, 0, 98}, dictWord{ 4, 0, 940, }, dictWord{6, 0, 1819}, dictWord{6, 0, 1834}, dictWord{6, 0, 1841}, dictWord{7, 0, 1365}, dictWord{8, 0, 859}, dictWord{8, 0, 897}, dictWord{8, 0, 918}, dictWord{9, 0, 422}, dictWord{9, 0, 670}, dictWord{10, 0, 775}, dictWord{10, 0, 894}, dictWord{10, 0, 909}, dictWord{10, 0, 910}, dictWord{10, 0, 935}, dictWord{ 11, 0, 210, }, dictWord{12, 0, 750}, dictWord{12, 0, 755}, dictWord{13, 0, 26}, dictWord{13, 0, 457}, dictWord{13, 0, 476}, dictWord{16, 0, 100}, dictWord{16, 0, 109}, dictWord{18, 0, 173}, dictWord{18, 0, 175}, dictWord{8, 10, 398}, dictWord{9, 10, 681}, dictWord{139, 10, 632}, dictWord{9, 11, 417}, dictWord{ 137, 11, 493, }, dictWord{136, 10, 645}, dictWord{138, 0, 906}, dictWord{134, 0, 1730}, dictWord{134, 10, 20}, dictWord{133, 11, 1019}, dictWord{134, 0, 1185}, dictWord{10, 0, 40}, dictWord{136, 10, 769}, dictWord{9, 0, 147}, dictWord{134, 11, 208}, dictWord{140, 0, 650}, dictWord{5, 0, 209}, dictWord{6, 0, 30}, dictWord{11, 0, 56}, dictWord{139, 0, 305}, dictWord{132, 0, 553}, dictWord{138, 11, 344}, dictWord{6, 11, 68}, dictWord{7, 11, 398}, dictWord{7, 11, 448}, dictWord{ 7, 11, 1629, }, dictWord{7, 11, 1813}, dictWord{8, 11, 387}, dictWord{8, 11, 442}, dictWord{9, 11, 710}, dictWord{10, 11, 282}, dictWord{138, 11, 722}, dictWord{5, 0, 597}, dictWord{14, 0, 20}, dictWord{142, 11, 20}, dictWord{135, 0, 1614}, dictWord{135, 10, 1757}, dictWord{4, 0, 150}, dictWord{5, 0, 303}, dictWord{6, 0, 327}, dictWord{135, 10, 937}, dictWord{16, 0, 49}, dictWord{7, 10, 1652}, dictWord{144, 11, 49}, dictWord{8, 0, 192}, dictWord{10, 0, 78}, dictWord{ 141, 0, 359, }, dictWord{135, 0, 786}, dictWord{143, 0, 134}, dictWord{6, 0, 1638}, dictWord{7, 0, 79}, dictWord{7, 0, 496}, dictWord{9, 0, 138}, dictWord{ 10, 0, 336, }, dictWord{11, 0, 12}, dictWord{12, 0, 412}, dictWord{12, 0, 440}, dictWord{142, 0, 305}, dictWord{136, 11, 491}, dictWord{4, 10, 579}, dictWord{ 5, 10, 226, }, dictWord{5, 10, 323}, dictWord{135, 10, 960}, dictWord{7, 0, 204}, dictWord{7, 0, 415}, dictWord{8, 0, 42}, dictWord{10, 0, 85}, dictWord{139, 0, 564}, dictWord{132, 0, 614}, dictWord{4, 11, 403}, dictWord{5, 11, 441}, dictWord{7, 11, 450}, dictWord{11, 11, 101}, dictWord{12, 11, 193}, dictWord{141, 11, 430}, dictWord{135, 11, 1927}, dictWord{135, 11, 1330}, dictWord{4, 0, 3}, dictWord{5, 0, 247}, dictWord{5, 0, 644}, dictWord{7, 0, 744}, dictWord{7, 0, 1207}, dictWord{7, 0, 1225}, dictWord{7, 0, 1909}, dictWord{146, 0, 147}, dictWord{136, 0, 942}, dictWord{4, 0, 1019}, dictWord{134, 0, 2023}, dictWord{5, 11, 679}, dictWord{133, 10, 973}, dictWord{5, 0, 285}, dictWord{9, 0, 67}, dictWord{13, 0, 473}, dictWord{143, 0, 82}, dictWord{7, 11, 328}, dictWord{137, 11, 326}, dictWord{151, 0, 8}, dictWord{6, 10, 135}, dictWord{135, 10, 1176}, dictWord{135, 11, 1128}, dictWord{134, 0, 1309}, dictWord{135, 11, 1796}, dictWord{ 135, 10, 314, }, dictWord{4, 11, 574}, dictWord{7, 11, 350}, dictWord{7, 11, 1024}, dictWord{8, 11, 338}, dictWord{9, 11, 677}, dictWord{10, 11, 808}, dictWord{ 139, 11, 508, }, dictWord{7, 11, 818}, dictWord{17, 11, 14}, dictWord{17, 11, 45}, dictWord{18, 11, 75}, dictWord{148, 11, 18}, dictWord{146, 10, 4}, dictWord{ 135, 11, 1081, }, dictWord{4, 0, 29}, dictWord{6, 0, 532}, dictWord{7, 0, 1628}, dictWord{7, 0, 1648}, dictWord{9, 0, 350}, dictWord{10, 0, 433}, dictWord{11, 0, 97}, dictWord{11, 0, 557}, dictWord{11, 0, 745}, dictWord{12, 0, 289}, dictWord{12, 0, 335}, dictWord{12, 0, 348}, dictWord{12, 0, 606}, dictWord{13, 0, 116}, dictWord{13, 0, 233}, dictWord{13, 0, 466}, dictWord{14, 0, 181}, dictWord{14, 0, 209}, dictWord{14, 0, 232}, dictWord{14, 0, 236}, dictWord{14, 0, 300}, dictWord{ 16, 0, 41, }, dictWord{148, 0, 97}, dictWord{7, 0, 318}, dictWord{6, 10, 281}, dictWord{8, 10, 282}, dictWord{8, 10, 480}, dictWord{8, 10, 499}, dictWord{9, 10, 198}, dictWord{10, 10, 143}, dictWord{10, 10, 169}, dictWord{10, 10, 211}, dictWord{10, 10, 417}, dictWord{10, 10, 574}, dictWord{11, 10, 147}, dictWord{ 11, 10, 395, }, dictWord{12, 10, 75}, dictWord{12, 10, 407}, dictWord{12, 10, 608}, dictWord{13, 10, 500}, dictWord{142, 10, 251}, dictWord{135, 11, 1676}, dictWord{135, 11, 2037}, dictWord{135, 0, 1692}, dictWord{5, 0, 501}, dictWord{7, 0, 1704}, dictWord{9, 0, 553}, dictWord{11, 0, 520}, dictWord{12, 0, 557}, dictWord{141, 0, 249}, dictWord{6, 0, 1527}, dictWord{14, 0, 324}, dictWord{15, 0, 55}, dictWord{15, 0, 80}, dictWord{14, 11, 324}, dictWord{15, 11, 55}, dictWord{143, 11, 80}, dictWord{135, 10, 1776}, dictWord{8, 0, 988}, dictWord{137, 11, 297}, dictWord{132, 10, 419}, dictWord{142, 0, 223}, dictWord{ 139, 11, 234, }, dictWord{7, 0, 1123}, dictWord{12, 0, 508}, dictWord{14, 0, 102}, dictWord{14, 0, 226}, dictWord{144, 0, 57}, dictWord{4, 10, 138}, dictWord{ 7, 10, 1012, }, dictWord{7, 10, 1280}, dictWord{137, 10, 76}, dictWord{7, 0, 1764}, dictWord{5, 10, 29}, dictWord{140, 10, 638}, dictWord{134, 0, 2015}, dictWord{134, 0, 1599}, dictWord{138, 11, 56}, dictWord{6, 11, 306}, dictWord{7, 11, 1140}, dictWord{7, 11, 1340}, dictWord{8, 11, 133}, dictWord{ 138, 11, 449, }, dictWord{139, 11, 1011}, dictWord{6, 10, 1710}, dictWord{135, 10, 2038}, dictWord{7, 11, 1763}, dictWord{140, 11, 310}, dictWord{6, 0, 129}, dictWord{4, 10, 17}, dictWord{5, 10, 23}, dictWord{7, 10, 995}, dictWord{11, 10, 383}, dictWord{11, 10, 437}, dictWord{12, 10, 460}, dictWord{140, 10, 532}, dictWord{5, 11, 329}, dictWord{136, 11, 260}, dictWord{133, 10, 862}, dictWord{132, 0, 534}, dictWord{6, 0, 811}, dictWord{135, 0, 626}, dictWord{ 132, 11, 657, }, dictWord{4, 0, 25}, dictWord{5, 0, 60}, dictWord{6, 0, 504}, dictWord{7, 0, 614}, dictWord{7, 0, 1155}, dictWord{12, 0, 0}, dictWord{152, 11, 7}, dictWord{ 7, 0, 1248, }, dictWord{11, 0, 621}, dictWord{139, 0, 702}, dictWord{137, 0, 321}, dictWord{8, 10, 70}, dictWord{12, 10, 171}, dictWord{141, 10, 272}, dictWord{ 10, 10, 233, }, dictWord{139, 10, 76}, dictWord{4, 0, 379}, dictWord{7, 0, 1397}, dictWord{134, 10, 442}, dictWord{5, 11, 66}, dictWord{7, 11, 1896}, dictWord{ 136, 11, 288, }, dictWord{134, 11, 1643}, dictWord{134, 10, 1709}, dictWord{4, 11, 21}, dictWord{5, 11, 91}, dictWord{5, 11, 570}, dictWord{5, 11, 648}, dictWord{5, 11, 750}, dictWord{5, 11, 781}, dictWord{6, 11, 54}, dictWord{6, 11, 112}, dictWord{6, 11, 402}, dictWord{6, 11, 1732}, dictWord{7, 11, 315}, dictWord{ 7, 11, 749, }, dictWord{7, 11, 1347}, dictWord{7, 11, 1900}, dictWord{9, 11, 78}, dictWord{9, 11, 508}, dictWord{10, 11, 611}, dictWord{11, 11, 510}, dictWord{ 11, 11, 728, }, dictWord{13, 11, 36}, dictWord{14, 11, 39}, dictWord{16, 11, 83}, dictWord{17, 11, 124}, dictWord{148, 11, 30}, dictWord{4, 0, 118}, dictWord{ 6, 0, 274, }, dictWord{6, 0, 361}, dictWord{7, 0, 75}, dictWord{141, 0, 441}, dictWord{10, 11, 322}, dictWord{10, 11, 719}, dictWord{139, 11, 407}, dictWord{ 147, 10, 119, }, dictWord{12, 11, 549}, dictWord{14, 11, 67}, dictWord{147, 11, 60}, dictWord{11, 10, 69}, dictWord{12, 10, 105}, dictWord{12, 10, 117}, dictWord{13, 10, 213}, dictWord{14, 10, 13}, dictWord{14, 10, 62}, dictWord{14, 10, 177}, dictWord{14, 10, 421}, dictWord{15, 10, 19}, dictWord{146, 10, 141}, dictWord{9, 0, 841}, dictWord{137, 10, 309}, dictWord{7, 10, 608}, dictWord{7, 10, 976}, dictWord{8, 11, 125}, dictWord{8, 11, 369}, dictWord{8, 11, 524}, dictWord{9, 10, 146}, dictWord{10, 10, 206}, dictWord{10, 11, 486}, dictWord{10, 10, 596}, dictWord{11, 11, 13}, dictWord{11, 11, 381}, dictWord{11, 11, 736}, dictWord{11, 11, 766}, dictWord{11, 11, 845}, dictWord{13, 11, 114}, dictWord{13, 10, 218}, dictWord{13, 11, 292}, dictWord{14, 11, 47}, dictWord{ 142, 10, 153, }, dictWord{12, 0, 693}, dictWord{135, 11, 759}, dictWord{5, 0, 314}, dictWord{6, 0, 221}, dictWord{7, 0, 419}, dictWord{10, 0, 650}, dictWord{11, 0, 396}, dictWord{12, 0, 156}, dictWord{13, 0, 369}, dictWord{14, 0, 333}, dictWord{145, 0, 47}, dictWord{6, 11, 1684}, dictWord{6, 11, 1731}, dictWord{7, 11, 356}, dictWord{7, 11, 1932}, dictWord{8, 11, 54}, dictWord{8, 11, 221}, dictWord{9, 11, 225}, dictWord{9, 11, 356}, dictWord{10, 11, 77}, dictWord{10, 11, 446}, dictWord{10, 11, 731}, dictWord{12, 11, 404}, dictWord{141, 11, 491}, dictWord{132, 11, 375}, dictWord{4, 10, 518}, dictWord{135, 10, 1136}, dictWord{ 4, 0, 913, }, dictWord{4, 11, 411}, dictWord{11, 11, 643}, dictWord{140, 11, 115}, dictWord{4, 11, 80}, dictWord{133, 11, 44}, dictWord{8, 10, 689}, dictWord{ 137, 10, 863, }, dictWord{138, 0, 880}, dictWord{4, 10, 18}, dictWord{7, 10, 145}, dictWord{7, 10, 444}, dictWord{7, 10, 1278}, dictWord{8, 10, 49}, dictWord{ 8, 10, 400, }, dictWord{9, 10, 71}, dictWord{9, 10, 250}, dictWord{10, 10, 459}, dictWord{12, 10, 160}, dictWord{144, 10, 24}, dictWord{136, 0, 475}, dictWord{ 5, 0, 1016, }, dictWord{5, 11, 299}, dictWord{135, 11, 1083}, dictWord{7, 0, 602}, dictWord{8, 0, 179}, dictWord{10, 0, 781}, dictWord{140, 0, 126}, dictWord{ 6, 0, 329, }, dictWord{138, 0, 111}, dictWord{135, 0, 1864}, dictWord{4, 11, 219}, dictWord{7, 11, 1761}, dictWord{137, 11, 86}, dictWord{6, 0, 1888}, dictWord{ 6, 0, 1892, }, dictWord{6, 0, 1901}, dictWord{6, 0, 1904}, dictWord{9, 0, 953}, dictWord{9, 0, 985}, dictWord{9, 0, 991}, dictWord{9, 0, 1001}, dictWord{12, 0, 818}, dictWord{12, 0, 846}, dictWord{12, 0, 847}, dictWord{12, 0, 861}, dictWord{12, 0, 862}, dictWord{12, 0, 873}, dictWord{12, 0, 875}, dictWord{12, 0, 877}, dictWord{12, 0, 879}, dictWord{12, 0, 881}, dictWord{12, 0, 884}, dictWord{12, 0, 903}, dictWord{12, 0, 915}, dictWord{12, 0, 926}, dictWord{12, 0, 939}, dictWord{ 15, 0, 182, }, dictWord{15, 0, 219}, dictWord{15, 0, 255}, dictWord{18, 0, 191}, dictWord{18, 0, 209}, dictWord{18, 0, 211}, dictWord{149, 0, 41}, dictWord{ 5, 11, 328, }, dictWord{135, 11, 918}, dictWord{137, 0, 780}, dictWord{12, 0, 82}, dictWord{143, 0, 36}, dictWord{133, 10, 1010}, dictWord{5, 0, 821}, dictWord{ 134, 0, 1687, }, dictWord{133, 11, 514}, dictWord{132, 0, 956}, dictWord{134, 0, 1180}, dictWord{10, 0, 112}, dictWord{5, 10, 87}, dictWord{7, 10, 313}, dictWord{ 7, 10, 1103, }, dictWord{10, 10, 582}, dictWord{11, 10, 389}, dictWord{11, 10, 813}, dictWord{12, 10, 385}, dictWord{13, 10, 286}, dictWord{14, 10, 124}, dictWord{146, 10, 108}, dictWord{5, 0, 71}, dictWord{7, 0, 1407}, dictWord{9, 0, 704}, dictWord{10, 0, 261}, dictWord{10, 0, 619}, dictWord{11, 0, 547}, dictWord{11, 0, 619}, dictWord{143, 0, 157}, dictWord{4, 0, 531}, dictWord{5, 0, 455}, dictWord{5, 11, 301}, dictWord{6, 11, 571}, dictWord{14, 11, 49}, dictWord{ 146, 11, 102, }, dictWord{132, 10, 267}, dictWord{6, 0, 385}, dictWord{7, 0, 2008}, dictWord{9, 0, 337}, dictWord{138, 0, 517}, dictWord{133, 11, 726}, dictWord{133, 11, 364}, dictWord{4, 11, 76}, dictWord{7, 11, 1550}, dictWord{9, 11, 306}, dictWord{9, 11, 430}, dictWord{9, 11, 663}, dictWord{10, 11, 683}, dictWord{11, 11, 427}, dictWord{11, 11, 753}, dictWord{12, 11, 334}, dictWord{12, 11, 442}, dictWord{14, 11, 258}, dictWord{14, 11, 366}, dictWord{ 143, 11, 131, }, dictWord{6, 0, 1865}, dictWord{6, 0, 1879}, dictWord{6, 0, 1881}, dictWord{6, 0, 1894}, dictWord{6, 0, 1908}, dictWord{9, 0, 915}, dictWord{9, 0, 926}, dictWord{9, 0, 940}, dictWord{9, 0, 943}, dictWord{9, 0, 966}, dictWord{9, 0, 980}, dictWord{9, 0, 989}, dictWord{9, 0, 1005}, dictWord{9, 0, 1010}, dictWord{ 12, 0, 813, }, dictWord{12, 0, 817}, dictWord{12, 0, 840}, dictWord{12, 0, 843}, dictWord{12, 0, 855}, dictWord{12, 0, 864}, dictWord{12, 0, 871}, dictWord{12, 0, 872}, dictWord{12, 0, 899}, dictWord{12, 0, 905}, dictWord{12, 0, 924}, dictWord{15, 0, 171}, dictWord{15, 0, 181}, dictWord{15, 0, 224}, dictWord{15, 0, 235}, dictWord{15, 0, 251}, dictWord{146, 0, 184}, dictWord{137, 11, 52}, dictWord{5, 0, 16}, dictWord{6, 0, 86}, dictWord{6, 0, 603}, dictWord{7, 0, 292}, dictWord{7, 0, 561}, dictWord{8, 0, 257}, dictWord{8, 0, 382}, dictWord{9, 0, 721}, dictWord{9, 0, 778}, dictWord{11, 0, 581}, dictWord{140, 0, 466}, dictWord{4, 0, 486}, dictWord{ 5, 0, 491, }, dictWord{135, 10, 1121}, dictWord{4, 0, 72}, dictWord{6, 0, 265}, dictWord{135, 0, 1300}, dictWord{135, 11, 1183}, dictWord{10, 10, 249}, dictWord{139, 10, 209}, dictWord{132, 10, 561}, dictWord{137, 11, 519}, dictWord{4, 11, 656}, dictWord{4, 10, 760}, dictWord{135, 11, 779}, dictWord{ 9, 10, 154, }, dictWord{140, 10, 485}, dictWord{135, 11, 1793}, dictWord{135, 11, 144}, dictWord{136, 10, 255}, dictWord{133, 0, 621}, dictWord{4, 10, 368}, dictWord{135, 10, 641}, dictWord{135, 11, 1373}, dictWord{7, 11, 554}, dictWord{7, 11, 605}, dictWord{141, 11, 10}, dictWord{137, 0, 234}, dictWord{ 5, 0, 815, }, dictWord{6, 0, 1688}, dictWord{134, 0, 1755}, dictWord{5, 11, 838}, dictWord{5, 11, 841}, dictWord{134, 11, 1649}, dictWord{7, 0, 1987}, dictWord{ 7, 0, 2040, }, dictWord{136, 0, 743}, dictWord{133, 11, 1012}, dictWord{6, 0, 197}, dictWord{136, 0, 205}, dictWord{6, 0, 314}, dictWord{134, 11, 314}, dictWord{144, 11, 53}, dictWord{6, 11, 251}, dictWord{7, 11, 365}, dictWord{7, 11, 1357}, dictWord{7, 11, 1497}, dictWord{8, 11, 154}, dictWord{141, 11, 281}, dictWord{133, 11, 340}, dictWord{6, 0, 452}, dictWord{7, 0, 312}, dictWord{138, 0, 219}, dictWord{138, 0, 589}, dictWord{4, 0, 333}, dictWord{9, 0, 176}, dictWord{12, 0, 353}, dictWord{141, 0, 187}, dictWord{9, 10, 92}, dictWord{147, 10, 91}, dictWord{134, 0, 1110}, dictWord{11, 0, 47}, dictWord{139, 11, 495}, dictWord{6, 10, 525}, dictWord{8, 10, 806}, dictWord{9, 10, 876}, dictWord{140, 10, 284}, dictWord{8, 11, 261}, dictWord{9, 11, 144}, dictWord{9, 11, 466}, dictWord{10, 11, 370}, dictWord{12, 11, 470}, dictWord{13, 11, 144}, dictWord{142, 11, 348}, dictWord{137, 11, 897}, dictWord{8, 0, 863}, dictWord{8, 0, 864}, dictWord{8, 0, 868}, dictWord{8, 0, 884}, dictWord{10, 0, 866}, dictWord{10, 0, 868}, dictWord{10, 0, 873}, dictWord{10, 0, 911}, dictWord{10, 0, 912}, dictWord{ 10, 0, 944, }, dictWord{12, 0, 727}, dictWord{6, 11, 248}, dictWord{9, 11, 546}, dictWord{10, 11, 535}, dictWord{11, 11, 681}, dictWord{141, 11, 135}, dictWord{ 6, 0, 300, }, dictWord{135, 0, 1515}, dictWord{134, 0, 1237}, dictWord{139, 10, 958}, dictWord{133, 10, 594}, dictWord{140, 11, 250}, dictWord{ 134, 0, 1685, }, dictWord{134, 11, 567}, dictWord{7, 0, 135}, dictWord{8, 0, 7}, dictWord{8, 0, 62}, dictWord{9, 0, 243}, dictWord{10, 0, 658}, dictWord{10, 0, 697}, dictWord{11, 0, 456}, dictWord{139, 0, 756}, dictWord{9, 0, 395}, dictWord{138, 0, 79}, dictWord{6, 10, 1641}, dictWord{136, 10, 820}, dictWord{4, 10, 302}, dictWord{135, 10, 1766}, dictWord{134, 11, 174}, dictWord{135, 10, 1313}, dictWord{135, 0, 631}, dictWord{134, 10, 1674}, dictWord{134, 11, 395}, dictWord{138, 0, 835}, dictWord{7, 0, 406}, dictWord{7, 0, 459}, dictWord{8, 0, 606}, dictWord{139, 0, 726}, dictWord{134, 11, 617}, dictWord{134, 0, 979}, dictWord{ 6, 10, 389, }, dictWord{7, 10, 149}, dictWord{9, 10, 142}, dictWord{138, 10, 94}, dictWord{5, 11, 878}, dictWord{133, 11, 972}, dictWord{6, 10, 8}, dictWord{ 7, 10, 1881, }, dictWord{8, 10, 91}, dictWord{136, 11, 511}, dictWord{133, 0, 612}, dictWord{132, 11, 351}, dictWord{4, 0, 372}, dictWord{7, 0, 482}, dictWord{ 8, 0, 158, }, dictWord{9, 0, 602}, dictWord{9, 0, 615}, dictWord{10, 0, 245}, dictWord{10, 0, 678}, dictWord{10, 0, 744}, dictWord{11, 0, 248}, dictWord{ 139, 0, 806, }, dictWord{5, 0, 854}, dictWord{135, 0, 1991}, dictWord{132, 11, 286}, dictWord{135, 11, 344}, dictWord{7, 11, 438}, dictWord{7, 11, 627}, dictWord{ 7, 11, 1516, }, dictWord{8, 11, 40}, dictWord{9, 11, 56}, dictWord{9, 11, 294}, dictWord{10, 11, 30}, dictWord{10, 11, 259}, dictWord{11, 11, 969}, dictWord{ 146, 11, 148, }, dictWord{135, 0, 1492}, dictWord{5, 11, 259}, dictWord{7, 11, 414}, dictWord{7, 11, 854}, dictWord{142, 11, 107}, dictWord{135, 10, 1746}, dictWord{6, 0, 833}, dictWord{134, 0, 998}, dictWord{135, 10, 24}, dictWord{6, 0, 750}, dictWord{135, 0, 1739}, dictWord{4, 10, 503}, dictWord{ 135, 10, 1661, }, dictWord{5, 10, 130}, dictWord{7, 10, 1314}, dictWord{9, 10, 610}, dictWord{10, 10, 718}, dictWord{11, 10, 601}, dictWord{11, 10, 819}, dictWord{ 11, 10, 946, }, dictWord{140, 10, 536}, dictWord{10, 10, 149}, dictWord{11, 10, 280}, dictWord{142, 10, 336}, dictWord{132, 11, 738}, dictWord{ 135, 10, 1946, }, dictWord{5, 0, 195}, dictWord{135, 0, 1685}, dictWord{7, 0, 1997}, dictWord{8, 0, 730}, dictWord{139, 0, 1006}, dictWord{151, 11, 17}, dictWord{ 133, 11, 866, }, dictWord{14, 0, 463}, dictWord{14, 0, 470}, dictWord{150, 0, 61}, dictWord{5, 0, 751}, dictWord{8, 0, 266}, dictWord{11, 0, 578}, dictWord{ 4, 10, 392, }, dictWord{135, 10, 1597}, dictWord{5, 10, 433}, dictWord{9, 10, 633}, dictWord{139, 10, 629}, dictWord{135, 0, 821}, dictWord{6, 0, 715}, dictWord{ 134, 0, 1325, }, dictWord{133, 11, 116}, dictWord{6, 0, 868}, dictWord{132, 11, 457}, dictWord{134, 0, 959}, dictWord{6, 10, 234}, dictWord{138, 11, 199}, dictWord{7, 0, 1053}, dictWord{7, 10, 1950}, dictWord{8, 10, 680}, dictWord{11, 10, 817}, dictWord{147, 10, 88}, dictWord{7, 10, 1222}, dictWord{ 138, 10, 386, }, dictWord{5, 0, 950}, dictWord{5, 0, 994}, dictWord{6, 0, 351}, dictWord{134, 0, 1124}, dictWord{134, 0, 1081}, dictWord{7, 0, 1595}, dictWord{6, 10, 5}, dictWord{11, 10, 249}, dictWord{12, 10, 313}, dictWord{16, 10, 66}, dictWord{145, 10, 26}, dictWord{148, 0, 59}, dictWord{5, 11, 527}, dictWord{6, 11, 189}, dictWord{135, 11, 859}, dictWord{5, 10, 963}, dictWord{6, 10, 1773}, dictWord{11, 11, 104}, dictWord{11, 11, 554}, dictWord{15, 11, 60}, dictWord{ 143, 11, 125, }, dictWord{135, 0, 47}, dictWord{137, 0, 684}, dictWord{134, 11, 116}, dictWord{134, 0, 1606}, dictWord{134, 0, 777}, dictWord{7, 0, 1020}, dictWord{ 8, 10, 509, }, dictWord{136, 10, 792}, dictWord{135, 0, 1094}, dictWord{132, 0, 350}, dictWord{133, 11, 487}, dictWord{4, 11, 86}, dictWord{5, 11, 667}, dictWord{5, 11, 753}, dictWord{6, 11, 316}, dictWord{6, 11, 455}, dictWord{135, 11, 946}, dictWord{7, 0, 1812}, dictWord{13, 0, 259}, dictWord{13, 0, 356}, dictWord{14, 0, 242}, dictWord{147, 0, 114}, dictWord{132, 10, 931}, dictWord{133, 0, 967}, dictWord{4, 0, 473}, dictWord{7, 0, 623}, dictWord{8, 0, 808}, dictWord{ 9, 0, 871, }, dictWord{9, 0, 893}, dictWord{11, 0, 38}, dictWord{11, 0, 431}, dictWord{12, 0, 112}, dictWord{12, 0, 217}, dictWord{12, 0, 243}, dictWord{12, 0, 562}, dictWord{12, 0, 663}, dictWord{12, 0, 683}, dictWord{13, 0, 141}, dictWord{13, 0, 197}, dictWord{13, 0, 227}, dictWord{13, 0, 406}, dictWord{13, 0, 487}, dictWord{14, 0, 156}, dictWord{14, 0, 203}, dictWord{14, 0, 224}, dictWord{14, 0, 256}, dictWord{18, 0, 58}, dictWord{150, 0, 0}, dictWord{138, 0, 286}, dictWord{ 7, 10, 943, }, dictWord{139, 10, 614}, dictWord{135, 10, 1837}, dictWord{150, 11, 45}, dictWord{132, 0, 798}, dictWord{4, 0, 222}, dictWord{7, 0, 286}, dictWord{136, 0, 629}, dictWord{4, 11, 79}, dictWord{7, 11, 1773}, dictWord{10, 11, 450}, dictWord{11, 11, 589}, dictWord{13, 11, 332}, dictWord{13, 11, 493}, dictWord{14, 11, 183}, dictWord{14, 11, 334}, dictWord{14, 11, 362}, dictWord{14, 11, 368}, dictWord{14, 11, 376}, dictWord{14, 11, 379}, dictWord{ 19, 11, 90, }, dictWord{19, 11, 103}, dictWord{19, 11, 127}, dictWord{148, 11, 90}, dictWord{5, 0, 337}, dictWord{11, 0, 513}, dictWord{11, 0, 889}, dictWord{ 11, 0, 961, }, dictWord{12, 0, 461}, dictWord{13, 0, 79}, dictWord{15, 0, 121}, dictWord{4, 10, 90}, dictWord{5, 10, 545}, dictWord{7, 10, 754}, dictWord{9, 10, 186}, dictWord{10, 10, 72}, dictWord{10, 10, 782}, dictWord{11, 10, 577}, dictWord{11, 10, 610}, dictWord{12, 10, 354}, dictWord{12, 10, 362}, dictWord{ 140, 10, 595, }, dictWord{141, 0, 306}, dictWord{136, 0, 146}, dictWord{7, 0, 1646}, dictWord{9, 10, 329}, dictWord{11, 10, 254}, dictWord{141, 11, 124}, dictWord{ 4, 0, 465, }, dictWord{135, 0, 1663}, dictWord{132, 0, 525}, dictWord{133, 11, 663}, dictWord{10, 0, 299}, dictWord{18, 0, 74}, dictWord{9, 10, 187}, dictWord{ 11, 10, 1016, }, dictWord{145, 10, 44}, dictWord{7, 0, 165}, dictWord{7, 0, 919}, dictWord{4, 10, 506}, dictWord{136, 10, 517}, dictWord{5, 10, 295}, dictWord{ 135, 10, 1680, }, dictWord{133, 11, 846}, dictWord{134, 0, 1064}, dictWord{5, 11, 378}, dictWord{7, 11, 1402}, dictWord{7, 11, 1414}, dictWord{8, 11, 465}, dictWord{9, 11, 286}, dictWord{10, 11, 185}, dictWord{10, 11, 562}, dictWord{10, 11, 635}, dictWord{11, 11, 31}, dictWord{11, 11, 393}, dictWord{ 12, 11, 456, }, dictWord{13, 11, 312}, dictWord{18, 11, 65}, dictWord{18, 11, 96}, dictWord{147, 11, 89}, dictWord{132, 0, 596}, dictWord{7, 10, 987}, dictWord{ 9, 10, 688, }, dictWord{10, 10, 522}, dictWord{11, 10, 788}, dictWord{140, 10, 566}, dictWord{6, 0, 82}, dictWord{7, 0, 138}, dictWord{7, 0, 517}, dictWord{7, 0, 1741}, dictWord{11, 0, 238}, dictWord{4, 11, 648}, dictWord{134, 10, 1775}, dictWord{7, 0, 1233}, dictWord{7, 10, 700}, dictWord{7, 10, 940}, dictWord{8, 10, 514}, dictWord{9, 10, 116}, dictWord{9, 10, 535}, dictWord{10, 10, 118}, dictWord{11, 10, 107}, dictWord{11, 10, 148}, dictWord{11, 10, 922}, dictWord{ 12, 10, 254, }, dictWord{12, 10, 421}, dictWord{142, 10, 238}, dictWord{4, 0, 962}, dictWord{6, 0, 1824}, dictWord{8, 0, 894}, dictWord{12, 0, 708}, dictWord{ 12, 0, 725, }, dictWord{14, 0, 451}, dictWord{20, 0, 94}, dictWord{22, 0, 59}, dictWord{150, 0, 62}, dictWord{5, 11, 945}, dictWord{6, 11, 1656}, dictWord{6, 11, 1787}, dictWord{7, 11, 167}, dictWord{8, 11, 824}, dictWord{9, 11, 391}, dictWord{10, 11, 375}, dictWord{139, 11, 185}, dictWord{5, 0, 495}, dictWord{7, 0, 834}, dictWord{9, 0, 733}, dictWord{139, 0, 378}, dictWord{4, 10, 743}, dictWord{135, 11, 1273}, dictWord{6, 0, 1204}, dictWord{7, 11, 1645}, dictWord{8, 11, 352}, dictWord{137, 11, 249}, dictWord{139, 10, 292}, dictWord{133, 0, 559}, dictWord{132, 11, 152}, dictWord{9, 0, 499}, dictWord{10, 0, 341}, dictWord{ 15, 0, 144, }, dictWord{19, 0, 49}, dictWord{7, 10, 1283}, dictWord{9, 10, 227}, dictWord{11, 10, 325}, dictWord{11, 10, 408}, dictWord{14, 10, 180}, dictWord{ 146, 10, 47, }, dictWord{6, 0, 21}, dictWord{6, 0, 1737}, dictWord{7, 0, 1444}, dictWord{136, 0, 224}, dictWord{133, 11, 1006}, dictWord{7, 0, 1446}, dictWord{ 9, 0, 97, }, dictWord{17, 0, 15}, dictWord{5, 10, 81}, dictWord{7, 10, 146}, dictWord{7, 10, 1342}, dictWord{8, 10, 53}, dictWord{8, 10, 561}, dictWord{8, 10, 694}, dictWord{8, 10, 754}, dictWord{9, 10, 115}, dictWord{9, 10, 894}, dictWord{10, 10, 462}, dictWord{10, 10, 813}, dictWord{11, 10, 230}, dictWord{11, 10, 657}, dictWord{11, 10, 699}, dictWord{11, 10, 748}, dictWord{12, 10, 119}, dictWord{12, 10, 200}, dictWord{12, 10, 283}, dictWord{142, 10, 273}, dictWord{ 5, 10, 408, }, dictWord{137, 10, 747}, dictWord{135, 11, 431}, dictWord{135, 11, 832}, dictWord{6, 0, 729}, dictWord{134, 0, 953}, dictWord{4, 0, 727}, dictWord{ 8, 0, 565, }, dictWord{5, 11, 351}, dictWord{7, 11, 264}, dictWord{136, 11, 565}, dictWord{134, 0, 1948}, dictWord{5, 0, 519}, dictWord{5, 11, 40}, dictWord{ 7, 11, 598, }, dictWord{7, 11, 1638}, dictWord{8, 11, 78}, dictWord{9, 11, 166}, dictWord{9, 11, 640}, dictWord{9, 11, 685}, dictWord{9, 11, 773}, dictWord{ 11, 11, 215, }, dictWord{13, 11, 65}, dictWord{14, 11, 172}, dictWord{14, 11, 317}, dictWord{145, 11, 6}, dictWord{8, 11, 60}, dictWord{9, 11, 343}, dictWord{ 139, 11, 769, }, dictWord{137, 11, 455}, dictWord{134, 0, 1193}, dictWord{140, 0, 790}, dictWord{7, 11, 1951}, dictWord{8, 11, 765}, dictWord{8, 11, 772}, dictWord{140, 11, 671}, dictWord{7, 11, 108}, dictWord{8, 11, 219}, dictWord{8, 11, 388}, dictWord{9, 11, 639}, dictWord{9, 11, 775}, dictWord{11, 11, 275}, dictWord{140, 11, 464}, dictWord{132, 11, 468}, dictWord{7, 10, 30}, dictWord{8, 10, 86}, dictWord{8, 10, 315}, dictWord{8, 10, 700}, dictWord{9, 10, 576}, dictWord{ 9, 10, 858, }, dictWord{11, 10, 310}, dictWord{11, 10, 888}, dictWord{11, 10, 904}, dictWord{12, 10, 361}, dictWord{141, 10, 248}, dictWord{5, 11, 15}, dictWord{6, 11, 56}, dictWord{7, 11, 1758}, dictWord{8, 11, 500}, dictWord{9, 11, 730}, dictWord{11, 11, 331}, dictWord{13, 11, 150}, dictWord{142, 11, 282}, dictWord{4, 0, 402}, dictWord{7, 0, 2}, dictWord{8, 0, 323}, dictWord{136, 0, 479}, dictWord{138, 10, 839}, dictWord{11, 0, 580}, dictWord{142, 0, 201}, dictWord{ 5, 0, 59, }, dictWord{135, 0, 672}, dictWord{137, 10, 617}, dictWord{146, 0, 34}, dictWord{134, 11, 1886}, dictWord{4, 0, 961}, dictWord{136, 0, 896}, dictWord{ 6, 0, 1285, }, dictWord{5, 11, 205}, dictWord{6, 11, 438}, dictWord{137, 11, 711}, dictWord{134, 10, 428}, dictWord{7, 10, 524}, dictWord{8, 10, 169}, dictWord{8, 10, 234}, dictWord{9, 10, 480}, dictWord{138, 10, 646}, dictWord{148, 0, 46}, dictWord{141, 0, 479}, dictWord{133, 11, 534}, dictWord{6, 0, 2019}, dictWord{134, 10, 1648}, dictWord{4, 0, 85}, dictWord{7, 0, 549}, dictWord{7, 10, 1205}, dictWord{138, 10, 637}, dictWord{4, 0, 663}, dictWord{5, 0, 94}, dictWord{ 7, 11, 235, }, dictWord{7, 11, 1475}, dictWord{15, 11, 68}, dictWord{146, 11, 120}, dictWord{6, 11, 443}, dictWord{9, 11, 237}, dictWord{9, 11, 571}, dictWord{ 9, 11, 695, }, dictWord{10, 11, 139}, dictWord{11, 11, 715}, dictWord{12, 11, 417}, dictWord{141, 11, 421}, dictWord{132, 0, 783}, dictWord{4, 0, 682}, dictWord{8, 0, 65}, dictWord{9, 10, 39}, dictWord{10, 10, 166}, dictWord{11, 10, 918}, dictWord{12, 10, 635}, dictWord{20, 10, 10}, dictWord{22, 10, 27}, dictWord{ 22, 10, 43, }, dictWord{150, 10, 52}, dictWord{6, 0, 11}, dictWord{135, 0, 187}, dictWord{132, 0, 522}, dictWord{4, 0, 52}, dictWord{135, 0, 661}, dictWord{ 4, 0, 383, }, dictWord{133, 0, 520}, dictWord{135, 11, 546}, dictWord{11, 0, 343}, dictWord{142, 0, 127}, dictWord{4, 11, 578}, dictWord{7, 10, 157}, dictWord{ 7, 11, 624, }, dictWord{7, 11, 916}, dictWord{8, 10, 279}, dictWord{10, 11, 256}, dictWord{11, 11, 87}, dictWord{139, 11, 703}, dictWord{134, 10, 604}, dictWord{ 4, 0, 281, }, dictWord{5, 0, 38}, dictWord{7, 0, 194}, dictWord{7, 0, 668}, dictWord{7, 0, 1893}, dictWord{137, 0, 397}, dictWord{7, 10, 945}, dictWord{11, 10, 713}, dictWord{139, 10, 744}, dictWord{139, 10, 1022}, dictWord{9, 0, 635}, dictWord{139, 0, 559}, dictWord{5, 11, 923}, dictWord{7, 11, 490}, dictWord{ 12, 11, 553, }, dictWord{13, 11, 100}, dictWord{14, 11, 118}, dictWord{143, 11, 75}, dictWord{132, 0, 975}, dictWord{132, 10, 567}, dictWord{137, 10, 859}, dictWord{7, 10, 1846}, dictWord{7, 11, 1846}, dictWord{8, 10, 628}, dictWord{136, 11, 628}, dictWord{148, 0, 116}, dictWord{138, 11, 750}, dictWord{14, 0, 51}, dictWord{14, 11, 51}, dictWord{15, 11, 7}, dictWord{148, 11, 20}, dictWord{132, 0, 858}, dictWord{134, 0, 1075}, dictWord{4, 11, 924}, dictWord{ 133, 10, 762, }, dictWord{136, 0, 535}, dictWord{133, 0, 448}, dictWord{10, 10, 784}, dictWord{141, 10, 191}, dictWord{133, 10, 298}, dictWord{7, 0, 610}, dictWord{135, 0, 1501}, dictWord{7, 10, 633}, dictWord{7, 10, 905}, dictWord{7, 10, 909}, dictWord{7, 10, 1538}, dictWord{9, 10, 767}, dictWord{140, 10, 636}, dictWord{4, 11, 265}, dictWord{7, 11, 807}, dictWord{135, 11, 950}, dictWord{5, 11, 93}, dictWord{12, 11, 267}, dictWord{144, 11, 26}, dictWord{136, 0, 191}, dictWord{139, 10, 301}, dictWord{135, 10, 1970}, dictWord{135, 0, 267}, dictWord{4, 0, 319}, dictWord{5, 0, 699}, dictWord{138, 0, 673}, dictWord{ 6, 0, 336, }, dictWord{7, 0, 92}, dictWord{7, 0, 182}, dictWord{8, 0, 453}, dictWord{8, 0, 552}, dictWord{9, 0, 204}, dictWord{9, 0, 285}, dictWord{10, 0, 99}, dictWord{ 11, 0, 568, }, dictWord{11, 0, 950}, dictWord{12, 0, 94}, dictWord{16, 0, 20}, dictWord{16, 0, 70}, dictWord{19, 0, 55}, dictWord{12, 10, 644}, dictWord{144, 10, 90}, dictWord{6, 0, 551}, dictWord{7, 0, 1308}, dictWord{7, 10, 845}, dictWord{7, 11, 994}, dictWord{8, 10, 160}, dictWord{137, 10, 318}, dictWord{19, 11, 1}, dictWord{ 19, 11, 26, }, dictWord{150, 11, 9}, dictWord{7, 0, 1406}, dictWord{9, 0, 218}, dictWord{141, 0, 222}, dictWord{5, 0, 256}, dictWord{138, 0, 69}, dictWord{ 5, 11, 233, }, dictWord{5, 11, 320}, dictWord{6, 11, 140}, dictWord{7, 11, 330}, dictWord{136, 11, 295}, dictWord{6, 0, 1980}, dictWord{136, 0, 952}, dictWord{ 4, 0, 833, }, dictWord{137, 11, 678}, dictWord{133, 11, 978}, dictWord{4, 11, 905}, dictWord{6, 11, 1701}, dictWord{137, 11, 843}, dictWord{138, 10, 735}, dictWord{136, 10, 76}, dictWord{17, 0, 39}, dictWord{148, 0, 36}, dictWord{18, 0, 81}, dictWord{146, 11, 81}, dictWord{14, 0, 352}, dictWord{17, 0, 53}, dictWord{ 18, 0, 146, }, dictWord{18, 0, 152}, dictWord{19, 0, 11}, dictWord{150, 0, 54}, dictWord{135, 0, 634}, dictWord{138, 10, 841}, dictWord{132, 0, 618}, dictWord{ 4, 0, 339, }, dictWord{7, 0, 259}, dictWord{17, 0, 73}, dictWord{4, 11, 275}, dictWord{140, 11, 376}, dictWord{132, 11, 509}, dictWord{7, 11, 273}, dictWord{ 139, 11, 377, }, dictWord{4, 0, 759}, dictWord{13, 0, 169}, dictWord{137, 10, 804}, dictWord{6, 10, 96}, dictWord{135, 10, 1426}, dictWord{4, 10, 651}, dictWord{133, 10, 289}, dictWord{7, 0, 1075}, dictWord{8, 10, 35}, dictWord{9, 10, 511}, dictWord{10, 10, 767}, dictWord{147, 10, 118}, dictWord{6, 0, 649}, dictWord{6, 0, 670}, dictWord{136, 0, 482}, dictWord{5, 0, 336}, dictWord{6, 0, 341}, dictWord{6, 0, 478}, dictWord{6, 0, 1763}, dictWord{136, 0, 386}, dictWord{ 5, 11, 802, }, dictWord{7, 11, 2021}, dictWord{8, 11, 805}, dictWord{14, 11, 94}, dictWord{15, 11, 65}, dictWord{16, 11, 4}, dictWord{16, 11, 77}, dictWord{16, 11, 80}, dictWord{145, 11, 5}, dictWord{6, 0, 1035}, dictWord{5, 11, 167}, dictWord{5, 11, 899}, dictWord{6, 11, 410}, dictWord{137, 11, 777}, dictWord{ 134, 11, 1705, }, dictWord{5, 0, 924}, dictWord{133, 0, 969}, dictWord{132, 10, 704}, dictWord{135, 0, 73}, dictWord{135, 11, 10}, dictWord{135, 10, 1078}, dictWord{ 5, 11, 11, }, dictWord{6, 11, 117}, dictWord{6, 11, 485}, dictWord{7, 11, 1133}, dictWord{9, 11, 582}, dictWord{9, 11, 594}, dictWord{11, 11, 21}, dictWord{ 11, 11, 818, }, dictWord{12, 11, 535}, dictWord{141, 11, 86}, dictWord{135, 0, 1971}, dictWord{4, 11, 264}, dictWord{7, 11, 1067}, dictWord{8, 11, 204}, dictWord{8, 11, 385}, dictWord{139, 11, 953}, dictWord{6, 0, 1458}, dictWord{135, 0, 1344}, dictWord{5, 0, 396}, dictWord{134, 0, 501}, dictWord{4, 10, 720}, dictWord{133, 10, 306}, dictWord{4, 0, 929}, dictWord{5, 0, 799}, dictWord{8, 0, 46}, dictWord{8, 0, 740}, dictWord{133, 10, 431}, dictWord{7, 11, 646}, dictWord{ 7, 11, 1730, }, dictWord{11, 11, 446}, dictWord{141, 11, 178}, dictWord{7, 0, 276}, dictWord{5, 10, 464}, dictWord{6, 10, 236}, dictWord{7, 10, 696}, dictWord{ 7, 10, 914, }, dictWord{7, 10, 1108}, dictWord{7, 10, 1448}, dictWord{9, 10, 15}, dictWord{9, 10, 564}, dictWord{10, 10, 14}, dictWord{12, 10, 565}, dictWord{ 13, 10, 449, }, dictWord{14, 10, 53}, dictWord{15, 10, 13}, dictWord{16, 10, 64}, dictWord{145, 10, 41}, dictWord{4, 0, 892}, dictWord{133, 0, 770}, dictWord{ 6, 10, 1767, }, dictWord{12, 10, 194}, dictWord{145, 10, 107}, dictWord{135, 0, 158}, dictWord{5, 10, 840}, dictWord{138, 11, 608}, dictWord{134, 0, 1432}, dictWord{138, 11, 250}, dictWord{8, 11, 794}, dictWord{9, 11, 400}, dictWord{10, 11, 298}, dictWord{142, 11, 228}, dictWord{151, 0, 25}, dictWord{ 7, 11, 1131, }, dictWord{135, 11, 1468}, dictWord{135, 0, 2001}, dictWord{9, 10, 642}, dictWord{11, 10, 236}, dictWord{142, 10, 193}, dictWord{4, 10, 68}, dictWord{5, 10, 634}, dictWord{6, 10, 386}, dictWord{7, 10, 794}, dictWord{8, 10, 273}, dictWord{9, 10, 563}, dictWord{10, 10, 105}, dictWord{10, 10, 171}, dictWord{11, 10, 94}, dictWord{139, 10, 354}, dictWord{136, 11, 724}, dictWord{132, 0, 478}, dictWord{11, 11, 512}, dictWord{13, 11, 205}, dictWord{ 19, 11, 30, }, dictWord{22, 11, 36}, dictWord{151, 11, 19}, dictWord{7, 0, 1461}, dictWord{140, 0, 91}, dictWord{6, 11, 190}, dictWord{7, 11, 768}, dictWord{ 135, 11, 1170, }, dictWord{4, 0, 602}, dictWord{8, 0, 211}, dictWord{4, 10, 95}, dictWord{7, 10, 416}, dictWord{139, 10, 830}, dictWord{7, 10, 731}, dictWord{13, 10, 20}, dictWord{143, 10, 11}, dictWord{6, 0, 1068}, dictWord{135, 0, 1872}, dictWord{4, 0, 13}, dictWord{5, 0, 567}, dictWord{7, 0, 1498}, dictWord{9, 0, 124}, dictWord{11, 0, 521}, dictWord{12, 0, 405}, dictWord{135, 11, 1023}, dictWord{135, 0, 1006}, dictWord{132, 0, 735}, dictWord{138, 0, 812}, dictWord{4, 0, 170}, dictWord{135, 0, 323}, dictWord{6, 11, 137}, dictWord{9, 11, 75}, dictWord{9, 11, 253}, dictWord{10, 11, 194}, dictWord{138, 11, 444}, dictWord{5, 0, 304}, dictWord{7, 0, 1403}, dictWord{5, 10, 864}, dictWord{10, 10, 648}, dictWord{11, 10, 671}, dictWord{143, 10, 46}, dictWord{135, 11, 1180}, dictWord{ 133, 10, 928, }, dictWord{4, 0, 148}, dictWord{133, 0, 742}, dictWord{11, 10, 986}, dictWord{140, 10, 682}, dictWord{133, 0, 523}, dictWord{135, 11, 1743}, dictWord{7, 0, 730}, dictWord{18, 0, 144}, dictWord{19, 0, 61}, dictWord{8, 10, 44}, dictWord{9, 10, 884}, dictWord{10, 10, 580}, dictWord{11, 10, 399}, dictWord{ 11, 10, 894, }, dictWord{143, 10, 122}, dictWord{5, 11, 760}, dictWord{7, 11, 542}, dictWord{8, 11, 135}, dictWord{136, 11, 496}, dictWord{136, 0, 981}, dictWord{133, 0, 111}, dictWord{10, 0, 132}, dictWord{11, 0, 191}, dictWord{11, 0, 358}, dictWord{139, 0, 460}, dictWord{7, 11, 319}, dictWord{7, 11, 355}, dictWord{ 7, 11, 763, }, dictWord{10, 11, 389}, dictWord{145, 11, 43}, dictWord{134, 0, 890}, dictWord{134, 0, 1420}, dictWord{136, 11, 557}, dictWord{ 133, 10, 518, }, dictWord{133, 0, 444}, dictWord{135, 0, 1787}, dictWord{135, 10, 1852}, dictWord{8, 0, 123}, dictWord{15, 0, 6}, dictWord{144, 0, 7}, dictWord{ 6, 0, 2041, }, dictWord{10, 11, 38}, dictWord{139, 11, 784}, dictWord{136, 0, 932}, dictWord{5, 0, 937}, dictWord{135, 0, 100}, dictWord{6, 0, 995}, dictWord{ 4, 11, 58, }, dictWord{5, 11, 286}, dictWord{6, 11, 319}, dictWord{7, 11, 402}, dictWord{7, 11, 1254}, dictWord{7, 11, 1903}, dictWord{8, 11, 356}, dictWord{ 140, 11, 408, }, dictWord{4, 11, 389}, dictWord{9, 11, 181}, dictWord{9, 11, 255}, dictWord{10, 11, 8}, dictWord{10, 11, 29}, dictWord{10, 11, 816}, dictWord{ 11, 11, 311, }, dictWord{11, 11, 561}, dictWord{12, 11, 67}, dictWord{141, 11, 181}, dictWord{138, 0, 255}, dictWord{5, 0, 138}, dictWord{4, 10, 934}, dictWord{ 136, 10, 610, }, dictWord{4, 0, 965}, dictWord{10, 0, 863}, dictWord{138, 0, 898}, dictWord{10, 10, 804}, dictWord{138, 10, 832}, dictWord{12, 0, 631}, dictWord{ 8, 10, 96, }, dictWord{9, 10, 36}, dictWord{10, 10, 607}, dictWord{11, 10, 423}, dictWord{11, 10, 442}, dictWord{12, 10, 309}, dictWord{14, 10, 199}, dictWord{ 15, 10, 90, }, dictWord{145, 10, 110}, dictWord{134, 0, 1394}, dictWord{4, 0, 652}, dictWord{8, 0, 320}, dictWord{22, 0, 6}, dictWord{22, 0, 16}, dictWord{ 9, 10, 13, }, dictWord{9, 10, 398}, dictWord{9, 10, 727}, dictWord{10, 10, 75}, dictWord{10, 10, 184}, dictWord{10, 10, 230}, dictWord{10, 10, 564}, dictWord{ 10, 10, 569, }, dictWord{11, 10, 973}, dictWord{12, 10, 70}, dictWord{12, 10, 189}, dictWord{13, 10, 57}, dictWord{141, 10, 257}, dictWord{6, 0, 897}, dictWord{ 134, 0, 1333, }, dictWord{4, 0, 692}, dictWord{133, 0, 321}, dictWord{133, 11, 373}, dictWord{135, 0, 922}, dictWord{5, 0, 619}, dictWord{133, 0, 698}, dictWord{ 137, 10, 631, }, dictWord{5, 10, 345}, dictWord{135, 10, 1016}, dictWord{9, 0, 957}, dictWord{9, 0, 1018}, dictWord{12, 0, 828}, dictWord{12, 0, 844}, dictWord{ 12, 0, 897, }, dictWord{12, 0, 901}, dictWord{12, 0, 943}, dictWord{15, 0, 180}, dictWord{18, 0, 197}, dictWord{18, 0, 200}, dictWord{18, 0, 213}, dictWord{ 18, 0, 214, }, dictWord{146, 0, 226}, dictWord{5, 0, 917}, dictWord{134, 0, 1659}, dictWord{135, 0, 1100}, dictWord{134, 0, 1173}, dictWord{134, 0, 1930}, dictWord{5, 0, 251}, dictWord{5, 0, 956}, dictWord{8, 0, 268}, dictWord{9, 0, 214}, dictWord{146, 0, 142}, dictWord{133, 10, 673}, dictWord{137, 10, 850}, dictWord{ 4, 10, 287, }, dictWord{133, 10, 1018}, dictWord{132, 11, 672}, dictWord{5, 0, 346}, dictWord{5, 0, 711}, dictWord{8, 0, 390}, dictWord{11, 11, 752}, dictWord{139, 11, 885}, dictWord{5, 10, 34}, dictWord{10, 10, 724}, dictWord{12, 10, 444}, dictWord{13, 10, 354}, dictWord{18, 10, 32}, dictWord{23, 10, 24}, dictWord{23, 10, 31}, dictWord{152, 10, 5}, dictWord{4, 11, 710}, dictWord{134, 11, 606}, dictWord{134, 0, 744}, dictWord{134, 10, 382}, dictWord{ 133, 11, 145, }, dictWord{4, 10, 329}, dictWord{7, 11, 884}, dictWord{140, 11, 124}, dictWord{4, 11, 467}, dictWord{5, 11, 405}, dictWord{134, 11, 544}, dictWord{ 9, 10, 846, }, dictWord{138, 10, 827}, dictWord{133, 0, 624}, dictWord{9, 11, 372}, dictWord{15, 11, 2}, dictWord{19, 11, 10}, dictWord{147, 11, 18}, dictWord{ 4, 11, 387, }, dictWord{135, 11, 1288}, dictWord{5, 0, 783}, dictWord{7, 0, 1998}, dictWord{135, 0, 2047}, dictWord{132, 10, 906}, dictWord{136, 10, 366}, dictWord{135, 11, 550}, dictWord{4, 10, 123}, dictWord{4, 10, 649}, dictWord{5, 10, 605}, dictWord{7, 10, 1509}, dictWord{136, 10, 36}, dictWord{ 134, 0, 1125, }, dictWord{132, 0, 594}, dictWord{133, 10, 767}, dictWord{135, 11, 1227}, dictWord{136, 11, 467}, dictWord{4, 11, 576}, dictWord{ 135, 11, 1263, }, dictWord{4, 0, 268}, dictWord{7, 0, 1534}, dictWord{135, 11, 1534}, dictWord{4, 10, 273}, dictWord{5, 10, 658}, dictWord{5, 11, 919}, dictWord{ 5, 10, 995, }, dictWord{134, 11, 1673}, dictWord{133, 0, 563}, dictWord{134, 10, 72}, dictWord{135, 10, 1345}, dictWord{4, 11, 82}, dictWord{5, 11, 333}, dictWord{ 5, 11, 904, }, dictWord{6, 11, 207}, dictWord{7, 11, 325}, dictWord{7, 11, 1726}, dictWord{8, 11, 101}, dictWord{10, 11, 778}, dictWord{139, 11, 220}, dictWord{5, 0, 37}, dictWord{6, 0, 39}, dictWord{6, 0, 451}, dictWord{7, 0, 218}, dictWord{7, 0, 667}, dictWord{7, 0, 1166}, dictWord{7, 0, 1687}, dictWord{8, 0, 662}, dictWord{16, 0, 2}, dictWord{133, 10, 589}, dictWord{134, 0, 1332}, dictWord{133, 11, 903}, dictWord{134, 0, 508}, dictWord{5, 10, 117}, dictWord{6, 10, 514}, dictWord{6, 10, 541}, dictWord{7, 10, 1164}, dictWord{7, 10, 1436}, dictWord{8, 10, 220}, dictWord{8, 10, 648}, dictWord{10, 10, 688}, dictWord{11, 10, 560}, dictWord{140, 11, 147}, dictWord{6, 11, 555}, dictWord{135, 11, 485}, dictWord{133, 10, 686}, dictWord{7, 0, 453}, dictWord{7, 0, 635}, dictWord{7, 0, 796}, dictWord{8, 0, 331}, dictWord{9, 0, 330}, dictWord{9, 0, 865}, dictWord{10, 0, 119}, dictWord{10, 0, 235}, dictWord{11, 0, 111}, dictWord{11, 0, 129}, dictWord{ 11, 0, 240, }, dictWord{12, 0, 31}, dictWord{12, 0, 66}, dictWord{12, 0, 222}, dictWord{12, 0, 269}, dictWord{12, 0, 599}, dictWord{12, 0, 684}, dictWord{12, 0, 689}, dictWord{12, 0, 691}, dictWord{142, 0, 345}, dictWord{135, 0, 1834}, dictWord{4, 11, 705}, dictWord{7, 11, 615}, dictWord{138, 11, 251}, dictWord{ 136, 11, 345, }, dictWord{137, 0, 527}, dictWord{6, 0, 98}, dictWord{7, 0, 702}, dictWord{135, 0, 991}, dictWord{11, 0, 576}, dictWord{14, 0, 74}, dictWord{7, 10, 196}, dictWord{10, 10, 765}, dictWord{11, 10, 347}, dictWord{11, 10, 552}, dictWord{11, 10, 790}, dictWord{12, 10, 263}, dictWord{13, 10, 246}, dictWord{ 13, 10, 270, }, dictWord{13, 10, 395}, dictWord{14, 10, 176}, dictWord{14, 10, 190}, dictWord{14, 10, 398}, dictWord{14, 10, 412}, dictWord{15, 10, 32}, dictWord{ 15, 10, 63, }, dictWord{16, 10, 88}, dictWord{147, 10, 105}, dictWord{134, 11, 90}, dictWord{13, 0, 84}, dictWord{141, 0, 122}, dictWord{6, 0, 37}, dictWord{ 7, 0, 299, }, dictWord{7, 0, 1666}, dictWord{8, 0, 195}, dictWord{8, 0, 316}, dictWord{9, 0, 178}, dictWord{9, 0, 276}, dictWord{9, 0, 339}, dictWord{9, 0, 536}, dictWord{ 10, 0, 102, }, dictWord{10, 0, 362}, dictWord{10, 0, 785}, dictWord{11, 0, 55}, dictWord{11, 0, 149}, dictWord{11, 0, 773}, dictWord{13, 0, 416}, dictWord{ 13, 0, 419, }, dictWord{14, 0, 38}, dictWord{14, 0, 41}, dictWord{142, 0, 210}, dictWord{5, 10, 381}, dictWord{135, 10, 1792}, dictWord{7, 11, 813}, dictWord{ 12, 11, 497, }, dictWord{141, 11, 56}, dictWord{7, 10, 616}, dictWord{138, 10, 413}, dictWord{133, 0, 645}, dictWord{6, 11, 125}, dictWord{135, 11, 1277}, dictWord{132, 0, 290}, dictWord{6, 0, 70}, dictWord{7, 0, 1292}, dictWord{10, 0, 762}, dictWord{139, 0, 288}, dictWord{6, 10, 120}, dictWord{7, 10, 1188}, dictWord{ 7, 10, 1710, }, dictWord{8, 10, 286}, dictWord{9, 10, 667}, dictWord{11, 10, 592}, dictWord{139, 10, 730}, dictWord{135, 11, 1784}, dictWord{7, 0, 1315}, dictWord{135, 11, 1315}, dictWord{134, 0, 1955}, dictWord{135, 10, 1146}, dictWord{7, 0, 131}, dictWord{7, 0, 422}, dictWord{8, 0, 210}, dictWord{ 140, 0, 573, }, dictWord{4, 10, 352}, dictWord{135, 10, 687}, dictWord{139, 0, 797}, dictWord{143, 0, 38}, dictWord{14, 0, 179}, dictWord{15, 0, 151}, dictWord{ 150, 0, 11, }, dictWord{7, 0, 488}, dictWord{4, 10, 192}, dictWord{5, 10, 49}, dictWord{6, 10, 200}, dictWord{6, 10, 293}, dictWord{134, 10, 1696}, dictWord{ 132, 0, 936, }, dictWord{135, 11, 703}, dictWord{6, 11, 160}, dictWord{7, 11, 1106}, dictWord{9, 11, 770}, dictWord{10, 11, 618}, dictWord{11, 11, 112}, dictWord{ 140, 11, 413, }, dictWord{5, 0, 453}, dictWord{134, 0, 441}, dictWord{135, 0, 595}, dictWord{132, 10, 650}, dictWord{132, 10, 147}, dictWord{6, 0, 991}, dictWord{6, 0, 1182}, dictWord{12, 11, 271}, dictWord{145, 11, 109}, dictWord{133, 10, 934}, dictWord{140, 11, 221}, dictWord{132, 0, 653}, dictWord{ 7, 0, 505, }, dictWord{135, 0, 523}, dictWord{134, 0, 903}, dictWord{135, 11, 479}, dictWord{7, 11, 304}, dictWord{9, 11, 646}, dictWord{9, 11, 862}, dictWord{ 10, 11, 262, }, dictWord{11, 11, 696}, dictWord{12, 11, 208}, dictWord{15, 11, 79}, dictWord{147, 11, 108}, dictWord{146, 0, 80}, dictWord{135, 11, 981}, dictWord{142, 0, 432}, dictWord{132, 0, 314}, dictWord{137, 11, 152}, dictWord{7, 0, 1368}, dictWord{8, 0, 232}, dictWord{8, 0, 361}, dictWord{10, 0, 682}, dictWord{138, 0, 742}, dictWord{135, 11, 1586}, dictWord{9, 0, 534}, dictWord{4, 11, 434}, dictWord{11, 11, 663}, dictWord{12, 11, 210}, dictWord{13, 11, 166}, dictWord{13, 11, 310}, dictWord{14, 11, 373}, dictWord{147, 11, 43}, dictWord{7, 11, 1091}, dictWord{135, 11, 1765}, dictWord{6, 11, 550}, dictWord{ 135, 11, 652, }, dictWord{137, 0, 27}, dictWord{142, 0, 12}, dictWord{4, 10, 637}, dictWord{5, 11, 553}, dictWord{7, 11, 766}, dictWord{138, 11, 824}, dictWord{ 7, 11, 737, }, dictWord{8, 11, 298}, dictWord{136, 11, 452}, dictWord{7, 0, 736}, dictWord{139, 0, 264}, dictWord{134, 0, 1657}, dictWord{133, 11, 292}, dictWord{138, 11, 135}, dictWord{6, 0, 844}, dictWord{134, 0, 1117}, dictWord{135, 0, 127}, dictWord{9, 10, 867}, dictWord{138, 10, 837}, dictWord{ 6, 0, 1184, }, dictWord{134, 0, 1208}, dictWord{134, 0, 1294}, dictWord{136, 0, 364}, dictWord{6, 0, 1415}, dictWord{7, 0, 1334}, dictWord{11, 0, 125}, dictWord{ 6, 10, 170, }, dictWord{7, 11, 393}, dictWord{8, 10, 395}, dictWord{8, 10, 487}, dictWord{10, 11, 603}, dictWord{11, 11, 206}, dictWord{141, 10, 147}, dictWord{137, 11, 748}, dictWord{4, 11, 912}, dictWord{137, 11, 232}, dictWord{4, 10, 535}, dictWord{136, 10, 618}, dictWord{137, 0, 792}, dictWord{ 7, 11, 1973, }, dictWord{136, 11, 716}, dictWord{135, 11, 98}, dictWord{5, 0, 909}, dictWord{9, 0, 849}, dictWord{138, 0, 805}, dictWord{4, 0, 630}, dictWord{ 132, 0, 699, }, dictWord{5, 11, 733}, dictWord{14, 11, 103}, dictWord{150, 10, 23}, dictWord{12, 11, 158}, dictWord{18, 11, 8}, dictWord{19, 11, 62}, dictWord{ 20, 11, 6, }, dictWord{22, 11, 4}, dictWord{23, 11, 2}, dictWord{151, 11, 9}, dictWord{132, 0, 968}, dictWord{132, 10, 778}, dictWord{132, 10, 46}, dictWord{5, 10, 811}, dictWord{6, 10, 1679}, dictWord{6, 10, 1714}, dictWord{135, 10, 2032}, dictWord{6, 0, 1446}, dictWord{7, 10, 1458}, dictWord{9, 10, 407}, dictWord{ 139, 10, 15, }, dictWord{7, 0, 206}, dictWord{7, 0, 397}, dictWord{7, 0, 621}, dictWord{7, 0, 640}, dictWord{8, 0, 124}, dictWord{8, 0, 619}, dictWord{9, 0, 305}, dictWord{ 9, 0, 643, }, dictWord{10, 0, 264}, dictWord{10, 0, 628}, dictWord{11, 0, 40}, dictWord{12, 0, 349}, dictWord{13, 0, 134}, dictWord{13, 0, 295}, dictWord{ 14, 0, 155, }, dictWord{15, 0, 120}, dictWord{18, 0, 105}, dictWord{6, 10, 34}, dictWord{7, 10, 1089}, dictWord{8, 10, 708}, dictWord{8, 10, 721}, dictWord{9, 10, 363}, dictWord{148, 10, 98}, dictWord{4, 0, 262}, dictWord{5, 0, 641}, dictWord{135, 0, 342}, dictWord{137, 11, 72}, dictWord{4, 0, 99}, dictWord{6, 0, 250}, dictWord{ 6, 0, 346, }, dictWord{8, 0, 127}, dictWord{138, 0, 81}, dictWord{132, 0, 915}, dictWord{5, 0, 75}, dictWord{9, 0, 517}, dictWord{10, 0, 470}, dictWord{12, 0, 155}, dictWord{141, 0, 224}, dictWord{132, 10, 462}, dictWord{11, 11, 600}, dictWord{11, 11, 670}, dictWord{141, 11, 245}, dictWord{142, 0, 83}, dictWord{ 5, 10, 73, }, dictWord{6, 10, 23}, dictWord{134, 10, 338}, dictWord{6, 0, 1031}, dictWord{139, 11, 923}, dictWord{7, 11, 164}, dictWord{7, 11, 1571}, dictWord{ 9, 11, 107, }, dictWord{140, 11, 225}, dictWord{134, 0, 1470}, dictWord{133, 0, 954}, dictWord{6, 0, 304}, dictWord{8, 0, 418}, dictWord{10, 0, 345}, dictWord{ 11, 0, 341, }, dictWord{139, 0, 675}, dictWord{9, 0, 410}, dictWord{139, 0, 425}, dictWord{4, 11, 27}, dictWord{5, 11, 484}, dictWord{5, 11, 510}, dictWord{6, 11, 434}, dictWord{7, 11, 1000}, dictWord{7, 11, 1098}, dictWord{8, 11, 2}, dictWord{136, 11, 200}, dictWord{134, 0, 734}, dictWord{140, 11, 257}, dictWord{ 7, 10, 725, }, dictWord{8, 10, 498}, dictWord{139, 10, 268}, dictWord{134, 0, 1822}, dictWord{135, 0, 1798}, dictWord{135, 10, 773}, dictWord{132, 11, 460}, dictWord{4, 11, 932}, dictWord{133, 11, 891}, dictWord{134, 0, 14}, dictWord{132, 10, 583}, dictWord{7, 10, 1462}, dictWord{8, 11, 625}, dictWord{ 139, 10, 659, }, dictWord{5, 0, 113}, dictWord{6, 0, 243}, dictWord{6, 0, 1708}, dictWord{7, 0, 1865}, dictWord{11, 0, 161}, dictWord{16, 0, 37}, dictWord{17, 0, 99}, dictWord{133, 10, 220}, dictWord{134, 11, 76}, dictWord{5, 11, 461}, dictWord{135, 11, 1925}, dictWord{140, 0, 69}, dictWord{8, 11, 92}, dictWord{ 137, 11, 221, }, dictWord{139, 10, 803}, dictWord{132, 10, 544}, dictWord{4, 0, 274}, dictWord{134, 0, 922}, dictWord{132, 0, 541}, dictWord{5, 0, 627}, dictWord{ 6, 10, 437, }, dictWord{6, 10, 564}, dictWord{11, 10, 181}, dictWord{141, 10, 183}, dictWord{135, 10, 1192}, dictWord{7, 0, 166}, dictWord{132, 11, 763}, dictWord{133, 11, 253}, dictWord{134, 0, 849}, dictWord{9, 11, 73}, dictWord{10, 11, 110}, dictWord{14, 11, 185}, dictWord{145, 11, 119}, dictWord{5, 11, 212}, dictWord{12, 11, 35}, dictWord{141, 11, 382}, dictWord{133, 0, 717}, dictWord{137, 0, 304}, dictWord{136, 0, 600}, dictWord{133, 0, 654}, dictWord{ 6, 0, 273, }, dictWord{10, 0, 188}, dictWord{13, 0, 377}, dictWord{146, 0, 77}, dictWord{4, 10, 790}, dictWord{5, 10, 273}, dictWord{134, 10, 394}, dictWord{ 132, 0, 543, }, dictWord{135, 0, 410}, dictWord{11, 0, 98}, dictWord{11, 0, 524}, dictWord{141, 0, 87}, dictWord{132, 0, 941}, dictWord{135, 11, 1175}, dictWord{ 4, 0, 250, }, dictWord{7, 0, 1612}, dictWord{11, 0, 186}, dictWord{12, 0, 133}, dictWord{6, 10, 127}, dictWord{7, 10, 1511}, dictWord{8, 10, 613}, dictWord{ 12, 10, 495, }, dictWord{12, 10, 586}, dictWord{12, 10, 660}, dictWord{12, 10, 668}, dictWord{14, 10, 385}, dictWord{15, 10, 118}, dictWord{17, 10, 20}, dictWord{ 146, 10, 98, }, dictWord{6, 0, 1785}, dictWord{133, 11, 816}, dictWord{134, 0, 1339}, dictWord{7, 0, 961}, dictWord{7, 0, 1085}, dictWord{7, 0, 1727}, dictWord{ 8, 0, 462, }, dictWord{6, 10, 230}, dictWord{135, 11, 1727}, dictWord{9, 0, 636}, dictWord{135, 10, 1954}, dictWord{132, 0, 780}, dictWord{5, 11, 869}, dictWord{5, 11, 968}, dictWord{6, 11, 1626}, dictWord{8, 11, 734}, dictWord{136, 11, 784}, dictWord{4, 11, 542}, dictWord{6, 11, 1716}, dictWord{6, 11, 1727}, dictWord{7, 11, 1082}, dictWord{7, 11, 1545}, dictWord{8, 11, 56}, dictWord{8, 11, 118}, dictWord{8, 11, 412}, dictWord{8, 11, 564}, dictWord{9, 11, 888}, dictWord{9, 11, 908}, dictWord{10, 11, 50}, dictWord{10, 11, 423}, dictWord{11, 11, 685}, dictWord{11, 11, 697}, dictWord{11, 11, 933}, dictWord{12, 11, 299}, dictWord{13, 11, 126}, dictWord{13, 11, 136}, dictWord{13, 11, 170}, dictWord{141, 11, 190}, dictWord{134, 11, 226}, dictWord{4, 11, 232}, dictWord{ 9, 11, 202, }, dictWord{10, 11, 474}, dictWord{140, 11, 433}, dictWord{137, 11, 500}, dictWord{5, 0, 529}, dictWord{136, 10, 68}, dictWord{132, 10, 654}, dictWord{ 4, 10, 156, }, dictWord{7, 10, 998}, dictWord{7, 10, 1045}, dictWord{7, 10, 1860}, dictWord{9, 10, 48}, dictWord{9, 10, 692}, dictWord{11, 10, 419}, dictWord{139, 10, 602}, dictWord{7, 0, 1276}, dictWord{8, 0, 474}, dictWord{9, 0, 652}, dictWord{6, 11, 108}, dictWord{7, 11, 1003}, dictWord{7, 11, 1181}, dictWord{136, 11, 343}, dictWord{7, 11, 1264}, dictWord{7, 11, 1678}, dictWord{11, 11, 945}, dictWord{12, 11, 341}, dictWord{12, 11, 471}, dictWord{ 140, 11, 569, }, dictWord{134, 11, 1712}, dictWord{5, 0, 948}, dictWord{12, 0, 468}, dictWord{19, 0, 96}, dictWord{148, 0, 24}, dictWord{4, 11, 133}, dictWord{ 7, 11, 711, }, dictWord{7, 11, 1298}, dictWord{7, 11, 1585}, dictWord{135, 11, 1929}, dictWord{6, 0, 753}, dictWord{140, 0, 657}, dictWord{139, 0, 941}, dictWord{ 6, 11, 99, }, dictWord{7, 11, 1808}, dictWord{145, 11, 57}, dictWord{6, 11, 574}, dictWord{7, 11, 428}, dictWord{7, 11, 1250}, dictWord{10, 11, 669}, dictWord{ 11, 11, 485, }, dictWord{11, 11, 840}, dictWord{12, 11, 300}, dictWord{142, 11, 250}, dictWord{4, 0, 532}, dictWord{5, 0, 706}, dictWord{135, 0, 662}, dictWord{ 5, 0, 837, }, dictWord{6, 0, 1651}, dictWord{139, 0, 985}, dictWord{7, 0, 1861}, dictWord{9, 10, 197}, dictWord{10, 10, 300}, dictWord{12, 10, 473}, dictWord{ 13, 10, 90, }, dictWord{141, 10, 405}, dictWord{137, 11, 252}, dictWord{6, 11, 323}, dictWord{135, 11, 1564}, dictWord{4, 0, 330}, dictWord{4, 0, 863}, dictWord{7, 0, 933}, dictWord{7, 0, 2012}, dictWord{8, 0, 292}, dictWord{7, 11, 461}, dictWord{8, 11, 775}, dictWord{138, 11, 435}, dictWord{132, 10, 606}, dictWord{ 4, 11, 655, }, dictWord{7, 11, 850}, dictWord{17, 11, 75}, dictWord{146, 11, 137}, dictWord{135, 0, 767}, dictWord{7, 10, 1978}, dictWord{136, 10, 676}, dictWord{132, 0, 641}, dictWord{135, 11, 1559}, dictWord{134, 0, 1233}, dictWord{137, 0, 242}, dictWord{17, 0, 114}, dictWord{4, 10, 361}, dictWord{ 133, 10, 315, }, dictWord{137, 0, 883}, dictWord{132, 10, 461}, dictWord{138, 0, 274}, dictWord{134, 0, 2008}, dictWord{134, 0, 1794}, dictWord{4, 0, 703}, dictWord{135, 0, 207}, dictWord{12, 0, 285}, dictWord{132, 10, 472}, dictWord{132, 0, 571}, dictWord{5, 0, 873}, dictWord{5, 0, 960}, dictWord{8, 0, 823}, dictWord{9, 0, 881}, dictWord{136, 11, 577}, dictWord{7, 0, 617}, dictWord{10, 0, 498}, dictWord{11, 0, 501}, dictWord{12, 0, 16}, dictWord{140, 0, 150}, dictWord{ 138, 10, 747, }, dictWord{132, 0, 431}, dictWord{133, 10, 155}, dictWord{11, 0, 283}, dictWord{11, 0, 567}, dictWord{7, 10, 163}, dictWord{8, 10, 319}, dictWord{ 9, 10, 402, }, dictWord{10, 10, 24}, dictWord{10, 10, 681}, dictWord{11, 10, 200}, dictWord{12, 10, 253}, dictWord{12, 10, 410}, dictWord{142, 10, 219}, dictWord{4, 11, 413}, dictWord{5, 11, 677}, dictWord{8, 11, 432}, dictWord{140, 11, 280}, dictWord{9, 0, 401}, dictWord{5, 10, 475}, dictWord{7, 10, 1780}, dictWord{11, 10, 297}, dictWord{11, 10, 558}, dictWord{14, 10, 322}, dictWord{147, 10, 76}, dictWord{6, 0, 781}, dictWord{9, 0, 134}, dictWord{10, 0, 2}, dictWord{ 10, 0, 27, }, dictWord{10, 0, 333}, dictWord{11, 0, 722}, dictWord{143, 0, 1}, dictWord{5, 0, 33}, dictWord{6, 0, 470}, dictWord{139, 0, 424}, dictWord{ 135, 0, 2006, }, dictWord{12, 0, 783}, dictWord{135, 10, 1956}, dictWord{136, 0, 274}, dictWord{135, 0, 1882}, dictWord{132, 0, 794}, dictWord{135, 0, 1848}, dictWord{5, 10, 944}, dictWord{134, 10, 1769}, dictWord{6, 0, 47}, dictWord{7, 0, 90}, dictWord{7, 0, 664}, dictWord{7, 0, 830}, dictWord{7, 0, 1380}, dictWord{ 7, 0, 2025, }, dictWord{8, 0, 448}, dictWord{136, 0, 828}, dictWord{132, 10, 144}, dictWord{134, 0, 1199}, dictWord{4, 11, 395}, dictWord{139, 11, 762}, dictWord{135, 11, 1504}, dictWord{9, 0, 417}, dictWord{137, 0, 493}, dictWord{9, 11, 174}, dictWord{10, 11, 164}, dictWord{11, 11, 440}, dictWord{11, 11, 841}, dictWord{143, 11, 98}, dictWord{134, 11, 426}, dictWord{139, 11, 1002}, dictWord{134, 0, 295}, dictWord{134, 0, 816}, dictWord{6, 10, 247}, dictWord{ 137, 10, 555, }, dictWord{133, 0, 1019}, dictWord{4, 0, 620}, dictWord{5, 11, 476}, dictWord{10, 10, 280}, dictWord{138, 10, 797}, dictWord{139, 0, 464}, dictWord{5, 11, 76}, dictWord{6, 11, 458}, dictWord{6, 11, 497}, dictWord{7, 11, 764}, dictWord{7, 11, 868}, dictWord{9, 11, 658}, dictWord{10, 11, 594}, dictWord{ 11, 11, 173, }, dictWord{11, 11, 566}, dictWord{12, 11, 20}, dictWord{12, 11, 338}, dictWord{141, 11, 200}, dictWord{134, 0, 208}, dictWord{4, 11, 526}, dictWord{7, 11, 1029}, dictWord{135, 11, 1054}, dictWord{132, 11, 636}, dictWord{6, 11, 233}, dictWord{7, 11, 660}, dictWord{7, 11, 1124}, dictWord{ 17, 11, 31, }, dictWord{19, 11, 22}, dictWord{151, 11, 14}, dictWord{10, 0, 442}, dictWord{133, 10, 428}, dictWord{10, 0, 930}, dictWord{140, 0, 778}, dictWord{ 6, 0, 68, }, dictWord{7, 0, 448}, dictWord{7, 0, 1629}, dictWord{7, 0, 1769}, dictWord{7, 0, 1813}, dictWord{8, 0, 442}, dictWord{8, 0, 516}, dictWord{9, 0, 710}, dictWord{ 10, 0, 282, }, dictWord{10, 0, 722}, dictWord{7, 10, 1717}, dictWord{138, 10, 546}, dictWord{134, 0, 1128}, dictWord{11, 0, 844}, dictWord{12, 0, 104}, dictWord{140, 0, 625}, dictWord{4, 11, 432}, dictWord{135, 11, 824}, dictWord{138, 10, 189}, dictWord{133, 0, 787}, dictWord{133, 10, 99}, dictWord{ 4, 11, 279, }, dictWord{7, 11, 301}, dictWord{137, 11, 362}, dictWord{8, 0, 491}, dictWord{4, 10, 397}, dictWord{136, 10, 555}, dictWord{4, 11, 178}, dictWord{ 133, 11, 399, }, dictWord{134, 0, 711}, dictWord{144, 0, 9}, dictWord{4, 0, 403}, dictWord{5, 0, 441}, dictWord{7, 0, 450}, dictWord{10, 0, 840}, dictWord{11, 0, 101}, dictWord{12, 0, 193}, dictWord{141, 0, 430}, dictWord{135, 11, 1246}, dictWord{12, 10, 398}, dictWord{20, 10, 39}, dictWord{21, 10, 11}, dictWord{ 150, 10, 41, }, dictWord{4, 10, 485}, dictWord{7, 10, 353}, dictWord{135, 10, 1523}, dictWord{6, 10, 366}, dictWord{7, 10, 1384}, dictWord{7, 10, 1601}, dictWord{ 135, 11, 1912, }, dictWord{7, 0, 396}, dictWord{10, 0, 160}, dictWord{135, 11, 396}, dictWord{137, 10, 282}, dictWord{134, 11, 1692}, dictWord{4, 10, 157}, dictWord{5, 10, 471}, dictWord{6, 11, 202}, dictWord{10, 11, 448}, dictWord{11, 11, 208}, dictWord{12, 11, 360}, dictWord{17, 11, 117}, dictWord{ 17, 11, 118, }, dictWord{18, 11, 27}, dictWord{148, 11, 67}, dictWord{133, 0, 679}, dictWord{137, 0, 326}, dictWord{136, 10, 116}, dictWord{7, 11, 872}, dictWord{ 10, 11, 516, }, dictWord{139, 11, 167}, dictWord{132, 11, 224}, dictWord{5, 11, 546}, dictWord{7, 11, 35}, dictWord{8, 11, 11}, dictWord{8, 11, 12}, dictWord{ 9, 11, 315, }, dictWord{9, 11, 533}, dictWord{10, 11, 802}, dictWord{11, 11, 166}, dictWord{12, 11, 525}, dictWord{142, 11, 243}, dictWord{7, 0, 1128}, dictWord{135, 11, 1920}, dictWord{5, 11, 241}, dictWord{8, 11, 242}, dictWord{9, 11, 451}, dictWord{10, 11, 667}, dictWord{11, 11, 598}, dictWord{ 140, 11, 429, }, dictWord{6, 0, 737}, dictWord{5, 10, 160}, dictWord{7, 10, 363}, dictWord{7, 10, 589}, dictWord{10, 10, 170}, dictWord{141, 10, 55}, dictWord{ 135, 0, 1796, }, dictWord{142, 11, 254}, dictWord{4, 0, 574}, dictWord{7, 0, 350}, dictWord{7, 0, 1024}, dictWord{8, 0, 338}, dictWord{9, 0, 677}, dictWord{138, 0, 808}, dictWord{134, 0, 1096}, dictWord{137, 11, 516}, dictWord{7, 0, 405}, dictWord{10, 0, 491}, dictWord{4, 10, 108}, dictWord{4, 11, 366}, dictWord{ 139, 10, 498, }, dictWord{11, 11, 337}, dictWord{142, 11, 303}, dictWord{134, 11, 1736}, dictWord{7, 0, 1081}, dictWord{140, 11, 364}, dictWord{7, 10, 1005}, dictWord{140, 10, 609}, dictWord{7, 0, 1676}, dictWord{4, 10, 895}, dictWord{133, 10, 772}, dictWord{135, 0, 2037}, dictWord{6, 0, 1207}, dictWord{ 11, 11, 916, }, dictWord{142, 11, 419}, dictWord{14, 11, 140}, dictWord{148, 11, 41}, dictWord{6, 11, 331}, dictWord{136, 11, 623}, dictWord{9, 0, 944}, dictWord{ 9, 0, 969, }, dictWord{9, 0, 1022}, dictWord{12, 0, 913}, dictWord{12, 0, 936}, dictWord{15, 0, 177}, dictWord{15, 0, 193}, dictWord{4, 10, 926}, dictWord{ 133, 10, 983, }, dictWord{5, 0, 354}, dictWord{135, 11, 506}, dictWord{8, 0, 598}, dictWord{9, 0, 664}, dictWord{138, 0, 441}, dictWord{4, 11, 640}, dictWord{ 133, 11, 513, }, dictWord{137, 0, 297}, dictWord{132, 10, 538}, dictWord{6, 10, 294}, dictWord{7, 10, 1267}, dictWord{136, 10, 624}, dictWord{7, 0, 1772}, dictWord{ 7, 11, 1888, }, dictWord{8, 11, 289}, dictWord{11, 11, 45}, dictWord{12, 11, 278}, dictWord{140, 11, 537}, dictWord{135, 10, 1325}, dictWord{138, 0, 751}, dictWord{141, 0, 37}, dictWord{134, 0, 1828}, dictWord{132, 10, 757}, dictWord{132, 11, 394}, dictWord{6, 0, 257}, dictWord{135, 0, 1522}, dictWord{ 4, 0, 582, }, dictWord{9, 0, 191}, dictWord{135, 11, 1931}, dictWord{7, 11, 574}, dictWord{7, 11, 1719}, dictWord{137, 11, 145}, dictWord{132, 11, 658}, dictWord{10, 0, 790}, dictWord{132, 11, 369}, dictWord{9, 11, 781}, dictWord{10, 11, 144}, dictWord{11, 11, 385}, dictWord{13, 11, 161}, dictWord{13, 11, 228}, dictWord{13, 11, 268}, dictWord{148, 11, 107}, dictWord{8, 0, 469}, dictWord{10, 0, 47}, dictWord{136, 11, 374}, dictWord{6, 0, 306}, dictWord{7, 0, 1140}, dictWord{7, 0, 1340}, dictWord{8, 0, 133}, dictWord{138, 0, 449}, dictWord{139, 0, 1011}, dictWord{7, 10, 1875}, dictWord{139, 10, 124}, dictWord{ 4, 11, 344, }, dictWord{6, 11, 498}, dictWord{139, 11, 323}, dictWord{137, 0, 299}, dictWord{132, 0, 837}, dictWord{133, 11, 906}, dictWord{5, 0, 329}, dictWord{ 8, 0, 260, }, dictWord{138, 0, 10}, dictWord{134, 0, 1320}, dictWord{4, 0, 657}, dictWord{146, 0, 158}, dictWord{135, 0, 1191}, dictWord{152, 0, 7}, dictWord{ 6, 0, 1939, }, dictWord{8, 0, 974}, dictWord{138, 0, 996}, dictWord{135, 0, 1665}, dictWord{11, 11, 126}, dictWord{139, 11, 287}, dictWord{143, 0, 8}, dictWord{ 14, 11, 149, }, dictWord{14, 11, 399}, dictWord{143, 11, 57}, dictWord{5, 0, 66}, dictWord{7, 0, 1896}, dictWord{136, 0, 288}, dictWord{7, 0, 175}, dictWord{ 10, 0, 494, }, dictWord{5, 10, 150}, dictWord{8, 10, 603}, dictWord{9, 10, 593}, dictWord{9, 10, 634}, dictWord{10, 10, 173}, dictWord{11, 10, 462}, dictWord{ 11, 10, 515, }, dictWord{13, 10, 216}, dictWord{13, 10, 288}, dictWord{142, 10, 400}, dictWord{134, 0, 1643}, dictWord{136, 11, 21}, dictWord{4, 0, 21}, dictWord{ 5, 0, 91, }, dictWord{5, 0, 648}, dictWord{5, 0, 750}, dictWord{5, 0, 781}, dictWord{6, 0, 54}, dictWord{6, 0, 112}, dictWord{6, 0, 402}, dictWord{6, 0, 1732}, dictWord{ 7, 0, 315, }, dictWord{7, 0, 749}, dictWord{7, 0, 1427}, dictWord{7, 0, 1900}, dictWord{9, 0, 78}, dictWord{9, 0, 508}, dictWord{10, 0, 611}, dictWord{10, 0, 811}, dictWord{11, 0, 510}, dictWord{11, 0, 728}, dictWord{13, 0, 36}, dictWord{14, 0, 39}, dictWord{16, 0, 83}, dictWord{17, 0, 124}, dictWord{148, 0, 30}, dictWord{ 4, 0, 668, }, dictWord{136, 0, 570}, dictWord{10, 0, 322}, dictWord{10, 0, 719}, dictWord{139, 0, 407}, dictWord{135, 11, 1381}, dictWord{136, 11, 193}, dictWord{12, 10, 108}, dictWord{141, 10, 291}, dictWord{132, 11, 616}, dictWord{136, 11, 692}, dictWord{8, 0, 125}, dictWord{8, 0, 369}, dictWord{8, 0, 524}, dictWord{10, 0, 486}, dictWord{11, 0, 13}, dictWord{11, 0, 381}, dictWord{11, 0, 736}, dictWord{11, 0, 766}, dictWord{11, 0, 845}, dictWord{13, 0, 114}, dictWord{ 13, 0, 292, }, dictWord{142, 0, 47}, dictWord{134, 0, 1247}, dictWord{6, 0, 1684}, dictWord{6, 0, 1731}, dictWord{7, 0, 356}, dictWord{8, 0, 54}, dictWord{8, 0, 221}, dictWord{9, 0, 225}, dictWord{9, 0, 356}, dictWord{10, 0, 77}, dictWord{10, 0, 446}, dictWord{10, 0, 731}, dictWord{12, 0, 404}, dictWord{141, 0, 491}, dictWord{135, 10, 1777}, dictWord{4, 11, 305}, dictWord{4, 10, 493}, dictWord{144, 10, 55}, dictWord{4, 0, 951}, dictWord{6, 0, 1809}, dictWord{6, 0, 1849}, dictWord{8, 0, 846}, dictWord{8, 0, 866}, dictWord{8, 0, 899}, dictWord{10, 0, 896}, dictWord{12, 0, 694}, dictWord{142, 0, 468}, dictWord{5, 11, 214}, dictWord{ 7, 11, 603, }, dictWord{8, 11, 611}, dictWord{9, 11, 686}, dictWord{10, 11, 88}, dictWord{11, 11, 459}, dictWord{11, 11, 496}, dictWord{12, 11, 463}, dictWord{ 12, 11, 590, }, dictWord{13, 11, 0}, dictWord{142, 11, 214}, dictWord{132, 0, 411}, dictWord{4, 0, 80}, dictWord{133, 0, 44}, dictWord{140, 11, 74}, dictWord{ 143, 0, 31, }, dictWord{7, 0, 669}, dictWord{6, 10, 568}, dictWord{7, 10, 1804}, dictWord{8, 10, 362}, dictWord{8, 10, 410}, dictWord{8, 10, 830}, dictWord{9, 10, 514}, dictWord{11, 10, 649}, dictWord{142, 10, 157}, dictWord{7, 0, 673}, dictWord{134, 11, 1703}, dictWord{132, 10, 625}, dictWord{134, 0, 1303}, dictWord{ 5, 0, 299, }, dictWord{135, 0, 1083}, dictWord{138, 0, 704}, dictWord{6, 0, 275}, dictWord{7, 0, 408}, dictWord{6, 10, 158}, dictWord{7, 10, 129}, dictWord{ 7, 10, 181, }, dictWord{8, 10, 276}, dictWord{8, 10, 377}, dictWord{10, 10, 523}, dictWord{11, 10, 816}, dictWord{12, 10, 455}, dictWord{13, 10, 303}, dictWord{ 142, 10, 135, }, dictWord{4, 0, 219}, dictWord{7, 0, 367}, dictWord{7, 0, 1713}, dictWord{7, 0, 1761}, dictWord{9, 0, 86}, dictWord{9, 0, 537}, dictWord{10, 0, 165}, dictWord{12, 0, 219}, dictWord{140, 0, 561}, dictWord{8, 0, 216}, dictWord{4, 10, 1}, dictWord{4, 11, 737}, dictWord{6, 11, 317}, dictWord{7, 10, 1143}, dictWord{ 7, 10, 1463, }, dictWord{9, 10, 207}, dictWord{9, 10, 390}, dictWord{9, 10, 467}, dictWord{10, 11, 98}, dictWord{11, 11, 294}, dictWord{11, 10, 836}, dictWord{ 12, 11, 60, }, dictWord{12, 11, 437}, dictWord{13, 11, 64}, dictWord{13, 11, 380}, dictWord{142, 11, 430}, dictWord{6, 11, 1758}, dictWord{8, 11, 520}, dictWord{9, 11, 345}, dictWord{9, 11, 403}, dictWord{142, 11, 350}, dictWord{5, 11, 47}, dictWord{10, 11, 242}, dictWord{138, 11, 579}, dictWord{5, 11, 139}, dictWord{7, 11, 1168}, dictWord{138, 11, 539}, dictWord{135, 0, 1319}, dictWord{4, 10, 295}, dictWord{4, 10, 723}, dictWord{5, 10, 895}, dictWord{ 7, 10, 1031, }, dictWord{8, 10, 199}, dictWord{8, 10, 340}, dictWord{9, 10, 153}, dictWord{9, 10, 215}, dictWord{10, 10, 21}, dictWord{10, 10, 59}, dictWord{ 10, 10, 80, }, dictWord{10, 10, 224}, dictWord{10, 10, 838}, dictWord{11, 10, 229}, dictWord{11, 10, 652}, dictWord{12, 10, 192}, dictWord{13, 10, 146}, dictWord{ 142, 10, 91, }, dictWord{140, 0, 428}, dictWord{137, 10, 51}, dictWord{133, 0, 514}, dictWord{5, 10, 309}, dictWord{140, 10, 211}, dictWord{6, 0, 1010}, dictWord{5, 10, 125}, dictWord{8, 10, 77}, dictWord{138, 10, 15}, dictWord{4, 0, 55}, dictWord{5, 0, 301}, dictWord{6, 0, 571}, dictWord{142, 0, 49}, dictWord{ 146, 0, 102, }, dictWord{136, 11, 370}, dictWord{4, 11, 107}, dictWord{7, 11, 613}, dictWord{8, 11, 358}, dictWord{8, 11, 439}, dictWord{8, 11, 504}, dictWord{ 9, 11, 501, }, dictWord{10, 11, 383}, dictWord{139, 11, 477}, dictWord{132, 11, 229}, dictWord{133, 0, 364}, dictWord{133, 10, 439}, dictWord{4, 11, 903}, dictWord{135, 11, 1816}, dictWord{11, 0, 379}, dictWord{140, 10, 76}, dictWord{4, 0, 76}, dictWord{4, 0, 971}, dictWord{7, 0, 1550}, dictWord{9, 0, 306}, dictWord{ 9, 0, 430, }, dictWord{9, 0, 663}, dictWord{10, 0, 683}, dictWord{10, 0, 921}, dictWord{11, 0, 427}, dictWord{11, 0, 753}, dictWord{12, 0, 334}, dictWord{12, 0, 442}, dictWord{14, 0, 258}, dictWord{14, 0, 366}, dictWord{143, 0, 131}, dictWord{137, 0, 52}, dictWord{4, 11, 47}, dictWord{6, 11, 373}, dictWord{7, 11, 452}, dictWord{7, 11, 543}, dictWord{7, 11, 1714}, dictWord{7, 11, 1856}, dictWord{9, 11, 6}, dictWord{11, 11, 257}, dictWord{139, 11, 391}, dictWord{4, 10, 8}, dictWord{ 7, 10, 1152, }, dictWord{7, 10, 1153}, dictWord{7, 10, 1715}, dictWord{9, 10, 374}, dictWord{10, 10, 478}, dictWord{139, 10, 648}, dictWord{4, 11, 785}, dictWord{133, 11, 368}, dictWord{135, 10, 1099}, dictWord{135, 11, 860}, dictWord{5, 11, 980}, dictWord{134, 11, 1754}, dictWord{134, 0, 1258}, dictWord{ 6, 0, 1058, }, dictWord{6, 0, 1359}, dictWord{7, 11, 536}, dictWord{7, 11, 1331}, dictWord{136, 11, 143}, dictWord{4, 0, 656}, dictWord{135, 0, 779}, dictWord{136, 10, 87}, dictWord{5, 11, 19}, dictWord{6, 11, 533}, dictWord{146, 11, 126}, dictWord{7, 0, 144}, dictWord{138, 10, 438}, dictWord{5, 11, 395}, dictWord{5, 11, 951}, dictWord{134, 11, 1776}, dictWord{135, 0, 1373}, dictWord{7, 0, 554}, dictWord{7, 0, 605}, dictWord{141, 0, 10}, dictWord{4, 10, 69}, dictWord{ 5, 10, 122, }, dictWord{9, 10, 656}, dictWord{138, 10, 464}, dictWord{5, 10, 849}, dictWord{134, 10, 1633}, dictWord{5, 0, 838}, dictWord{5, 0, 841}, dictWord{134, 0, 1649}, dictWord{133, 0, 1012}, dictWord{139, 10, 499}, dictWord{7, 10, 476}, dictWord{7, 10, 1592}, dictWord{138, 10, 87}, dictWord{ 6, 0, 251, }, dictWord{7, 0, 365}, dictWord{7, 0, 1357}, dictWord{7, 0, 1497}, dictWord{8, 0, 154}, dictWord{141, 0, 281}, dictWord{132, 11, 441}, dictWord{ 132, 11, 695, }, dictWord{7, 11, 497}, dictWord{9, 11, 387}, dictWord{147, 11, 81}, dictWord{133, 0, 340}, dictWord{14, 10, 283}, dictWord{142, 11, 283}, dictWord{ 134, 0, 810, }, dictWord{135, 11, 1894}, dictWord{139, 0, 495}, dictWord{5, 11, 284}, dictWord{6, 11, 49}, dictWord{6, 11, 350}, dictWord{7, 11, 1}, dictWord{ 7, 11, 377, }, dictWord{7, 11, 1693}, dictWord{8, 11, 18}, dictWord{8, 11, 678}, dictWord{9, 11, 161}, dictWord{9, 11, 585}, dictWord{9, 11, 671}, dictWord{ 9, 11, 839, }, dictWord{11, 11, 912}, dictWord{141, 11, 427}, dictWord{5, 10, 859}, dictWord{7, 10, 1160}, dictWord{8, 10, 107}, dictWord{9, 10, 291}, dictWord{ 9, 10, 439, }, dictWord{10, 10, 663}, dictWord{11, 10, 609}, dictWord{140, 10, 197}, dictWord{8, 0, 261}, dictWord{9, 0, 144}, dictWord{9, 0, 466}, dictWord{ 10, 0, 370, }, dictWord{12, 0, 470}, dictWord{13, 0, 144}, dictWord{142, 0, 348}, dictWord{137, 0, 897}, dictWord{6, 0, 248}, dictWord{9, 0, 546}, dictWord{10, 0, 535}, dictWord{11, 0, 681}, dictWord{141, 0, 135}, dictWord{4, 0, 358}, dictWord{135, 0, 1496}, dictWord{134, 0, 567}, dictWord{136, 0, 445}, dictWord{ 4, 10, 117, }, dictWord{6, 10, 372}, dictWord{7, 10, 1905}, dictWord{142, 10, 323}, dictWord{4, 10, 722}, dictWord{139, 10, 471}, dictWord{6, 0, 697}, dictWord{ 134, 0, 996, }, dictWord{7, 11, 2007}, dictWord{9, 11, 101}, dictWord{9, 11, 450}, dictWord{10, 11, 66}, dictWord{10, 11, 842}, dictWord{11, 11, 536}, dictWord{ 140, 11, 587, }, dictWord{132, 0, 577}, dictWord{134, 0, 1336}, dictWord{9, 10, 5}, dictWord{12, 10, 216}, dictWord{12, 10, 294}, dictWord{12, 10, 298}, dictWord{12, 10, 400}, dictWord{12, 10, 518}, dictWord{13, 10, 229}, dictWord{143, 10, 139}, dictWord{6, 0, 174}, dictWord{138, 0, 917}, dictWord{ 134, 10, 1774, }, dictWord{5, 10, 12}, dictWord{7, 10, 375}, dictWord{9, 10, 88}, dictWord{9, 10, 438}, dictWord{11, 11, 62}, dictWord{139, 10, 270}, dictWord{ 134, 11, 1766, }, dictWord{6, 11, 0}, dictWord{7, 11, 84}, dictWord{7, 10, 816}, dictWord{7, 10, 1241}, dictWord{9, 10, 283}, dictWord{9, 10, 520}, dictWord{10, 10, 213}, dictWord{10, 10, 307}, dictWord{10, 10, 463}, dictWord{10, 10, 671}, dictWord{10, 10, 746}, dictWord{11, 10, 401}, dictWord{11, 10, 794}, dictWord{ 11, 11, 895, }, dictWord{12, 10, 517}, dictWord{17, 11, 11}, dictWord{18, 10, 107}, dictWord{147, 10, 115}, dictWord{5, 0, 878}, dictWord{133, 0, 972}, dictWord{ 6, 11, 1665, }, dictWord{7, 11, 256}, dictWord{7, 11, 1388}, dictWord{138, 11, 499}, dictWord{4, 10, 258}, dictWord{136, 10, 639}, dictWord{4, 11, 22}, dictWord{5, 11, 10}, dictWord{6, 10, 22}, dictWord{7, 11, 848}, dictWord{7, 10, 903}, dictWord{7, 10, 1963}, dictWord{8, 11, 97}, dictWord{138, 10, 577}, dictWord{ 5, 10, 681, }, dictWord{136, 10, 782}, dictWord{133, 11, 481}, dictWord{132, 0, 351}, dictWord{4, 10, 664}, dictWord{5, 10, 804}, dictWord{139, 10, 1013}, dictWord{6, 11, 134}, dictWord{7, 11, 437}, dictWord{7, 11, 959}, dictWord{9, 11, 37}, dictWord{14, 11, 285}, dictWord{14, 11, 371}, dictWord{144, 11, 60}, dictWord{7, 11, 486}, dictWord{8, 11, 155}, dictWord{11, 11, 93}, dictWord{140, 11, 164}, dictWord{132, 0, 286}, dictWord{7, 0, 438}, dictWord{7, 0, 627}, dictWord{7, 0, 1516}, dictWord{8, 0, 40}, dictWord{9, 0, 56}, dictWord{9, 0, 294}, dictWord{10, 0, 30}, dictWord{11, 0, 969}, dictWord{11, 0, 995}, dictWord{146, 0, 148}, dictWord{5, 11, 591}, dictWord{135, 11, 337}, dictWord{134, 0, 1950}, dictWord{133, 10, 32}, dictWord{138, 11, 500}, dictWord{5, 11, 380}, dictWord{ 5, 11, 650, }, dictWord{136, 11, 310}, dictWord{4, 11, 364}, dictWord{7, 11, 1156}, dictWord{7, 11, 1187}, dictWord{137, 11, 409}, dictWord{4, 0, 738}, dictWord{134, 11, 482}, dictWord{4, 11, 781}, dictWord{6, 11, 487}, dictWord{7, 11, 926}, dictWord{8, 11, 263}, dictWord{139, 11, 500}, dictWord{135, 11, 418}, dictWord{6, 0, 2047}, dictWord{10, 0, 969}, dictWord{4, 10, 289}, dictWord{7, 10, 629}, dictWord{7, 10, 1698}, dictWord{7, 10, 1711}, dictWord{ 140, 10, 215, }, dictWord{6, 10, 450}, dictWord{136, 10, 109}, dictWord{134, 0, 818}, dictWord{136, 10, 705}, dictWord{133, 0, 866}, dictWord{4, 11, 94}, dictWord{ 135, 11, 1265, }, dictWord{132, 11, 417}, dictWord{134, 0, 1467}, dictWord{135, 10, 1238}, dictWord{4, 0, 972}, dictWord{6, 0, 1851}, dictWord{ 134, 0, 1857, }, dictWord{134, 0, 355}, dictWord{133, 0, 116}, dictWord{132, 0, 457}, dictWord{135, 11, 1411}, dictWord{4, 11, 408}, dictWord{4, 11, 741}, dictWord{135, 11, 500}, dictWord{134, 10, 26}, dictWord{142, 11, 137}, dictWord{5, 0, 527}, dictWord{6, 0, 189}, dictWord{7, 0, 859}, dictWord{136, 0, 267}, dictWord{11, 0, 104}, dictWord{11, 0, 554}, dictWord{15, 0, 60}, dictWord{143, 0, 125}, dictWord{134, 0, 1613}, dictWord{4, 10, 414}, dictWord{5, 10, 467}, dictWord{ 9, 10, 654, }, dictWord{10, 10, 451}, dictWord{12, 10, 59}, dictWord{141, 10, 375}, dictWord{135, 10, 17}, dictWord{134, 0, 116}, dictWord{135, 11, 541}, dictWord{135, 10, 955}, dictWord{6, 11, 73}, dictWord{135, 11, 177}, dictWord{133, 11, 576}, dictWord{134, 0, 886}, dictWord{133, 0, 487}, dictWord{ 4, 0, 86, }, dictWord{5, 0, 667}, dictWord{5, 0, 753}, dictWord{6, 0, 316}, dictWord{6, 0, 455}, dictWord{135, 0, 946}, dictWord{142, 11, 231}, dictWord{150, 0, 45}, dictWord{134, 0, 863}, dictWord{134, 0, 1953}, dictWord{6, 10, 280}, dictWord{10, 10, 502}, dictWord{11, 10, 344}, dictWord{140, 10, 38}, dictWord{4, 0, 79}, dictWord{7, 0, 1773}, dictWord{10, 0, 450}, dictWord{11, 0, 589}, dictWord{13, 0, 332}, dictWord{13, 0, 493}, dictWord{14, 0, 183}, dictWord{14, 0, 334}, dictWord{14, 0, 362}, dictWord{14, 0, 368}, dictWord{14, 0, 376}, dictWord{14, 0, 379}, dictWord{19, 0, 90}, dictWord{19, 0, 103}, dictWord{19, 0, 127}, dictWord{ 148, 0, 90, }, dictWord{5, 10, 45}, dictWord{7, 10, 1161}, dictWord{11, 10, 448}, dictWord{11, 10, 880}, dictWord{13, 10, 139}, dictWord{13, 10, 407}, dictWord{ 15, 10, 16, }, dictWord{17, 10, 95}, dictWord{18, 10, 66}, dictWord{18, 10, 88}, dictWord{18, 10, 123}, dictWord{149, 10, 7}, dictWord{136, 10, 777}, dictWord{ 4, 10, 410, }, dictWord{135, 10, 521}, dictWord{135, 10, 1778}, dictWord{135, 11, 538}, dictWord{142, 0, 381}, dictWord{133, 11, 413}, dictWord{ 134, 0, 1142, }, dictWord{6, 0, 1189}, dictWord{136, 11, 495}, dictWord{5, 0, 663}, dictWord{6, 0, 1962}, dictWord{134, 0, 2003}, dictWord{7, 11, 54}, dictWord{ 8, 11, 312, }, dictWord{10, 11, 191}, dictWord{10, 11, 614}, dictWord{140, 11, 567}, dictWord{132, 10, 436}, dictWord{133, 0, 846}, dictWord{10, 0, 528}, dictWord{11, 0, 504}, dictWord{7, 10, 1587}, dictWord{135, 10, 1707}, dictWord{5, 0, 378}, dictWord{8, 0, 465}, dictWord{9, 0, 286}, dictWord{10, 0, 185}, dictWord{ 10, 0, 562, }, dictWord{10, 0, 635}, dictWord{11, 0, 31}, dictWord{11, 0, 393}, dictWord{13, 0, 312}, dictWord{18, 0, 65}, dictWord{18, 0, 96}, dictWord{147, 0, 89}, dictWord{7, 0, 899}, dictWord{14, 0, 325}, dictWord{6, 11, 468}, dictWord{7, 11, 567}, dictWord{7, 11, 1478}, dictWord{8, 11, 530}, dictWord{142, 11, 290}, dictWord{7, 0, 1880}, dictWord{9, 0, 680}, dictWord{139, 0, 798}, dictWord{134, 0, 1770}, dictWord{132, 0, 648}, dictWord{150, 11, 35}, dictWord{5, 0, 945}, dictWord{6, 0, 1656}, dictWord{6, 0, 1787}, dictWord{7, 0, 167}, dictWord{8, 0, 824}, dictWord{9, 0, 391}, dictWord{10, 0, 375}, dictWord{139, 0, 185}, dictWord{ 6, 11, 484, }, dictWord{135, 11, 822}, dictWord{134, 0, 2046}, dictWord{7, 0, 1645}, dictWord{8, 0, 352}, dictWord{137, 0, 249}, dictWord{132, 0, 152}, dictWord{6, 0, 611}, dictWord{135, 0, 1733}, dictWord{6, 11, 1724}, dictWord{135, 11, 2022}, dictWord{133, 0, 1006}, dictWord{141, 11, 96}, dictWord{ 5, 0, 420, }, dictWord{135, 0, 1449}, dictWord{146, 11, 149}, dictWord{135, 0, 832}, dictWord{135, 10, 663}, dictWord{133, 0, 351}, dictWord{5, 0, 40}, dictWord{ 7, 0, 598, }, dictWord{7, 0, 1638}, dictWord{8, 0, 78}, dictWord{9, 0, 166}, dictWord{9, 0, 640}, dictWord{9, 0, 685}, dictWord{9, 0, 773}, dictWord{11, 0, 215}, dictWord{13, 0, 65}, dictWord{14, 0, 172}, dictWord{14, 0, 317}, dictWord{145, 0, 6}, dictWord{8, 0, 60}, dictWord{9, 0, 343}, dictWord{139, 0, 769}, dictWord{ 134, 0, 1354, }, dictWord{132, 0, 724}, dictWord{137, 0, 745}, dictWord{132, 11, 474}, dictWord{7, 0, 1951}, dictWord{8, 0, 765}, dictWord{8, 0, 772}, dictWord{ 140, 0, 671, }, dictWord{7, 0, 108}, dictWord{8, 0, 219}, dictWord{8, 0, 388}, dictWord{9, 0, 775}, dictWord{11, 0, 275}, dictWord{140, 0, 464}, dictWord{137, 0, 639}, dictWord{135, 10, 503}, dictWord{133, 11, 366}, dictWord{5, 0, 15}, dictWord{6, 0, 56}, dictWord{7, 0, 1758}, dictWord{8, 0, 500}, dictWord{9, 0, 730}, dictWord{ 11, 0, 331, }, dictWord{13, 0, 150}, dictWord{14, 0, 282}, dictWord{5, 11, 305}, dictWord{9, 11, 560}, dictWord{141, 11, 208}, dictWord{4, 10, 113}, dictWord{ 5, 10, 163, }, dictWord{5, 10, 735}, dictWord{7, 10, 1009}, dictWord{9, 10, 9}, dictWord{9, 10, 771}, dictWord{12, 10, 90}, dictWord{13, 10, 138}, dictWord{ 13, 10, 410, }, dictWord{143, 10, 128}, dictWord{4, 10, 324}, dictWord{138, 10, 104}, dictWord{135, 11, 466}, dictWord{142, 11, 27}, dictWord{134, 0, 1886}, dictWord{5, 0, 205}, dictWord{6, 0, 438}, dictWord{9, 0, 711}, dictWord{4, 11, 480}, dictWord{6, 11, 167}, dictWord{6, 11, 302}, dictWord{6, 11, 1642}, dictWord{ 7, 11, 130, }, dictWord{7, 11, 656}, dictWord{7, 11, 837}, dictWord{7, 11, 1547}, dictWord{7, 11, 1657}, dictWord{8, 11, 429}, dictWord{9, 11, 228}, dictWord{ 10, 11, 643, }, dictWord{13, 11, 289}, dictWord{13, 11, 343}, dictWord{147, 11, 101}, dictWord{134, 0, 865}, dictWord{6, 0, 2025}, dictWord{136, 0, 965}, dictWord{ 7, 11, 278, }, dictWord{10, 11, 739}, dictWord{11, 11, 708}, dictWord{141, 11, 348}, dictWord{133, 0, 534}, dictWord{135, 11, 1922}, dictWord{ 137, 0, 691, }, dictWord{4, 10, 935}, dictWord{133, 10, 823}, dictWord{6, 0, 443}, dictWord{9, 0, 237}, dictWord{9, 0, 571}, dictWord{9, 0, 695}, dictWord{10, 0, 139}, dictWord{11, 0, 715}, dictWord{12, 0, 417}, dictWord{141, 0, 421}, dictWord{5, 10, 269}, dictWord{7, 10, 434}, dictWord{7, 10, 891}, dictWord{8, 10, 339}, dictWord{ 9, 10, 702, }, dictWord{11, 10, 594}, dictWord{11, 10, 718}, dictWord{145, 10, 100}, dictWord{6, 0, 1555}, dictWord{7, 0, 878}, dictWord{9, 10, 485}, dictWord{141, 10, 264}, dictWord{134, 10, 1713}, dictWord{7, 10, 1810}, dictWord{11, 10, 866}, dictWord{12, 10, 103}, dictWord{141, 10, 495}, dictWord{ 135, 10, 900, }, dictWord{6, 0, 1410}, dictWord{9, 11, 316}, dictWord{139, 11, 256}, dictWord{4, 0, 995}, dictWord{135, 0, 1033}, dictWord{132, 0, 578}, dictWord{10, 0, 881}, dictWord{12, 0, 740}, dictWord{12, 0, 743}, dictWord{140, 0, 759}, dictWord{132, 0, 822}, dictWord{133, 0, 923}, dictWord{142, 10, 143}, dictWord{135, 11, 1696}, dictWord{6, 11, 363}, dictWord{7, 11, 1955}, dictWord{136, 11, 725}, dictWord{132, 0, 924}, dictWord{133, 0, 665}, dictWord{ 135, 10, 2029, }, dictWord{135, 0, 1901}, dictWord{4, 0, 265}, dictWord{6, 0, 1092}, dictWord{6, 0, 1417}, dictWord{7, 0, 807}, dictWord{135, 0, 950}, dictWord{ 5, 0, 93, }, dictWord{12, 0, 267}, dictWord{141, 0, 498}, dictWord{135, 0, 1451}, dictWord{5, 11, 813}, dictWord{135, 11, 2046}, dictWord{5, 10, 625}, dictWord{135, 10, 1617}, dictWord{135, 0, 747}, dictWord{6, 0, 788}, dictWord{137, 0, 828}, dictWord{7, 0, 184}, dictWord{11, 0, 307}, dictWord{11, 0, 400}, dictWord{15, 0, 130}, dictWord{5, 11, 712}, dictWord{7, 11, 1855}, dictWord{8, 10, 425}, dictWord{8, 10, 693}, dictWord{9, 10, 720}, dictWord{10, 10, 380}, dictWord{10, 10, 638}, dictWord{11, 11, 17}, dictWord{11, 10, 473}, dictWord{12, 10, 61}, dictWord{13, 11, 321}, dictWord{144, 11, 67}, dictWord{135, 0, 198}, dictWord{6, 11, 320}, dictWord{7, 11, 781}, dictWord{7, 11, 1921}, dictWord{9, 11, 55}, dictWord{10, 11, 186}, dictWord{10, 11, 273}, dictWord{10, 11, 664}, dictWord{10, 11, 801}, dictWord{11, 11, 996}, dictWord{11, 11, 997}, dictWord{13, 11, 157}, dictWord{142, 11, 170}, dictWord{136, 11, 271}, dictWord{ 135, 0, 994, }, dictWord{7, 11, 103}, dictWord{7, 11, 863}, dictWord{11, 11, 184}, dictWord{14, 11, 299}, dictWord{145, 11, 62}, dictWord{11, 10, 551}, dictWord{142, 10, 159}, dictWord{5, 0, 233}, dictWord{5, 0, 320}, dictWord{6, 0, 140}, dictWord{8, 0, 295}, dictWord{8, 0, 615}, dictWord{136, 11, 615}, dictWord{ 133, 0, 978, }, dictWord{4, 0, 905}, dictWord{6, 0, 1701}, dictWord{137, 0, 843}, dictWord{132, 10, 168}, dictWord{4, 0, 974}, dictWord{8, 0, 850}, dictWord{ 12, 0, 709, }, dictWord{12, 0, 768}, dictWord{140, 0, 786}, dictWord{135, 10, 91}, dictWord{152, 0, 6}, dictWord{138, 10, 532}, dictWord{135, 10, 1884}, dictWord{132, 0, 509}, dictWord{6, 0, 1307}, dictWord{135, 0, 273}, dictWord{5, 11, 77}, dictWord{7, 11, 1455}, dictWord{10, 11, 843}, dictWord{19, 11, 73}, dictWord{150, 11, 5}, dictWord{132, 11, 458}, dictWord{135, 11, 1420}, dictWord{6, 11, 109}, dictWord{138, 11, 382}, dictWord{6, 0, 201}, dictWord{6, 11, 330}, dictWord{7, 10, 70}, dictWord{7, 11, 1084}, dictWord{10, 10, 240}, dictWord{11, 11, 142}, dictWord{147, 10, 93}, dictWord{7, 0, 1041}, dictWord{ 140, 11, 328, }, dictWord{133, 11, 354}, dictWord{134, 0, 1040}, dictWord{133, 0, 693}, dictWord{134, 0, 774}, dictWord{139, 0, 234}, dictWord{132, 0, 336}, dictWord{7, 0, 1399}, dictWord{139, 10, 392}, dictWord{20, 0, 22}, dictWord{148, 11, 22}, dictWord{5, 0, 802}, dictWord{7, 0, 2021}, dictWord{136, 0, 805}, dictWord{ 5, 0, 167, }, dictWord{5, 0, 899}, dictWord{6, 0, 410}, dictWord{137, 0, 777}, dictWord{137, 0, 789}, dictWord{134, 0, 1705}, dictWord{7, 10, 655}, dictWord{ 135, 10, 1844, }, dictWord{4, 10, 145}, dictWord{6, 10, 176}, dictWord{7, 10, 395}, dictWord{137, 10, 562}, dictWord{132, 10, 501}, dictWord{135, 0, 10}, dictWord{5, 0, 11}, dictWord{6, 0, 117}, dictWord{6, 0, 485}, dictWord{7, 0, 1133}, dictWord{9, 0, 582}, dictWord{9, 0, 594}, dictWord{10, 0, 82}, dictWord{11, 0, 21}, dictWord{11, 0, 818}, dictWord{12, 0, 535}, dictWord{13, 0, 86}, dictWord{20, 0, 91}, dictWord{23, 0, 13}, dictWord{134, 10, 509}, dictWord{4, 0, 264}, dictWord{ 7, 0, 1067, }, dictWord{8, 0, 204}, dictWord{8, 0, 385}, dictWord{139, 0, 953}, dictWord{139, 11, 737}, dictWord{138, 0, 56}, dictWord{134, 0, 1917}, dictWord{ 133, 0, 470, }, dictWord{10, 11, 657}, dictWord{14, 11, 297}, dictWord{142, 11, 361}, dictWord{135, 11, 412}, dictWord{7, 0, 1198}, dictWord{7, 11, 1198}, dictWord{8, 11, 556}, dictWord{14, 11, 123}, dictWord{14, 11, 192}, dictWord{143, 11, 27}, dictWord{7, 11, 1985}, dictWord{14, 11, 146}, dictWord{15, 11, 42}, dictWord{16, 11, 23}, dictWord{17, 11, 86}, dictWord{146, 11, 17}, dictWord{11, 0, 1015}, dictWord{136, 11, 122}, dictWord{4, 10, 114}, dictWord{ 9, 10, 492, }, dictWord{13, 10, 462}, dictWord{142, 10, 215}, dictWord{4, 10, 77}, dictWord{5, 10, 361}, dictWord{6, 10, 139}, dictWord{6, 10, 401}, dictWord{ 6, 10, 404, }, dictWord{7, 10, 413}, dictWord{7, 10, 715}, dictWord{7, 10, 1716}, dictWord{11, 10, 279}, dictWord{12, 10, 179}, dictWord{12, 10, 258}, dictWord{ 13, 10, 244, }, dictWord{142, 10, 358}, dictWord{134, 10, 1717}, dictWord{7, 10, 1061}, dictWord{8, 10, 82}, dictWord{11, 10, 250}, dictWord{12, 10, 420}, dictWord{141, 10, 184}, dictWord{133, 0, 715}, dictWord{135, 10, 724}, dictWord{9, 0, 919}, dictWord{9, 0, 922}, dictWord{9, 0, 927}, dictWord{9, 0, 933}, dictWord{9, 0, 962}, dictWord{9, 0, 1000}, dictWord{9, 0, 1002}, dictWord{9, 0, 1021}, dictWord{12, 0, 890}, dictWord{12, 0, 907}, dictWord{12, 0, 930}, dictWord{ 15, 0, 207, }, dictWord{15, 0, 228}, dictWord{15, 0, 238}, dictWord{149, 0, 61}, dictWord{8, 0, 794}, dictWord{9, 0, 400}, dictWord{10, 0, 298}, dictWord{142, 0, 228}, dictWord{5, 11, 430}, dictWord{5, 11, 932}, dictWord{6, 11, 131}, dictWord{7, 11, 417}, dictWord{9, 11, 522}, dictWord{11, 11, 314}, dictWord{141, 11, 390}, dictWord{132, 0, 867}, dictWord{8, 0, 724}, dictWord{132, 11, 507}, dictWord{137, 11, 261}, dictWord{4, 11, 343}, dictWord{133, 11, 511}, dictWord{ 6, 0, 190, }, dictWord{7, 0, 768}, dictWord{135, 0, 1170}, dictWord{6, 10, 513}, dictWord{135, 10, 1052}, dictWord{7, 11, 455}, dictWord{138, 11, 591}, dictWord{134, 0, 1066}, dictWord{137, 10, 899}, dictWord{14, 0, 67}, dictWord{147, 0, 60}, dictWord{4, 0, 948}, dictWord{18, 0, 174}, dictWord{146, 0, 176}, dictWord{135, 0, 1023}, dictWord{7, 10, 1417}, dictWord{12, 10, 382}, dictWord{17, 10, 48}, dictWord{152, 10, 12}, dictWord{134, 11, 575}, dictWord{ 132, 0, 764, }, dictWord{6, 10, 545}, dictWord{7, 10, 565}, dictWord{7, 10, 1669}, dictWord{10, 10, 114}, dictWord{11, 10, 642}, dictWord{140, 10, 618}, dictWord{ 6, 0, 137, }, dictWord{9, 0, 75}, dictWord{9, 0, 253}, dictWord{10, 0, 194}, dictWord{138, 0, 444}, dictWord{4, 0, 756}, dictWord{133, 10, 5}, dictWord{8, 0, 1008}, dictWord{135, 10, 192}, dictWord{132, 0, 842}, dictWord{11, 0, 643}, dictWord{12, 0, 115}, dictWord{136, 10, 763}, dictWord{139, 0, 67}, dictWord{ 133, 10, 759, }, dictWord{4, 0, 821}, dictWord{5, 0, 760}, dictWord{7, 0, 542}, dictWord{8, 0, 135}, dictWord{8, 0, 496}, dictWord{135, 11, 580}, dictWord{7, 10, 370}, dictWord{7, 10, 1007}, dictWord{7, 10, 1177}, dictWord{135, 10, 1565}, dictWord{135, 10, 1237}, dictWord{140, 0, 736}, dictWord{7, 0, 319}, dictWord{ 7, 0, 355, }, dictWord{7, 0, 763}, dictWord{10, 0, 389}, dictWord{145, 0, 43}, dictWord{8, 11, 333}, dictWord{138, 11, 182}, dictWord{4, 10, 87}, dictWord{5, 10, 250}, dictWord{141, 10, 298}, dictWord{138, 0, 786}, dictWord{134, 0, 2044}, dictWord{8, 11, 330}, dictWord{140, 11, 477}, dictWord{135, 11, 1338}, dictWord{132, 11, 125}, dictWord{134, 0, 1030}, dictWord{134, 0, 1083}, dictWord{132, 11, 721}, dictWord{135, 10, 814}, dictWord{7, 11, 776}, dictWord{ 8, 11, 145, }, dictWord{147, 11, 56}, dictWord{134, 0, 1226}, dictWord{4, 10, 57}, dictWord{7, 10, 1195}, dictWord{7, 10, 1438}, dictWord{7, 10, 1548}, dictWord{ 7, 10, 1835, }, dictWord{7, 10, 1904}, dictWord{9, 10, 757}, dictWord{10, 10, 604}, dictWord{139, 10, 519}, dictWord{7, 11, 792}, dictWord{8, 11, 147}, dictWord{10, 11, 821}, dictWord{139, 11, 1021}, dictWord{137, 11, 797}, dictWord{4, 0, 58}, dictWord{5, 0, 286}, dictWord{6, 0, 319}, dictWord{7, 0, 402}, dictWord{ 7, 0, 1254, }, dictWord{7, 0, 1903}, dictWord{8, 0, 356}, dictWord{140, 0, 408}, dictWord{4, 0, 389}, dictWord{4, 0, 815}, dictWord{9, 0, 181}, dictWord{9, 0, 255}, dictWord{10, 0, 8}, dictWord{10, 0, 29}, dictWord{10, 0, 816}, dictWord{11, 0, 311}, dictWord{11, 0, 561}, dictWord{12, 0, 67}, dictWord{141, 0, 181}, dictWord{ 7, 11, 1472, }, dictWord{135, 11, 1554}, dictWord{7, 11, 1071}, dictWord{7, 11, 1541}, dictWord{7, 11, 1767}, dictWord{7, 11, 1806}, dictWord{7, 11, 1999}, dictWord{9, 11, 248}, dictWord{10, 11, 400}, dictWord{11, 11, 162}, dictWord{11, 11, 178}, dictWord{11, 11, 242}, dictWord{12, 11, 605}, dictWord{ 15, 11, 26, }, dictWord{144, 11, 44}, dictWord{5, 11, 168}, dictWord{5, 11, 930}, dictWord{8, 11, 74}, dictWord{9, 11, 623}, dictWord{12, 11, 500}, dictWord{ 12, 11, 579, }, dictWord{13, 11, 41}, dictWord{143, 11, 93}, dictWord{6, 11, 220}, dictWord{7, 11, 1101}, dictWord{141, 11, 105}, dictWord{5, 0, 474}, dictWord{ 7, 0, 507, }, dictWord{4, 10, 209}, dictWord{7, 11, 507}, dictWord{135, 10, 902}, dictWord{132, 0, 427}, dictWord{6, 0, 413}, dictWord{7, 10, 335}, dictWord{ 7, 10, 1437, }, dictWord{7, 10, 1668}, dictWord{8, 10, 553}, dictWord{8, 10, 652}, dictWord{8, 10, 656}, dictWord{9, 10, 558}, dictWord{11, 10, 743}, dictWord{ 149, 10, 18, }, dictWord{132, 0, 730}, dictWord{6, 11, 19}, dictWord{7, 11, 1413}, dictWord{139, 11, 428}, dictWord{133, 0, 373}, dictWord{132, 10, 559}, dictWord{7, 11, 96}, dictWord{8, 11, 401}, dictWord{137, 11, 896}, dictWord{7, 0, 799}, dictWord{7, 0, 1972}, dictWord{5, 10, 1017}, dictWord{138, 10, 511}, dictWord{135, 0, 1793}, dictWord{7, 11, 1961}, dictWord{7, 11, 1965}, dictWord{8, 11, 702}, dictWord{136, 11, 750}, dictWord{8, 11, 150}, dictWord{8, 11, 737}, dictWord{140, 11, 366}, dictWord{132, 0, 322}, dictWord{133, 10, 709}, dictWord{8, 11, 800}, dictWord{9, 11, 148}, dictWord{9, 11, 872}, dictWord{ 9, 11, 890, }, dictWord{11, 11, 309}, dictWord{11, 11, 1001}, dictWord{13, 11, 267}, dictWord{141, 11, 323}, dictWord{134, 10, 1745}, dictWord{7, 0, 290}, dictWord{136, 10, 206}, dictWord{7, 0, 1651}, dictWord{145, 0, 89}, dictWord{139, 0, 2}, dictWord{132, 0, 672}, dictWord{6, 0, 1860}, dictWord{8, 0, 905}, dictWord{ 10, 0, 844, }, dictWord{10, 0, 846}, dictWord{10, 0, 858}, dictWord{12, 0, 699}, dictWord{12, 0, 746}, dictWord{140, 0, 772}, dictWord{135, 11, 424}, dictWord{133, 11, 547}, dictWord{133, 0, 737}, dictWord{5, 11, 490}, dictWord{6, 11, 615}, dictWord{6, 11, 620}, dictWord{135, 11, 683}, dictWord{6, 0, 746}, dictWord{134, 0, 1612}, dictWord{132, 10, 776}, dictWord{9, 11, 385}, dictWord{149, 11, 17}, dictWord{133, 0, 145}, dictWord{135, 10, 1272}, dictWord{ 7, 0, 884, }, dictWord{140, 0, 124}, dictWord{4, 0, 387}, dictWord{135, 0, 1288}, dictWord{5, 11, 133}, dictWord{136, 10, 406}, dictWord{136, 11, 187}, dictWord{ 6, 0, 679, }, dictWord{8, 11, 8}, dictWord{138, 11, 0}, dictWord{135, 0, 550}, dictWord{135, 11, 798}, dictWord{136, 11, 685}, dictWord{7, 11, 1086}, dictWord{145, 11, 46}, dictWord{8, 10, 175}, dictWord{10, 10, 168}, dictWord{138, 10, 573}, dictWord{135, 0, 1305}, dictWord{4, 0, 576}, dictWord{ 135, 0, 1263, }, dictWord{6, 0, 686}, dictWord{134, 0, 1563}, dictWord{134, 0, 607}, dictWord{5, 0, 919}, dictWord{134, 0, 1673}, dictWord{148, 0, 37}, dictWord{ 8, 11, 774, }, dictWord{10, 11, 670}, dictWord{140, 11, 51}, dictWord{133, 10, 784}, dictWord{139, 10, 882}, dictWord{4, 0, 82}, dictWord{5, 0, 333}, dictWord{ 5, 0, 904, }, dictWord{6, 0, 207}, dictWord{7, 0, 325}, dictWord{7, 0, 1726}, dictWord{8, 0, 101}, dictWord{10, 0, 778}, dictWord{139, 0, 220}, dictWord{135, 11, 371}, dictWord{132, 0, 958}, dictWord{133, 0, 903}, dictWord{4, 11, 127}, dictWord{5, 11, 350}, dictWord{6, 11, 356}, dictWord{8, 11, 426}, dictWord{9, 11, 572}, dictWord{10, 11, 247}, dictWord{139, 11, 312}, dictWord{140, 0, 147}, dictWord{6, 11, 59}, dictWord{7, 11, 885}, dictWord{9, 11, 603}, dictWord{ 141, 11, 397, }, dictWord{10, 0, 367}, dictWord{9, 10, 14}, dictWord{9, 10, 441}, dictWord{139, 10, 9}, dictWord{11, 10, 966}, dictWord{12, 10, 287}, dictWord{ 13, 10, 342, }, dictWord{13, 10, 402}, dictWord{15, 10, 110}, dictWord{143, 10, 163}, dictWord{134, 0, 690}, dictWord{132, 0, 705}, dictWord{9, 0, 651}, dictWord{ 11, 0, 971, }, dictWord{13, 0, 273}, dictWord{7, 10, 1428}, dictWord{7, 10, 1640}, dictWord{7, 10, 1867}, dictWord{9, 10, 169}, dictWord{9, 10, 182}, dictWord{ 9, 10, 367, }, dictWord{9, 10, 478}, dictWord{9, 10, 506}, dictWord{9, 10, 551}, dictWord{9, 10, 557}, dictWord{9, 10, 648}, dictWord{9, 10, 697}, dictWord{ 9, 10, 705, }, dictWord{9, 10, 725}, dictWord{9, 10, 787}, dictWord{9, 10, 794}, dictWord{10, 10, 198}, dictWord{10, 10, 214}, dictWord{10, 10, 267}, dictWord{ 10, 10, 275, }, dictWord{10, 10, 456}, dictWord{10, 10, 551}, dictWord{10, 10, 561}, dictWord{10, 10, 613}, dictWord{10, 10, 627}, dictWord{10, 10, 668}, dictWord{10, 10, 675}, dictWord{10, 10, 691}, dictWord{10, 10, 695}, dictWord{10, 10, 707}, dictWord{10, 10, 715}, dictWord{11, 10, 183}, dictWord{ 11, 10, 201, }, dictWord{11, 10, 262}, dictWord{11, 10, 352}, dictWord{11, 10, 439}, dictWord{11, 10, 493}, dictWord{11, 10, 572}, dictWord{11, 10, 591}, dictWord{ 11, 10, 608, }, dictWord{11, 10, 611}, dictWord{11, 10, 646}, dictWord{11, 10, 674}, dictWord{11, 10, 711}, dictWord{11, 10, 751}, dictWord{11, 10, 761}, dictWord{11, 10, 776}, dictWord{11, 10, 785}, dictWord{11, 10, 850}, dictWord{11, 10, 853}, dictWord{11, 10, 862}, dictWord{11, 10, 865}, dictWord{ 11, 10, 868, }, dictWord{11, 10, 875}, dictWord{11, 10, 898}, dictWord{11, 10, 902}, dictWord{11, 10, 903}, dictWord{11, 10, 910}, dictWord{11, 10, 932}, dictWord{ 11, 10, 942, }, dictWord{11, 10, 957}, dictWord{11, 10, 967}, dictWord{11, 10, 972}, dictWord{12, 10, 148}, dictWord{12, 10, 195}, dictWord{12, 10, 220}, dictWord{12, 10, 237}, dictWord{12, 10, 318}, dictWord{12, 10, 339}, dictWord{12, 10, 393}, dictWord{12, 10, 445}, dictWord{12, 10, 450}, dictWord{ 12, 10, 474, }, dictWord{12, 10, 505}, dictWord{12, 10, 509}, dictWord{12, 10, 533}, dictWord{12, 10, 591}, dictWord{12, 10, 594}, dictWord{12, 10, 597}, dictWord{ 12, 10, 621, }, dictWord{12, 10, 633}, dictWord{12, 10, 642}, dictWord{13, 10, 59}, dictWord{13, 10, 60}, dictWord{13, 10, 145}, dictWord{13, 10, 239}, dictWord{13, 10, 250}, dictWord{13, 10, 329}, dictWord{13, 10, 344}, dictWord{13, 10, 365}, dictWord{13, 10, 372}, dictWord{13, 10, 387}, dictWord{ 13, 10, 403, }, dictWord{13, 10, 414}, dictWord{13, 10, 456}, dictWord{13, 10, 470}, dictWord{13, 10, 478}, dictWord{13, 10, 483}, dictWord{13, 10, 489}, dictWord{ 14, 10, 55, }, dictWord{14, 10, 57}, dictWord{14, 10, 81}, dictWord{14, 10, 90}, dictWord{14, 10, 148}, dictWord{14, 10, 239}, dictWord{14, 10, 266}, dictWord{ 14, 10, 321, }, dictWord{14, 10, 326}, dictWord{14, 10, 327}, dictWord{14, 10, 330}, dictWord{14, 10, 347}, dictWord{14, 10, 355}, dictWord{14, 10, 401}, dictWord{14, 10, 404}, dictWord{14, 10, 411}, dictWord{14, 10, 414}, dictWord{14, 10, 416}, dictWord{14, 10, 420}, dictWord{15, 10, 61}, dictWord{ 15, 10, 74, }, dictWord{15, 10, 87}, dictWord{15, 10, 88}, dictWord{15, 10, 94}, dictWord{15, 10, 96}, dictWord{15, 10, 116}, dictWord{15, 10, 149}, dictWord{ 15, 10, 154, }, dictWord{16, 10, 50}, dictWord{16, 10, 63}, dictWord{16, 10, 73}, dictWord{17, 10, 2}, dictWord{17, 10, 66}, dictWord{17, 10, 92}, dictWord{17, 10, 103}, dictWord{17, 10, 112}, dictWord{17, 10, 120}, dictWord{18, 10, 50}, dictWord{18, 10, 54}, dictWord{18, 10, 82}, dictWord{18, 10, 86}, dictWord{18, 10, 90}, dictWord{18, 10, 111}, dictWord{18, 10, 115}, dictWord{18, 10, 156}, dictWord{19, 10, 40}, dictWord{19, 10, 79}, dictWord{20, 10, 78}, dictWord{149, 10, 22}, dictWord{7, 0, 887}, dictWord{5, 10, 161}, dictWord{135, 10, 839}, dictWord{142, 11, 98}, dictWord{134, 0, 90}, dictWord{138, 11, 356}, dictWord{ 135, 11, 441, }, dictWord{6, 11, 111}, dictWord{7, 11, 4}, dictWord{8, 11, 163}, dictWord{8, 11, 776}, dictWord{138, 11, 566}, dictWord{134, 0, 908}, dictWord{ 134, 0, 1261, }, dictWord{7, 0, 813}, dictWord{12, 0, 497}, dictWord{141, 0, 56}, dictWord{134, 0, 1235}, dictWord{135, 0, 429}, dictWord{135, 11, 1994}, dictWord{138, 0, 904}, dictWord{6, 0, 125}, dictWord{7, 0, 1277}, dictWord{137, 0, 772}, dictWord{151, 0, 12}, dictWord{4, 0, 841}, dictWord{5, 0, 386}, dictWord{ 133, 11, 386, }, dictWord{5, 11, 297}, dictWord{135, 11, 1038}, dictWord{6, 0, 860}, dictWord{6, 0, 1069}, dictWord{135, 11, 309}, dictWord{136, 0, 946}, dictWord{135, 10, 1814}, dictWord{141, 11, 418}, dictWord{136, 11, 363}, dictWord{10, 0, 768}, dictWord{139, 0, 787}, dictWord{22, 11, 30}, dictWord{ 150, 11, 33, }, dictWord{6, 0, 160}, dictWord{7, 0, 1106}, dictWord{9, 0, 770}, dictWord{11, 0, 112}, dictWord{140, 0, 413}, dictWord{11, 11, 216}, dictWord{ 139, 11, 340, }, dictWord{136, 10, 139}, dictWord{135, 11, 1390}, dictWord{135, 11, 808}, dictWord{132, 11, 280}, dictWord{12, 0, 271}, dictWord{17, 0, 109}, dictWord{7, 10, 643}, dictWord{136, 10, 236}, dictWord{140, 11, 54}, dictWord{4, 11, 421}, dictWord{133, 11, 548}, dictWord{11, 0, 719}, dictWord{12, 0, 36}, dictWord{141, 0, 337}, dictWord{7, 0, 581}, dictWord{9, 0, 644}, dictWord{137, 0, 699}, dictWord{11, 11, 511}, dictWord{13, 11, 394}, dictWord{14, 11, 298}, dictWord{14, 11, 318}, dictWord{146, 11, 103}, dictWord{7, 0, 304}, dictWord{9, 0, 646}, dictWord{9, 0, 862}, dictWord{11, 0, 696}, dictWord{12, 0, 208}, dictWord{15, 0, 79}, dictWord{147, 0, 108}, dictWord{4, 0, 631}, dictWord{7, 0, 1126}, dictWord{135, 0, 1536}, dictWord{135, 11, 1527}, dictWord{8, 0, 880}, dictWord{10, 0, 869}, dictWord{138, 0, 913}, dictWord{7, 0, 1513}, dictWord{5, 10, 54}, dictWord{6, 11, 254}, dictWord{9, 11, 109}, dictWord{138, 11, 103}, dictWord{135, 0, 981}, dictWord{133, 11, 729}, dictWord{132, 10, 744}, dictWord{132, 0, 434}, dictWord{134, 0, 550}, dictWord{7, 0, 930}, dictWord{10, 0, 476}, dictWord{13, 0, 452}, dictWord{19, 0, 104}, dictWord{6, 11, 1630}, dictWord{10, 10, 402}, dictWord{146, 10, 55}, dictWord{5, 0, 553}, dictWord{138, 0, 824}, dictWord{136, 0, 452}, dictWord{8, 0, 151}, dictWord{137, 10, 624}, dictWord{132, 10, 572}, dictWord{132, 0, 772}, dictWord{133, 11, 671}, dictWord{ 133, 0, 292, }, dictWord{138, 0, 135}, dictWord{132, 11, 889}, dictWord{140, 11, 207}, dictWord{9, 0, 504}, dictWord{6, 10, 43}, dictWord{7, 10, 38}, dictWord{ 8, 10, 248, }, dictWord{138, 10, 513}, dictWord{6, 0, 1089}, dictWord{135, 11, 1910}, dictWord{4, 11, 627}, dictWord{133, 11, 775}, dictWord{135, 0, 783}, dictWord{133, 10, 766}, dictWord{133, 10, 363}, dictWord{7, 0, 387}, dictWord{135, 11, 387}, dictWord{7, 0, 393}, dictWord{10, 0, 603}, dictWord{11, 0, 206}, dictWord{7, 11, 202}, dictWord{11, 11, 362}, dictWord{11, 11, 948}, dictWord{140, 11, 388}, dictWord{6, 11, 507}, dictWord{7, 11, 451}, dictWord{8, 11, 389}, dictWord{12, 11, 490}, dictWord{13, 11, 16}, dictWord{13, 11, 215}, dictWord{13, 11, 351}, dictWord{18, 11, 132}, dictWord{147, 11, 125}, dictWord{ 4, 0, 912, }, dictWord{9, 0, 232}, dictWord{135, 11, 841}, dictWord{6, 10, 258}, dictWord{140, 10, 409}, dictWord{5, 10, 249}, dictWord{148, 10, 82}, dictWord{ 136, 11, 566, }, dictWord{6, 0, 977}, dictWord{135, 11, 1214}, dictWord{7, 0, 1973}, dictWord{136, 0, 716}, dictWord{135, 0, 98}, dictWord{133, 0, 733}, dictWord{ 5, 11, 912, }, dictWord{134, 11, 1695}, dictWord{5, 10, 393}, dictWord{6, 10, 378}, dictWord{7, 10, 1981}, dictWord{9, 10, 32}, dictWord{9, 10, 591}, dictWord{10, 10, 685}, dictWord{10, 10, 741}, dictWord{142, 10, 382}, dictWord{133, 10, 788}, dictWord{10, 0, 19}, dictWord{11, 0, 911}, dictWord{7, 10, 1968}, dictWord{141, 10, 509}, dictWord{5, 0, 668}, dictWord{5, 11, 236}, dictWord{6, 11, 572}, dictWord{8, 11, 492}, dictWord{11, 11, 618}, dictWord{144, 11, 56}, dictWord{135, 11, 1789}, dictWord{4, 0, 360}, dictWord{5, 0, 635}, dictWord{5, 0, 700}, dictWord{5, 10, 58}, dictWord{5, 10, 171}, dictWord{5, 10, 683}, dictWord{ 6, 10, 291, }, dictWord{6, 10, 566}, dictWord{7, 10, 1650}, dictWord{11, 10, 523}, dictWord{12, 10, 273}, dictWord{12, 10, 303}, dictWord{15, 10, 39}, dictWord{143, 10, 111}, dictWord{133, 0, 901}, dictWord{134, 10, 589}, dictWord{5, 11, 190}, dictWord{136, 11, 318}, dictWord{140, 0, 656}, dictWord{ 7, 0, 726, }, dictWord{152, 0, 9}, dictWord{4, 10, 917}, dictWord{133, 10, 1005}, dictWord{135, 10, 1598}, dictWord{134, 11, 491}, dictWord{4, 10, 919}, dictWord{133, 11, 434}, dictWord{137, 0, 72}, dictWord{6, 0, 1269}, dictWord{6, 0, 1566}, dictWord{134, 0, 1621}, dictWord{9, 0, 463}, dictWord{10, 0, 595}, dictWord{4, 10, 255}, dictWord{5, 10, 302}, dictWord{6, 10, 132}, dictWord{7, 10, 128}, dictWord{7, 10, 283}, dictWord{7, 10, 1299}, dictWord{10, 10, 52}, dictWord{ 10, 10, 514, }, dictWord{11, 10, 925}, dictWord{13, 10, 92}, dictWord{142, 10, 309}, dictWord{135, 0, 1454}, dictWord{134, 0, 1287}, dictWord{11, 0, 600}, dictWord{13, 0, 245}, dictWord{137, 10, 173}, dictWord{136, 0, 989}, dictWord{7, 0, 164}, dictWord{7, 0, 1571}, dictWord{9, 0, 107}, dictWord{140, 0, 225}, dictWord{6, 0, 1061}, dictWord{141, 10, 442}, dictWord{4, 0, 27}, dictWord{5, 0, 484}, dictWord{5, 0, 510}, dictWord{6, 0, 434}, dictWord{7, 0, 1000}, dictWord{ 7, 0, 1098, }, dictWord{136, 0, 2}, dictWord{7, 11, 85}, dictWord{7, 11, 247}, dictWord{8, 11, 585}, dictWord{10, 11, 163}, dictWord{138, 11, 316}, dictWord{ 11, 11, 103, }, dictWord{142, 11, 0}, dictWord{134, 0, 1127}, dictWord{4, 0, 460}, dictWord{134, 0, 852}, dictWord{134, 10, 210}, dictWord{4, 0, 932}, dictWord{ 133, 0, 891, }, dictWord{6, 0, 588}, dictWord{147, 11, 83}, dictWord{8, 0, 625}, dictWord{4, 10, 284}, dictWord{134, 10, 223}, dictWord{134, 0, 76}, dictWord{8, 0, 92}, dictWord{137, 0, 221}, dictWord{4, 11, 124}, dictWord{10, 11, 457}, dictWord{11, 11, 121}, dictWord{11, 11, 169}, dictWord{11, 11, 422}, dictWord{ 11, 11, 870, }, dictWord{12, 11, 214}, dictWord{13, 11, 389}, dictWord{14, 11, 187}, dictWord{143, 11, 77}, dictWord{9, 11, 618}, dictWord{138, 11, 482}, dictWord{ 4, 10, 218, }, dictWord{7, 10, 526}, dictWord{143, 10, 137}, dictWord{13, 0, 9}, dictWord{14, 0, 104}, dictWord{14, 0, 311}, dictWord{4, 10, 270}, dictWord{ 5, 10, 192, }, dictWord{6, 10, 332}, dictWord{135, 10, 1322}, dictWord{140, 10, 661}, dictWord{135, 11, 1193}, dictWord{6, 11, 107}, dictWord{7, 11, 638}, dictWord{7, 11, 1632}, dictWord{137, 11, 396}, dictWord{132, 0, 763}, dictWord{4, 0, 622}, dictWord{5, 11, 370}, dictWord{134, 11, 1756}, dictWord{ 133, 0, 253, }, dictWord{135, 0, 546}, dictWord{9, 0, 73}, dictWord{10, 0, 110}, dictWord{14, 0, 185}, dictWord{17, 0, 119}, dictWord{133, 11, 204}, dictWord{7, 0, 624}, dictWord{7, 0, 916}, dictWord{10, 0, 256}, dictWord{139, 0, 87}, dictWord{7, 10, 379}, dictWord{8, 10, 481}, dictWord{137, 10, 377}, dictWord{5, 0, 212}, dictWord{12, 0, 35}, dictWord{13, 0, 382}, dictWord{5, 11, 970}, dictWord{134, 11, 1706}, dictWord{9, 0, 746}, dictWord{5, 10, 1003}, dictWord{134, 10, 149}, dictWord{10, 0, 150}, dictWord{11, 0, 849}, dictWord{13, 0, 330}, dictWord{8, 10, 262}, dictWord{9, 10, 627}, dictWord{11, 10, 214}, dictWord{11, 10, 404}, dictWord{11, 10, 457}, dictWord{11, 10, 780}, dictWord{11, 10, 913}, dictWord{13, 10, 401}, dictWord{142, 10, 200}, dictWord{134, 0, 1466}, dictWord{ 135, 11, 3, }, dictWord{6, 0, 1299}, dictWord{4, 11, 35}, dictWord{5, 11, 121}, dictWord{5, 11, 483}, dictWord{5, 11, 685}, dictWord{6, 11, 489}, dictWord{7, 11, 1204}, dictWord{136, 11, 394}, dictWord{135, 10, 742}, dictWord{4, 10, 142}, dictWord{136, 10, 304}, dictWord{4, 11, 921}, dictWord{133, 11, 1007}, dictWord{ 134, 0, 1518, }, dictWord{6, 0, 1229}, dictWord{135, 0, 1175}, dictWord{133, 0, 816}, dictWord{12, 0, 159}, dictWord{4, 10, 471}, dictWord{4, 11, 712}, dictWord{ 5, 10, 51, }, dictWord{6, 10, 602}, dictWord{7, 10, 925}, dictWord{8, 10, 484}, dictWord{138, 10, 195}, dictWord{134, 11, 1629}, dictWord{5, 0, 869}, dictWord{ 5, 0, 968, }, dictWord{6, 0, 1626}, dictWord{8, 0, 734}, dictWord{136, 0, 784}, dictWord{4, 0, 542}, dictWord{6, 0, 1716}, dictWord{6, 0, 1727}, dictWord{ 7, 0, 1082, }, dictWord{7, 0, 1545}, dictWord{8, 0, 56}, dictWord{8, 0, 118}, dictWord{8, 0, 412}, dictWord{8, 0, 564}, dictWord{9, 0, 888}, dictWord{9, 0, 908}, dictWord{ 10, 0, 50, }, dictWord{10, 0, 423}, dictWord{11, 0, 685}, dictWord{11, 0, 697}, dictWord{11, 0, 933}, dictWord{12, 0, 299}, dictWord{13, 0, 126}, dictWord{ 13, 0, 136, }, dictWord{13, 0, 170}, dictWord{13, 0, 190}, dictWord{136, 10, 688}, dictWord{132, 10, 697}, dictWord{4, 0, 232}, dictWord{9, 0, 202}, dictWord{ 10, 0, 474, }, dictWord{140, 0, 433}, dictWord{136, 0, 212}, dictWord{6, 0, 108}, dictWord{7, 0, 1003}, dictWord{7, 0, 1181}, dictWord{8, 0, 111}, dictWord{ 136, 0, 343, }, dictWord{5, 10, 221}, dictWord{135, 11, 1255}, dictWord{133, 11, 485}, dictWord{134, 0, 1712}, dictWord{142, 0, 216}, dictWord{5, 0, 643}, dictWord{ 6, 0, 516, }, dictWord{4, 11, 285}, dictWord{5, 11, 317}, dictWord{6, 11, 301}, dictWord{7, 11, 7}, dictWord{8, 11, 153}, dictWord{10, 11, 766}, dictWord{ 11, 11, 468, }, dictWord{12, 11, 467}, dictWord{141, 11, 143}, dictWord{4, 0, 133}, dictWord{7, 0, 711}, dictWord{7, 0, 1298}, dictWord{135, 0, 1585}, dictWord{ 134, 0, 650, }, dictWord{135, 11, 512}, dictWord{6, 0, 99}, dictWord{7, 0, 1808}, dictWord{145, 0, 57}, dictWord{6, 0, 246}, dictWord{6, 0, 574}, dictWord{7, 0, 428}, dictWord{9, 0, 793}, dictWord{10, 0, 669}, dictWord{11, 0, 485}, dictWord{11, 0, 840}, dictWord{12, 0, 300}, dictWord{14, 0, 250}, dictWord{145, 0, 55}, dictWord{ 4, 10, 132, }, dictWord{5, 10, 69}, dictWord{135, 10, 1242}, dictWord{136, 0, 1023}, dictWord{7, 0, 302}, dictWord{132, 10, 111}, dictWord{135, 0, 1871}, dictWord{132, 0, 728}, dictWord{9, 0, 252}, dictWord{132, 10, 767}, dictWord{6, 0, 461}, dictWord{7, 0, 1590}, dictWord{7, 10, 1416}, dictWord{7, 10, 2005}, dictWord{8, 10, 131}, dictWord{8, 10, 466}, dictWord{9, 10, 672}, dictWord{13, 10, 252}, dictWord{148, 10, 103}, dictWord{6, 0, 323}, dictWord{135, 0, 1564}, dictWord{7, 0, 461}, dictWord{136, 0, 775}, dictWord{6, 10, 44}, dictWord{136, 10, 368}, dictWord{139, 0, 172}, dictWord{132, 0, 464}, dictWord{4, 10, 570}, dictWord{133, 10, 120}, dictWord{137, 11, 269}, dictWord{6, 10, 227}, dictWord{135, 10, 1589}, dictWord{6, 11, 1719}, dictWord{6, 11, 1735}, dictWord{ 7, 11, 2016, }, dictWord{7, 11, 2020}, dictWord{8, 11, 837}, dictWord{137, 11, 852}, dictWord{7, 0, 727}, dictWord{146, 0, 73}, dictWord{132, 0, 1023}, dictWord{135, 11, 852}, dictWord{135, 10, 1529}, dictWord{136, 0, 577}, dictWord{138, 11, 568}, dictWord{134, 0, 1037}, dictWord{8, 11, 67}, dictWord{ 138, 11, 419, }, dictWord{4, 0, 413}, dictWord{5, 0, 677}, dictWord{8, 0, 432}, dictWord{140, 0, 280}, dictWord{10, 0, 600}, dictWord{6, 10, 1667}, dictWord{ 7, 11, 967, }, dictWord{7, 10, 2036}, dictWord{141, 11, 11}, dictWord{6, 10, 511}, dictWord{140, 10, 132}, dictWord{6, 0, 799}, dictWord{5, 10, 568}, dictWord{ 6, 10, 138, }, dictWord{135, 10, 1293}, dictWord{8, 0, 159}, dictWord{4, 10, 565}, dictWord{136, 10, 827}, dictWord{7, 0, 646}, dictWord{7, 0, 1730}, dictWord{ 11, 0, 446, }, dictWord{141, 0, 178}, dictWord{4, 10, 922}, dictWord{133, 10, 1023}, dictWord{135, 11, 11}, dictWord{132, 0, 395}, dictWord{11, 0, 145}, dictWord{135, 10, 1002}, dictWord{9, 0, 174}, dictWord{10, 0, 164}, dictWord{11, 0, 440}, dictWord{11, 0, 514}, dictWord{11, 0, 841}, dictWord{15, 0, 98}, dictWord{149, 0, 20}, dictWord{134, 0, 426}, dictWord{10, 0, 608}, dictWord{139, 0, 1002}, dictWord{7, 11, 320}, dictWord{8, 11, 51}, dictWord{12, 11, 481}, dictWord{12, 11, 570}, dictWord{148, 11, 106}, dictWord{9, 0, 977}, dictWord{9, 0, 983}, dictWord{132, 11, 445}, dictWord{138, 0, 250}, dictWord{139, 0, 100}, dictWord{6, 0, 1982}, dictWord{136, 10, 402}, dictWord{133, 11, 239}, dictWord{4, 10, 716}, dictWord{141, 10, 31}, dictWord{5, 0, 476}, dictWord{7, 11, 83}, dictWord{7, 11, 1990}, dictWord{8, 11, 130}, dictWord{139, 11, 720}, dictWord{8, 10, 691}, dictWord{136, 10, 731}, dictWord{5, 11, 123}, dictWord{ 6, 11, 530, }, dictWord{7, 11, 348}, dictWord{135, 11, 1419}, dictWord{5, 0, 76}, dictWord{6, 0, 458}, dictWord{6, 0, 497}, dictWord{7, 0, 868}, dictWord{9, 0, 658}, dictWord{10, 0, 594}, dictWord{11, 0, 173}, dictWord{11, 0, 566}, dictWord{12, 0, 20}, dictWord{12, 0, 338}, dictWord{141, 0, 200}, dictWord{9, 11, 139}, dictWord{ 10, 11, 399, }, dictWord{11, 11, 469}, dictWord{12, 11, 634}, dictWord{141, 11, 223}, dictWord{9, 10, 840}, dictWord{138, 10, 803}, dictWord{133, 10, 847}, dictWord{11, 11, 223}, dictWord{140, 11, 168}, dictWord{132, 11, 210}, dictWord{8, 0, 447}, dictWord{9, 10, 53}, dictWord{9, 10, 268}, dictWord{9, 10, 901}, dictWord{10, 10, 518}, dictWord{10, 10, 829}, dictWord{11, 10, 188}, dictWord{13, 10, 74}, dictWord{14, 10, 46}, dictWord{15, 10, 17}, dictWord{15, 10, 33}, dictWord{17, 10, 40}, dictWord{18, 10, 36}, dictWord{19, 10, 20}, dictWord{22, 10, 1}, dictWord{152, 10, 2}, dictWord{4, 0, 526}, dictWord{7, 0, 1029}, dictWord{135, 0, 1054}, dictWord{19, 11, 59}, dictWord{150, 11, 2}, dictWord{4, 0, 636}, dictWord{6, 0, 1875}, dictWord{6, 0, 1920}, dictWord{9, 0, 999}, dictWord{ 12, 0, 807, }, dictWord{12, 0, 825}, dictWord{15, 0, 179}, dictWord{15, 0, 190}, dictWord{18, 0, 182}, dictWord{136, 10, 532}, dictWord{6, 0, 1699}, dictWord{ 7, 0, 660, }, dictWord{7, 0, 1124}, dictWord{17, 0, 31}, dictWord{19, 0, 22}, dictWord{151, 0, 14}, dictWord{135, 10, 681}, dictWord{132, 11, 430}, dictWord{ 140, 10, 677, }, dictWord{4, 10, 684}, dictWord{136, 10, 384}, dictWord{132, 11, 756}, dictWord{133, 11, 213}, dictWord{7, 0, 188}, dictWord{7, 10, 110}, dictWord{ 8, 10, 290, }, dictWord{8, 10, 591}, dictWord{9, 10, 382}, dictWord{9, 10, 649}, dictWord{11, 10, 71}, dictWord{11, 10, 155}, dictWord{11, 10, 313}, dictWord{ 12, 10, 5, }, dictWord{13, 10, 325}, dictWord{142, 10, 287}, dictWord{7, 10, 360}, dictWord{7, 10, 425}, dictWord{9, 10, 66}, dictWord{9, 10, 278}, dictWord{ 138, 10, 644, }, dictWord{142, 11, 164}, dictWord{4, 0, 279}, dictWord{7, 0, 301}, dictWord{137, 0, 362}, dictWord{134, 11, 586}, dictWord{135, 0, 1743}, dictWord{4, 0, 178}, dictWord{133, 0, 399}, dictWord{4, 10, 900}, dictWord{133, 10, 861}, dictWord{5, 10, 254}, dictWord{7, 10, 985}, dictWord{136, 10, 73}, dictWord{133, 11, 108}, dictWord{7, 10, 1959}, dictWord{136, 10, 683}, dictWord{133, 11, 219}, dictWord{4, 11, 193}, dictWord{5, 11, 916}, dictWord{ 7, 11, 364, }, dictWord{10, 11, 398}, dictWord{10, 11, 726}, dictWord{11, 11, 317}, dictWord{11, 11, 626}, dictWord{12, 11, 142}, dictWord{12, 11, 288}, dictWord{ 12, 11, 678, }, dictWord{13, 11, 313}, dictWord{15, 11, 113}, dictWord{18, 11, 114}, dictWord{21, 11, 30}, dictWord{150, 11, 53}, dictWord{6, 11, 241}, dictWord{7, 11, 907}, dictWord{8, 11, 832}, dictWord{9, 11, 342}, dictWord{10, 11, 729}, dictWord{11, 11, 284}, dictWord{11, 11, 445}, dictWord{11, 11, 651}, dictWord{11, 11, 863}, dictWord{13, 11, 398}, dictWord{146, 11, 99}, dictWord{132, 0, 872}, dictWord{134, 0, 831}, dictWord{134, 0, 1692}, dictWord{ 6, 0, 202, }, dictWord{6, 0, 1006}, dictWord{9, 0, 832}, dictWord{10, 0, 636}, dictWord{11, 0, 208}, dictWord{12, 0, 360}, dictWord{17, 0, 118}, dictWord{18, 0, 27}, dictWord{20, 0, 67}, dictWord{137, 11, 734}, dictWord{132, 10, 725}, dictWord{7, 11, 993}, dictWord{138, 11, 666}, dictWord{134, 0, 1954}, dictWord{ 134, 10, 196, }, dictWord{7, 0, 872}, dictWord{10, 0, 516}, dictWord{139, 0, 167}, dictWord{133, 10, 831}, dictWord{4, 11, 562}, dictWord{9, 11, 254}, dictWord{ 139, 11, 879, }, dictWord{137, 0, 313}, dictWord{4, 0, 224}, dictWord{132, 11, 786}, dictWord{11, 0, 24}, dictWord{12, 0, 170}, dictWord{136, 10, 723}, dictWord{ 5, 0, 546, }, dictWord{7, 0, 35}, dictWord{8, 0, 11}, dictWord{8, 0, 12}, dictWord{9, 0, 315}, dictWord{9, 0, 533}, dictWord{10, 0, 802}, dictWord{11, 0, 166}, dictWord{ 12, 0, 525, }, dictWord{142, 0, 243}, dictWord{7, 0, 1937}, dictWord{13, 10, 80}, dictWord{13, 10, 437}, dictWord{145, 10, 74}, dictWord{5, 0, 241}, dictWord{ 8, 0, 242, }, dictWord{9, 0, 451}, dictWord{10, 0, 667}, dictWord{11, 0, 598}, dictWord{140, 0, 429}, dictWord{150, 0, 46}, dictWord{6, 0, 1273}, dictWord{ 137, 0, 830, }, dictWord{5, 10, 848}, dictWord{6, 10, 66}, dictWord{136, 10, 764}, dictWord{6, 0, 825}, dictWord{134, 0, 993}, dictWord{4, 0, 1006}, dictWord{ 10, 0, 327, }, dictWord{13, 0, 271}, dictWord{4, 10, 36}, dictWord{7, 10, 1387}, dictWord{139, 10, 755}, dictWord{134, 0, 1023}, dictWord{135, 0, 1580}, dictWord{ 4, 0, 366, }, dictWord{137, 0, 516}, dictWord{132, 10, 887}, dictWord{6, 0, 1736}, dictWord{135, 0, 1891}, dictWord{6, 11, 216}, dictWord{7, 11, 901}, dictWord{ 7, 11, 1343, }, dictWord{136, 11, 493}, dictWord{6, 10, 165}, dictWord{138, 10, 388}, dictWord{7, 11, 341}, dictWord{139, 11, 219}, dictWord{4, 10, 719}, dictWord{135, 10, 155}, dictWord{134, 0, 1935}, dictWord{132, 0, 826}, dictWord{6, 0, 331}, dictWord{6, 0, 1605}, dictWord{8, 0, 623}, dictWord{11, 0, 139}, dictWord{139, 0, 171}, dictWord{135, 11, 1734}, dictWord{10, 11, 115}, dictWord{11, 11, 420}, dictWord{12, 11, 154}, dictWord{13, 11, 404}, dictWord{ 14, 11, 346, }, dictWord{15, 11, 54}, dictWord{143, 11, 112}, dictWord{7, 0, 288}, dictWord{4, 10, 353}, dictWord{6, 10, 146}, dictWord{6, 10, 1789}, dictWord{ 7, 10, 990, }, dictWord{7, 10, 1348}, dictWord{9, 10, 665}, dictWord{9, 10, 898}, dictWord{11, 10, 893}, dictWord{142, 10, 212}, dictWord{6, 0, 916}, dictWord{134, 0, 1592}, dictWord{7, 0, 1888}, dictWord{4, 10, 45}, dictWord{135, 10, 1257}, dictWord{5, 11, 1011}, dictWord{136, 11, 701}, dictWord{ 139, 11, 596, }, dictWord{4, 11, 54}, dictWord{5, 11, 666}, dictWord{7, 11, 1039}, dictWord{7, 11, 1130}, dictWord{9, 11, 195}, dictWord{138, 11, 302}, dictWord{ 134, 0, 1471, }, dictWord{134, 0, 1570}, dictWord{132, 0, 394}, dictWord{140, 10, 65}, dictWord{136, 10, 816}, dictWord{135, 0, 1931}, dictWord{7, 0, 574}, dictWord{135, 0, 1719}, dictWord{134, 11, 467}, dictWord{132, 0, 658}, dictWord{9, 0, 781}, dictWord{10, 0, 144}, dictWord{11, 0, 385}, dictWord{13, 0, 161}, dictWord{13, 0, 228}, dictWord{13, 0, 268}, dictWord{20, 0, 107}, dictWord{134, 11, 1669}, dictWord{136, 0, 374}, dictWord{135, 0, 735}, dictWord{4, 0, 344}, dictWord{6, 0, 498}, dictWord{139, 0, 323}, dictWord{7, 0, 586}, dictWord{7, 0, 1063}, dictWord{6, 10, 559}, dictWord{134, 10, 1691}, dictWord{137, 0, 155}, dictWord{133, 0, 906}, dictWord{7, 11, 122}, dictWord{9, 11, 259}, dictWord{10, 11, 84}, dictWord{11, 11, 470}, dictWord{12, 11, 541}, dictWord{ 141, 11, 379, }, dictWord{134, 0, 1139}, dictWord{10, 0, 108}, dictWord{139, 0, 116}, dictWord{134, 10, 456}, dictWord{133, 10, 925}, dictWord{5, 11, 82}, dictWord{ 5, 11, 131, }, dictWord{7, 11, 1755}, dictWord{8, 11, 31}, dictWord{9, 11, 168}, dictWord{9, 11, 764}, dictWord{139, 11, 869}, dictWord{134, 11, 605}, dictWord{ 5, 11, 278, }, dictWord{137, 11, 68}, dictWord{4, 11, 163}, dictWord{5, 11, 201}, dictWord{5, 11, 307}, dictWord{5, 11, 310}, dictWord{6, 11, 335}, dictWord{ 7, 11, 284, }, dictWord{136, 11, 165}, dictWord{135, 11, 1660}, dictWord{6, 11, 33}, dictWord{135, 11, 1244}, dictWord{4, 0, 616}, dictWord{136, 11, 483}, dictWord{8, 0, 857}, dictWord{8, 0, 902}, dictWord{8, 0, 910}, dictWord{10, 0, 879}, dictWord{12, 0, 726}, dictWord{4, 11, 199}, dictWord{139, 11, 34}, dictWord{136, 0, 692}, dictWord{6, 10, 193}, dictWord{7, 10, 240}, dictWord{7, 10, 1682}, dictWord{10, 10, 51}, dictWord{10, 10, 640}, dictWord{11, 10, 410}, dictWord{13, 10, 82}, dictWord{14, 10, 247}, dictWord{14, 10, 331}, dictWord{142, 10, 377}, dictWord{6, 0, 823}, dictWord{134, 0, 983}, dictWord{ 139, 10, 411, }, dictWord{132, 0, 305}, dictWord{136, 10, 633}, dictWord{138, 11, 203}, dictWord{134, 0, 681}, dictWord{6, 11, 326}, dictWord{7, 11, 677}, dictWord{137, 11, 425}, dictWord{5, 0, 214}, dictWord{7, 0, 603}, dictWord{8, 0, 611}, dictWord{9, 0, 686}, dictWord{10, 0, 88}, dictWord{11, 0, 459}, dictWord{ 11, 0, 496, }, dictWord{12, 0, 463}, dictWord{12, 0, 590}, dictWord{141, 0, 0}, dictWord{136, 0, 1004}, dictWord{142, 0, 23}, dictWord{134, 0, 1703}, dictWord{ 147, 11, 8, }, dictWord{145, 11, 56}, dictWord{135, 0, 1443}, dictWord{4, 10, 237}, dictWord{135, 10, 514}, dictWord{6, 0, 714}, dictWord{145, 0, 19}, dictWord{ 5, 11, 358, }, dictWord{7, 11, 473}, dictWord{7, 11, 1184}, dictWord{10, 11, 662}, dictWord{13, 11, 212}, dictWord{13, 11, 304}, dictWord{13, 11, 333}, dictWord{145, 11, 98}, dictWord{4, 0, 737}, dictWord{10, 0, 98}, dictWord{11, 0, 294}, dictWord{12, 0, 60}, dictWord{12, 0, 437}, dictWord{13, 0, 64}, dictWord{ 13, 0, 380, }, dictWord{142, 0, 430}, dictWord{6, 10, 392}, dictWord{7, 10, 65}, dictWord{135, 10, 2019}, dictWord{6, 0, 1758}, dictWord{8, 0, 520}, dictWord{ 9, 0, 345, }, dictWord{9, 0, 403}, dictWord{142, 0, 350}, dictWord{5, 0, 47}, dictWord{10, 0, 242}, dictWord{138, 0, 579}, dictWord{5, 0, 139}, dictWord{7, 0, 1168}, dictWord{138, 0, 539}, dictWord{134, 0, 1459}, dictWord{13, 0, 388}, dictWord{141, 11, 388}, dictWord{134, 0, 253}, dictWord{7, 10, 1260}, dictWord{ 135, 10, 1790, }, dictWord{10, 0, 252}, dictWord{9, 10, 222}, dictWord{139, 10, 900}, dictWord{140, 0, 745}, dictWord{133, 11, 946}, dictWord{4, 0, 107}, dictWord{ 7, 0, 613, }, dictWord{8, 0, 439}, dictWord{8, 0, 504}, dictWord{9, 0, 501}, dictWord{10, 0, 383}, dictWord{139, 0, 477}, dictWord{135, 11, 1485}, dictWord{ 132, 0, 871, }, dictWord{7, 11, 411}, dictWord{7, 11, 590}, dictWord{8, 11, 631}, dictWord{9, 11, 323}, dictWord{10, 11, 355}, dictWord{11, 11, 491}, dictWord{ 12, 11, 143, }, dictWord{12, 11, 402}, dictWord{13, 11, 73}, dictWord{14, 11, 408}, dictWord{15, 11, 107}, dictWord{146, 11, 71}, dictWord{132, 0, 229}, dictWord{132, 0, 903}, dictWord{140, 0, 71}, dictWord{133, 0, 549}, dictWord{4, 0, 47}, dictWord{6, 0, 373}, dictWord{7, 0, 452}, dictWord{7, 0, 543}, dictWord{ 7, 0, 1828, }, dictWord{7, 0, 1856}, dictWord{9, 0, 6}, dictWord{11, 0, 257}, dictWord{139, 0, 391}, dictWord{7, 11, 1467}, dictWord{8, 11, 328}, dictWord{ 10, 11, 544, }, dictWord{11, 11, 955}, dictWord{13, 11, 320}, dictWord{145, 11, 83}, dictWord{5, 0, 980}, dictWord{134, 0, 1754}, dictWord{136, 0, 865}, dictWord{ 5, 0, 705, }, dictWord{137, 0, 606}, dictWord{7, 0, 161}, dictWord{8, 10, 201}, dictWord{136, 10, 605}, dictWord{143, 11, 35}, dictWord{5, 11, 835}, dictWord{ 6, 11, 483, }, dictWord{140, 10, 224}, dictWord{7, 0, 536}, dictWord{7, 0, 1331}, dictWord{136, 0, 143}, dictWord{134, 0, 1388}, dictWord{5, 0, 724}, dictWord{ 10, 0, 305, }, dictWord{11, 0, 151}, dictWord{12, 0, 33}, dictWord{12, 0, 121}, dictWord{12, 0, 381}, dictWord{17, 0, 3}, dictWord{17, 0, 27}, dictWord{17, 0, 78}, dictWord{18, 0, 18}, dictWord{19, 0, 54}, dictWord{149, 0, 5}, dictWord{4, 10, 523}, dictWord{133, 10, 638}, dictWord{5, 0, 19}, dictWord{134, 0, 533}, dictWord{ 5, 0, 395, }, dictWord{5, 0, 951}, dictWord{134, 0, 1776}, dictWord{135, 0, 1908}, dictWord{132, 0, 846}, dictWord{10, 0, 74}, dictWord{11, 0, 663}, dictWord{ 12, 0, 210, }, dictWord{13, 0, 166}, dictWord{13, 0, 310}, dictWord{14, 0, 373}, dictWord{18, 0, 95}, dictWord{19, 0, 43}, dictWord{6, 10, 242}, dictWord{7, 10, 227}, dictWord{7, 10, 1581}, dictWord{8, 10, 104}, dictWord{9, 10, 113}, dictWord{9, 10, 220}, dictWord{9, 10, 427}, dictWord{10, 10, 239}, dictWord{11, 10, 579}, dictWord{11, 10, 1023}, dictWord{13, 10, 4}, dictWord{13, 10, 204}, dictWord{13, 10, 316}, dictWord{148, 10, 86}, dictWord{9, 11, 716}, dictWord{11, 11, 108}, dictWord{13, 11, 123}, dictWord{14, 11, 252}, dictWord{19, 11, 38}, dictWord{21, 11, 3}, dictWord{151, 11, 11}, dictWord{8, 0, 372}, dictWord{9, 0, 122}, dictWord{138, 0, 175}, dictWord{132, 11, 677}, dictWord{7, 11, 1374}, dictWord{136, 11, 540}, dictWord{135, 10, 861}, dictWord{132, 0, 695}, dictWord{ 7, 0, 497, }, dictWord{9, 0, 387}, dictWord{147, 0, 81}, dictWord{136, 0, 937}, dictWord{134, 0, 718}, dictWord{7, 0, 1328}, dictWord{136, 10, 494}, dictWord{ 132, 11, 331, }, dictWord{6, 0, 1581}, dictWord{133, 11, 747}, dictWord{5, 0, 284}, dictWord{6, 0, 49}, dictWord{6, 0, 350}, dictWord{7, 0, 1}, dictWord{7, 0, 377}, dictWord{7, 0, 1693}, dictWord{8, 0, 18}, dictWord{8, 0, 678}, dictWord{9, 0, 161}, dictWord{9, 0, 585}, dictWord{9, 0, 671}, dictWord{9, 0, 839}, dictWord{11, 0, 912}, dictWord{141, 0, 427}, dictWord{7, 10, 1306}, dictWord{8, 10, 505}, dictWord{9, 10, 482}, dictWord{10, 10, 126}, dictWord{11, 10, 225}, dictWord{12, 10, 347}, dictWord{12, 10, 449}, dictWord{13, 10, 19}, dictWord{14, 10, 218}, dictWord{142, 10, 435}, dictWord{10, 10, 764}, dictWord{12, 10, 120}, dictWord{ 13, 10, 39, }, dictWord{145, 10, 127}, dictWord{4, 0, 597}, dictWord{133, 10, 268}, dictWord{134, 0, 1094}, dictWord{4, 0, 1008}, dictWord{134, 0, 1973}, dictWord{132, 0, 811}, dictWord{139, 0, 908}, dictWord{135, 0, 1471}, dictWord{133, 11, 326}, dictWord{4, 10, 384}, dictWord{135, 10, 1022}, dictWord{ 7, 0, 1935, }, dictWord{8, 0, 324}, dictWord{12, 0, 42}, dictWord{4, 11, 691}, dictWord{7, 11, 1935}, dictWord{8, 11, 324}, dictWord{9, 11, 35}, dictWord{10, 11, 680}, dictWord{11, 11, 364}, dictWord{12, 11, 42}, dictWord{13, 11, 357}, dictWord{146, 11, 16}, dictWord{135, 0, 2014}, dictWord{7, 0, 2007}, dictWord{ 9, 0, 101, }, dictWord{9, 0, 450}, dictWord{10, 0, 66}, dictWord{10, 0, 842}, dictWord{11, 0, 536}, dictWord{12, 0, 587}, dictWord{6, 11, 32}, dictWord{7, 11, 385}, dictWord{7, 11, 757}, dictWord{7, 11, 1916}, dictWord{8, 11, 37}, dictWord{8, 11, 94}, dictWord{8, 11, 711}, dictWord{9, 11, 541}, dictWord{10, 11, 162}, dictWord{ 10, 11, 795, }, dictWord{11, 11, 989}, dictWord{11, 11, 1010}, dictWord{12, 11, 14}, dictWord{142, 11, 308}, dictWord{139, 0, 586}, dictWord{ 135, 10, 1703, }, dictWord{7, 0, 1077}, dictWord{11, 0, 28}, dictWord{9, 10, 159}, dictWord{140, 10, 603}, dictWord{6, 0, 1221}, dictWord{136, 10, 583}, dictWord{ 6, 11, 152, }, dictWord{6, 11, 349}, dictWord{6, 11, 1682}, dictWord{7, 11, 1252}, dictWord{8, 11, 112}, dictWord{9, 11, 435}, dictWord{9, 11, 668}, dictWord{ 10, 11, 290, }, dictWord{10, 11, 319}, dictWord{10, 11, 815}, dictWord{11, 11, 180}, dictWord{11, 11, 837}, dictWord{12, 11, 240}, dictWord{13, 11, 152}, dictWord{13, 11, 219}, dictWord{142, 11, 158}, dictWord{139, 0, 62}, dictWord{132, 10, 515}, dictWord{8, 10, 632}, dictWord{8, 10, 697}, dictWord{ 137, 10, 854, }, dictWord{134, 0, 1766}, dictWord{132, 11, 581}, dictWord{6, 11, 126}, dictWord{7, 11, 573}, dictWord{8, 11, 397}, dictWord{142, 11, 44}, dictWord{ 150, 0, 28, }, dictWord{11, 0, 670}, dictWord{22, 0, 25}, dictWord{4, 10, 136}, dictWord{133, 10, 551}, dictWord{6, 0, 1665}, dictWord{7, 0, 256}, dictWord{ 7, 0, 1388, }, dictWord{138, 0, 499}, dictWord{4, 0, 22}, dictWord{5, 0, 10}, dictWord{7, 0, 1576}, dictWord{136, 0, 97}, dictWord{134, 10, 1782}, dictWord{5, 0, 481}, dictWord{7, 10, 1287}, dictWord{9, 10, 44}, dictWord{10, 10, 552}, dictWord{10, 10, 642}, dictWord{11, 10, 839}, dictWord{12, 10, 274}, dictWord{ 12, 10, 275, }, dictWord{12, 10, 372}, dictWord{13, 10, 91}, dictWord{142, 10, 125}, dictWord{133, 11, 926}, dictWord{7, 11, 1232}, dictWord{137, 11, 531}, dictWord{6, 0, 134}, dictWord{7, 0, 437}, dictWord{7, 0, 1824}, dictWord{9, 0, 37}, dictWord{14, 0, 285}, dictWord{142, 0, 371}, dictWord{7, 0, 486}, dictWord{8, 0, 155}, dictWord{11, 0, 93}, dictWord{140, 0, 164}, dictWord{6, 0, 1391}, dictWord{134, 0, 1442}, dictWord{133, 11, 670}, dictWord{133, 0, 591}, dictWord{ 6, 10, 147, }, dictWord{7, 10, 886}, dictWord{7, 11, 1957}, dictWord{9, 10, 753}, dictWord{138, 10, 268}, dictWord{5, 0, 380}, dictWord{5, 0, 650}, dictWord{ 7, 0, 1173, }, dictWord{136, 0, 310}, dictWord{4, 0, 364}, dictWord{7, 0, 1156}, dictWord{7, 0, 1187}, dictWord{137, 0, 409}, dictWord{135, 11, 1621}, dictWord{ 134, 0, 482, }, dictWord{133, 11, 506}, dictWord{4, 0, 781}, dictWord{6, 0, 487}, dictWord{7, 0, 926}, dictWord{8, 0, 263}, dictWord{139, 0, 500}, dictWord{ 138, 10, 137, }, dictWord{135, 11, 242}, dictWord{139, 11, 96}, dictWord{133, 10, 414}, dictWord{135, 10, 1762}, dictWord{134, 0, 804}, dictWord{5, 11, 834}, dictWord{7, 11, 1202}, dictWord{8, 11, 14}, dictWord{9, 11, 481}, dictWord{137, 11, 880}, dictWord{134, 10, 599}, dictWord{4, 0, 94}, dictWord{135, 0, 1265}, dictWord{4, 0, 415}, dictWord{132, 0, 417}, dictWord{5, 0, 348}, dictWord{6, 0, 522}, dictWord{6, 10, 1749}, dictWord{7, 11, 1526}, dictWord{138, 11, 465}, dictWord{134, 10, 1627}, dictWord{132, 0, 1012}, dictWord{132, 10, 488}, dictWord{4, 11, 357}, dictWord{6, 11, 172}, dictWord{7, 11, 143}, dictWord{ 137, 11, 413, }, dictWord{4, 10, 83}, dictWord{4, 11, 590}, dictWord{146, 11, 76}, dictWord{140, 10, 676}, dictWord{7, 11, 287}, dictWord{8, 11, 355}, dictWord{ 9, 11, 293, }, dictWord{137, 11, 743}, dictWord{134, 10, 278}, dictWord{6, 0, 1803}, dictWord{18, 0, 165}, dictWord{24, 0, 21}, dictWord{5, 11, 169}, dictWord{ 7, 11, 333, }, dictWord{136, 11, 45}, dictWord{12, 10, 97}, dictWord{140, 11, 97}, dictWord{4, 0, 408}, dictWord{4, 0, 741}, dictWord{135, 0, 500}, dictWord{ 132, 11, 198, }, dictWord{7, 10, 388}, dictWord{7, 10, 644}, dictWord{139, 10, 781}, dictWord{4, 11, 24}, dictWord{5, 11, 140}, dictWord{5, 11, 185}, dictWord{ 7, 11, 1500, }, dictWord{11, 11, 565}, dictWord{139, 11, 838}, dictWord{6, 0, 1321}, dictWord{9, 0, 257}, dictWord{7, 10, 229}, dictWord{8, 10, 59}, dictWord{ 9, 10, 190, }, dictWord{10, 10, 378}, dictWord{140, 10, 191}, dictWord{4, 11, 334}, dictWord{133, 11, 593}, dictWord{135, 11, 1885}, dictWord{134, 0, 1138}, dictWord{4, 0, 249}, dictWord{6, 0, 73}, dictWord{135, 0, 177}, dictWord{133, 0, 576}, dictWord{142, 0, 231}, dictWord{137, 0, 288}, dictWord{132, 10, 660}, dictWord{7, 10, 1035}, dictWord{138, 10, 737}, dictWord{135, 0, 1487}, dictWord{6, 0, 989}, dictWord{9, 0, 433}, dictWord{7, 10, 690}, dictWord{9, 10, 587}, dictWord{140, 10, 521}, dictWord{7, 0, 1264}, dictWord{7, 0, 1678}, dictWord{11, 0, 945}, dictWord{12, 0, 341}, dictWord{12, 0, 471}, dictWord{140, 0, 569}, dictWord{132, 11, 709}, dictWord{133, 11, 897}, dictWord{5, 11, 224}, dictWord{13, 11, 174}, dictWord{146, 11, 52}, dictWord{135, 11, 1840}, dictWord{ 134, 10, 1744, }, dictWord{12, 0, 87}, dictWord{16, 0, 74}, dictWord{4, 10, 733}, dictWord{9, 10, 194}, dictWord{10, 10, 92}, dictWord{11, 10, 198}, dictWord{ 12, 10, 84, }, dictWord{141, 10, 128}, dictWord{140, 0, 779}, dictWord{135, 0, 538}, dictWord{4, 11, 608}, dictWord{133, 11, 497}, dictWord{133, 0, 413}, dictWord{7, 11, 1375}, dictWord{7, 11, 1466}, dictWord{138, 11, 331}, dictWord{136, 0, 495}, dictWord{6, 11, 540}, dictWord{136, 11, 136}, dictWord{7, 0, 54}, dictWord{8, 0, 312}, dictWord{10, 0, 191}, dictWord{10, 0, 614}, dictWord{140, 0, 567}, dictWord{6, 0, 468}, dictWord{7, 0, 567}, dictWord{7, 0, 1478}, dictWord{ 8, 0, 530, }, dictWord{14, 0, 290}, dictWord{133, 11, 999}, dictWord{4, 11, 299}, dictWord{7, 10, 306}, dictWord{135, 11, 1004}, dictWord{142, 11, 296}, dictWord{134, 0, 1484}, dictWord{133, 10, 979}, dictWord{6, 0, 609}, dictWord{9, 0, 815}, dictWord{12, 11, 137}, dictWord{14, 11, 9}, dictWord{14, 11, 24}, dictWord{142, 11, 64}, dictWord{133, 11, 456}, dictWord{6, 0, 484}, dictWord{135, 0, 822}, dictWord{133, 10, 178}, dictWord{136, 11, 180}, dictWord{ 132, 11, 755, }, dictWord{137, 0, 900}, dictWord{135, 0, 1335}, dictWord{6, 0, 1724}, dictWord{135, 0, 2022}, dictWord{135, 11, 1139}, dictWord{5, 0, 640}, dictWord{132, 10, 390}, dictWord{6, 0, 1831}, dictWord{138, 11, 633}, dictWord{135, 11, 566}, dictWord{4, 11, 890}, dictWord{5, 11, 805}, dictWord{5, 11, 819}, dictWord{5, 11, 961}, dictWord{6, 11, 396}, dictWord{6, 11, 1631}, dictWord{6, 11, 1678}, dictWord{7, 11, 1967}, dictWord{7, 11, 2041}, dictWord{ 9, 11, 630, }, dictWord{11, 11, 8}, dictWord{11, 11, 1019}, dictWord{12, 11, 176}, dictWord{13, 11, 225}, dictWord{14, 11, 292}, dictWord{149, 11, 24}, dictWord{ 132, 0, 474, }, dictWord{134, 0, 1103}, dictWord{135, 0, 1504}, dictWord{134, 0, 1576}, dictWord{6, 0, 961}, dictWord{6, 0, 1034}, dictWord{140, 0, 655}, dictWord{11, 11, 514}, dictWord{149, 11, 20}, dictWord{5, 0, 305}, dictWord{135, 11, 1815}, dictWord{7, 11, 1505}, dictWord{10, 11, 190}, dictWord{ 10, 11, 634, }, dictWord{11, 11, 792}, dictWord{12, 11, 358}, dictWord{140, 11, 447}, dictWord{5, 11, 0}, dictWord{6, 11, 536}, dictWord{7, 11, 604}, dictWord{ 13, 11, 445, }, dictWord{145, 11, 126}, dictWord{7, 0, 1236}, dictWord{133, 10, 105}, dictWord{4, 0, 480}, dictWord{6, 0, 217}, dictWord{6, 0, 302}, dictWord{ 6, 0, 1642, }, dictWord{7, 0, 130}, dictWord{7, 0, 837}, dictWord{7, 0, 1321}, dictWord{7, 0, 1547}, dictWord{7, 0, 1657}, dictWord{8, 0, 429}, dictWord{9, 0, 228}, dictWord{13, 0, 289}, dictWord{13, 0, 343}, dictWord{19, 0, 101}, dictWord{6, 11, 232}, dictWord{6, 11, 412}, dictWord{7, 11, 1074}, dictWord{8, 11, 9}, dictWord{ 8, 11, 157, }, dictWord{8, 11, 786}, dictWord{9, 11, 196}, dictWord{9, 11, 352}, dictWord{9, 11, 457}, dictWord{10, 11, 337}, dictWord{11, 11, 232}, dictWord{ 11, 11, 877, }, dictWord{12, 11, 480}, dictWord{140, 11, 546}, dictWord{5, 10, 438}, dictWord{7, 11, 958}, dictWord{9, 10, 694}, dictWord{12, 10, 627}, dictWord{ 13, 11, 38, }, dictWord{141, 10, 210}, dictWord{4, 11, 382}, dictWord{136, 11, 579}, dictWord{7, 0, 278}, dictWord{10, 0, 739}, dictWord{11, 0, 708}, dictWord{ 141, 0, 348, }, dictWord{4, 11, 212}, dictWord{135, 11, 1206}, dictWord{135, 11, 1898}, dictWord{6, 0, 708}, dictWord{6, 0, 1344}, dictWord{152, 10, 11}, dictWord{137, 11, 768}, dictWord{134, 0, 1840}, dictWord{140, 0, 233}, dictWord{8, 10, 25}, dictWord{138, 10, 826}, dictWord{6, 0, 2017}, dictWord{ 133, 11, 655, }, dictWord{6, 0, 1488}, dictWord{139, 11, 290}, dictWord{132, 10, 308}, dictWord{134, 0, 1590}, dictWord{134, 0, 1800}, dictWord{134, 0, 1259}, dictWord{16, 0, 28}, dictWord{6, 11, 231}, dictWord{7, 11, 95}, dictWord{136, 11, 423}, dictWord{133, 11, 300}, dictWord{135, 10, 150}, dictWord{ 136, 10, 649, }, dictWord{7, 11, 1874}, dictWord{137, 11, 641}, dictWord{6, 11, 237}, dictWord{7, 11, 611}, dictWord{8, 11, 100}, dictWord{9, 11, 416}, dictWord{ 11, 11, 335, }, dictWord{12, 11, 173}, dictWord{146, 11, 101}, dictWord{137, 0, 45}, dictWord{134, 10, 521}, dictWord{17, 0, 36}, dictWord{14, 11, 26}, dictWord{ 146, 11, 150, }, dictWord{7, 0, 1442}, dictWord{14, 0, 22}, dictWord{5, 10, 339}, dictWord{15, 10, 41}, dictWord{15, 10, 166}, dictWord{147, 10, 66}, dictWord{ 8, 0, 378, }, dictWord{6, 11, 581}, dictWord{135, 11, 1119}, dictWord{134, 0, 1507}, dictWord{147, 11, 117}, dictWord{139, 0, 39}, dictWord{134, 0, 1054}, dictWord{6, 0, 363}, dictWord{7, 0, 1955}, dictWord{136, 0, 725}, dictWord{134, 0, 2036}, dictWord{133, 11, 199}, dictWord{6, 0, 1871}, dictWord{9, 0, 935}, dictWord{9, 0, 961}, dictWord{9, 0, 1004}, dictWord{9, 0, 1016}, dictWord{12, 0, 805}, dictWord{12, 0, 852}, dictWord{12, 0, 853}, dictWord{12, 0, 869}, dictWord{ 12, 0, 882, }, dictWord{12, 0, 896}, dictWord{12, 0, 906}, dictWord{12, 0, 917}, dictWord{12, 0, 940}, dictWord{15, 0, 170}, dictWord{15, 0, 176}, dictWord{ 15, 0, 188, }, dictWord{15, 0, 201}, dictWord{15, 0, 205}, dictWord{15, 0, 212}, dictWord{15, 0, 234}, dictWord{15, 0, 244}, dictWord{18, 0, 181}, dictWord{18, 0, 193}, dictWord{18, 0, 196}, dictWord{18, 0, 201}, dictWord{18, 0, 202}, dictWord{18, 0, 210}, dictWord{18, 0, 217}, dictWord{18, 0, 235}, dictWord{18, 0, 236}, dictWord{18, 0, 237}, dictWord{21, 0, 54}, dictWord{21, 0, 55}, dictWord{21, 0, 58}, dictWord{21, 0, 59}, dictWord{152, 0, 22}, dictWord{134, 10, 1628}, dictWord{ 137, 0, 805, }, dictWord{5, 0, 813}, dictWord{135, 0, 2046}, dictWord{142, 11, 42}, dictWord{5, 0, 712}, dictWord{6, 0, 1240}, dictWord{11, 0, 17}, dictWord{ 13, 0, 321, }, dictWord{144, 0, 67}, dictWord{132, 0, 617}, dictWord{135, 10, 829}, dictWord{6, 0, 320}, dictWord{7, 0, 781}, dictWord{7, 0, 1921}, dictWord{9, 0, 55}, dictWord{10, 0, 186}, dictWord{10, 0, 273}, dictWord{10, 0, 664}, dictWord{10, 0, 801}, dictWord{11, 0, 996}, dictWord{11, 0, 997}, dictWord{13, 0, 157}, dictWord{142, 0, 170}, dictWord{136, 0, 271}, dictWord{5, 10, 486}, dictWord{135, 10, 1349}, dictWord{18, 11, 91}, dictWord{147, 11, 70}, dictWord{10, 0, 445}, dictWord{7, 10, 1635}, dictWord{8, 10, 17}, dictWord{138, 10, 295}, dictWord{136, 11, 404}, dictWord{7, 0, 103}, dictWord{7, 0, 863}, dictWord{11, 0, 184}, dictWord{145, 0, 62}, dictWord{138, 10, 558}, dictWord{137, 0, 659}, dictWord{6, 11, 312}, dictWord{6, 11, 1715}, dictWord{10, 11, 584}, dictWord{ 11, 11, 546, }, dictWord{11, 11, 692}, dictWord{12, 11, 259}, dictWord{12, 11, 295}, dictWord{13, 11, 46}, dictWord{141, 11, 154}, dictWord{134, 0, 676}, dictWord{132, 11, 588}, dictWord{4, 11, 231}, dictWord{5, 11, 61}, dictWord{6, 11, 104}, dictWord{7, 11, 729}, dictWord{7, 11, 964}, dictWord{7, 11, 1658}, dictWord{140, 11, 414}, dictWord{6, 11, 263}, dictWord{138, 11, 757}, dictWord{11, 0, 337}, dictWord{142, 0, 303}, dictWord{135, 11, 1363}, dictWord{ 132, 11, 320, }, dictWord{140, 0, 506}, dictWord{134, 10, 447}, dictWord{5, 0, 77}, dictWord{7, 0, 1455}, dictWord{10, 0, 843}, dictWord{147, 0, 73}, dictWord{ 7, 10, 577, }, dictWord{7, 10, 1432}, dictWord{9, 10, 475}, dictWord{9, 10, 505}, dictWord{9, 10, 526}, dictWord{9, 10, 609}, dictWord{9, 10, 689}, dictWord{ 9, 10, 726, }, dictWord{9, 10, 735}, dictWord{9, 10, 738}, dictWord{10, 10, 556}, dictWord{10, 10, 674}, dictWord{10, 10, 684}, dictWord{11, 10, 89}, dictWord{ 11, 10, 202, }, dictWord{11, 10, 272}, dictWord{11, 10, 380}, dictWord{11, 10, 415}, dictWord{11, 10, 505}, dictWord{11, 10, 537}, dictWord{11, 10, 550}, dictWord{11, 10, 562}, dictWord{11, 10, 640}, dictWord{11, 10, 667}, dictWord{11, 10, 688}, dictWord{11, 10, 847}, dictWord{11, 10, 927}, dictWord{ 11, 10, 930, }, dictWord{11, 10, 940}, dictWord{12, 10, 144}, dictWord{12, 10, 325}, dictWord{12, 10, 329}, dictWord{12, 10, 389}, dictWord{12, 10, 403}, dictWord{ 12, 10, 451, }, dictWord{12, 10, 515}, dictWord{12, 10, 604}, dictWord{12, 10, 616}, dictWord{12, 10, 626}, dictWord{13, 10, 66}, dictWord{13, 10, 131}, dictWord{13, 10, 167}, dictWord{13, 10, 236}, dictWord{13, 10, 368}, dictWord{13, 10, 411}, dictWord{13, 10, 434}, dictWord{13, 10, 453}, dictWord{ 13, 10, 461, }, dictWord{13, 10, 474}, dictWord{14, 10, 59}, dictWord{14, 10, 60}, dictWord{14, 10, 139}, dictWord{14, 10, 152}, dictWord{14, 10, 276}, dictWord{ 14, 10, 353, }, dictWord{14, 10, 402}, dictWord{15, 10, 28}, dictWord{15, 10, 81}, dictWord{15, 10, 123}, dictWord{15, 10, 152}, dictWord{18, 10, 136}, dictWord{148, 10, 88}, dictWord{132, 0, 458}, dictWord{135, 0, 1420}, dictWord{6, 0, 109}, dictWord{10, 0, 382}, dictWord{4, 11, 405}, dictWord{4, 10, 609}, dictWord{7, 10, 756}, dictWord{7, 11, 817}, dictWord{9, 10, 544}, dictWord{11, 10, 413}, dictWord{14, 11, 58}, dictWord{14, 10, 307}, dictWord{16, 10, 25}, dictWord{17, 11, 37}, dictWord{146, 11, 124}, dictWord{6, 0, 330}, dictWord{7, 0, 1084}, dictWord{11, 0, 142}, dictWord{133, 11, 974}, dictWord{4, 10, 930}, dictWord{133, 10, 947}, dictWord{5, 10, 939}, dictWord{142, 11, 394}, dictWord{16, 0, 91}, dictWord{145, 0, 87}, dictWord{5, 11, 235}, dictWord{5, 10, 962}, dictWord{7, 11, 1239}, dictWord{11, 11, 131}, dictWord{140, 11, 370}, dictWord{11, 0, 492}, dictWord{5, 10, 651}, dictWord{8, 10, 170}, dictWord{9, 10, 61}, dictWord{9, 10, 63}, dictWord{10, 10, 23}, dictWord{10, 10, 37}, dictWord{10, 10, 834}, dictWord{11, 10, 4}, dictWord{11, 10, 281}, dictWord{11, 10, 503}, dictWord{ 11, 10, 677, }, dictWord{12, 10, 96}, dictWord{12, 10, 130}, dictWord{12, 10, 244}, dictWord{14, 10, 5}, dictWord{14, 10, 40}, dictWord{14, 10, 162}, dictWord{ 14, 10, 202, }, dictWord{146, 10, 133}, dictWord{4, 10, 406}, dictWord{5, 10, 579}, dictWord{12, 10, 492}, dictWord{150, 10, 15}, dictWord{9, 11, 137}, dictWord{138, 11, 221}, dictWord{134, 0, 1239}, dictWord{11, 0, 211}, dictWord{140, 0, 145}, dictWord{7, 11, 390}, dictWord{138, 11, 140}, dictWord{ 135, 11, 1418, }, dictWord{135, 11, 1144}, dictWord{134, 0, 1049}, dictWord{7, 0, 321}, dictWord{6, 10, 17}, dictWord{7, 10, 1001}, dictWord{7, 10, 1982}, dictWord{ 9, 10, 886, }, dictWord{10, 10, 489}, dictWord{10, 10, 800}, dictWord{11, 10, 782}, dictWord{12, 10, 320}, dictWord{13, 10, 467}, dictWord{14, 10, 145}, dictWord{14, 10, 387}, dictWord{143, 10, 119}, dictWord{145, 10, 17}, dictWord{5, 11, 407}, dictWord{11, 11, 489}, dictWord{19, 11, 37}, dictWord{20, 11, 73}, dictWord{150, 11, 38}, dictWord{133, 10, 458}, dictWord{135, 0, 1985}, dictWord{7, 10, 1983}, dictWord{8, 10, 0}, dictWord{8, 10, 171}, dictWord{ 9, 10, 120, }, dictWord{9, 10, 732}, dictWord{10, 10, 473}, dictWord{11, 10, 656}, dictWord{11, 10, 998}, dictWord{18, 10, 0}, dictWord{18, 10, 2}, dictWord{ 147, 10, 21, }, dictWord{5, 11, 325}, dictWord{7, 11, 1483}, dictWord{8, 11, 5}, dictWord{8, 11, 227}, dictWord{9, 11, 105}, dictWord{10, 11, 585}, dictWord{ 140, 11, 614, }, dictWord{136, 0, 122}, dictWord{132, 0, 234}, dictWord{135, 11, 1196}, dictWord{6, 0, 976}, dictWord{6, 0, 1098}, dictWord{134, 0, 1441}, dictWord{ 7, 0, 253, }, dictWord{136, 0, 549}, dictWord{6, 11, 621}, dictWord{13, 11, 504}, dictWord{144, 11, 19}, dictWord{132, 10, 519}, dictWord{5, 0, 430}, dictWord{ 5, 0, 932, }, dictWord{6, 0, 131}, dictWord{7, 0, 417}, dictWord{9, 0, 522}, dictWord{11, 0, 314}, dictWord{141, 0, 390}, dictWord{14, 0, 149}, dictWord{14, 0, 399}, dictWord{143, 0, 57}, dictWord{5, 10, 907}, dictWord{6, 10, 31}, dictWord{6, 11, 218}, dictWord{7, 10, 491}, dictWord{7, 10, 530}, dictWord{8, 10, 592}, dictWord{11, 10, 53}, dictWord{11, 10, 779}, dictWord{12, 10, 167}, dictWord{12, 10, 411}, dictWord{14, 10, 14}, dictWord{14, 10, 136}, dictWord{15, 10, 72}, dictWord{16, 10, 17}, dictWord{144, 10, 72}, dictWord{140, 11, 330}, dictWord{7, 11, 454}, dictWord{7, 11, 782}, dictWord{136, 11, 768}, dictWord{ 132, 0, 507, }, dictWord{10, 11, 676}, dictWord{140, 11, 462}, dictWord{6, 0, 630}, dictWord{9, 0, 811}, dictWord{4, 10, 208}, dictWord{5, 10, 106}, dictWord{ 6, 10, 531, }, dictWord{8, 10, 408}, dictWord{9, 10, 188}, dictWord{138, 10, 572}, dictWord{4, 0, 343}, dictWord{5, 0, 511}, dictWord{134, 10, 1693}, dictWord{ 134, 11, 164, }, dictWord{132, 0, 448}, dictWord{7, 0, 455}, dictWord{138, 0, 591}, dictWord{135, 0, 1381}, dictWord{12, 10, 441}, dictWord{150, 11, 50}, dictWord{9, 10, 449}, dictWord{10, 10, 192}, dictWord{138, 10, 740}, dictWord{6, 0, 575}, dictWord{132, 10, 241}, dictWord{134, 0, 1175}, dictWord{ 134, 0, 653, }, dictWord{134, 0, 1761}, dictWord{134, 0, 1198}, dictWord{132, 10, 259}, dictWord{6, 11, 343}, dictWord{7, 11, 195}, dictWord{9, 11, 226}, dictWord{ 10, 11, 197, }, dictWord{10, 11, 575}, dictWord{11, 11, 502}, dictWord{139, 11, 899}, dictWord{7, 0, 1127}, dictWord{7, 0, 1572}, dictWord{10, 0, 297}, dictWord{10, 0, 422}, dictWord{11, 0, 764}, dictWord{11, 0, 810}, dictWord{12, 0, 264}, dictWord{13, 0, 102}, dictWord{13, 0, 300}, dictWord{13, 0, 484}, dictWord{ 14, 0, 147, }, dictWord{14, 0, 229}, dictWord{17, 0, 71}, dictWord{18, 0, 118}, dictWord{147, 0, 120}, dictWord{135, 11, 666}, dictWord{132, 0, 678}, dictWord{ 4, 10, 173, }, dictWord{5, 10, 312}, dictWord{5, 10, 512}, dictWord{135, 10, 1285}, dictWord{7, 10, 1603}, dictWord{7, 10, 1691}, dictWord{9, 10, 464}, dictWord{11, 10, 195}, dictWord{12, 10, 279}, dictWord{12, 10, 448}, dictWord{14, 10, 11}, dictWord{147, 10, 102}, dictWord{16, 0, 99}, dictWord{146, 0, 164}, dictWord{7, 11, 1125}, dictWord{9, 11, 143}, dictWord{11, 11, 61}, dictWord{14, 11, 405}, dictWord{150, 11, 21}, dictWord{137, 11, 260}, dictWord{ 4, 10, 452, }, dictWord{5, 10, 583}, dictWord{5, 10, 817}, dictWord{6, 10, 433}, dictWord{7, 10, 593}, dictWord{7, 10, 720}, dictWord{7, 10, 1378}, dictWord{ 8, 10, 161, }, dictWord{9, 10, 284}, dictWord{10, 10, 313}, dictWord{139, 10, 886}, dictWord{132, 10, 547}, dictWord{136, 10, 722}, dictWord{14, 0, 35}, dictWord{142, 0, 191}, dictWord{141, 0, 45}, dictWord{138, 0, 121}, dictWord{132, 0, 125}, dictWord{134, 0, 1622}, dictWord{133, 11, 959}, dictWord{ 8, 10, 420, }, dictWord{139, 10, 193}, dictWord{132, 0, 721}, dictWord{135, 10, 409}, dictWord{136, 0, 145}, dictWord{7, 0, 792}, dictWord{8, 0, 147}, dictWord{ 10, 0, 821, }, dictWord{11, 0, 970}, dictWord{11, 0, 1021}, dictWord{136, 11, 173}, dictWord{134, 11, 266}, dictWord{132, 0, 715}, dictWord{7, 0, 1999}, dictWord{138, 10, 308}, dictWord{133, 0, 531}, dictWord{5, 0, 168}, dictWord{5, 0, 930}, dictWord{8, 0, 74}, dictWord{9, 0, 623}, dictWord{12, 0, 500}, dictWord{ 140, 0, 579, }, dictWord{144, 0, 65}, dictWord{138, 11, 246}, dictWord{6, 0, 220}, dictWord{7, 0, 1101}, dictWord{13, 0, 105}, dictWord{142, 11, 314}, dictWord{ 5, 10, 1002, }, dictWord{136, 10, 745}, dictWord{134, 0, 960}, dictWord{20, 0, 0}, dictWord{148, 11, 0}, dictWord{4, 0, 1005}, dictWord{4, 10, 239}, dictWord{ 6, 10, 477, }, dictWord{7, 10, 1607}, dictWord{11, 10, 68}, dictWord{139, 10, 617}, dictWord{6, 0, 19}, dictWord{7, 0, 1413}, dictWord{139, 0, 428}, dictWord{ 149, 10, 13, }, dictWord{7, 0, 96}, dictWord{8, 0, 401}, dictWord{8, 0, 703}, dictWord{9, 0, 896}, dictWord{136, 11, 300}, dictWord{134, 0, 1595}, dictWord{145, 0, 116}, dictWord{136, 0, 1021}, dictWord{7, 0, 1961}, dictWord{7, 0, 1965}, dictWord{7, 0, 2030}, dictWord{8, 0, 150}, dictWord{8, 0, 702}, dictWord{8, 0, 737}, dictWord{ 8, 0, 750, }, dictWord{140, 0, 366}, dictWord{11, 11, 75}, dictWord{142, 11, 267}, dictWord{132, 10, 367}, dictWord{8, 0, 800}, dictWord{9, 0, 148}, dictWord{ 9, 0, 872, }, dictWord{9, 0, 890}, dictWord{11, 0, 309}, dictWord{11, 0, 1001}, dictWord{13, 0, 267}, dictWord{13, 0, 323}, dictWord{5, 11, 427}, dictWord{ 5, 11, 734, }, dictWord{7, 11, 478}, dictWord{136, 11, 52}, dictWord{7, 11, 239}, dictWord{11, 11, 217}, dictWord{142, 11, 165}, dictWord{132, 11, 323}, dictWord{140, 11, 419}, dictWord{13, 0, 299}, dictWord{142, 0, 75}, dictWord{6, 11, 87}, dictWord{6, 11, 1734}, dictWord{7, 11, 20}, dictWord{7, 11, 1056}, dictWord{ 8, 11, 732, }, dictWord{9, 11, 406}, dictWord{9, 11, 911}, dictWord{138, 11, 694}, dictWord{134, 0, 1383}, dictWord{132, 10, 694}, dictWord{ 133, 11, 613, }, dictWord{137, 0, 779}, dictWord{4, 0, 598}, dictWord{140, 10, 687}, dictWord{6, 0, 970}, dictWord{135, 0, 424}, dictWord{133, 0, 547}, dictWord{ 7, 11, 32, }, dictWord{7, 11, 984}, dictWord{8, 11, 85}, dictWord{8, 11, 709}, dictWord{9, 11, 579}, dictWord{9, 11, 847}, dictWord{9, 11, 856}, dictWord{10, 11, 799}, dictWord{11, 11, 258}, dictWord{11, 11, 1007}, dictWord{12, 11, 331}, dictWord{12, 11, 615}, dictWord{13, 11, 188}, dictWord{13, 11, 435}, dictWord{ 14, 11, 8, }, dictWord{15, 11, 165}, dictWord{16, 11, 27}, dictWord{148, 11, 40}, dictWord{6, 0, 1222}, dictWord{134, 0, 1385}, dictWord{132, 0, 876}, dictWord{ 138, 11, 151, }, dictWord{135, 10, 213}, dictWord{4, 11, 167}, dictWord{135, 11, 82}, dictWord{133, 0, 133}, dictWord{6, 11, 24}, dictWord{7, 11, 74}, dictWord{ 7, 11, 678, }, dictWord{137, 11, 258}, dictWord{5, 11, 62}, dictWord{6, 11, 534}, dictWord{7, 11, 684}, dictWord{7, 11, 1043}, dictWord{7, 11, 1072}, dictWord{ 8, 11, 280, }, dictWord{8, 11, 541}, dictWord{8, 11, 686}, dictWord{10, 11, 519}, dictWord{11, 11, 252}, dictWord{140, 11, 282}, dictWord{136, 0, 187}, dictWord{8, 0, 8}, dictWord{10, 0, 0}, dictWord{10, 0, 818}, dictWord{139, 0, 988}, dictWord{132, 11, 359}, dictWord{11, 0, 429}, dictWord{15, 0, 51}, dictWord{ 135, 10, 1672, }, dictWord{136, 0, 685}, dictWord{5, 11, 211}, dictWord{7, 11, 88}, dictWord{136, 11, 627}, dictWord{134, 0, 472}, dictWord{136, 0, 132}, dictWord{ 6, 11, 145, }, dictWord{141, 11, 336}, dictWord{4, 10, 751}, dictWord{11, 10, 390}, dictWord{140, 10, 32}, dictWord{6, 0, 938}, dictWord{6, 0, 1060}, dictWord{ 4, 11, 263, }, dictWord{4, 10, 409}, dictWord{133, 10, 78}, dictWord{137, 0, 874}, dictWord{8, 0, 774}, dictWord{10, 0, 670}, dictWord{12, 0, 51}, dictWord{ 4, 11, 916, }, dictWord{6, 10, 473}, dictWord{7, 10, 1602}, dictWord{10, 10, 698}, dictWord{12, 10, 212}, dictWord{13, 10, 307}, dictWord{145, 10, 105}, dictWord{146, 0, 92}, dictWord{143, 10, 156}, dictWord{132, 0, 830}, dictWord{137, 0, 701}, dictWord{4, 11, 599}, dictWord{6, 11, 1634}, dictWord{7, 11, 5}, dictWord{7, 11, 55}, dictWord{7, 11, 67}, dictWord{7, 11, 97}, dictWord{7, 11, 691}, dictWord{7, 11, 979}, dictWord{7, 11, 1697}, dictWord{8, 11, 207}, dictWord{ 8, 11, 214, }, dictWord{8, 11, 231}, dictWord{8, 11, 294}, dictWord{8, 11, 336}, dictWord{8, 11, 428}, dictWord{8, 11, 451}, dictWord{8, 11, 460}, dictWord{8, 11, 471}, dictWord{8, 11, 622}, dictWord{8, 11, 626}, dictWord{8, 11, 679}, dictWord{8, 11, 759}, dictWord{8, 11, 829}, dictWord{9, 11, 11}, dictWord{9, 11, 246}, dictWord{ 9, 11, 484, }, dictWord{9, 11, 573}, dictWord{9, 11, 706}, dictWord{9, 11, 762}, dictWord{9, 11, 798}, dictWord{9, 11, 855}, dictWord{9, 11, 870}, dictWord{ 9, 11, 912, }, dictWord{10, 11, 303}, dictWord{10, 11, 335}, dictWord{10, 11, 424}, dictWord{10, 11, 461}, dictWord{10, 11, 543}, dictWord{10, 11, 759}, dictWord{10, 11, 814}, dictWord{11, 11, 59}, dictWord{11, 11, 199}, dictWord{11, 11, 235}, dictWord{11, 11, 475}, dictWord{11, 11, 590}, dictWord{11, 11, 929}, dictWord{11, 11, 963}, dictWord{12, 11, 114}, dictWord{12, 11, 182}, dictWord{12, 11, 226}, dictWord{12, 11, 332}, dictWord{12, 11, 439}, dictWord{ 12, 11, 575, }, dictWord{12, 11, 598}, dictWord{13, 11, 8}, dictWord{13, 11, 125}, dictWord{13, 11, 194}, dictWord{13, 11, 287}, dictWord{14, 11, 197}, dictWord{ 14, 11, 383, }, dictWord{15, 11, 53}, dictWord{17, 11, 63}, dictWord{19, 11, 46}, dictWord{19, 11, 98}, dictWord{19, 11, 106}, dictWord{148, 11, 85}, dictWord{ 4, 0, 127, }, dictWord{5, 0, 350}, dictWord{6, 0, 356}, dictWord{8, 0, 426}, dictWord{9, 0, 572}, dictWord{10, 0, 247}, dictWord{139, 0, 312}, dictWord{134, 0, 1215}, dictWord{6, 0, 59}, dictWord{9, 0, 603}, dictWord{13, 0, 397}, dictWord{7, 11, 1853}, dictWord{138, 11, 437}, dictWord{134, 0, 1762}, dictWord{ 147, 11, 126, }, dictWord{135, 10, 883}, dictWord{13, 0, 293}, dictWord{142, 0, 56}, dictWord{133, 10, 617}, dictWord{139, 10, 50}, dictWord{5, 11, 187}, dictWord{ 7, 10, 1518, }, dictWord{139, 10, 694}, dictWord{135, 0, 441}, dictWord{6, 0, 111}, dictWord{7, 0, 4}, dictWord{8, 0, 163}, dictWord{8, 0, 776}, dictWord{ 138, 0, 566, }, dictWord{132, 0, 806}, dictWord{4, 11, 215}, dictWord{9, 11, 38}, dictWord{10, 11, 3}, dictWord{11, 11, 23}, dictWord{11, 11, 127}, dictWord{ 139, 11, 796, }, dictWord{14, 0, 233}, dictWord{4, 10, 546}, dictWord{135, 10, 2042}, dictWord{135, 0, 1994}, dictWord{134, 0, 1739}, dictWord{135, 11, 1530}, dictWord{136, 0, 393}, dictWord{5, 0, 297}, dictWord{7, 0, 1038}, dictWord{14, 0, 359}, dictWord{19, 0, 52}, dictWord{148, 0, 47}, dictWord{135, 0, 309}, dictWord{ 4, 10, 313, }, dictWord{133, 10, 577}, dictWord{8, 10, 184}, dictWord{141, 10, 433}, dictWord{135, 10, 935}, dictWord{12, 10, 186}, dictWord{ 12, 10, 292, }, dictWord{14, 10, 100}, dictWord{146, 10, 70}, dictWord{136, 0, 363}, dictWord{14, 0, 175}, dictWord{11, 10, 402}, dictWord{12, 10, 109}, dictWord{ 12, 10, 431, }, dictWord{13, 10, 179}, dictWord{13, 10, 206}, dictWord{14, 10, 217}, dictWord{16, 10, 3}, dictWord{148, 10, 53}, dictWord{5, 10, 886}, dictWord{ 6, 10, 46, }, dictWord{6, 10, 1790}, dictWord{7, 10, 14}, dictWord{7, 10, 732}, dictWord{7, 10, 1654}, dictWord{8, 10, 95}, dictWord{8, 10, 327}, dictWord{ 8, 10, 616, }, dictWord{9, 10, 892}, dictWord{10, 10, 598}, dictWord{10, 10, 769}, dictWord{11, 10, 134}, dictWord{11, 10, 747}, dictWord{12, 10, 378}, dictWord{ 142, 10, 97, }, dictWord{136, 0, 666}, dictWord{135, 0, 1675}, dictWord{6, 0, 655}, dictWord{134, 0, 1600}, dictWord{135, 0, 808}, dictWord{133, 10, 1021}, dictWord{4, 11, 28}, dictWord{5, 11, 440}, dictWord{7, 11, 248}, dictWord{11, 11, 833}, dictWord{140, 11, 344}, dictWord{134, 11, 1654}, dictWord{ 132, 0, 280, }, dictWord{140, 0, 54}, dictWord{4, 0, 421}, dictWord{133, 0, 548}, dictWord{132, 10, 153}, dictWord{6, 11, 339}, dictWord{135, 11, 923}, dictWord{ 133, 11, 853, }, dictWord{133, 10, 798}, dictWord{132, 10, 587}, dictWord{6, 11, 249}, dictWord{7, 11, 1234}, dictWord{139, 11, 573}, dictWord{6, 10, 598}, dictWord{7, 10, 42}, dictWord{8, 10, 695}, dictWord{10, 10, 212}, dictWord{11, 10, 158}, dictWord{14, 10, 196}, dictWord{145, 10, 85}, dictWord{7, 0, 249}, dictWord{5, 10, 957}, dictWord{133, 10, 1008}, dictWord{4, 10, 129}, dictWord{135, 10, 465}, dictWord{6, 0, 254}, dictWord{7, 0, 842}, dictWord{7, 0, 1659}, dictWord{9, 0, 109}, dictWord{10, 0, 103}, dictWord{7, 10, 908}, dictWord{7, 10, 1201}, dictWord{9, 10, 755}, dictWord{11, 10, 906}, dictWord{12, 10, 527}, dictWord{146, 10, 7}, dictWord{5, 0, 262}, dictWord{136, 10, 450}, dictWord{144, 0, 1}, dictWord{10, 11, 201}, dictWord{142, 11, 319}, dictWord{7, 11, 49}, dictWord{ 7, 11, 392, }, dictWord{8, 11, 20}, dictWord{8, 11, 172}, dictWord{8, 11, 690}, dictWord{9, 11, 383}, dictWord{9, 11, 845}, dictWord{10, 11, 48}, dictWord{ 11, 11, 293, }, dictWord{11, 11, 832}, dictWord{11, 11, 920}, dictWord{141, 11, 221}, dictWord{5, 11, 858}, dictWord{133, 11, 992}, dictWord{134, 0, 805}, dictWord{139, 10, 1003}, dictWord{6, 0, 1630}, dictWord{134, 11, 307}, dictWord{7, 11, 1512}, dictWord{135, 11, 1794}, dictWord{6, 11, 268}, dictWord{ 137, 11, 62, }, dictWord{135, 10, 1868}, dictWord{133, 0, 671}, dictWord{4, 0, 989}, dictWord{8, 0, 972}, dictWord{136, 0, 998}, dictWord{132, 11, 423}, dictWord{132, 0, 889}, dictWord{135, 0, 1382}, dictWord{135, 0, 1910}, dictWord{7, 10, 965}, dictWord{7, 10, 1460}, dictWord{135, 10, 1604}, dictWord{ 4, 0, 627, }, dictWord{5, 0, 775}, dictWord{138, 11, 106}, dictWord{134, 11, 348}, dictWord{7, 0, 202}, dictWord{11, 0, 362}, dictWord{11, 0, 948}, dictWord{ 140, 0, 388, }, dictWord{138, 11, 771}, dictWord{6, 11, 613}, dictWord{136, 11, 223}, dictWord{6, 0, 560}, dictWord{7, 0, 451}, dictWord{8, 0, 389}, dictWord{ 12, 0, 490, }, dictWord{13, 0, 16}, dictWord{13, 0, 215}, dictWord{13, 0, 351}, dictWord{18, 0, 132}, dictWord{147, 0, 125}, dictWord{135, 0, 841}, dictWord{ 136, 0, 566, }, dictWord{136, 0, 938}, dictWord{132, 11, 670}, dictWord{5, 0, 912}, dictWord{6, 0, 1695}, dictWord{140, 11, 55}, dictWord{9, 11, 40}, dictWord{ 139, 11, 136, }, dictWord{7, 0, 1361}, dictWord{7, 10, 982}, dictWord{10, 10, 32}, dictWord{143, 10, 56}, dictWord{11, 11, 259}, dictWord{140, 11, 270}, dictWord{ 5, 0, 236, }, dictWord{6, 0, 572}, dictWord{8, 0, 492}, dictWord{11, 0, 618}, dictWord{144, 0, 56}, dictWord{8, 11, 572}, dictWord{9, 11, 310}, dictWord{9, 11, 682}, dictWord{137, 11, 698}, dictWord{134, 0, 1854}, dictWord{5, 0, 190}, dictWord{136, 0, 318}, dictWord{133, 10, 435}, dictWord{135, 0, 1376}, dictWord{ 4, 11, 296, }, dictWord{6, 11, 352}, dictWord{7, 11, 401}, dictWord{7, 11, 1410}, dictWord{7, 11, 1594}, dictWord{7, 11, 1674}, dictWord{8, 11, 63}, dictWord{ 8, 11, 660, }, dictWord{137, 11, 74}, dictWord{7, 0, 349}, dictWord{5, 10, 85}, dictWord{6, 10, 419}, dictWord{7, 10, 305}, dictWord{7, 10, 361}, dictWord{7, 10, 1337}, dictWord{8, 10, 71}, dictWord{140, 10, 519}, dictWord{4, 11, 139}, dictWord{4, 11, 388}, dictWord{140, 11, 188}, dictWord{6, 0, 1972}, dictWord{6, 0, 2013}, dictWord{8, 0, 951}, dictWord{10, 0, 947}, dictWord{10, 0, 974}, dictWord{10, 0, 1018}, dictWord{142, 0, 476}, dictWord{140, 10, 688}, dictWord{ 135, 10, 740, }, dictWord{5, 10, 691}, dictWord{7, 10, 345}, dictWord{9, 10, 94}, dictWord{140, 10, 169}, dictWord{9, 0, 344}, dictWord{5, 10, 183}, dictWord{6, 10, 582}, dictWord{10, 10, 679}, dictWord{140, 10, 435}, dictWord{135, 10, 511}, dictWord{132, 0, 850}, dictWord{8, 11, 441}, dictWord{10, 11, 314}, dictWord{ 143, 11, 3, }, dictWord{7, 10, 1993}, dictWord{136, 10, 684}, dictWord{4, 11, 747}, dictWord{6, 11, 290}, dictWord{6, 10, 583}, dictWord{7, 11, 649}, dictWord{ 7, 11, 1479, }, dictWord{135, 11, 1583}, dictWord{133, 11, 232}, dictWord{133, 10, 704}, dictWord{134, 0, 910}, dictWord{4, 10, 179}, dictWord{5, 10, 198}, dictWord{133, 10, 697}, dictWord{7, 10, 347}, dictWord{7, 10, 971}, dictWord{8, 10, 181}, dictWord{138, 10, 711}, dictWord{136, 11, 525}, dictWord{ 14, 0, 19, }, dictWord{14, 0, 28}, dictWord{144, 0, 29}, dictWord{7, 0, 85}, dictWord{7, 0, 247}, dictWord{8, 0, 585}, dictWord{138, 0, 163}, dictWord{4, 0, 487}, dictWord{ 7, 11, 472, }, dictWord{7, 11, 1801}, dictWord{10, 11, 748}, dictWord{141, 11, 458}, dictWord{4, 10, 243}, dictWord{5, 10, 203}, dictWord{7, 10, 19}, dictWord{ 7, 10, 71, }, dictWord{7, 10, 113}, dictWord{10, 10, 405}, dictWord{11, 10, 357}, dictWord{142, 10, 240}, dictWord{7, 10, 1450}, dictWord{139, 10, 99}, dictWord{132, 11, 425}, dictWord{138, 0, 145}, dictWord{147, 0, 83}, dictWord{6, 10, 492}, dictWord{137, 11, 247}, dictWord{4, 0, 1013}, dictWord{ 134, 0, 2033, }, dictWord{5, 10, 134}, dictWord{6, 10, 408}, dictWord{6, 10, 495}, dictWord{135, 10, 1593}, dictWord{135, 0, 1922}, dictWord{134, 11, 1768}, dictWord{4, 0, 124}, dictWord{10, 0, 457}, dictWord{11, 0, 121}, dictWord{11, 0, 169}, dictWord{11, 0, 870}, dictWord{11, 0, 874}, dictWord{12, 0, 214}, dictWord{ 14, 0, 187, }, dictWord{143, 0, 77}, dictWord{5, 0, 557}, dictWord{135, 0, 1457}, dictWord{139, 0, 66}, dictWord{5, 11, 943}, dictWord{6, 11, 1779}, dictWord{ 142, 10, 4, }, dictWord{4, 10, 248}, dictWord{4, 10, 665}, dictWord{7, 10, 137}, dictWord{137, 10, 349}, dictWord{7, 0, 1193}, dictWord{5, 11, 245}, dictWord{ 6, 11, 576, }, dictWord{7, 11, 582}, dictWord{136, 11, 225}, dictWord{144, 0, 82}, dictWord{7, 10, 1270}, dictWord{139, 10, 612}, dictWord{5, 0, 454}, dictWord{ 10, 0, 352, }, dictWord{138, 11, 352}, dictWord{18, 0, 57}, dictWord{5, 10, 371}, dictWord{135, 10, 563}, dictWord{135, 0, 1333}, dictWord{6, 0, 107}, dictWord{ 7, 0, 638, }, dictWord{7, 0, 1632}, dictWord{9, 0, 396}, dictWord{134, 11, 610}, dictWord{5, 0, 370}, dictWord{134, 0, 1756}, dictWord{4, 10, 374}, dictWord{ 7, 10, 547, }, dictWord{7, 10, 1700}, dictWord{7, 10, 1833}, dictWord{139, 10, 858}, dictWord{133, 0, 204}, dictWord{6, 0, 1305}, dictWord{9, 10, 311}, dictWord{ 141, 10, 42, }, dictWord{5, 0, 970}, dictWord{134, 0, 1706}, dictWord{6, 10, 1647}, dictWord{7, 10, 1552}, dictWord{7, 10, 2010}, dictWord{9, 10, 494}, dictWord{137, 10, 509}, dictWord{13, 11, 455}, dictWord{15, 11, 99}, dictWord{15, 11, 129}, dictWord{144, 11, 68}, dictWord{135, 0, 3}, dictWord{4, 0, 35}, dictWord{ 5, 0, 121, }, dictWord{5, 0, 483}, dictWord{5, 0, 685}, dictWord{6, 0, 489}, dictWord{6, 0, 782}, dictWord{6, 0, 1032}, dictWord{7, 0, 1204}, dictWord{136, 0, 394}, dictWord{4, 0, 921}, dictWord{133, 0, 1007}, dictWord{8, 11, 360}, dictWord{138, 11, 63}, dictWord{135, 0, 1696}, dictWord{134, 0, 1519}, dictWord{ 132, 11, 443, }, dictWord{135, 11, 944}, dictWord{6, 10, 123}, dictWord{7, 10, 214}, dictWord{9, 10, 728}, dictWord{10, 10, 157}, dictWord{11, 10, 346}, dictWord{11, 10, 662}, dictWord{143, 10, 106}, dictWord{137, 0, 981}, dictWord{135, 10, 1435}, dictWord{134, 0, 1072}, dictWord{132, 0, 712}, dictWord{ 134, 0, 1629, }, dictWord{134, 0, 728}, dictWord{4, 11, 298}, dictWord{137, 11, 483}, dictWord{6, 0, 1177}, dictWord{6, 0, 1271}, dictWord{5, 11, 164}, dictWord{ 7, 11, 121, }, dictWord{142, 11, 189}, dictWord{7, 0, 1608}, dictWord{4, 10, 707}, dictWord{5, 10, 588}, dictWord{6, 10, 393}, dictWord{13, 10, 106}, dictWord{ 18, 10, 49, }, dictWord{147, 10, 41}, dictWord{23, 0, 16}, dictWord{151, 11, 16}, dictWord{6, 10, 211}, dictWord{7, 10, 1690}, dictWord{11, 10, 486}, dictWord{140, 10, 369}, dictWord{133, 0, 485}, dictWord{19, 11, 15}, dictWord{149, 11, 27}, dictWord{4, 11, 172}, dictWord{9, 11, 611}, dictWord{10, 11, 436}, dictWord{12, 11, 673}, dictWord{141, 11, 255}, dictWord{5, 11, 844}, dictWord{10, 11, 484}, dictWord{11, 11, 754}, dictWord{12, 11, 457}, dictWord{ 14, 11, 171, }, dictWord{14, 11, 389}, dictWord{146, 11, 153}, dictWord{4, 0, 285}, dictWord{5, 0, 27}, dictWord{5, 0, 317}, dictWord{6, 0, 301}, dictWord{7, 0, 7}, dictWord{ 8, 0, 153, }, dictWord{10, 0, 766}, dictWord{11, 0, 468}, dictWord{12, 0, 467}, dictWord{141, 0, 143}, dictWord{134, 0, 1462}, dictWord{9, 11, 263}, dictWord{ 10, 11, 147, }, dictWord{138, 11, 492}, dictWord{133, 11, 537}, dictWord{6, 0, 1945}, dictWord{6, 0, 1986}, dictWord{6, 0, 1991}, dictWord{134, 0, 2038}, dictWord{134, 10, 219}, dictWord{137, 11, 842}, dictWord{14, 0, 52}, dictWord{17, 0, 50}, dictWord{5, 10, 582}, dictWord{6, 10, 1646}, dictWord{7, 10, 99}, dictWord{7, 10, 1962}, dictWord{7, 10, 1986}, dictWord{8, 10, 515}, dictWord{8, 10, 773}, dictWord{9, 10, 23}, dictWord{9, 10, 491}, dictWord{12, 10, 620}, dictWord{142, 10, 93}, dictWord{138, 11, 97}, dictWord{20, 0, 21}, dictWord{20, 0, 44}, dictWord{133, 10, 851}, dictWord{136, 0, 819}, dictWord{139, 0, 917}, dictWord{5, 11, 230}, dictWord{5, 11, 392}, dictWord{6, 11, 420}, dictWord{8, 10, 762}, dictWord{8, 10, 812}, dictWord{9, 11, 568}, dictWord{9, 10, 910}, dictWord{140, 11, 612}, dictWord{135, 0, 784}, dictWord{15, 0, 135}, dictWord{143, 11, 135}, dictWord{10, 0, 454}, dictWord{140, 0, 324}, dictWord{4, 11, 0}, dictWord{5, 11, 41}, dictWord{7, 11, 1459}, dictWord{7, 11, 1469}, dictWord{7, 11, 1618}, dictWord{7, 11, 1859}, dictWord{9, 11, 549}, dictWord{139, 11, 905}, dictWord{4, 10, 98}, dictWord{7, 10, 1365}, dictWord{9, 10, 422}, dictWord{9, 10, 670}, dictWord{10, 10, 775}, dictWord{11, 10, 210}, dictWord{13, 10, 26}, dictWord{13, 10, 457}, dictWord{141, 10, 476}, dictWord{6, 0, 1719}, dictWord{6, 0, 1735}, dictWord{7, 0, 2016}, dictWord{7, 0, 2020}, dictWord{8, 0, 837}, dictWord{137, 0, 852}, dictWord{133, 11, 696}, dictWord{135, 0, 852}, dictWord{132, 0, 952}, dictWord{134, 10, 1730}, dictWord{132, 11, 771}, dictWord{ 138, 0, 568, }, dictWord{137, 0, 448}, dictWord{139, 0, 146}, dictWord{8, 0, 67}, dictWord{138, 0, 419}, dictWord{133, 11, 921}, dictWord{137, 10, 147}, dictWord{134, 0, 1826}, dictWord{10, 0, 657}, dictWord{14, 0, 297}, dictWord{142, 0, 361}, dictWord{6, 0, 666}, dictWord{6, 0, 767}, dictWord{134, 0, 1542}, dictWord{139, 0, 729}, dictWord{6, 11, 180}, dictWord{7, 11, 1137}, dictWord{8, 11, 751}, dictWord{139, 11, 805}, dictWord{4, 11, 183}, dictWord{7, 11, 271}, dictWord{11, 11, 824}, dictWord{11, 11, 952}, dictWord{13, 11, 278}, dictWord{13, 11, 339}, dictWord{13, 11, 482}, dictWord{14, 11, 424}, dictWord{ 148, 11, 99, }, dictWord{4, 0, 669}, dictWord{5, 11, 477}, dictWord{5, 11, 596}, dictWord{6, 11, 505}, dictWord{7, 11, 1221}, dictWord{11, 11, 907}, dictWord{ 12, 11, 209, }, dictWord{141, 11, 214}, dictWord{135, 11, 1215}, dictWord{5, 0, 402}, dictWord{6, 10, 30}, dictWord{11, 10, 56}, dictWord{139, 10, 305}, dictWord{ 7, 11, 564, }, dictWord{142, 11, 168}, dictWord{139, 0, 152}, dictWord{7, 0, 912}, dictWord{135, 10, 1614}, dictWord{4, 10, 150}, dictWord{5, 10, 303}, dictWord{134, 10, 327}, dictWord{7, 0, 320}, dictWord{8, 0, 51}, dictWord{9, 0, 868}, dictWord{10, 0, 833}, dictWord{12, 0, 481}, dictWord{12, 0, 570}, dictWord{ 148, 0, 106, }, dictWord{132, 0, 445}, dictWord{7, 11, 274}, dictWord{11, 11, 263}, dictWord{11, 11, 479}, dictWord{11, 11, 507}, dictWord{140, 11, 277}, dictWord{10, 0, 555}, dictWord{11, 0, 308}, dictWord{19, 0, 95}, dictWord{6, 11, 1645}, dictWord{8, 10, 192}, dictWord{10, 10, 78}, dictWord{141, 10, 359}, dictWord{135, 10, 786}, dictWord{6, 11, 92}, dictWord{6, 11, 188}, dictWord{7, 11, 1269}, dictWord{7, 11, 1524}, dictWord{7, 11, 1876}, dictWord{10, 11, 228}, dictWord{139, 11, 1020}, dictWord{4, 11, 459}, dictWord{133, 11, 966}, dictWord{11, 0, 386}, dictWord{6, 10, 1638}, dictWord{7, 10, 79}, dictWord{ 7, 10, 496, }, dictWord{9, 10, 138}, dictWord{10, 10, 336}, dictWord{12, 10, 412}, dictWord{12, 10, 440}, dictWord{142, 10, 305}, dictWord{133, 0, 239}, dictWord{ 7, 0, 83, }, dictWord{7, 0, 1990}, dictWord{8, 0, 130}, dictWord{139, 0, 720}, dictWord{138, 11, 709}, dictWord{4, 0, 143}, dictWord{5, 0, 550}, dictWord{ 133, 0, 752, }, dictWord{5, 0, 123}, dictWord{6, 0, 530}, dictWord{7, 0, 348}, dictWord{135, 0, 1419}, dictWord{135, 0, 2024}, dictWord{6, 11, 18}, dictWord{7, 11, 179}, dictWord{7, 11, 721}, dictWord{7, 11, 932}, dictWord{8, 11, 548}, dictWord{8, 11, 757}, dictWord{9, 11, 54}, dictWord{9, 11, 65}, dictWord{9, 11, 532}, dictWord{ 9, 11, 844, }, dictWord{10, 11, 113}, dictWord{10, 11, 117}, dictWord{10, 11, 236}, dictWord{10, 11, 315}, dictWord{10, 11, 430}, dictWord{10, 11, 798}, dictWord{11, 11, 153}, dictWord{11, 11, 351}, dictWord{11, 11, 375}, dictWord{12, 11, 78}, dictWord{12, 11, 151}, dictWord{12, 11, 392}, dictWord{ 14, 11, 248, }, dictWord{143, 11, 23}, dictWord{7, 10, 204}, dictWord{7, 10, 415}, dictWord{8, 10, 42}, dictWord{10, 10, 85}, dictWord{139, 10, 564}, dictWord{ 134, 0, 958, }, dictWord{133, 11, 965}, dictWord{132, 0, 210}, dictWord{135, 11, 1429}, dictWord{138, 11, 480}, dictWord{134, 11, 182}, dictWord{ 139, 11, 345, }, dictWord{10, 11, 65}, dictWord{10, 11, 488}, dictWord{138, 11, 497}, dictWord{4, 10, 3}, dictWord{5, 10, 247}, dictWord{5, 10, 644}, dictWord{ 7, 10, 744, }, dictWord{7, 10, 1207}, dictWord{7, 10, 1225}, dictWord{7, 10, 1909}, dictWord{146, 10, 147}, dictWord{132, 0, 430}, dictWord{5, 10, 285}, dictWord{ 9, 10, 67, }, dictWord{13, 10, 473}, dictWord{143, 10, 82}, dictWord{144, 11, 16}, dictWord{7, 11, 1162}, dictWord{9, 11, 588}, dictWord{10, 11, 260}, dictWord{151, 10, 8}, dictWord{133, 0, 213}, dictWord{138, 0, 7}, dictWord{135, 0, 801}, dictWord{134, 11, 1786}, dictWord{135, 11, 308}, dictWord{6, 0, 936}, dictWord{134, 0, 1289}, dictWord{133, 0, 108}, dictWord{132, 0, 885}, dictWord{133, 0, 219}, dictWord{139, 0, 587}, dictWord{4, 0, 193}, dictWord{5, 0, 916}, dictWord{6, 0, 1041}, dictWord{7, 0, 364}, dictWord{10, 0, 398}, dictWord{10, 0, 726}, dictWord{11, 0, 317}, dictWord{11, 0, 626}, dictWord{12, 0, 142}, dictWord{12, 0, 288}, dictWord{12, 0, 678}, dictWord{13, 0, 313}, dictWord{15, 0, 113}, dictWord{146, 0, 114}, dictWord{135, 0, 1165}, dictWord{6, 0, 241}, dictWord{ 9, 0, 342, }, dictWord{10, 0, 729}, dictWord{11, 0, 284}, dictWord{11, 0, 445}, dictWord{11, 0, 651}, dictWord{11, 0, 863}, dictWord{13, 0, 398}, dictWord{ 146, 0, 99, }, dictWord{7, 0, 907}, dictWord{136, 0, 832}, dictWord{9, 0, 303}, dictWord{4, 10, 29}, dictWord{6, 10, 532}, dictWord{7, 10, 1628}, dictWord{7, 10, 1648}, dictWord{9, 10, 350}, dictWord{10, 10, 433}, dictWord{11, 10, 97}, dictWord{11, 10, 557}, dictWord{11, 10, 745}, dictWord{12, 10, 289}, dictWord{ 12, 10, 335, }, dictWord{12, 10, 348}, dictWord{12, 10, 606}, dictWord{13, 10, 116}, dictWord{13, 10, 233}, dictWord{13, 10, 466}, dictWord{14, 10, 181}, dictWord{ 14, 10, 209, }, dictWord{14, 10, 232}, dictWord{14, 10, 236}, dictWord{14, 10, 300}, dictWord{16, 10, 41}, dictWord{148, 10, 97}, dictWord{7, 11, 423}, dictWord{7, 10, 1692}, dictWord{136, 11, 588}, dictWord{6, 0, 931}, dictWord{134, 0, 1454}, dictWord{5, 10, 501}, dictWord{7, 10, 1704}, dictWord{9, 10, 553}, dictWord{11, 10, 520}, dictWord{12, 10, 557}, dictWord{141, 10, 249}, dictWord{136, 11, 287}, dictWord{4, 0, 562}, dictWord{9, 0, 254}, dictWord{ 139, 0, 879, }, dictWord{132, 0, 786}, dictWord{14, 11, 32}, dictWord{18, 11, 85}, dictWord{20, 11, 2}, dictWord{152, 11, 16}, dictWord{135, 0, 1294}, dictWord{ 7, 11, 723, }, dictWord{135, 11, 1135}, dictWord{6, 0, 216}, dictWord{7, 0, 901}, dictWord{7, 0, 1343}, dictWord{8, 0, 493}, dictWord{134, 11, 403}, dictWord{ 7, 11, 719, }, dictWord{8, 11, 809}, dictWord{136, 11, 834}, dictWord{5, 11, 210}, dictWord{6, 11, 213}, dictWord{7, 11, 60}, dictWord{10, 11, 364}, dictWord{ 139, 11, 135, }, dictWord{7, 0, 341}, dictWord{11, 0, 219}, dictWord{5, 11, 607}, dictWord{8, 11, 326}, dictWord{136, 11, 490}, dictWord{4, 11, 701}, dictWord{ 5, 11, 472, }, dictWord{5, 11, 639}, dictWord{7, 11, 1249}, dictWord{9, 11, 758}, dictWord{139, 11, 896}, dictWord{135, 11, 380}, dictWord{135, 11, 1947}, dictWord{139, 0, 130}, dictWord{135, 0, 1734}, dictWord{10, 0, 115}, dictWord{11, 0, 420}, dictWord{12, 0, 154}, dictWord{13, 0, 404}, dictWord{14, 0, 346}, dictWord{143, 0, 54}, dictWord{134, 10, 129}, dictWord{4, 11, 386}, dictWord{7, 11, 41}, dictWord{8, 11, 405}, dictWord{9, 11, 497}, dictWord{11, 11, 110}, dictWord{11, 11, 360}, dictWord{15, 11, 37}, dictWord{144, 11, 84}, dictWord{141, 11, 282}, dictWord{5, 11, 46}, dictWord{7, 11, 1452}, dictWord{7, 11, 1480}, dictWord{8, 11, 634}, dictWord{140, 11, 472}, dictWord{4, 11, 524}, dictWord{136, 11, 810}, dictWord{10, 11, 238}, dictWord{141, 11, 33}, dictWord{ 133, 0, 604, }, dictWord{5, 0, 1011}, dictWord{136, 0, 701}, dictWord{8, 0, 856}, dictWord{8, 0, 858}, dictWord{8, 0, 879}, dictWord{12, 0, 702}, dictWord{142, 0, 447}, dictWord{4, 0, 54}, dictWord{5, 0, 666}, dictWord{7, 0, 1039}, dictWord{7, 0, 1130}, dictWord{9, 0, 195}, dictWord{138, 0, 302}, dictWord{4, 10, 25}, dictWord{ 5, 10, 60, }, dictWord{6, 10, 504}, dictWord{7, 10, 614}, dictWord{7, 10, 1155}, dictWord{140, 10, 0}, dictWord{7, 10, 1248}, dictWord{11, 10, 621}, dictWord{ 139, 10, 702, }, dictWord{133, 11, 997}, dictWord{137, 10, 321}, dictWord{134, 0, 1669}, dictWord{134, 0, 1791}, dictWord{4, 10, 379}, dictWord{ 135, 10, 1397, }, dictWord{138, 11, 372}, dictWord{5, 11, 782}, dictWord{5, 11, 829}, dictWord{134, 11, 1738}, dictWord{135, 0, 1228}, dictWord{4, 10, 118}, dictWord{6, 10, 274}, dictWord{6, 10, 361}, dictWord{7, 10, 75}, dictWord{141, 10, 441}, dictWord{132, 0, 623}, dictWord{9, 11, 279}, dictWord{10, 11, 407}, dictWord{14, 11, 84}, dictWord{150, 11, 18}, dictWord{137, 10, 841}, dictWord{135, 0, 798}, dictWord{140, 10, 693}, dictWord{5, 10, 314}, dictWord{6, 10, 221}, dictWord{7, 10, 419}, dictWord{10, 10, 650}, dictWord{11, 10, 396}, dictWord{12, 10, 156}, dictWord{13, 10, 369}, dictWord{14, 10, 333}, dictWord{ 145, 10, 47, }, dictWord{135, 11, 1372}, dictWord{7, 0, 122}, dictWord{9, 0, 259}, dictWord{10, 0, 84}, dictWord{11, 0, 470}, dictWord{12, 0, 541}, dictWord{ 141, 0, 379, }, dictWord{134, 0, 837}, dictWord{8, 0, 1013}, dictWord{4, 11, 78}, dictWord{5, 11, 96}, dictWord{5, 11, 182}, dictWord{7, 11, 1724}, dictWord{ 7, 11, 1825, }, dictWord{10, 11, 394}, dictWord{10, 11, 471}, dictWord{11, 11, 532}, dictWord{14, 11, 340}, dictWord{145, 11, 88}, dictWord{134, 0, 577}, dictWord{135, 11, 1964}, dictWord{132, 10, 913}, dictWord{134, 0, 460}, dictWord{8, 0, 891}, dictWord{10, 0, 901}, dictWord{10, 0, 919}, dictWord{10, 0, 932}, dictWord{12, 0, 715}, dictWord{12, 0, 728}, dictWord{12, 0, 777}, dictWord{14, 0, 457}, dictWord{144, 0, 103}, dictWord{5, 0, 82}, dictWord{5, 0, 131}, dictWord{ 7, 0, 1755, }, dictWord{8, 0, 31}, dictWord{9, 0, 168}, dictWord{9, 0, 764}, dictWord{139, 0, 869}, dictWord{136, 10, 475}, dictWord{6, 0, 605}, dictWord{ 5, 10, 1016, }, dictWord{9, 11, 601}, dictWord{9, 11, 619}, dictWord{10, 11, 505}, dictWord{10, 11, 732}, dictWord{11, 11, 355}, dictWord{140, 11, 139}, dictWord{ 7, 10, 602, }, dictWord{8, 10, 179}, dictWord{10, 10, 781}, dictWord{140, 10, 126}, dictWord{134, 0, 1246}, dictWord{6, 10, 329}, dictWord{138, 10, 111}, dictWord{6, 11, 215}, dictWord{7, 11, 1028}, dictWord{7, 11, 1473}, dictWord{7, 11, 1721}, dictWord{9, 11, 424}, dictWord{138, 11, 779}, dictWord{5, 0, 278}, dictWord{137, 0, 68}, dictWord{6, 0, 932}, dictWord{6, 0, 1084}, dictWord{144, 0, 86}, dictWord{4, 0, 163}, dictWord{5, 0, 201}, dictWord{5, 0, 307}, dictWord{ 5, 0, 310, }, dictWord{6, 0, 335}, dictWord{7, 0, 284}, dictWord{7, 0, 1660}, dictWord{136, 0, 165}, dictWord{136, 0, 781}, dictWord{134, 0, 707}, dictWord{6, 0, 33}, dictWord{135, 0, 1244}, dictWord{5, 10, 821}, dictWord{6, 11, 67}, dictWord{6, 10, 1687}, dictWord{7, 11, 258}, dictWord{7, 11, 1630}, dictWord{9, 11, 354}, dictWord{9, 11, 675}, dictWord{10, 11, 830}, dictWord{14, 11, 80}, dictWord{145, 11, 80}, dictWord{6, 11, 141}, dictWord{7, 11, 225}, dictWord{9, 11, 59}, dictWord{9, 11, 607}, dictWord{10, 11, 312}, dictWord{11, 11, 687}, dictWord{12, 11, 555}, dictWord{13, 11, 373}, dictWord{13, 11, 494}, dictWord{148, 11, 58}, dictWord{134, 0, 1113}, dictWord{9, 0, 388}, dictWord{5, 10, 71}, dictWord{7, 10, 1407}, dictWord{9, 10, 704}, dictWord{10, 10, 261}, dictWord{10, 10, 619}, dictWord{11, 10, 547}, dictWord{11, 10, 619}, dictWord{143, 10, 157}, dictWord{7, 0, 1953}, dictWord{136, 0, 720}, dictWord{138, 0, 203}, dictWord{ 7, 10, 2008, }, dictWord{9, 10, 337}, dictWord{138, 10, 517}, dictWord{6, 0, 326}, dictWord{7, 0, 677}, dictWord{137, 0, 425}, dictWord{139, 11, 81}, dictWord{ 7, 0, 1316, }, dictWord{7, 0, 1412}, dictWord{7, 0, 1839}, dictWord{9, 0, 589}, dictWord{11, 0, 241}, dictWord{11, 0, 676}, dictWord{11, 0, 811}, dictWord{11, 0, 891}, dictWord{12, 0, 140}, dictWord{12, 0, 346}, dictWord{12, 0, 479}, dictWord{13, 0, 140}, dictWord{13, 0, 381}, dictWord{14, 0, 188}, dictWord{18, 0, 30}, dictWord{148, 0, 108}, dictWord{5, 0, 416}, dictWord{6, 10, 86}, dictWord{6, 10, 603}, dictWord{7, 10, 292}, dictWord{7, 10, 561}, dictWord{8, 10, 257}, dictWord{ 8, 10, 382, }, dictWord{9, 10, 721}, dictWord{9, 10, 778}, dictWord{11, 10, 581}, dictWord{140, 10, 466}, dictWord{4, 10, 486}, dictWord{133, 10, 491}, dictWord{134, 0, 1300}, dictWord{132, 10, 72}, dictWord{7, 0, 847}, dictWord{6, 10, 265}, dictWord{7, 11, 430}, dictWord{139, 11, 46}, dictWord{5, 11, 602}, dictWord{6, 11, 106}, dictWord{7, 11, 1786}, dictWord{7, 11, 1821}, dictWord{7, 11, 2018}, dictWord{9, 11, 418}, dictWord{137, 11, 763}, dictWord{5, 0, 358}, dictWord{7, 0, 535}, dictWord{7, 0, 1184}, dictWord{10, 0, 662}, dictWord{13, 0, 212}, dictWord{13, 0, 304}, dictWord{13, 0, 333}, dictWord{145, 0, 98}, dictWord{ 5, 11, 65, }, dictWord{6, 11, 416}, dictWord{7, 11, 1720}, dictWord{7, 11, 1924}, dictWord{8, 11, 677}, dictWord{10, 11, 109}, dictWord{11, 11, 14}, dictWord{ 11, 11, 70, }, dictWord{11, 11, 569}, dictWord{11, 11, 735}, dictWord{15, 11, 153}, dictWord{148, 11, 80}, dictWord{6, 0, 1823}, dictWord{8, 0, 839}, dictWord{ 8, 0, 852, }, dictWord{8, 0, 903}, dictWord{10, 0, 940}, dictWord{12, 0, 707}, dictWord{140, 0, 775}, dictWord{135, 11, 1229}, dictWord{6, 0, 1522}, dictWord{ 140, 0, 654, }, dictWord{136, 11, 595}, dictWord{139, 0, 163}, dictWord{141, 0, 314}, dictWord{132, 0, 978}, dictWord{4, 0, 601}, dictWord{6, 0, 2035}, dictWord{137, 10, 234}, dictWord{5, 10, 815}, dictWord{6, 10, 1688}, dictWord{134, 10, 1755}, dictWord{133, 0, 946}, dictWord{136, 0, 434}, dictWord{ 6, 10, 197, }, dictWord{136, 10, 205}, dictWord{7, 0, 411}, dictWord{7, 0, 590}, dictWord{8, 0, 631}, dictWord{9, 0, 323}, dictWord{10, 0, 355}, dictWord{11, 0, 491}, dictWord{12, 0, 143}, dictWord{12, 0, 402}, dictWord{13, 0, 73}, dictWord{14, 0, 408}, dictWord{15, 0, 107}, dictWord{146, 0, 71}, dictWord{7, 0, 1467}, dictWord{ 8, 0, 328, }, dictWord{10, 0, 544}, dictWord{11, 0, 955}, dictWord{12, 0, 13}, dictWord{13, 0, 320}, dictWord{145, 0, 83}, dictWord{142, 0, 410}, dictWord{ 11, 0, 511, }, dictWord{13, 0, 394}, dictWord{14, 0, 298}, dictWord{14, 0, 318}, dictWord{146, 0, 103}, dictWord{6, 10, 452}, dictWord{7, 10, 312}, dictWord{ 138, 10, 219, }, dictWord{138, 10, 589}, dictWord{4, 10, 333}, dictWord{9, 10, 176}, dictWord{12, 10, 353}, dictWord{141, 10, 187}, dictWord{135, 11, 329}, dictWord{132, 11, 469}, dictWord{5, 0, 835}, dictWord{134, 0, 483}, dictWord{134, 11, 1743}, dictWord{5, 11, 929}, dictWord{6, 11, 340}, dictWord{8, 11, 376}, dictWord{136, 11, 807}, dictWord{134, 10, 1685}, dictWord{132, 0, 677}, dictWord{5, 11, 218}, dictWord{7, 11, 1610}, dictWord{138, 11, 83}, dictWord{ 5, 11, 571, }, dictWord{135, 11, 1842}, dictWord{132, 11, 455}, dictWord{137, 0, 70}, dictWord{135, 0, 1405}, dictWord{7, 10, 135}, dictWord{8, 10, 7}, dictWord{ 8, 10, 62, }, dictWord{9, 10, 243}, dictWord{10, 10, 658}, dictWord{10, 10, 697}, dictWord{11, 10, 456}, dictWord{139, 10, 756}, dictWord{9, 10, 395}, dictWord{138, 10, 79}, dictWord{137, 0, 108}, dictWord{6, 11, 161}, dictWord{7, 11, 372}, dictWord{137, 11, 597}, dictWord{132, 11, 349}, dictWord{ 132, 0, 777, }, dictWord{132, 0, 331}, dictWord{135, 10, 631}, dictWord{133, 0, 747}, dictWord{6, 11, 432}, dictWord{6, 11, 608}, dictWord{139, 11, 322}, dictWord{138, 10, 835}, dictWord{5, 11, 468}, dictWord{7, 11, 1809}, dictWord{10, 11, 325}, dictWord{11, 11, 856}, dictWord{12, 11, 345}, dictWord{ 143, 11, 104, }, dictWord{133, 11, 223}, dictWord{7, 10, 406}, dictWord{7, 10, 459}, dictWord{8, 10, 606}, dictWord{139, 10, 726}, dictWord{132, 11, 566}, dictWord{142, 0, 68}, dictWord{4, 11, 59}, dictWord{135, 11, 1394}, dictWord{6, 11, 436}, dictWord{139, 11, 481}, dictWord{4, 11, 48}, dictWord{5, 11, 271}, dictWord{135, 11, 953}, dictWord{139, 11, 170}, dictWord{5, 11, 610}, dictWord{136, 11, 457}, dictWord{133, 11, 755}, dictWord{135, 11, 1217}, dictWord{ 133, 10, 612, }, dictWord{132, 11, 197}, dictWord{132, 0, 505}, dictWord{4, 10, 372}, dictWord{7, 10, 482}, dictWord{8, 10, 158}, dictWord{9, 10, 602}, dictWord{ 9, 10, 615, }, dictWord{10, 10, 245}, dictWord{10, 10, 678}, dictWord{10, 10, 744}, dictWord{11, 10, 248}, dictWord{139, 10, 806}, dictWord{133, 0, 326}, dictWord{5, 10, 854}, dictWord{135, 10, 1991}, dictWord{4, 0, 691}, dictWord{146, 0, 16}, dictWord{6, 0, 628}, dictWord{9, 0, 35}, dictWord{10, 0, 680}, dictWord{10, 0, 793}, dictWord{11, 0, 364}, dictWord{13, 0, 357}, dictWord{143, 0, 164}, dictWord{138, 0, 654}, dictWord{6, 0, 32}, dictWord{7, 0, 385}, dictWord{ 7, 0, 757, }, dictWord{7, 0, 1916}, dictWord{8, 0, 37}, dictWord{8, 0, 94}, dictWord{8, 0, 711}, dictWord{9, 0, 541}, dictWord{10, 0, 162}, dictWord{10, 0, 795}, dictWord{ 11, 0, 989, }, dictWord{11, 0, 1010}, dictWord{12, 0, 14}, dictWord{142, 0, 308}, dictWord{133, 11, 217}, dictWord{6, 0, 152}, dictWord{6, 0, 349}, dictWord{ 6, 0, 1682, }, dictWord{7, 0, 1252}, dictWord{8, 0, 112}, dictWord{9, 0, 435}, dictWord{9, 0, 668}, dictWord{10, 0, 290}, dictWord{10, 0, 319}, dictWord{10, 0, 815}, dictWord{11, 0, 180}, dictWord{11, 0, 837}, dictWord{12, 0, 240}, dictWord{13, 0, 152}, dictWord{13, 0, 219}, dictWord{142, 0, 158}, dictWord{4, 0, 581}, dictWord{134, 0, 726}, dictWord{5, 10, 195}, dictWord{135, 10, 1685}, dictWord{6, 0, 126}, dictWord{7, 0, 573}, dictWord{8, 0, 397}, dictWord{142, 0, 44}, dictWord{138, 0, 89}, dictWord{7, 10, 1997}, dictWord{8, 10, 730}, dictWord{139, 10, 1006}, dictWord{134, 0, 1531}, dictWord{134, 0, 1167}, dictWord{ 5, 0, 926, }, dictWord{12, 0, 203}, dictWord{133, 10, 751}, dictWord{4, 11, 165}, dictWord{7, 11, 1398}, dictWord{135, 11, 1829}, dictWord{7, 0, 1232}, dictWord{137, 0, 531}, dictWord{135, 10, 821}, dictWord{134, 0, 943}, dictWord{133, 0, 670}, dictWord{4, 0, 880}, dictWord{139, 0, 231}, dictWord{ 134, 0, 1617, }, dictWord{135, 0, 1957}, dictWord{5, 11, 9}, dictWord{7, 11, 297}, dictWord{7, 11, 966}, dictWord{140, 11, 306}, dictWord{6, 0, 975}, dictWord{ 134, 0, 985, }, dictWord{5, 10, 950}, dictWord{5, 10, 994}, dictWord{134, 10, 351}, dictWord{12, 11, 21}, dictWord{151, 11, 7}, dictWord{5, 11, 146}, dictWord{ 6, 11, 411, }, dictWord{138, 11, 721}, dictWord{7, 0, 242}, dictWord{135, 0, 1942}, dictWord{6, 11, 177}, dictWord{135, 11, 467}, dictWord{5, 0, 421}, dictWord{ 7, 10, 47, }, dictWord{137, 10, 684}, dictWord{5, 0, 834}, dictWord{7, 0, 1202}, dictWord{8, 0, 14}, dictWord{9, 0, 481}, dictWord{137, 0, 880}, dictWord{138, 0, 465}, dictWord{6, 0, 688}, dictWord{9, 0, 834}, dictWord{132, 10, 350}, dictWord{132, 0, 855}, dictWord{4, 0, 357}, dictWord{6, 0, 172}, dictWord{7, 0, 143}, dictWord{137, 0, 413}, dictWord{133, 11, 200}, dictWord{132, 0, 590}, dictWord{7, 10, 1812}, dictWord{13, 10, 259}, dictWord{13, 10, 356}, dictWord{ 14, 10, 242, }, dictWord{147, 10, 114}, dictWord{133, 10, 967}, dictWord{11, 0, 114}, dictWord{4, 10, 473}, dictWord{7, 10, 623}, dictWord{8, 10, 808}, dictWord{ 9, 10, 871, }, dictWord{9, 10, 893}, dictWord{11, 10, 431}, dictWord{12, 10, 112}, dictWord{12, 10, 217}, dictWord{12, 10, 243}, dictWord{12, 10, 562}, dictWord{ 12, 10, 663, }, dictWord{12, 10, 683}, dictWord{13, 10, 141}, dictWord{13, 10, 197}, dictWord{13, 10, 227}, dictWord{13, 10, 406}, dictWord{13, 10, 487}, dictWord{14, 10, 156}, dictWord{14, 10, 203}, dictWord{14, 10, 224}, dictWord{14, 10, 256}, dictWord{18, 10, 58}, dictWord{150, 10, 0}, dictWord{ 138, 10, 286, }, dictWord{4, 10, 222}, dictWord{7, 10, 286}, dictWord{136, 10, 629}, dictWord{5, 0, 169}, dictWord{7, 0, 333}, dictWord{136, 0, 45}, dictWord{ 134, 11, 481, }, dictWord{132, 0, 198}, dictWord{4, 0, 24}, dictWord{5, 0, 140}, dictWord{5, 0, 185}, dictWord{7, 0, 1500}, dictWord{11, 0, 565}, dictWord{11, 0, 838}, dictWord{4, 11, 84}, dictWord{7, 11, 1482}, dictWord{10, 11, 76}, dictWord{138, 11, 142}, dictWord{133, 0, 585}, dictWord{141, 10, 306}, dictWord{ 133, 11, 1015, }, dictWord{4, 11, 315}, dictWord{5, 11, 507}, dictWord{135, 11, 1370}, dictWord{136, 10, 146}, dictWord{6, 0, 691}, dictWord{134, 0, 1503}, dictWord{ 4, 0, 334, }, dictWord{133, 0, 593}, dictWord{4, 10, 465}, dictWord{135, 10, 1663}, dictWord{142, 11, 173}, dictWord{135, 0, 913}, dictWord{12, 0, 116}, dictWord{134, 11, 1722}, dictWord{134, 0, 1360}, dictWord{132, 0, 802}, dictWord{8, 11, 222}, dictWord{8, 11, 476}, dictWord{9, 11, 238}, dictWord{ 11, 11, 516, }, dictWord{11, 11, 575}, dictWord{15, 11, 109}, dictWord{146, 11, 100}, dictWord{6, 0, 308}, dictWord{9, 0, 673}, dictWord{7, 10, 138}, dictWord{ 7, 10, 517, }, dictWord{139, 10, 238}, dictWord{132, 0, 709}, dictWord{6, 0, 1876}, dictWord{6, 0, 1895}, dictWord{9, 0, 994}, dictWord{9, 0, 1006}, dictWord{ 12, 0, 829, }, dictWord{12, 0, 888}, dictWord{12, 0, 891}, dictWord{146, 0, 185}, dictWord{148, 10, 94}, dictWord{4, 0, 228}, dictWord{133, 0, 897}, dictWord{ 7, 0, 1840, }, dictWord{5, 10, 495}, dictWord{7, 10, 834}, dictWord{9, 10, 733}, dictWord{139, 10, 378}, dictWord{133, 10, 559}, dictWord{6, 10, 21}, dictWord{ 6, 10, 1737, }, dictWord{7, 10, 1444}, dictWord{136, 10, 224}, dictWord{4, 0, 608}, dictWord{133, 0, 497}, dictWord{6, 11, 40}, dictWord{135, 11, 1781}, dictWord{134, 0, 1573}, dictWord{135, 0, 2039}, dictWord{6, 0, 540}, dictWord{136, 0, 136}, dictWord{4, 0, 897}, dictWord{5, 0, 786}, dictWord{133, 10, 519}, dictWord{6, 0, 1878}, dictWord{6, 0, 1884}, dictWord{9, 0, 938}, dictWord{9, 0, 948}, dictWord{9, 0, 955}, dictWord{9, 0, 973}, dictWord{9, 0, 1012}, dictWord{ 12, 0, 895, }, dictWord{12, 0, 927}, dictWord{143, 0, 254}, dictWord{134, 0, 1469}, dictWord{133, 0, 999}, dictWord{4, 0, 299}, dictWord{135, 0, 1004}, dictWord{ 4, 0, 745, }, dictWord{133, 0, 578}, dictWord{136, 11, 574}, dictWord{133, 0, 456}, dictWord{134, 0, 1457}, dictWord{7, 0, 1679}, dictWord{132, 10, 402}, dictWord{7, 0, 693}, dictWord{8, 0, 180}, dictWord{12, 0, 163}, dictWord{8, 10, 323}, dictWord{136, 10, 479}, dictWord{11, 10, 580}, dictWord{142, 10, 201}, dictWord{5, 10, 59}, dictWord{135, 10, 672}, dictWord{132, 11, 354}, dictWord{146, 10, 34}, dictWord{4, 0, 755}, dictWord{135, 11, 1558}, dictWord{ 7, 0, 1740, }, dictWord{146, 0, 48}, dictWord{4, 10, 85}, dictWord{135, 10, 549}, dictWord{139, 0, 338}, dictWord{133, 10, 94}, dictWord{134, 0, 1091}, dictWord{135, 11, 469}, dictWord{12, 0, 695}, dictWord{12, 0, 704}, dictWord{20, 0, 113}, dictWord{5, 11, 830}, dictWord{14, 11, 338}, dictWord{148, 11, 81}, dictWord{135, 0, 1464}, dictWord{6, 10, 11}, dictWord{135, 10, 187}, dictWord{135, 0, 975}, dictWord{13, 0, 335}, dictWord{132, 10, 522}, dictWord{ 134, 0, 1979, }, dictWord{5, 11, 496}, dictWord{135, 11, 203}, dictWord{4, 10, 52}, dictWord{135, 10, 661}, dictWord{7, 0, 1566}, dictWord{8, 0, 269}, dictWord{ 9, 0, 212, }, dictWord{9, 0, 718}, dictWord{14, 0, 15}, dictWord{14, 0, 132}, dictWord{142, 0, 227}, dictWord{4, 0, 890}, dictWord{5, 0, 805}, dictWord{5, 0, 819}, dictWord{ 5, 0, 961, }, dictWord{6, 0, 396}, dictWord{6, 0, 1631}, dictWord{6, 0, 1678}, dictWord{7, 0, 1967}, dictWord{7, 0, 2041}, dictWord{9, 0, 630}, dictWord{11, 0, 8}, dictWord{11, 0, 1019}, dictWord{12, 0, 176}, dictWord{13, 0, 225}, dictWord{14, 0, 292}, dictWord{21, 0, 24}, dictWord{4, 10, 383}, dictWord{133, 10, 520}, dictWord{134, 11, 547}, dictWord{135, 11, 1748}, dictWord{5, 11, 88}, dictWord{137, 11, 239}, dictWord{146, 11, 128}, dictWord{7, 11, 650}, dictWord{ 135, 11, 1310, }, dictWord{4, 10, 281}, dictWord{5, 10, 38}, dictWord{7, 10, 194}, dictWord{7, 10, 668}, dictWord{7, 10, 1893}, dictWord{137, 10, 397}, dictWord{135, 0, 1815}, dictWord{9, 10, 635}, dictWord{139, 10, 559}, dictWord{7, 0, 1505}, dictWord{10, 0, 190}, dictWord{10, 0, 634}, dictWord{11, 0, 792}, dictWord{12, 0, 358}, dictWord{140, 0, 447}, dictWord{5, 0, 0}, dictWord{6, 0, 536}, dictWord{7, 0, 604}, dictWord{13, 0, 445}, dictWord{145, 0, 126}, dictWord{ 7, 11, 1076, }, dictWord{9, 11, 80}, dictWord{11, 11, 78}, dictWord{11, 11, 421}, dictWord{11, 11, 534}, dictWord{140, 11, 545}, dictWord{8, 0, 966}, dictWord{ 10, 0, 1023, }, dictWord{14, 11, 369}, dictWord{146, 11, 72}, dictWord{135, 11, 1641}, dictWord{6, 0, 232}, dictWord{6, 0, 412}, dictWord{7, 0, 1074}, dictWord{ 8, 0, 9, }, dictWord{8, 0, 157}, dictWord{8, 0, 786}, dictWord{9, 0, 196}, dictWord{9, 0, 352}, dictWord{9, 0, 457}, dictWord{10, 0, 337}, dictWord{11, 0, 232}, dictWord{ 11, 0, 877, }, dictWord{12, 0, 480}, dictWord{140, 0, 546}, dictWord{135, 0, 958}, dictWord{4, 0, 382}, dictWord{136, 0, 579}, dictWord{4, 0, 212}, dictWord{ 135, 0, 1206, }, dictWord{4, 11, 497}, dictWord{5, 11, 657}, dictWord{135, 11, 1584}, dictWord{132, 0, 681}, dictWord{8, 0, 971}, dictWord{138, 0, 965}, dictWord{ 5, 10, 448, }, dictWord{136, 10, 535}, dictWord{14, 0, 16}, dictWord{146, 0, 44}, dictWord{11, 0, 584}, dictWord{11, 0, 616}, dictWord{14, 0, 275}, dictWord{ 11, 11, 584, }, dictWord{11, 11, 616}, dictWord{142, 11, 275}, dictWord{136, 11, 13}, dictWord{7, 10, 610}, dictWord{135, 10, 1501}, dictWord{7, 11, 642}, dictWord{8, 11, 250}, dictWord{11, 11, 123}, dictWord{11, 11, 137}, dictWord{13, 11, 48}, dictWord{142, 11, 95}, dictWord{133, 0, 655}, dictWord{17, 0, 67}, dictWord{147, 0, 74}, dictWord{134, 0, 751}, dictWord{134, 0, 1967}, dictWord{6, 0, 231}, dictWord{136, 0, 423}, dictWord{5, 0, 300}, dictWord{138, 0, 1016}, dictWord{4, 10, 319}, dictWord{5, 10, 699}, dictWord{138, 10, 673}, dictWord{6, 0, 237}, dictWord{7, 0, 611}, dictWord{8, 0, 100}, dictWord{9, 0, 416}, dictWord{ 11, 0, 335, }, dictWord{12, 0, 173}, dictWord{18, 0, 101}, dictWord{6, 10, 336}, dictWord{8, 10, 552}, dictWord{9, 10, 285}, dictWord{10, 10, 99}, dictWord{ 139, 10, 568, }, dictWord{134, 0, 1370}, dictWord{7, 10, 1406}, dictWord{9, 10, 218}, dictWord{141, 10, 222}, dictWord{133, 10, 256}, dictWord{ 135, 0, 1208, }, dictWord{14, 11, 213}, dictWord{148, 11, 38}, dictWord{6, 0, 1219}, dictWord{135, 11, 1642}, dictWord{13, 0, 417}, dictWord{14, 0, 129}, dictWord{143, 0, 15}, dictWord{10, 11, 545}, dictWord{140, 11, 301}, dictWord{17, 10, 39}, dictWord{148, 10, 36}, dictWord{133, 0, 199}, dictWord{4, 11, 904}, dictWord{133, 11, 794}, dictWord{12, 0, 427}, dictWord{146, 0, 38}, dictWord{134, 0, 949}, dictWord{8, 0, 665}, dictWord{135, 10, 634}, dictWord{ 132, 10, 618, }, dictWord{135, 10, 259}, dictWord{132, 10, 339}, dictWord{133, 11, 761}, dictWord{141, 10, 169}, dictWord{132, 10, 759}, dictWord{5, 0, 688}, dictWord{7, 0, 539}, dictWord{135, 0, 712}, dictWord{7, 11, 386}, dictWord{138, 11, 713}, dictWord{134, 0, 1186}, dictWord{6, 11, 7}, dictWord{6, 11, 35}, dictWord{ 7, 11, 147, }, dictWord{7, 11, 1069}, dictWord{7, 11, 1568}, dictWord{7, 11, 1575}, dictWord{7, 11, 1917}, dictWord{8, 11, 43}, dictWord{8, 11, 208}, dictWord{ 9, 11, 128, }, dictWord{9, 11, 866}, dictWord{10, 11, 20}, dictWord{11, 11, 981}, dictWord{147, 11, 33}, dictWord{7, 11, 893}, dictWord{8, 10, 482}, dictWord{141, 11, 424}, dictWord{6, 0, 312}, dictWord{6, 0, 1715}, dictWord{10, 0, 584}, dictWord{11, 0, 546}, dictWord{11, 0, 692}, dictWord{12, 0, 259}, dictWord{ 12, 0, 295, }, dictWord{13, 0, 46}, dictWord{141, 0, 154}, dictWord{5, 10, 336}, dictWord{6, 10, 341}, dictWord{6, 10, 478}, dictWord{6, 10, 1763}, dictWord{ 136, 10, 386, }, dictWord{137, 0, 151}, dictWord{132, 0, 588}, dictWord{152, 0, 4}, dictWord{6, 11, 322}, dictWord{9, 11, 552}, dictWord{11, 11, 274}, dictWord{ 13, 11, 209, }, dictWord{13, 11, 499}, dictWord{14, 11, 85}, dictWord{15, 11, 126}, dictWord{145, 11, 70}, dictWord{135, 10, 73}, dictWord{4, 0, 231}, dictWord{ 5, 0, 61, }, dictWord{6, 0, 104}, dictWord{7, 0, 729}, dictWord{7, 0, 964}, dictWord{7, 0, 1658}, dictWord{140, 0, 414}, dictWord{6, 0, 263}, dictWord{138, 0, 757}, dictWord{135, 10, 1971}, dictWord{4, 0, 612}, dictWord{133, 0, 561}, dictWord{132, 0, 320}, dictWord{135, 10, 1344}, dictWord{8, 11, 83}, dictWord{ 8, 11, 817, }, dictWord{9, 11, 28}, dictWord{9, 11, 29}, dictWord{9, 11, 885}, dictWord{10, 11, 387}, dictWord{11, 11, 633}, dictWord{11, 11, 740}, dictWord{ 13, 11, 235, }, dictWord{13, 11, 254}, dictWord{15, 11, 143}, dictWord{143, 11, 146}, dictWord{5, 10, 396}, dictWord{134, 10, 501}, dictWord{140, 11, 49}, dictWord{132, 0, 225}, dictWord{4, 10, 929}, dictWord{5, 10, 799}, dictWord{8, 10, 46}, dictWord{136, 10, 740}, dictWord{4, 0, 405}, dictWord{7, 0, 817}, dictWord{ 14, 0, 58, }, dictWord{17, 0, 37}, dictWord{146, 0, 124}, dictWord{133, 0, 974}, dictWord{4, 11, 412}, dictWord{133, 11, 581}, dictWord{4, 10, 892}, dictWord{ 133, 10, 770, }, dictWord{4, 0, 996}, dictWord{134, 0, 2026}, dictWord{4, 0, 527}, dictWord{5, 0, 235}, dictWord{7, 0, 1239}, dictWord{11, 0, 131}, dictWord{ 140, 0, 370, }, dictWord{9, 0, 16}, dictWord{13, 0, 386}, dictWord{135, 11, 421}, dictWord{7, 0, 956}, dictWord{7, 0, 1157}, dictWord{7, 0, 1506}, dictWord{7, 0, 1606}, dictWord{7, 0, 1615}, dictWord{7, 0, 1619}, dictWord{7, 0, 1736}, dictWord{7, 0, 1775}, dictWord{8, 0, 590}, dictWord{9, 0, 324}, dictWord{9, 0, 736}, dictWord{ 9, 0, 774, }, dictWord{9, 0, 776}, dictWord{9, 0, 784}, dictWord{10, 0, 567}, dictWord{10, 0, 708}, dictWord{11, 0, 518}, dictWord{11, 0, 613}, dictWord{11, 0, 695}, dictWord{11, 0, 716}, dictWord{11, 0, 739}, dictWord{11, 0, 770}, dictWord{11, 0, 771}, dictWord{11, 0, 848}, dictWord{11, 0, 857}, dictWord{11, 0, 931}, dictWord{ 11, 0, 947, }, dictWord{12, 0, 326}, dictWord{12, 0, 387}, dictWord{12, 0, 484}, dictWord{12, 0, 528}, dictWord{12, 0, 552}, dictWord{12, 0, 613}, dictWord{ 13, 0, 189, }, dictWord{13, 0, 256}, dictWord{13, 0, 340}, dictWord{13, 0, 432}, dictWord{13, 0, 436}, dictWord{13, 0, 440}, dictWord{13, 0, 454}, dictWord{14, 0, 174}, dictWord{14, 0, 220}, dictWord{14, 0, 284}, dictWord{14, 0, 390}, dictWord{145, 0, 121}, dictWord{135, 10, 158}, dictWord{9, 0, 137}, dictWord{138, 0, 221}, dictWord{4, 11, 110}, dictWord{10, 11, 415}, dictWord{10, 11, 597}, dictWord{142, 11, 206}, dictWord{141, 11, 496}, dictWord{135, 11, 205}, dictWord{ 151, 10, 25, }, dictWord{135, 11, 778}, dictWord{7, 11, 1656}, dictWord{7, 10, 2001}, dictWord{9, 11, 369}, dictWord{10, 11, 338}, dictWord{10, 11, 490}, dictWord{11, 11, 154}, dictWord{11, 11, 545}, dictWord{11, 11, 775}, dictWord{13, 11, 77}, dictWord{141, 11, 274}, dictWord{4, 11, 444}, dictWord{ 10, 11, 146, }, dictWord{140, 11, 9}, dictWord{7, 0, 390}, dictWord{138, 0, 140}, dictWord{135, 0, 1144}, dictWord{134, 0, 464}, dictWord{7, 10, 1461}, dictWord{ 140, 10, 91, }, dictWord{132, 10, 602}, dictWord{4, 11, 283}, dictWord{135, 11, 1194}, dictWord{5, 0, 407}, dictWord{11, 0, 204}, dictWord{11, 0, 243}, dictWord{ 11, 0, 489, }, dictWord{12, 0, 293}, dictWord{19, 0, 37}, dictWord{20, 0, 73}, dictWord{150, 0, 38}, dictWord{7, 0, 1218}, dictWord{136, 0, 303}, dictWord{ 5, 0, 325, }, dictWord{8, 0, 5}, dictWord{8, 0, 227}, dictWord{9, 0, 105}, dictWord{10, 0, 585}, dictWord{12, 0, 614}, dictWord{4, 10, 13}, dictWord{5, 10, 567}, dictWord{ 7, 10, 1498, }, dictWord{9, 10, 124}, dictWord{11, 10, 521}, dictWord{140, 10, 405}, dictWord{135, 10, 1006}, dictWord{7, 0, 800}, dictWord{10, 0, 12}, dictWord{134, 11, 1720}, dictWord{135, 0, 1783}, dictWord{132, 10, 735}, dictWord{138, 10, 812}, dictWord{4, 10, 170}, dictWord{135, 10, 323}, dictWord{ 6, 0, 621, }, dictWord{13, 0, 504}, dictWord{144, 0, 89}, dictWord{5, 10, 304}, dictWord{135, 10, 1403}, dictWord{137, 11, 216}, dictWord{6, 0, 920}, dictWord{ 6, 0, 1104, }, dictWord{9, 11, 183}, dictWord{139, 11, 286}, dictWord{4, 0, 376}, dictWord{133, 10, 742}, dictWord{134, 0, 218}, dictWord{8, 0, 641}, dictWord{ 11, 0, 388, }, dictWord{140, 0, 580}, dictWord{7, 0, 454}, dictWord{7, 0, 782}, dictWord{8, 0, 768}, dictWord{140, 0, 686}, dictWord{137, 11, 33}, dictWord{ 133, 10, 111, }, dictWord{144, 0, 0}, dictWord{10, 0, 676}, dictWord{140, 0, 462}, dictWord{6, 0, 164}, dictWord{136, 11, 735}, dictWord{133, 10, 444}, dictWord{ 150, 0, 50, }, dictWord{7, 11, 1862}, dictWord{12, 11, 491}, dictWord{12, 11, 520}, dictWord{13, 11, 383}, dictWord{14, 11, 244}, dictWord{146, 11, 12}, dictWord{ 5, 11, 132, }, dictWord{9, 11, 486}, dictWord{9, 11, 715}, dictWord{10, 11, 458}, dictWord{11, 11, 373}, dictWord{11, 11, 668}, dictWord{11, 11, 795}, dictWord{11, 11, 897}, dictWord{12, 11, 272}, dictWord{12, 11, 424}, dictWord{12, 11, 539}, dictWord{12, 11, 558}, dictWord{14, 11, 245}, dictWord{ 14, 11, 263, }, dictWord{14, 11, 264}, dictWord{14, 11, 393}, dictWord{142, 11, 403}, dictWord{8, 10, 123}, dictWord{15, 10, 6}, dictWord{144, 10, 7}, dictWord{ 6, 0, 285, }, dictWord{8, 0, 654}, dictWord{11, 0, 749}, dictWord{12, 0, 190}, dictWord{12, 0, 327}, dictWord{13, 0, 120}, dictWord{13, 0, 121}, dictWord{13, 0, 327}, dictWord{15, 0, 47}, dictWord{146, 0, 40}, dictWord{5, 11, 8}, dictWord{6, 11, 89}, dictWord{6, 11, 400}, dictWord{7, 11, 1569}, dictWord{7, 11, 1623}, dictWord{ 7, 11, 1850, }, dictWord{8, 11, 218}, dictWord{8, 11, 422}, dictWord{9, 11, 570}, dictWord{138, 11, 626}, dictWord{6, 11, 387}, dictWord{7, 11, 882}, dictWord{141, 11, 111}, dictWord{6, 0, 343}, dictWord{7, 0, 195}, dictWord{9, 0, 226}, dictWord{10, 0, 197}, dictWord{10, 0, 575}, dictWord{11, 0, 502}, dictWord{ 11, 0, 899, }, dictWord{6, 11, 224}, dictWord{7, 11, 877}, dictWord{137, 11, 647}, dictWord{5, 10, 937}, dictWord{135, 10, 100}, dictWord{135, 11, 790}, dictWord{150, 0, 29}, dictWord{147, 0, 8}, dictWord{134, 0, 1812}, dictWord{149, 0, 8}, dictWord{135, 11, 394}, dictWord{7, 0, 1125}, dictWord{9, 0, 143}, dictWord{ 11, 0, 61, }, dictWord{14, 0, 405}, dictWord{150, 0, 21}, dictWord{10, 11, 755}, dictWord{147, 11, 29}, dictWord{9, 11, 378}, dictWord{141, 11, 162}, dictWord{135, 10, 922}, dictWord{5, 10, 619}, dictWord{133, 10, 698}, dictWord{134, 0, 1327}, dictWord{6, 0, 1598}, dictWord{137, 0, 575}, dictWord{ 9, 11, 569, }, dictWord{12, 11, 12}, dictWord{12, 11, 81}, dictWord{12, 11, 319}, dictWord{13, 11, 69}, dictWord{14, 11, 259}, dictWord{16, 11, 87}, dictWord{ 17, 11, 1, }, dictWord{17, 11, 21}, dictWord{17, 11, 24}, dictWord{18, 11, 15}, dictWord{18, 11, 56}, dictWord{18, 11, 59}, dictWord{18, 11, 127}, dictWord{18, 11, 154}, dictWord{19, 11, 19}, dictWord{148, 11, 31}, dictWord{6, 0, 895}, dictWord{135, 11, 1231}, dictWord{5, 0, 959}, dictWord{7, 11, 124}, dictWord{136, 11, 38}, dictWord{5, 11, 261}, dictWord{7, 11, 78}, dictWord{7, 11, 199}, dictWord{8, 11, 815}, dictWord{9, 11, 126}, dictWord{138, 11, 342}, dictWord{5, 10, 917}, dictWord{134, 10, 1659}, dictWord{7, 0, 1759}, dictWord{5, 11, 595}, dictWord{135, 11, 1863}, dictWord{136, 0, 173}, dictWord{134, 0, 266}, dictWord{ 142, 0, 261, }, dictWord{132, 11, 628}, dictWord{5, 10, 251}, dictWord{5, 10, 956}, dictWord{8, 10, 268}, dictWord{9, 10, 214}, dictWord{146, 10, 142}, dictWord{ 7, 11, 266, }, dictWord{136, 11, 804}, dictWord{135, 11, 208}, dictWord{6, 11, 79}, dictWord{7, 11, 1021}, dictWord{135, 11, 1519}, dictWord{11, 11, 704}, dictWord{141, 11, 396}, dictWord{5, 10, 346}, dictWord{5, 10, 711}, dictWord{136, 10, 390}, dictWord{136, 11, 741}, dictWord{134, 11, 376}, dictWord{ 134, 0, 1427, }, dictWord{6, 0, 1033}, dictWord{6, 0, 1217}, dictWord{136, 0, 300}, dictWord{133, 10, 624}, dictWord{6, 11, 100}, dictWord{7, 11, 244}, dictWord{ 7, 11, 632, }, dictWord{7, 11, 1609}, dictWord{8, 11, 178}, dictWord{8, 11, 638}, dictWord{141, 11, 58}, dictWord{6, 0, 584}, dictWord{5, 10, 783}, dictWord{ 7, 10, 1998, }, dictWord{135, 10, 2047}, dictWord{5, 0, 427}, dictWord{5, 0, 734}, dictWord{7, 0, 478}, dictWord{136, 0, 52}, dictWord{7, 0, 239}, dictWord{ 11, 0, 217, }, dictWord{142, 0, 165}, dictWord{134, 0, 1129}, dictWord{6, 0, 168}, dictWord{6, 0, 1734}, dictWord{7, 0, 20}, dictWord{7, 0, 1056}, dictWord{8, 0, 732}, dictWord{9, 0, 406}, dictWord{9, 0, 911}, dictWord{138, 0, 694}, dictWord{132, 10, 594}, dictWord{133, 11, 791}, dictWord{7, 11, 686}, dictWord{8, 11, 33}, dictWord{8, 11, 238}, dictWord{10, 11, 616}, dictWord{11, 11, 467}, dictWord{11, 11, 881}, dictWord{13, 11, 217}, dictWord{13, 11, 253}, dictWord{ 142, 11, 268, }, dictWord{137, 11, 476}, dictWord{134, 0, 418}, dictWord{133, 0, 613}, dictWord{132, 0, 632}, dictWord{132, 11, 447}, dictWord{7, 0, 32}, dictWord{ 7, 0, 984, }, dictWord{8, 0, 85}, dictWord{8, 0, 709}, dictWord{9, 0, 579}, dictWord{9, 0, 847}, dictWord{9, 0, 856}, dictWord{10, 0, 799}, dictWord{11, 0, 258}, dictWord{ 11, 0, 1007, }, dictWord{12, 0, 331}, dictWord{12, 0, 615}, dictWord{13, 0, 188}, dictWord{13, 0, 435}, dictWord{14, 0, 8}, dictWord{15, 0, 165}, dictWord{ 16, 0, 27, }, dictWord{20, 0, 40}, dictWord{144, 11, 35}, dictWord{4, 11, 128}, dictWord{5, 11, 415}, dictWord{6, 11, 462}, dictWord{7, 11, 294}, dictWord{7, 11, 578}, dictWord{10, 11, 710}, dictWord{139, 11, 86}, dictWord{5, 0, 694}, dictWord{136, 0, 909}, dictWord{7, 0, 1109}, dictWord{11, 0, 7}, dictWord{5, 10, 37}, dictWord{ 6, 10, 39, }, dictWord{6, 10, 451}, dictWord{7, 10, 218}, dictWord{7, 10, 1166}, dictWord{7, 10, 1687}, dictWord{8, 10, 662}, dictWord{144, 10, 2}, dictWord{ 136, 11, 587, }, dictWord{6, 11, 427}, dictWord{7, 11, 1018}, dictWord{138, 11, 692}, dictWord{4, 11, 195}, dictWord{6, 10, 508}, dictWord{135, 11, 802}, dictWord{4, 0, 167}, dictWord{135, 0, 82}, dictWord{5, 0, 62}, dictWord{6, 0, 24}, dictWord{6, 0, 534}, dictWord{7, 0, 74}, dictWord{7, 0, 678}, dictWord{7, 0, 684}, dictWord{ 7, 0, 1043, }, dictWord{7, 0, 1072}, dictWord{8, 0, 280}, dictWord{8, 0, 541}, dictWord{8, 0, 686}, dictWord{9, 0, 258}, dictWord{10, 0, 519}, dictWord{11, 0, 252}, dictWord{140, 0, 282}, dictWord{138, 0, 33}, dictWord{4, 0, 359}, dictWord{133, 11, 738}, dictWord{7, 0, 980}, dictWord{9, 0, 328}, dictWord{13, 0, 186}, dictWord{13, 0, 364}, dictWord{7, 10, 635}, dictWord{7, 10, 796}, dictWord{8, 10, 331}, dictWord{9, 10, 330}, dictWord{9, 10, 865}, dictWord{10, 10, 119}, dictWord{ 10, 10, 235, }, dictWord{11, 10, 111}, dictWord{11, 10, 129}, dictWord{11, 10, 240}, dictWord{12, 10, 31}, dictWord{12, 10, 66}, dictWord{12, 10, 222}, dictWord{12, 10, 269}, dictWord{12, 10, 599}, dictWord{12, 10, 684}, dictWord{12, 10, 689}, dictWord{12, 10, 691}, dictWord{142, 10, 345}, dictWord{ 137, 10, 527, }, dictWord{6, 0, 596}, dictWord{7, 0, 585}, dictWord{135, 10, 702}, dictWord{134, 11, 1683}, dictWord{133, 0, 211}, dictWord{6, 0, 145}, dictWord{ 141, 0, 336, }, dictWord{134, 0, 1130}, dictWord{7, 0, 873}, dictWord{6, 10, 37}, dictWord{7, 10, 1666}, dictWord{8, 10, 195}, dictWord{8, 10, 316}, dictWord{ 9, 10, 178, }, dictWord{9, 10, 276}, dictWord{9, 10, 339}, dictWord{9, 10, 536}, dictWord{10, 10, 102}, dictWord{10, 10, 362}, dictWord{10, 10, 785}, dictWord{ 11, 10, 55, }, dictWord{11, 10, 149}, dictWord{11, 10, 773}, dictWord{13, 10, 416}, dictWord{13, 10, 419}, dictWord{14, 10, 38}, dictWord{14, 10, 41}, dictWord{ 142, 10, 210, }, dictWord{8, 0, 840}, dictWord{136, 0, 841}, dictWord{132, 0, 263}, dictWord{5, 11, 3}, dictWord{8, 11, 578}, dictWord{9, 11, 118}, dictWord{ 10, 11, 705, }, dictWord{12, 11, 383}, dictWord{141, 11, 279}, dictWord{132, 0, 916}, dictWord{133, 11, 229}, dictWord{133, 10, 645}, dictWord{15, 0, 155}, dictWord{16, 0, 79}, dictWord{8, 11, 102}, dictWord{10, 11, 578}, dictWord{10, 11, 672}, dictWord{12, 11, 496}, dictWord{13, 11, 408}, dictWord{14, 11, 121}, dictWord{145, 11, 106}, dictWord{4, 0, 599}, dictWord{5, 0, 592}, dictWord{6, 0, 1634}, dictWord{7, 0, 5}, dictWord{7, 0, 55}, dictWord{7, 0, 67}, dictWord{7, 0, 97}, dictWord{7, 0, 691}, dictWord{7, 0, 979}, dictWord{7, 0, 1600}, dictWord{7, 0, 1697}, dictWord{8, 0, 207}, dictWord{8, 0, 214}, dictWord{8, 0, 231}, dictWord{8, 0, 294}, dictWord{8, 0, 336}, dictWord{8, 0, 428}, dictWord{8, 0, 471}, dictWord{8, 0, 622}, dictWord{8, 0, 626}, dictWord{8, 0, 679}, dictWord{8, 0, 759}, dictWord{8, 0, 829}, dictWord{9, 0, 11}, dictWord{9, 0, 246}, dictWord{9, 0, 484}, dictWord{9, 0, 573}, dictWord{9, 0, 706}, dictWord{9, 0, 762}, dictWord{9, 0, 798}, dictWord{9, 0, 855}, dictWord{9, 0, 870}, dictWord{9, 0, 912}, dictWord{10, 0, 303}, dictWord{10, 0, 335}, dictWord{10, 0, 424}, dictWord{10, 0, 461}, dictWord{10, 0, 543}, dictWord{ 10, 0, 759, }, dictWord{10, 0, 814}, dictWord{11, 0, 59}, dictWord{11, 0, 199}, dictWord{11, 0, 235}, dictWord{11, 0, 590}, dictWord{11, 0, 631}, dictWord{11, 0, 929}, dictWord{11, 0, 963}, dictWord{11, 0, 987}, dictWord{12, 0, 114}, dictWord{12, 0, 182}, dictWord{12, 0, 226}, dictWord{12, 0, 332}, dictWord{12, 0, 439}, dictWord{12, 0, 575}, dictWord{12, 0, 598}, dictWord{12, 0, 675}, dictWord{13, 0, 8}, dictWord{13, 0, 125}, dictWord{13, 0, 194}, dictWord{13, 0, 287}, dictWord{ 14, 0, 197, }, dictWord{14, 0, 383}, dictWord{15, 0, 53}, dictWord{17, 0, 63}, dictWord{19, 0, 46}, dictWord{19, 0, 98}, dictWord{19, 0, 106}, dictWord{148, 0, 85}, dictWord{ 7, 0, 1356, }, dictWord{132, 10, 290}, dictWord{6, 10, 70}, dictWord{7, 10, 1292}, dictWord{10, 10, 762}, dictWord{139, 10, 288}, dictWord{150, 11, 55}, dictWord{4, 0, 593}, dictWord{8, 11, 115}, dictWord{8, 11, 350}, dictWord{9, 11, 489}, dictWord{10, 11, 128}, dictWord{11, 11, 306}, dictWord{12, 11, 373}, dictWord{14, 11, 30}, dictWord{17, 11, 79}, dictWord{147, 11, 80}, dictWord{135, 11, 1235}, dictWord{134, 0, 1392}, dictWord{4, 11, 230}, dictWord{ 133, 11, 702, }, dictWord{147, 0, 126}, dictWord{7, 10, 131}, dictWord{7, 10, 422}, dictWord{8, 10, 210}, dictWord{140, 10, 573}, dictWord{134, 0, 1179}, dictWord{ 139, 11, 435, }, dictWord{139, 10, 797}, dictWord{134, 11, 1728}, dictWord{4, 0, 162}, dictWord{18, 11, 26}, dictWord{19, 11, 42}, dictWord{20, 11, 43}, dictWord{21, 11, 0}, dictWord{23, 11, 27}, dictWord{152, 11, 14}, dictWord{132, 10, 936}, dictWord{6, 0, 765}, dictWord{5, 10, 453}, dictWord{134, 10, 441}, dictWord{133, 0, 187}, dictWord{135, 0, 1286}, dictWord{6, 0, 635}, dictWord{6, 0, 904}, dictWord{6, 0, 1210}, dictWord{134, 0, 1489}, dictWord{4, 0, 215}, dictWord{ 8, 0, 890, }, dictWord{9, 0, 38}, dictWord{10, 0, 923}, dictWord{11, 0, 23}, dictWord{11, 0, 127}, dictWord{139, 0, 796}, dictWord{6, 0, 1165}, dictWord{ 134, 0, 1306, }, dictWord{7, 0, 716}, dictWord{13, 0, 97}, dictWord{141, 0, 251}, dictWord{132, 10, 653}, dictWord{136, 0, 657}, dictWord{146, 10, 80}, dictWord{ 5, 11, 622, }, dictWord{7, 11, 1032}, dictWord{11, 11, 26}, dictWord{11, 11, 213}, dictWord{11, 11, 707}, dictWord{12, 11, 380}, dictWord{13, 11, 226}, dictWord{141, 11, 355}, dictWord{6, 0, 299}, dictWord{5, 11, 70}, dictWord{6, 11, 334}, dictWord{9, 11, 171}, dictWord{11, 11, 637}, dictWord{12, 11, 202}, dictWord{14, 11, 222}, dictWord{145, 11, 42}, dictWord{142, 0, 134}, dictWord{4, 11, 23}, dictWord{5, 11, 313}, dictWord{5, 11, 1014}, dictWord{6, 11, 50}, dictWord{ 6, 11, 51, }, dictWord{7, 11, 142}, dictWord{7, 11, 384}, dictWord{9, 11, 783}, dictWord{139, 11, 741}, dictWord{4, 11, 141}, dictWord{7, 11, 559}, dictWord{ 8, 11, 640, }, dictWord{9, 11, 460}, dictWord{12, 11, 183}, dictWord{141, 11, 488}, dictWord{136, 11, 614}, dictWord{7, 10, 1368}, dictWord{8, 10, 232}, dictWord{8, 10, 361}, dictWord{10, 10, 682}, dictWord{138, 10, 742}, dictWord{137, 10, 534}, dictWord{6, 0, 1082}, dictWord{140, 0, 658}, dictWord{ 137, 10, 27, }, dictWord{135, 0, 2002}, dictWord{142, 10, 12}, dictWord{4, 0, 28}, dictWord{5, 0, 440}, dictWord{7, 0, 248}, dictWord{11, 0, 833}, dictWord{140, 0, 344}, dictWord{7, 10, 736}, dictWord{139, 10, 264}, dictWord{134, 10, 1657}, dictWord{134, 0, 1654}, dictWord{138, 0, 531}, dictWord{5, 11, 222}, dictWord{ 9, 11, 140, }, dictWord{138, 11, 534}, dictWord{6, 0, 634}, dictWord{6, 0, 798}, dictWord{134, 0, 840}, dictWord{138, 11, 503}, dictWord{135, 10, 127}, dictWord{133, 0, 853}, dictWord{5, 11, 154}, dictWord{7, 11, 1491}, dictWord{10, 11, 379}, dictWord{138, 11, 485}, dictWord{6, 0, 249}, dictWord{7, 0, 1234}, dictWord{139, 0, 573}, dictWord{133, 11, 716}, dictWord{7, 11, 1570}, dictWord{140, 11, 542}, dictWord{136, 10, 364}, dictWord{138, 0, 527}, dictWord{ 4, 11, 91, }, dictWord{5, 11, 388}, dictWord{5, 11, 845}, dictWord{6, 11, 206}, dictWord{6, 11, 252}, dictWord{6, 11, 365}, dictWord{7, 11, 136}, dictWord{7, 11, 531}, dictWord{8, 11, 264}, dictWord{136, 11, 621}, dictWord{134, 0, 1419}, dictWord{135, 11, 1441}, dictWord{7, 0, 49}, dictWord{7, 0, 392}, dictWord{8, 0, 20}, dictWord{8, 0, 172}, dictWord{8, 0, 690}, dictWord{9, 0, 383}, dictWord{9, 0, 845}, dictWord{10, 0, 48}, dictWord{11, 0, 293}, dictWord{11, 0, 832}, dictWord{ 11, 0, 920, }, dictWord{11, 0, 984}, dictWord{141, 0, 221}, dictWord{5, 0, 858}, dictWord{133, 0, 992}, dictWord{5, 0, 728}, dictWord{137, 10, 792}, dictWord{ 5, 10, 909, }, dictWord{9, 10, 849}, dictWord{138, 10, 805}, dictWord{7, 0, 525}, dictWord{7, 0, 1579}, dictWord{8, 0, 497}, dictWord{136, 0, 573}, dictWord{6, 0, 268}, dictWord{137, 0, 62}, dictWord{135, 11, 576}, dictWord{134, 0, 1201}, dictWord{5, 11, 771}, dictWord{5, 11, 863}, dictWord{5, 11, 898}, dictWord{ 6, 11, 1632, }, dictWord{6, 11, 1644}, dictWord{134, 11, 1780}, dictWord{133, 11, 331}, dictWord{7, 0, 193}, dictWord{7, 0, 1105}, dictWord{10, 0, 495}, dictWord{ 7, 10, 397, }, dictWord{8, 10, 124}, dictWord{8, 10, 619}, dictWord{9, 10, 305}, dictWord{11, 10, 40}, dictWord{12, 10, 349}, dictWord{13, 10, 134}, dictWord{ 13, 10, 295, }, dictWord{14, 10, 155}, dictWord{15, 10, 120}, dictWord{146, 10, 105}, dictWord{138, 0, 106}, dictWord{6, 0, 859}, dictWord{5, 11, 107}, dictWord{ 7, 11, 201, }, dictWord{136, 11, 518}, dictWord{6, 11, 446}, dictWord{135, 11, 1817}, dictWord{13, 0, 23}, dictWord{4, 10, 262}, dictWord{135, 10, 342}, dictWord{133, 10, 641}, dictWord{137, 11, 851}, dictWord{6, 0, 925}, dictWord{137, 0, 813}, dictWord{132, 11, 504}, dictWord{6, 0, 613}, dictWord{ 136, 0, 223, }, dictWord{4, 10, 99}, dictWord{6, 10, 250}, dictWord{6, 10, 346}, dictWord{8, 10, 127}, dictWord{138, 10, 81}, dictWord{136, 0, 953}, dictWord{ 132, 10, 915, }, dictWord{139, 11, 892}, dictWord{5, 10, 75}, dictWord{9, 10, 517}, dictWord{10, 10, 470}, dictWord{12, 10, 155}, dictWord{141, 10, 224}, dictWord{ 4, 0, 666, }, dictWord{7, 0, 1017}, dictWord{7, 11, 996}, dictWord{138, 11, 390}, dictWord{5, 11, 883}, dictWord{133, 11, 975}, dictWord{14, 10, 83}, dictWord{ 142, 11, 83, }, dictWord{4, 0, 670}, dictWord{5, 11, 922}, dictWord{134, 11, 1707}, dictWord{135, 0, 216}, dictWord{9, 0, 40}, dictWord{11, 0, 136}, dictWord{ 135, 11, 787, }, dictWord{5, 10, 954}, dictWord{5, 11, 993}, dictWord{7, 11, 515}, dictWord{137, 11, 91}, dictWord{139, 0, 259}, dictWord{7, 0, 1114}, dictWord{ 9, 0, 310, }, dictWord{9, 0, 682}, dictWord{10, 0, 440}, dictWord{13, 0, 40}, dictWord{6, 10, 304}, dictWord{8, 10, 418}, dictWord{11, 10, 341}, dictWord{ 139, 10, 675, }, dictWord{14, 0, 296}, dictWord{9, 10, 410}, dictWord{139, 10, 425}, dictWord{10, 11, 377}, dictWord{12, 11, 363}, dictWord{13, 11, 68}, dictWord{ 13, 11, 94, }, dictWord{14, 11, 108}, dictWord{142, 11, 306}, dictWord{7, 0, 1401}, dictWord{135, 0, 1476}, dictWord{4, 0, 296}, dictWord{6, 0, 475}, dictWord{ 7, 0, 401, }, dictWord{7, 0, 1410}, dictWord{7, 0, 1594}, dictWord{7, 0, 1674}, dictWord{8, 0, 63}, dictWord{8, 0, 660}, dictWord{137, 0, 74}, dictWord{4, 0, 139}, dictWord{4, 0, 388}, dictWord{140, 0, 188}, dictWord{132, 0, 797}, dictWord{132, 11, 766}, dictWord{5, 11, 103}, dictWord{7, 11, 921}, dictWord{8, 11, 580}, dictWord{8, 11, 593}, dictWord{8, 11, 630}, dictWord{138, 11, 28}, dictWord{4, 11, 911}, dictWord{5, 11, 867}, dictWord{133, 11, 1013}, dictWord{134, 10, 14}, dictWord{134, 0, 1572}, dictWord{134, 10, 1708}, dictWord{21, 0, 39}, dictWord{5, 10, 113}, dictWord{6, 10, 243}, dictWord{7, 10, 1865}, dictWord{ 11, 10, 161, }, dictWord{16, 10, 37}, dictWord{145, 10, 99}, dictWord{7, 11, 1563}, dictWord{141, 11, 182}, dictWord{5, 11, 135}, dictWord{6, 11, 519}, dictWord{ 7, 11, 1722, }, dictWord{10, 11, 271}, dictWord{11, 11, 261}, dictWord{145, 11, 54}, dictWord{132, 10, 274}, dictWord{134, 0, 1594}, dictWord{4, 11, 300}, dictWord{5, 11, 436}, dictWord{135, 11, 484}, dictWord{4, 0, 747}, dictWord{6, 0, 290}, dictWord{7, 0, 649}, dictWord{7, 0, 1479}, dictWord{135, 0, 1583}, dictWord{133, 11, 535}, dictWord{147, 11, 82}, dictWord{133, 0, 232}, dictWord{137, 0, 887}, dictWord{135, 10, 166}, dictWord{136, 0, 521}, dictWord{4, 0, 14}, dictWord{7, 0, 472}, dictWord{7, 0, 1801}, dictWord{10, 0, 748}, dictWord{141, 0, 458}, dictWord{134, 0, 741}, dictWord{134, 0, 992}, dictWord{16, 0, 111}, dictWord{137, 10, 304}, dictWord{4, 0, 425}, dictWord{5, 11, 387}, dictWord{7, 11, 557}, dictWord{12, 11, 547}, dictWord{142, 11, 86}, dictWord{ 135, 11, 1747, }, dictWord{5, 10, 654}, dictWord{135, 11, 1489}, dictWord{7, 0, 789}, dictWord{4, 11, 6}, dictWord{5, 11, 708}, dictWord{136, 11, 75}, dictWord{ 6, 10, 273, }, dictWord{10, 10, 188}, dictWord{13, 10, 377}, dictWord{146, 10, 77}, dictWord{6, 0, 1593}, dictWord{4, 11, 303}, dictWord{7, 11, 619}, dictWord{ 10, 11, 547, }, dictWord{10, 11, 687}, dictWord{11, 11, 122}, dictWord{140, 11, 601}, dictWord{134, 0, 1768}, dictWord{135, 10, 410}, dictWord{138, 11, 772}, dictWord{11, 0, 233}, dictWord{139, 10, 524}, dictWord{5, 0, 943}, dictWord{134, 0, 1779}, dictWord{134, 10, 1785}, dictWord{136, 11, 529}, dictWord{ 132, 0, 955, }, dictWord{5, 0, 245}, dictWord{6, 0, 576}, dictWord{7, 0, 582}, dictWord{136, 0, 225}, dictWord{132, 10, 780}, dictWord{142, 0, 241}, dictWord{ 134, 0, 1943, }, dictWord{4, 11, 106}, dictWord{7, 11, 310}, dictWord{7, 11, 1785}, dictWord{10, 11, 690}, dictWord{139, 11, 717}, dictWord{134, 0, 1284}, dictWord{5, 11, 890}, dictWord{133, 11, 988}, dictWord{6, 11, 626}, dictWord{142, 11, 431}, dictWord{10, 11, 706}, dictWord{145, 11, 32}, dictWord{ 137, 11, 332, }, dictWord{132, 11, 698}, dictWord{135, 0, 709}, dictWord{5, 10, 948}, dictWord{138, 11, 17}, dictWord{136, 0, 554}, dictWord{134, 0, 1564}, dictWord{139, 10, 941}, dictWord{132, 0, 443}, dictWord{134, 0, 909}, dictWord{134, 11, 84}, dictWord{142, 0, 280}, dictWord{4, 10, 532}, dictWord{5, 10, 706}, dictWord{135, 10, 662}, dictWord{132, 0, 729}, dictWord{5, 10, 837}, dictWord{6, 10, 1651}, dictWord{139, 10, 985}, dictWord{135, 10, 1861}, dictWord{ 4, 0, 348, }, dictWord{152, 11, 3}, dictWord{5, 11, 986}, dictWord{6, 11, 130}, dictWord{7, 11, 1582}, dictWord{8, 11, 458}, dictWord{10, 11, 101}, dictWord{ 10, 11, 318, }, dictWord{138, 11, 823}, dictWord{134, 0, 758}, dictWord{4, 0, 298}, dictWord{137, 0, 848}, dictWord{4, 10, 330}, dictWord{7, 10, 933}, dictWord{ 7, 10, 2012, }, dictWord{136, 10, 292}, dictWord{7, 11, 1644}, dictWord{137, 11, 129}, dictWord{6, 0, 1422}, dictWord{9, 0, 829}, dictWord{135, 10, 767}, dictWord{5, 0, 164}, dictWord{7, 0, 121}, dictWord{142, 0, 189}, dictWord{7, 0, 812}, dictWord{7, 0, 1261}, dictWord{7, 0, 1360}, dictWord{9, 0, 632}, dictWord{ 140, 0, 352, }, dictWord{135, 11, 1788}, dictWord{139, 0, 556}, dictWord{135, 11, 997}, dictWord{145, 10, 114}, dictWord{4, 0, 172}, dictWord{9, 0, 611}, dictWord{10, 0, 436}, dictWord{12, 0, 673}, dictWord{13, 0, 255}, dictWord{137, 10, 883}, dictWord{11, 0, 530}, dictWord{138, 10, 274}, dictWord{133, 0, 844}, dictWord{134, 0, 984}, dictWord{13, 0, 232}, dictWord{18, 0, 35}, dictWord{4, 10, 703}, dictWord{135, 10, 207}, dictWord{132, 10, 571}, dictWord{9, 0, 263}, dictWord{10, 0, 147}, dictWord{138, 0, 492}, dictWord{7, 11, 1756}, dictWord{137, 11, 98}, dictWord{5, 10, 873}, dictWord{5, 10, 960}, dictWord{8, 10, 823}, dictWord{137, 10, 881}, dictWord{133, 0, 537}, dictWord{132, 0, 859}, dictWord{7, 11, 1046}, dictWord{139, 11, 160}, dictWord{137, 0, 842}, dictWord{ 139, 10, 283, }, dictWord{5, 10, 33}, dictWord{6, 10, 470}, dictWord{139, 10, 424}, dictWord{6, 11, 45}, dictWord{7, 11, 433}, dictWord{8, 11, 129}, dictWord{ 9, 11, 21, }, dictWord{10, 11, 392}, dictWord{11, 11, 79}, dictWord{12, 11, 499}, dictWord{13, 11, 199}, dictWord{141, 11, 451}, dictWord{135, 0, 1291}, dictWord{135, 10, 1882}, dictWord{7, 11, 558}, dictWord{136, 11, 353}, dictWord{134, 0, 1482}, dictWord{5, 0, 230}, dictWord{5, 0, 392}, dictWord{6, 0, 420}, dictWord{9, 0, 568}, dictWord{140, 0, 612}, dictWord{6, 0, 262}, dictWord{7, 10, 90}, dictWord{7, 10, 664}, dictWord{7, 10, 830}, dictWord{7, 10, 1380}, dictWord{ 7, 10, 2025, }, dictWord{8, 11, 81}, dictWord{8, 10, 448}, dictWord{8, 10, 828}, dictWord{9, 11, 189}, dictWord{9, 11, 201}, dictWord{11, 11, 478}, dictWord{ 11, 11, 712, }, dictWord{141, 11, 338}, dictWord{142, 0, 31}, dictWord{5, 11, 353}, dictWord{151, 11, 26}, dictWord{132, 0, 753}, dictWord{4, 0, 0}, dictWord{ 5, 0, 41, }, dictWord{7, 0, 1459}, dictWord{7, 0, 1469}, dictWord{7, 0, 1859}, dictWord{9, 0, 549}, dictWord{139, 0, 905}, dictWord{9, 10, 417}, dictWord{ 137, 10, 493, }, dictWord{135, 11, 1113}, dictWord{133, 0, 696}, dictWord{141, 11, 448}, dictWord{134, 10, 295}, dictWord{132, 0, 834}, dictWord{4, 0, 771}, dictWord{5, 10, 1019}, dictWord{6, 11, 25}, dictWord{7, 11, 855}, dictWord{7, 11, 1258}, dictWord{144, 11, 32}, dictWord{134, 0, 1076}, dictWord{133, 0, 921}, dictWord{133, 0, 674}, dictWord{4, 11, 4}, dictWord{7, 11, 1118}, dictWord{7, 11, 1320}, dictWord{7, 11, 1706}, dictWord{8, 11, 277}, dictWord{9, 11, 622}, dictWord{10, 11, 9}, dictWord{11, 11, 724}, dictWord{12, 11, 350}, dictWord{12, 11, 397}, dictWord{13, 11, 28}, dictWord{13, 11, 159}, dictWord{15, 11, 89}, dictWord{18, 11, 5}, dictWord{19, 11, 9}, dictWord{20, 11, 34}, dictWord{150, 11, 47}, dictWord{134, 10, 208}, dictWord{6, 0, 444}, dictWord{136, 0, 308}, dictWord{ 6, 0, 180, }, dictWord{7, 0, 1137}, dictWord{8, 0, 751}, dictWord{139, 0, 805}, dictWord{4, 0, 183}, dictWord{7, 0, 271}, dictWord{11, 0, 824}, dictWord{ 11, 0, 952, }, dictWord{13, 0, 278}, dictWord{13, 0, 339}, dictWord{13, 0, 482}, dictWord{14, 0, 424}, dictWord{148, 0, 99}, dictWord{7, 11, 317}, dictWord{ 135, 11, 569, }, dictWord{4, 0, 19}, dictWord{5, 0, 477}, dictWord{5, 0, 596}, dictWord{6, 0, 505}, dictWord{7, 0, 1221}, dictWord{11, 0, 907}, dictWord{12, 0, 209}, dictWord{141, 0, 214}, dictWord{135, 0, 1215}, dictWord{6, 0, 271}, dictWord{7, 0, 398}, dictWord{8, 0, 387}, dictWord{10, 0, 344}, dictWord{7, 10, 448}, dictWord{ 7, 10, 1629, }, dictWord{7, 10, 1813}, dictWord{8, 10, 442}, dictWord{9, 10, 710}, dictWord{10, 10, 282}, dictWord{138, 10, 722}, dictWord{11, 10, 844}, dictWord{12, 10, 104}, dictWord{140, 10, 625}, dictWord{134, 11, 255}, dictWord{133, 10, 787}, dictWord{134, 0, 1645}, dictWord{11, 11, 956}, dictWord{ 151, 11, 3, }, dictWord{6, 0, 92}, dictWord{6, 0, 188}, dictWord{7, 0, 209}, dictWord{7, 0, 1269}, dictWord{7, 0, 1524}, dictWord{7, 0, 1876}, dictWord{8, 0, 661}, dictWord{10, 0, 42}, dictWord{10, 0, 228}, dictWord{11, 0, 58}, dictWord{11, 0, 1020}, dictWord{12, 0, 58}, dictWord{12, 0, 118}, dictWord{141, 0, 32}, dictWord{ 4, 0, 459, }, dictWord{133, 0, 966}, dictWord{4, 11, 536}, dictWord{7, 11, 1141}, dictWord{10, 11, 723}, dictWord{139, 11, 371}, dictWord{140, 0, 330}, dictWord{134, 0, 1557}, dictWord{7, 11, 285}, dictWord{135, 11, 876}, dictWord{136, 10, 491}, dictWord{135, 11, 560}, dictWord{6, 0, 18}, dictWord{7, 0, 179}, dictWord{7, 0, 932}, dictWord{8, 0, 548}, dictWord{8, 0, 757}, dictWord{9, 0, 54}, dictWord{9, 0, 65}, dictWord{9, 0, 532}, dictWord{9, 0, 844}, dictWord{10, 0, 113}, dictWord{10, 0, 117}, dictWord{10, 0, 315}, dictWord{10, 0, 560}, dictWord{10, 0, 622}, dictWord{10, 0, 798}, dictWord{11, 0, 153}, dictWord{11, 0, 351}, dictWord{ 11, 0, 375, }, dictWord{12, 0, 78}, dictWord{12, 0, 151}, dictWord{12, 0, 392}, dictWord{12, 0, 666}, dictWord{14, 0, 248}, dictWord{143, 0, 23}, dictWord{ 6, 0, 1742, }, dictWord{132, 11, 690}, dictWord{4, 10, 403}, dictWord{5, 10, 441}, dictWord{7, 10, 450}, dictWord{10, 10, 840}, dictWord{11, 10, 101}, dictWord{ 12, 10, 193, }, dictWord{141, 10, 430}, dictWord{133, 0, 965}, dictWord{134, 0, 182}, dictWord{10, 0, 65}, dictWord{10, 0, 488}, dictWord{138, 0, 497}, dictWord{135, 11, 1346}, dictWord{6, 0, 973}, dictWord{6, 0, 1158}, dictWord{10, 11, 200}, dictWord{19, 11, 2}, dictWord{151, 11, 22}, dictWord{4, 11, 190}, dictWord{133, 11, 554}, dictWord{133, 10, 679}, dictWord{7, 0, 328}, dictWord{137, 10, 326}, dictWord{133, 11, 1001}, dictWord{9, 0, 588}, dictWord{ 138, 0, 260, }, dictWord{133, 11, 446}, dictWord{135, 10, 1128}, dictWord{135, 10, 1796}, dictWord{147, 11, 119}, dictWord{134, 0, 1786}, dictWord{ 6, 0, 1328, }, dictWord{6, 0, 1985}, dictWord{8, 0, 962}, dictWord{138, 0, 1017}, dictWord{135, 0, 308}, dictWord{11, 0, 508}, dictWord{4, 10, 574}, dictWord{ 7, 10, 350, }, dictWord{7, 10, 1024}, dictWord{8, 10, 338}, dictWord{9, 10, 677}, dictWord{138, 10, 808}, dictWord{138, 11, 752}, dictWord{135, 10, 1081}, dictWord{137, 11, 96}, dictWord{7, 10, 1676}, dictWord{135, 10, 2037}, dictWord{136, 0, 588}, dictWord{132, 11, 304}, dictWord{133, 0, 614}, dictWord{ 140, 0, 793, }, dictWord{136, 0, 287}, dictWord{137, 10, 297}, dictWord{141, 10, 37}, dictWord{6, 11, 53}, dictWord{6, 11, 199}, dictWord{7, 11, 1408}, dictWord{ 8, 11, 32, }, dictWord{8, 11, 93}, dictWord{9, 11, 437}, dictWord{10, 11, 397}, dictWord{10, 11, 629}, dictWord{11, 11, 593}, dictWord{11, 11, 763}, dictWord{ 13, 11, 326, }, dictWord{145, 11, 35}, dictWord{134, 11, 105}, dictWord{9, 11, 320}, dictWord{10, 11, 506}, dictWord{138, 11, 794}, dictWord{5, 11, 114}, dictWord{5, 11, 255}, dictWord{141, 11, 285}, dictWord{140, 0, 290}, dictWord{7, 11, 2035}, dictWord{8, 11, 19}, dictWord{9, 11, 89}, dictWord{138, 11, 831}, dictWord{134, 0, 1136}, dictWord{7, 0, 719}, dictWord{8, 0, 796}, dictWord{8, 0, 809}, dictWord{8, 0, 834}, dictWord{6, 10, 306}, dictWord{7, 10, 1140}, dictWord{ 7, 10, 1340, }, dictWord{8, 10, 133}, dictWord{138, 10, 449}, dictWord{139, 10, 1011}, dictWord{5, 0, 210}, dictWord{6, 0, 213}, dictWord{7, 0, 60}, dictWord{ 10, 0, 364, }, dictWord{139, 0, 135}, dictWord{5, 0, 607}, dictWord{8, 0, 326}, dictWord{136, 0, 490}, dictWord{138, 11, 176}, dictWord{132, 0, 701}, dictWord{ 5, 0, 472, }, dictWord{7, 0, 380}, dictWord{137, 0, 758}, dictWord{135, 0, 1947}, dictWord{6, 0, 1079}, dictWord{138, 0, 278}, dictWord{138, 11, 391}, dictWord{ 5, 10, 329, }, dictWord{8, 10, 260}, dictWord{139, 11, 156}, dictWord{4, 0, 386}, dictWord{7, 0, 41}, dictWord{8, 0, 405}, dictWord{8, 0, 728}, dictWord{9, 0, 497}, dictWord{11, 0, 110}, dictWord{11, 0, 360}, dictWord{15, 0, 37}, dictWord{144, 0, 84}, dictWord{5, 0, 46}, dictWord{7, 0, 1452}, dictWord{7, 0, 1480}, dictWord{ 8, 0, 634, }, dictWord{140, 0, 472}, dictWord{136, 0, 961}, dictWord{4, 0, 524}, dictWord{136, 0, 810}, dictWord{10, 0, 238}, dictWord{141, 0, 33}, dictWord{ 132, 10, 657, }, dictWord{152, 10, 7}, dictWord{133, 0, 532}, dictWord{5, 0, 997}, dictWord{135, 10, 1665}, dictWord{7, 11, 594}, dictWord{7, 11, 851}, dictWord{ 7, 11, 1858, }, dictWord{9, 11, 411}, dictWord{9, 11, 574}, dictWord{9, 11, 666}, dictWord{9, 11, 737}, dictWord{10, 11, 346}, dictWord{10, 11, 712}, dictWord{ 11, 11, 246, }, dictWord{11, 11, 432}, dictWord{11, 11, 517}, dictWord{11, 11, 647}, dictWord{11, 11, 679}, dictWord{11, 11, 727}, dictWord{12, 11, 304}, dictWord{12, 11, 305}, dictWord{12, 11, 323}, dictWord{12, 11, 483}, dictWord{12, 11, 572}, dictWord{12, 11, 593}, dictWord{12, 11, 602}, dictWord{ 13, 11, 95, }, dictWord{13, 11, 101}, dictWord{13, 11, 171}, dictWord{13, 11, 315}, dictWord{13, 11, 378}, dictWord{13, 11, 425}, dictWord{13, 11, 475}, dictWord{ 14, 11, 63, }, dictWord{14, 11, 380}, dictWord{14, 11, 384}, dictWord{15, 11, 133}, dictWord{18, 11, 112}, dictWord{148, 11, 72}, dictWord{5, 11, 955}, dictWord{136, 11, 814}, dictWord{134, 0, 1301}, dictWord{5, 10, 66}, dictWord{7, 10, 1896}, dictWord{136, 10, 288}, dictWord{133, 11, 56}, dictWord{ 134, 10, 1643, }, dictWord{6, 0, 1298}, dictWord{148, 11, 100}, dictWord{5, 0, 782}, dictWord{5, 0, 829}, dictWord{6, 0, 671}, dictWord{6, 0, 1156}, dictWord{6, 0, 1738}, dictWord{137, 11, 621}, dictWord{4, 0, 306}, dictWord{5, 0, 570}, dictWord{7, 0, 1347}, dictWord{5, 10, 91}, dictWord{5, 10, 648}, dictWord{5, 10, 750}, dictWord{ 5, 10, 781, }, dictWord{6, 10, 54}, dictWord{6, 10, 112}, dictWord{6, 10, 402}, dictWord{6, 10, 1732}, dictWord{7, 10, 315}, dictWord{7, 10, 749}, dictWord{ 7, 10, 1900, }, dictWord{9, 10, 78}, dictWord{9, 10, 508}, dictWord{10, 10, 611}, dictWord{10, 10, 811}, dictWord{11, 10, 510}, dictWord{11, 10, 728}, dictWord{ 13, 10, 36, }, dictWord{14, 10, 39}, dictWord{16, 10, 83}, dictWord{17, 10, 124}, dictWord{148, 10, 30}, dictWord{8, 10, 570}, dictWord{9, 11, 477}, dictWord{ 141, 11, 78, }, dictWord{4, 11, 639}, dictWord{10, 11, 4}, dictWord{10, 10, 322}, dictWord{10, 10, 719}, dictWord{11, 10, 407}, dictWord{11, 11, 638}, dictWord{ 12, 11, 177, }, dictWord{148, 11, 57}, dictWord{7, 0, 1823}, dictWord{139, 0, 693}, dictWord{7, 0, 759}, dictWord{5, 11, 758}, dictWord{8, 10, 125}, dictWord{ 8, 10, 369, }, dictWord{8, 10, 524}, dictWord{10, 10, 486}, dictWord{11, 10, 13}, dictWord{11, 10, 381}, dictWord{11, 10, 736}, dictWord{11, 10, 766}, dictWord{ 11, 10, 845, }, dictWord{13, 10, 114}, dictWord{13, 10, 292}, dictWord{142, 10, 47}, dictWord{7, 0, 1932}, dictWord{6, 10, 1684}, dictWord{6, 10, 1731}, dictWord{7, 10, 356}, dictWord{8, 10, 54}, dictWord{8, 10, 221}, dictWord{9, 10, 225}, dictWord{9, 10, 356}, dictWord{10, 10, 77}, dictWord{10, 10, 446}, dictWord{ 10, 10, 731, }, dictWord{12, 10, 404}, dictWord{141, 10, 491}, dictWord{135, 11, 552}, dictWord{135, 11, 1112}, dictWord{4, 0, 78}, dictWord{5, 0, 96}, dictWord{ 5, 0, 182, }, dictWord{6, 0, 1257}, dictWord{7, 0, 1724}, dictWord{7, 0, 1825}, dictWord{10, 0, 394}, dictWord{10, 0, 471}, dictWord{11, 0, 532}, dictWord{ 14, 0, 340, }, dictWord{145, 0, 88}, dictWord{139, 11, 328}, dictWord{135, 0, 1964}, dictWord{132, 10, 411}, dictWord{4, 10, 80}, dictWord{5, 10, 44}, dictWord{ 137, 11, 133, }, dictWord{5, 11, 110}, dictWord{6, 11, 169}, dictWord{6, 11, 1702}, dictWord{7, 11, 400}, dictWord{8, 11, 538}, dictWord{9, 11, 184}, dictWord{ 9, 11, 524, }, dictWord{140, 11, 218}, dictWord{4, 0, 521}, dictWord{5, 10, 299}, dictWord{7, 10, 1083}, dictWord{140, 11, 554}, dictWord{6, 11, 133}, dictWord{ 9, 11, 353, }, dictWord{12, 11, 628}, dictWord{146, 11, 79}, dictWord{6, 0, 215}, dictWord{7, 0, 584}, dictWord{7, 0, 1028}, dictWord{7, 0, 1473}, dictWord{ 7, 0, 1721, }, dictWord{9, 0, 424}, dictWord{138, 0, 779}, dictWord{7, 0, 857}, dictWord{7, 0, 1209}, dictWord{7, 10, 1713}, dictWord{9, 10, 537}, dictWord{ 10, 10, 165, }, dictWord{12, 10, 219}, dictWord{140, 10, 561}, dictWord{4, 10, 219}, dictWord{6, 11, 93}, dictWord{7, 11, 1422}, dictWord{7, 10, 1761}, dictWord{ 7, 11, 1851, }, dictWord{8, 11, 673}, dictWord{9, 10, 86}, dictWord{9, 11, 529}, dictWord{140, 11, 43}, dictWord{137, 11, 371}, dictWord{136, 0, 671}, dictWord{ 5, 0, 328, }, dictWord{135, 0, 918}, dictWord{132, 0, 529}, dictWord{9, 11, 25}, dictWord{10, 11, 467}, dictWord{138, 11, 559}, dictWord{4, 11, 335}, dictWord{ 135, 11, 942, }, dictWord{134, 0, 716}, dictWord{134, 0, 1509}, dictWord{6, 0, 67}, dictWord{7, 0, 258}, dictWord{7, 0, 1630}, dictWord{9, 0, 354}, dictWord{ 9, 0, 675, }, dictWord{10, 0, 830}, dictWord{14, 0, 80}, dictWord{17, 0, 80}, dictWord{140, 10, 428}, dictWord{134, 0, 1112}, dictWord{6, 0, 141}, dictWord{7, 0, 225}, dictWord{9, 0, 59}, dictWord{9, 0, 607}, dictWord{10, 0, 312}, dictWord{11, 0, 687}, dictWord{12, 0, 555}, dictWord{13, 0, 373}, dictWord{13, 0, 494}, dictWord{ 148, 0, 58, }, dictWord{133, 10, 514}, dictWord{8, 11, 39}, dictWord{10, 11, 773}, dictWord{11, 11, 84}, dictWord{12, 11, 205}, dictWord{142, 11, 1}, dictWord{ 8, 0, 783, }, dictWord{5, 11, 601}, dictWord{133, 11, 870}, dictWord{136, 11, 594}, dictWord{4, 10, 55}, dictWord{5, 10, 301}, dictWord{6, 10, 571}, dictWord{ 14, 10, 49, }, dictWord{146, 10, 102}, dictWord{132, 11, 181}, dictWord{134, 11, 1652}, dictWord{133, 10, 364}, dictWord{4, 11, 97}, dictWord{5, 11, 147}, dictWord{6, 11, 286}, dictWord{7, 11, 1362}, dictWord{141, 11, 176}, dictWord{4, 10, 76}, dictWord{7, 10, 1550}, dictWord{9, 10, 306}, dictWord{9, 10, 430}, dictWord{9, 10, 663}, dictWord{10, 10, 683}, dictWord{11, 10, 427}, dictWord{11, 10, 753}, dictWord{12, 10, 334}, dictWord{12, 10, 442}, dictWord{ 14, 10, 258, }, dictWord{14, 10, 366}, dictWord{143, 10, 131}, dictWord{137, 10, 52}, dictWord{6, 0, 955}, dictWord{134, 0, 1498}, dictWord{6, 11, 375}, dictWord{ 7, 11, 169, }, dictWord{7, 11, 254}, dictWord{136, 11, 780}, dictWord{7, 0, 430}, dictWord{11, 0, 46}, dictWord{14, 0, 343}, dictWord{142, 11, 343}, dictWord{ 135, 0, 1183, }, dictWord{5, 0, 602}, dictWord{7, 0, 2018}, dictWord{9, 0, 418}, dictWord{9, 0, 803}, dictWord{135, 11, 1447}, dictWord{8, 0, 677}, dictWord{ 135, 11, 1044, }, dictWord{139, 11, 285}, dictWord{4, 10, 656}, dictWord{135, 10, 779}, dictWord{135, 10, 144}, dictWord{5, 11, 629}, dictWord{ 135, 11, 1549, }, dictWord{135, 10, 1373}, dictWord{138, 11, 209}, dictWord{7, 10, 554}, dictWord{7, 10, 605}, dictWord{141, 10, 10}, dictWord{5, 10, 838}, dictWord{ 5, 10, 841, }, dictWord{134, 10, 1649}, dictWord{133, 10, 1012}, dictWord{6, 0, 1357}, dictWord{134, 0, 1380}, dictWord{144, 0, 53}, dictWord{6, 0, 590}, dictWord{7, 10, 365}, dictWord{7, 10, 1357}, dictWord{7, 10, 1497}, dictWord{8, 10, 154}, dictWord{141, 10, 281}, dictWord{133, 10, 340}, dictWord{ 132, 11, 420, }, dictWord{135, 0, 329}, dictWord{147, 11, 32}, dictWord{4, 0, 469}, dictWord{10, 11, 429}, dictWord{139, 10, 495}, dictWord{8, 10, 261}, dictWord{ 9, 10, 144, }, dictWord{9, 10, 466}, dictWord{10, 10, 370}, dictWord{12, 10, 470}, dictWord{13, 10, 144}, dictWord{142, 10, 348}, dictWord{142, 0, 460}, dictWord{4, 11, 325}, dictWord{9, 10, 897}, dictWord{138, 11, 125}, dictWord{6, 0, 1743}, dictWord{6, 10, 248}, dictWord{9, 10, 546}, dictWord{10, 10, 535}, dictWord{11, 10, 681}, dictWord{141, 10, 135}, dictWord{4, 0, 990}, dictWord{5, 0, 929}, dictWord{6, 0, 340}, dictWord{8, 0, 376}, dictWord{8, 0, 807}, dictWord{ 8, 0, 963, }, dictWord{8, 0, 980}, dictWord{138, 0, 1007}, dictWord{134, 0, 1603}, dictWord{140, 0, 250}, dictWord{4, 11, 714}, dictWord{133, 11, 469}, dictWord{134, 10, 567}, dictWord{136, 10, 445}, dictWord{5, 0, 218}, dictWord{7, 0, 1610}, dictWord{8, 0, 646}, dictWord{10, 0, 83}, dictWord{11, 11, 138}, dictWord{140, 11, 40}, dictWord{7, 0, 1512}, dictWord{135, 0, 1794}, dictWord{135, 11, 1216}, dictWord{11, 0, 0}, dictWord{16, 0, 78}, dictWord{132, 11, 718}, dictWord{133, 0, 571}, dictWord{132, 0, 455}, dictWord{134, 0, 1012}, dictWord{5, 11, 124}, dictWord{5, 11, 144}, dictWord{6, 11, 548}, dictWord{7, 11, 15}, dictWord{7, 11, 153}, dictWord{137, 11, 629}, dictWord{142, 11, 10}, dictWord{6, 11, 75}, dictWord{7, 11, 1531}, dictWord{8, 11, 416}, dictWord{9, 11, 240}, dictWord{9, 11, 275}, dictWord{10, 11, 100}, dictWord{11, 11, 658}, dictWord{11, 11, 979}, dictWord{12, 11, 86}, dictWord{13, 11, 468}, dictWord{14, 11, 66}, dictWord{14, 11, 207}, dictWord{15, 11, 20}, dictWord{15, 11, 25}, dictWord{144, 11, 58}, dictWord{132, 10, 577}, dictWord{5, 11, 141}, dictWord{ 5, 11, 915, }, dictWord{6, 11, 1783}, dictWord{7, 11, 211}, dictWord{7, 11, 698}, dictWord{7, 11, 1353}, dictWord{9, 11, 83}, dictWord{9, 11, 281}, dictWord{ 10, 11, 376, }, dictWord{10, 11, 431}, dictWord{11, 11, 543}, dictWord{12, 11, 664}, dictWord{13, 11, 280}, dictWord{13, 11, 428}, dictWord{14, 11, 61}, dictWord{ 14, 11, 128, }, dictWord{17, 11, 52}, dictWord{145, 11, 81}, dictWord{6, 0, 161}, dictWord{7, 0, 372}, dictWord{137, 0, 597}, dictWord{132, 0, 349}, dictWord{ 10, 11, 702, }, dictWord{139, 11, 245}, dictWord{134, 0, 524}, dictWord{134, 10, 174}, dictWord{6, 0, 432}, dictWord{9, 0, 751}, dictWord{139, 0, 322}, dictWord{147, 11, 94}, dictWord{4, 11, 338}, dictWord{133, 11, 400}, dictWord{5, 0, 468}, dictWord{10, 0, 325}, dictWord{11, 0, 856}, dictWord{12, 0, 345}, dictWord{143, 0, 104}, dictWord{133, 0, 223}, dictWord{132, 0, 566}, dictWord{4, 11, 221}, dictWord{5, 11, 659}, dictWord{5, 11, 989}, dictWord{7, 11, 697}, dictWord{7, 11, 1211}, dictWord{138, 11, 284}, dictWord{135, 11, 1070}, dictWord{4, 0, 59}, dictWord{135, 0, 1394}, dictWord{6, 0, 436}, dictWord{11, 0, 481}, dictWord{5, 10, 878}, dictWord{133, 10, 972}, dictWord{4, 0, 48}, dictWord{5, 0, 271}, dictWord{135, 0, 953}, dictWord{5, 0, 610}, dictWord{136, 0, 457}, dictWord{ 4, 0, 773, }, dictWord{5, 0, 618}, dictWord{137, 0, 756}, dictWord{133, 0, 755}, dictWord{135, 0, 1217}, dictWord{138, 11, 507}, dictWord{132, 10, 351}, dictWord{132, 0, 197}, dictWord{143, 11, 78}, dictWord{4, 11, 188}, dictWord{7, 11, 805}, dictWord{11, 11, 276}, dictWord{142, 11, 293}, dictWord{ 5, 11, 884, }, dictWord{139, 11, 991}, dictWord{132, 10, 286}, dictWord{10, 0, 259}, dictWord{10, 0, 428}, dictWord{7, 10, 438}, dictWord{7, 10, 627}, dictWord{ 7, 10, 1516, }, dictWord{8, 10, 40}, dictWord{9, 10, 56}, dictWord{9, 10, 294}, dictWord{11, 10, 969}, dictWord{11, 10, 995}, dictWord{146, 10, 148}, dictWord{ 4, 0, 356, }, dictWord{5, 0, 217}, dictWord{5, 0, 492}, dictWord{5, 0, 656}, dictWord{8, 0, 544}, dictWord{136, 11, 544}, dictWord{5, 0, 259}, dictWord{6, 0, 1230}, dictWord{7, 0, 414}, dictWord{7, 0, 854}, dictWord{142, 0, 107}, dictWord{132, 0, 1007}, dictWord{15, 0, 14}, dictWord{144, 0, 5}, dictWord{6, 0, 1580}, dictWord{ 132, 10, 738, }, dictWord{132, 11, 596}, dictWord{132, 0, 673}, dictWord{133, 10, 866}, dictWord{6, 0, 1843}, dictWord{135, 11, 1847}, dictWord{4, 0, 165}, dictWord{7, 0, 1398}, dictWord{135, 0, 1829}, dictWord{135, 11, 1634}, dictWord{147, 11, 65}, dictWord{6, 0, 885}, dictWord{6, 0, 1009}, dictWord{ 137, 0, 809, }, dictWord{133, 10, 116}, dictWord{132, 10, 457}, dictWord{136, 11, 770}, dictWord{9, 0, 498}, dictWord{12, 0, 181}, dictWord{10, 11, 361}, dictWord{142, 11, 316}, dictWord{134, 11, 595}, dictWord{5, 0, 9}, dictWord{7, 0, 297}, dictWord{7, 0, 966}, dictWord{140, 0, 306}, dictWord{4, 11, 89}, dictWord{ 5, 11, 489, }, dictWord{6, 11, 315}, dictWord{7, 11, 553}, dictWord{7, 11, 1745}, dictWord{138, 11, 243}, dictWord{134, 0, 1487}, dictWord{132, 0, 437}, dictWord{ 5, 0, 146, }, dictWord{6, 0, 411}, dictWord{138, 0, 721}, dictWord{5, 10, 527}, dictWord{6, 10, 189}, dictWord{135, 10, 859}, dictWord{11, 10, 104}, dictWord{ 11, 10, 554, }, dictWord{15, 10, 60}, dictWord{143, 10, 125}, dictWord{6, 11, 1658}, dictWord{9, 11, 3}, dictWord{10, 11, 154}, dictWord{11, 11, 641}, dictWord{13, 11, 85}, dictWord{13, 11, 201}, dictWord{141, 11, 346}, dictWord{6, 0, 177}, dictWord{135, 0, 467}, dictWord{134, 0, 1377}, dictWord{ 134, 10, 116, }, dictWord{136, 11, 645}, dictWord{4, 11, 166}, dictWord{5, 11, 505}, dictWord{6, 11, 1670}, dictWord{137, 11, 110}, dictWord{133, 10, 487}, dictWord{ 4, 10, 86, }, dictWord{5, 10, 667}, dictWord{5, 10, 753}, dictWord{6, 10, 316}, dictWord{6, 10, 455}, dictWord{135, 10, 946}, dictWord{133, 0, 200}, dictWord{132, 0, 959}, dictWord{6, 0, 1928}, dictWord{134, 0, 1957}, dictWord{139, 11, 203}, dictWord{150, 10, 45}, dictWord{4, 10, 79}, dictWord{7, 10, 1773}, dictWord{10, 10, 450}, dictWord{11, 10, 589}, dictWord{13, 10, 332}, dictWord{13, 10, 493}, dictWord{14, 10, 183}, dictWord{14, 10, 334}, dictWord{ 14, 10, 362, }, dictWord{14, 10, 368}, dictWord{14, 10, 376}, dictWord{14, 10, 379}, dictWord{19, 10, 90}, dictWord{19, 10, 103}, dictWord{19, 10, 127}, dictWord{148, 10, 90}, dictWord{6, 0, 1435}, dictWord{135, 11, 1275}, dictWord{134, 0, 481}, dictWord{7, 11, 445}, dictWord{8, 11, 307}, dictWord{8, 11, 704}, dictWord{10, 11, 41}, dictWord{10, 11, 439}, dictWord{11, 11, 237}, dictWord{11, 11, 622}, dictWord{140, 11, 201}, dictWord{135, 11, 869}, dictWord{ 4, 0, 84, }, dictWord{7, 0, 1482}, dictWord{10, 0, 76}, dictWord{138, 0, 142}, dictWord{11, 11, 277}, dictWord{144, 11, 14}, dictWord{135, 11, 1977}, dictWord{ 4, 11, 189, }, dictWord{5, 11, 713}, dictWord{136, 11, 57}, dictWord{133, 0, 1015}, dictWord{138, 11, 371}, dictWord{4, 0, 315}, dictWord{5, 0, 507}, dictWord{ 135, 0, 1370, }, dictWord{4, 11, 552}, dictWord{142, 10, 381}, dictWord{9, 0, 759}, dictWord{16, 0, 31}, dictWord{16, 0, 39}, dictWord{16, 0, 75}, dictWord{18, 0, 24}, dictWord{20, 0, 42}, dictWord{152, 0, 1}, dictWord{134, 0, 712}, dictWord{134, 0, 1722}, dictWord{133, 10, 663}, dictWord{133, 10, 846}, dictWord{ 8, 0, 222, }, dictWord{8, 0, 476}, dictWord{9, 0, 238}, dictWord{11, 0, 516}, dictWord{11, 0, 575}, dictWord{15, 0, 109}, dictWord{146, 0, 100}, dictWord{7, 0, 1402}, dictWord{7, 0, 1414}, dictWord{12, 0, 456}, dictWord{5, 10, 378}, dictWord{8, 10, 465}, dictWord{9, 10, 286}, dictWord{10, 10, 185}, dictWord{10, 10, 562}, dictWord{10, 10, 635}, dictWord{11, 10, 31}, dictWord{11, 10, 393}, dictWord{13, 10, 312}, dictWord{18, 10, 65}, dictWord{18, 10, 96}, dictWord{147, 10, 89}, dictWord{4, 0, 986}, dictWord{6, 0, 1958}, dictWord{6, 0, 2032}, dictWord{8, 0, 934}, dictWord{138, 0, 985}, dictWord{7, 10, 1880}, dictWord{9, 10, 680}, dictWord{139, 10, 798}, dictWord{134, 10, 1770}, dictWord{145, 11, 49}, dictWord{132, 11, 614}, dictWord{132, 10, 648}, dictWord{5, 10, 945}, dictWord{ 6, 10, 1656, }, dictWord{6, 10, 1787}, dictWord{7, 10, 167}, dictWord{8, 10, 824}, dictWord{9, 10, 391}, dictWord{10, 10, 375}, dictWord{139, 10, 185}, dictWord{138, 11, 661}, dictWord{7, 0, 1273}, dictWord{135, 11, 1945}, dictWord{7, 0, 706}, dictWord{7, 0, 1058}, dictWord{138, 0, 538}, dictWord{7, 10, 1645}, dictWord{8, 10, 352}, dictWord{137, 10, 249}, dictWord{132, 10, 152}, dictWord{11, 0, 92}, dictWord{11, 0, 196}, dictWord{11, 0, 409}, dictWord{11, 0, 450}, dictWord{11, 0, 666}, dictWord{11, 0, 777}, dictWord{12, 0, 262}, dictWord{13, 0, 385}, dictWord{13, 0, 393}, dictWord{15, 0, 115}, dictWord{16, 0, 45}, dictWord{145, 0, 82}, dictWord{133, 10, 1006}, dictWord{6, 0, 40}, dictWord{135, 0, 1781}, dictWord{9, 11, 614}, dictWord{139, 11, 327}, dictWord{5, 10, 420}, dictWord{135, 10, 1449}, dictWord{135, 0, 431}, dictWord{10, 0, 97}, dictWord{135, 10, 832}, dictWord{6, 0, 423}, dictWord{7, 0, 665}, dictWord{ 135, 0, 1210, }, dictWord{7, 0, 237}, dictWord{8, 0, 664}, dictWord{9, 0, 42}, dictWord{9, 0, 266}, dictWord{9, 0, 380}, dictWord{9, 0, 645}, dictWord{10, 0, 177}, dictWord{ 138, 0, 276, }, dictWord{7, 0, 264}, dictWord{133, 10, 351}, dictWord{8, 0, 213}, dictWord{5, 10, 40}, dictWord{7, 10, 598}, dictWord{7, 10, 1638}, dictWord{ 9, 10, 166, }, dictWord{9, 10, 640}, dictWord{9, 10, 685}, dictWord{9, 10, 773}, dictWord{11, 10, 215}, dictWord{13, 10, 65}, dictWord{14, 10, 172}, dictWord{ 14, 10, 317, }, dictWord{145, 10, 6}, dictWord{5, 11, 84}, dictWord{134, 11, 163}, dictWord{8, 10, 60}, dictWord{9, 10, 343}, dictWord{139, 10, 769}, dictWord{ 137, 0, 455, }, dictWord{133, 11, 410}, dictWord{8, 0, 906}, dictWord{12, 0, 700}, dictWord{12, 0, 706}, dictWord{140, 0, 729}, dictWord{21, 11, 33}, dictWord{ 150, 11, 40, }, dictWord{7, 10, 1951}, dictWord{8, 10, 765}, dictWord{8, 10, 772}, dictWord{140, 10, 671}, dictWord{7, 10, 108}, dictWord{8, 10, 219}, dictWord{ 8, 10, 388, }, dictWord{9, 10, 639}, dictWord{9, 10, 775}, dictWord{11, 10, 275}, dictWord{140, 10, 464}, dictWord{5, 11, 322}, dictWord{7, 11, 1941}, dictWord{ 8, 11, 186, }, dictWord{9, 11, 262}, dictWord{10, 11, 187}, dictWord{14, 11, 208}, dictWord{146, 11, 130}, dictWord{139, 0, 624}, dictWord{8, 0, 574}, dictWord{ 5, 11, 227, }, dictWord{140, 11, 29}, dictWord{7, 11, 1546}, dictWord{11, 11, 299}, dictWord{142, 11, 407}, dictWord{5, 10, 15}, dictWord{6, 10, 56}, dictWord{ 7, 10, 1758, }, dictWord{8, 10, 500}, dictWord{9, 10, 730}, dictWord{11, 10, 331}, dictWord{13, 10, 150}, dictWord{142, 10, 282}, dictWord{7, 11, 1395}, dictWord{8, 11, 486}, dictWord{9, 11, 236}, dictWord{9, 11, 878}, dictWord{10, 11, 218}, dictWord{11, 11, 95}, dictWord{19, 11, 17}, dictWord{147, 11, 31}, dictWord{135, 11, 2043}, dictWord{4, 0, 354}, dictWord{146, 11, 4}, dictWord{140, 11, 80}, dictWord{135, 0, 1558}, dictWord{134, 10, 1886}, dictWord{ 5, 10, 205, }, dictWord{6, 10, 438}, dictWord{137, 10, 711}, dictWord{133, 11, 522}, dictWord{133, 10, 534}, dictWord{7, 0, 235}, dictWord{7, 0, 1475}, dictWord{ 15, 0, 68, }, dictWord{146, 0, 120}, dictWord{137, 10, 691}, dictWord{4, 0, 942}, dictWord{6, 0, 1813}, dictWord{8, 0, 917}, dictWord{10, 0, 884}, dictWord{ 12, 0, 696, }, dictWord{12, 0, 717}, dictWord{12, 0, 723}, dictWord{12, 0, 738}, dictWord{12, 0, 749}, dictWord{12, 0, 780}, dictWord{16, 0, 97}, dictWord{146, 0, 169}, dictWord{6, 10, 443}, dictWord{8, 11, 562}, dictWord{9, 10, 237}, dictWord{9, 10, 571}, dictWord{9, 10, 695}, dictWord{10, 10, 139}, dictWord{11, 10, 715}, dictWord{12, 10, 417}, dictWord{141, 10, 421}, dictWord{135, 0, 957}, dictWord{133, 0, 830}, dictWord{134, 11, 1771}, dictWord{146, 0, 23}, dictWord{ 5, 0, 496, }, dictWord{6, 0, 694}, dictWord{7, 0, 203}, dictWord{7, 11, 1190}, dictWord{137, 11, 620}, dictWord{137, 11, 132}, dictWord{6, 0, 547}, dictWord{ 134, 0, 1549, }, dictWord{8, 11, 258}, dictWord{9, 11, 208}, dictWord{137, 11, 359}, dictWord{4, 0, 864}, dictWord{5, 0, 88}, dictWord{137, 0, 239}, dictWord{ 135, 11, 493, }, dictWord{4, 11, 317}, dictWord{135, 11, 1279}, dictWord{132, 11, 477}, dictWord{4, 10, 578}, dictWord{5, 11, 63}, dictWord{133, 11, 509}, dictWord{ 7, 0, 650, }, dictWord{135, 0, 1310}, dictWord{7, 0, 1076}, dictWord{9, 0, 80}, dictWord{11, 0, 78}, dictWord{11, 0, 421}, dictWord{11, 0, 534}, dictWord{ 140, 0, 545, }, dictWord{132, 11, 288}, dictWord{12, 0, 553}, dictWord{14, 0, 118}, dictWord{133, 10, 923}, dictWord{7, 0, 274}, dictWord{11, 0, 479}, dictWord{ 139, 0, 507, }, dictWord{8, 11, 89}, dictWord{8, 11, 620}, dictWord{9, 11, 49}, dictWord{10, 11, 774}, dictWord{11, 11, 628}, dictWord{12, 11, 322}, dictWord{ 143, 11, 124, }, dictWord{4, 0, 497}, dictWord{135, 0, 1584}, dictWord{7, 0, 261}, dictWord{7, 0, 1115}, dictWord{7, 0, 1354}, dictWord{7, 0, 1404}, dictWord{ 7, 0, 1588, }, dictWord{7, 0, 1705}, dictWord{7, 0, 1902}, dictWord{9, 0, 465}, dictWord{10, 0, 248}, dictWord{10, 0, 349}, dictWord{10, 0, 647}, dictWord{11, 0, 527}, dictWord{11, 0, 660}, dictWord{11, 0, 669}, dictWord{12, 0, 529}, dictWord{13, 0, 305}, dictWord{132, 10, 924}, dictWord{133, 10, 665}, dictWord{ 136, 0, 13, }, dictWord{6, 0, 791}, dictWord{138, 11, 120}, dictWord{7, 0, 642}, dictWord{8, 0, 250}, dictWord{11, 0, 123}, dictWord{11, 0, 137}, dictWord{13, 0, 48}, dictWord{142, 0, 95}, dictWord{4, 10, 265}, dictWord{7, 10, 807}, dictWord{135, 10, 950}, dictWord{5, 10, 93}, dictWord{140, 10, 267}, dictWord{135, 0, 1429}, dictWord{4, 0, 949}, dictWord{10, 0, 885}, dictWord{10, 0, 891}, dictWord{10, 0, 900}, dictWord{10, 0, 939}, dictWord{12, 0, 760}, dictWord{142, 0, 449}, dictWord{139, 11, 366}, dictWord{132, 0, 818}, dictWord{134, 11, 85}, dictWord{135, 10, 994}, dictWord{7, 0, 330}, dictWord{5, 10, 233}, dictWord{5, 10, 320}, dictWord{6, 10, 140}, dictWord{136, 10, 295}, dictWord{4, 0, 1004}, dictWord{8, 0, 982}, dictWord{136, 0, 993}, dictWord{133, 10, 978}, dictWord{4, 10, 905}, dictWord{6, 10, 1701}, dictWord{137, 10, 843}, dictWord{10, 0, 545}, dictWord{140, 0, 301}, dictWord{6, 0, 947}, dictWord{134, 0, 1062}, dictWord{ 134, 0, 1188, }, dictWord{4, 0, 904}, dictWord{5, 0, 794}, dictWord{152, 10, 6}, dictWord{134, 0, 1372}, dictWord{135, 11, 608}, dictWord{5, 11, 279}, dictWord{ 6, 11, 235, }, dictWord{7, 11, 468}, dictWord{8, 11, 446}, dictWord{9, 11, 637}, dictWord{10, 11, 717}, dictWord{11, 11, 738}, dictWord{140, 11, 514}, dictWord{ 132, 10, 509, }, dictWord{5, 11, 17}, dictWord{6, 11, 371}, dictWord{137, 11, 528}, dictWord{132, 0, 693}, dictWord{4, 11, 115}, dictWord{5, 11, 669}, dictWord{ 6, 11, 407, }, dictWord{8, 11, 311}, dictWord{11, 11, 10}, dictWord{141, 11, 5}, dictWord{11, 0, 377}, dictWord{7, 10, 273}, dictWord{137, 11, 381}, dictWord{ 135, 0, 695, }, dictWord{7, 0, 386}, dictWord{138, 0, 713}, dictWord{135, 10, 1041}, dictWord{134, 0, 1291}, dictWord{6, 0, 7}, dictWord{6, 0, 35}, dictWord{ 7, 0, 147, }, dictWord{7, 0, 1069}, dictWord{7, 0, 1568}, dictWord{7, 0, 1575}, dictWord{7, 0, 1917}, dictWord{8, 0, 43}, dictWord{8, 0, 208}, dictWord{9, 0, 128}, dictWord{ 9, 0, 866, }, dictWord{10, 0, 20}, dictWord{11, 0, 981}, dictWord{147, 0, 33}, dictWord{7, 0, 893}, dictWord{141, 0, 424}, dictWord{139, 10, 234}, dictWord{ 150, 11, 56, }, dictWord{5, 11, 779}, dictWord{5, 11, 807}, dictWord{6, 11, 1655}, dictWord{134, 11, 1676}, dictWord{5, 10, 802}, dictWord{7, 10, 2021}, dictWord{136, 10, 805}, dictWord{4, 11, 196}, dictWord{5, 10, 167}, dictWord{5, 11, 558}, dictWord{5, 10, 899}, dictWord{5, 11, 949}, dictWord{6, 10, 410}, dictWord{137, 10, 777}, dictWord{137, 10, 789}, dictWord{134, 10, 1705}, dictWord{8, 0, 904}, dictWord{140, 0, 787}, dictWord{6, 0, 322}, dictWord{9, 0, 552}, dictWord{11, 0, 274}, dictWord{13, 0, 209}, dictWord{13, 0, 499}, dictWord{14, 0, 85}, dictWord{15, 0, 126}, dictWord{145, 0, 70}, dictWord{135, 10, 10}, dictWord{ 5, 10, 11, }, dictWord{6, 10, 117}, dictWord{6, 10, 485}, dictWord{7, 10, 1133}, dictWord{9, 10, 582}, dictWord{9, 10, 594}, dictWord{11, 10, 21}, dictWord{ 11, 10, 818, }, dictWord{12, 10, 535}, dictWord{141, 10, 86}, dictWord{4, 10, 264}, dictWord{7, 10, 1067}, dictWord{8, 10, 204}, dictWord{8, 10, 385}, dictWord{139, 10, 953}, dictWord{132, 11, 752}, dictWord{138, 10, 56}, dictWord{133, 10, 470}, dictWord{6, 0, 1808}, dictWord{8, 0, 83}, dictWord{8, 0, 742}, dictWord{8, 0, 817}, dictWord{9, 0, 28}, dictWord{9, 0, 29}, dictWord{9, 0, 885}, dictWord{10, 0, 387}, dictWord{11, 0, 633}, dictWord{11, 0, 740}, dictWord{13, 0, 235}, dictWord{13, 0, 254}, dictWord{15, 0, 143}, dictWord{143, 0, 146}, dictWord{140, 0, 49}, dictWord{134, 0, 1832}, dictWord{4, 11, 227}, dictWord{5, 11, 159}, dictWord{5, 11, 409}, dictWord{7, 11, 80}, dictWord{10, 11, 294}, dictWord{10, 11, 479}, dictWord{12, 11, 418}, dictWord{14, 11, 50}, dictWord{14, 11, 249}, dictWord{142, 11, 295}, dictWord{7, 11, 1470}, dictWord{8, 11, 66}, dictWord{8, 11, 137}, dictWord{8, 11, 761}, dictWord{9, 11, 638}, dictWord{11, 11, 80}, dictWord{11, 11, 212}, dictWord{11, 11, 368}, dictWord{11, 11, 418}, dictWord{12, 11, 8}, dictWord{13, 11, 15}, dictWord{16, 11, 61}, dictWord{17, 11, 59}, dictWord{19, 11, 28}, dictWord{148, 11, 84}, dictWord{139, 10, 1015}, dictWord{138, 11, 468}, dictWord{135, 0, 421}, dictWord{6, 0, 415}, dictWord{ 7, 0, 1049, }, dictWord{137, 0, 442}, dictWord{6, 11, 38}, dictWord{7, 11, 1220}, dictWord{8, 11, 185}, dictWord{8, 11, 256}, dictWord{9, 11, 22}, dictWord{ 9, 11, 331, }, dictWord{10, 11, 738}, dictWord{11, 11, 205}, dictWord{11, 11, 540}, dictWord{11, 11, 746}, dictWord{13, 11, 399}, dictWord{13, 11, 465}, dictWord{ 14, 11, 88, }, dictWord{142, 11, 194}, dictWord{139, 0, 289}, dictWord{133, 10, 715}, dictWord{4, 0, 110}, dictWord{10, 0, 415}, dictWord{10, 0, 597}, dictWord{142, 0, 206}, dictWord{4, 11, 159}, dictWord{6, 11, 115}, dictWord{7, 11, 252}, dictWord{7, 11, 257}, dictWord{7, 11, 1928}, dictWord{8, 11, 69}, dictWord{ 9, 11, 384, }, dictWord{10, 11, 91}, dictWord{10, 11, 615}, dictWord{12, 11, 375}, dictWord{14, 11, 235}, dictWord{18, 11, 117}, dictWord{147, 11, 123}, dictWord{5, 11, 911}, dictWord{136, 11, 278}, dictWord{7, 0, 205}, dictWord{7, 0, 2000}, dictWord{8, 10, 794}, dictWord{9, 10, 400}, dictWord{10, 10, 298}, dictWord{142, 10, 228}, dictWord{135, 11, 1774}, dictWord{4, 11, 151}, dictWord{7, 11, 1567}, dictWord{8, 11, 351}, dictWord{137, 11, 322}, dictWord{ 136, 10, 724, }, dictWord{133, 11, 990}, dictWord{7, 0, 1539}, dictWord{11, 0, 512}, dictWord{13, 0, 205}, dictWord{19, 0, 30}, dictWord{22, 0, 36}, dictWord{23, 0, 19}, dictWord{135, 11, 1539}, dictWord{5, 11, 194}, dictWord{7, 11, 1662}, dictWord{9, 11, 90}, dictWord{140, 11, 180}, dictWord{6, 10, 190}, dictWord{ 7, 10, 768, }, dictWord{135, 10, 1170}, dictWord{134, 0, 1340}, dictWord{4, 0, 283}, dictWord{135, 0, 1194}, dictWord{133, 11, 425}, dictWord{133, 11, 971}, dictWord{12, 0, 549}, dictWord{14, 10, 67}, dictWord{147, 10, 60}, dictWord{135, 10, 1023}, dictWord{134, 0, 1720}, dictWord{138, 11, 587}, dictWord{ 5, 11, 72, }, dictWord{6, 11, 264}, dictWord{7, 11, 21}, dictWord{7, 11, 46}, dictWord{7, 11, 2013}, dictWord{8, 11, 215}, dictWord{8, 11, 513}, dictWord{10, 11, 266}, dictWord{139, 11, 22}, dictWord{5, 0, 319}, dictWord{135, 0, 534}, dictWord{6, 10, 137}, dictWord{9, 10, 75}, dictWord{9, 10, 253}, dictWord{10, 10, 194}, dictWord{138, 10, 444}, dictWord{7, 0, 1180}, dictWord{20, 0, 112}, dictWord{6, 11, 239}, dictWord{7, 11, 118}, dictWord{10, 11, 95}, dictWord{11, 11, 603}, dictWord{13, 11, 443}, dictWord{14, 11, 160}, dictWord{143, 11, 4}, dictWord{134, 11, 431}, dictWord{5, 11, 874}, dictWord{6, 11, 1677}, dictWord{ 11, 10, 643, }, dictWord{12, 10, 115}, dictWord{143, 11, 0}, dictWord{134, 0, 967}, dictWord{6, 11, 65}, dictWord{7, 11, 939}, dictWord{7, 11, 1172}, dictWord{ 7, 11, 1671, }, dictWord{9, 11, 540}, dictWord{10, 11, 696}, dictWord{11, 11, 265}, dictWord{11, 11, 732}, dictWord{11, 11, 928}, dictWord{11, 11, 937}, dictWord{ 12, 11, 399, }, dictWord{13, 11, 438}, dictWord{149, 11, 19}, dictWord{137, 11, 200}, dictWord{135, 0, 1940}, dictWord{5, 10, 760}, dictWord{7, 10, 542}, dictWord{8, 10, 135}, dictWord{136, 10, 496}, dictWord{140, 11, 44}, dictWord{7, 11, 1655}, dictWord{136, 11, 305}, dictWord{7, 10, 319}, dictWord{ 7, 10, 355, }, dictWord{7, 10, 763}, dictWord{10, 10, 389}, dictWord{145, 10, 43}, dictWord{136, 0, 735}, dictWord{138, 10, 786}, dictWord{137, 11, 19}, dictWord{132, 11, 696}, dictWord{5, 0, 132}, dictWord{9, 0, 486}, dictWord{9, 0, 715}, dictWord{10, 0, 458}, dictWord{11, 0, 373}, dictWord{11, 0, 668}, dictWord{ 11, 0, 795, }, dictWord{11, 0, 897}, dictWord{12, 0, 272}, dictWord{12, 0, 424}, dictWord{12, 0, 539}, dictWord{12, 0, 558}, dictWord{14, 0, 245}, dictWord{ 14, 0, 263, }, dictWord{14, 0, 264}, dictWord{14, 0, 393}, dictWord{142, 0, 403}, dictWord{10, 0, 38}, dictWord{139, 0, 784}, dictWord{132, 0, 838}, dictWord{ 4, 11, 302, }, dictWord{135, 11, 1766}, dictWord{133, 0, 379}, dictWord{5, 0, 8}, dictWord{6, 0, 89}, dictWord{6, 0, 400}, dictWord{7, 0, 1569}, dictWord{7, 0, 1623}, dictWord{7, 0, 1850}, dictWord{8, 0, 218}, dictWord{8, 0, 422}, dictWord{9, 0, 570}, dictWord{10, 0, 626}, dictWord{4, 11, 726}, dictWord{133, 11, 630}, dictWord{ 4, 0, 1017, }, dictWord{138, 0, 660}, dictWord{6, 0, 387}, dictWord{7, 0, 882}, dictWord{141, 0, 111}, dictWord{6, 0, 224}, dictWord{7, 0, 877}, dictWord{ 137, 0, 647, }, dictWord{4, 10, 58}, dictWord{5, 10, 286}, dictWord{6, 10, 319}, dictWord{7, 10, 402}, dictWord{7, 10, 1254}, dictWord{7, 10, 1903}, dictWord{ 8, 10, 356, }, dictWord{140, 10, 408}, dictWord{135, 0, 790}, dictWord{9, 0, 510}, dictWord{10, 0, 53}, dictWord{4, 10, 389}, dictWord{9, 10, 181}, dictWord{ 10, 10, 29, }, dictWord{10, 10, 816}, dictWord{11, 10, 311}, dictWord{11, 10, 561}, dictWord{12, 10, 67}, dictWord{141, 10, 181}, dictWord{142, 0, 458}, dictWord{ 6, 11, 118, }, dictWord{7, 11, 215}, dictWord{7, 11, 1521}, dictWord{140, 11, 11}, dictWord{134, 0, 954}, dictWord{135, 0, 394}, dictWord{134, 0, 1367}, dictWord{5, 11, 225}, dictWord{133, 10, 373}, dictWord{132, 0, 882}, dictWord{7, 0, 1409}, dictWord{135, 10, 1972}, dictWord{135, 10, 1793}, dictWord{ 4, 11, 370, }, dictWord{5, 11, 756}, dictWord{135, 11, 1326}, dictWord{150, 11, 13}, dictWord{7, 11, 354}, dictWord{10, 11, 410}, dictWord{139, 11, 815}, dictWord{6, 11, 1662}, dictWord{7, 11, 48}, dictWord{8, 11, 771}, dictWord{10, 11, 116}, dictWord{13, 11, 104}, dictWord{14, 11, 105}, dictWord{14, 11, 184}, dictWord{15, 11, 168}, dictWord{19, 11, 92}, dictWord{148, 11, 68}, dictWord{7, 0, 124}, dictWord{136, 0, 38}, dictWord{5, 0, 261}, dictWord{7, 0, 78}, dictWord{ 7, 0, 199, }, dictWord{8, 0, 815}, dictWord{9, 0, 126}, dictWord{10, 0, 342}, dictWord{140, 0, 647}, dictWord{4, 0, 628}, dictWord{140, 0, 724}, dictWord{7, 0, 266}, dictWord{8, 0, 804}, dictWord{7, 10, 1651}, dictWord{145, 10, 89}, dictWord{135, 0, 208}, dictWord{134, 0, 1178}, dictWord{6, 0, 79}, dictWord{135, 0, 1519}, dictWord{132, 10, 672}, dictWord{133, 10, 737}, dictWord{136, 0, 741}, dictWord{132, 11, 120}, dictWord{4, 0, 710}, dictWord{6, 0, 376}, dictWord{ 134, 0, 606, }, dictWord{134, 0, 1347}, dictWord{134, 0, 1494}, dictWord{6, 0, 850}, dictWord{6, 0, 1553}, dictWord{137, 0, 821}, dictWord{5, 10, 145}, dictWord{ 134, 11, 593, }, dictWord{7, 0, 1311}, dictWord{140, 0, 135}, dictWord{4, 0, 467}, dictWord{5, 0, 405}, dictWord{134, 0, 544}, dictWord{5, 11, 820}, dictWord{ 135, 11, 931, }, dictWord{6, 0, 100}, dictWord{7, 0, 244}, dictWord{7, 0, 632}, dictWord{7, 0, 1609}, dictWord{8, 0, 178}, dictWord{8, 0, 638}, dictWord{141, 0, 58}, dictWord{4, 10, 387}, dictWord{135, 10, 1288}, dictWord{6, 11, 151}, dictWord{6, 11, 1675}, dictWord{7, 11, 383}, dictWord{151, 11, 10}, dictWord{ 132, 0, 481, }, dictWord{135, 10, 550}, dictWord{134, 0, 1378}, dictWord{6, 11, 1624}, dictWord{11, 11, 11}, dictWord{12, 11, 422}, dictWord{13, 11, 262}, dictWord{142, 11, 360}, dictWord{133, 0, 791}, dictWord{4, 11, 43}, dictWord{5, 11, 344}, dictWord{133, 11, 357}, dictWord{7, 0, 1227}, dictWord{140, 0, 978}, dictWord{7, 0, 686}, dictWord{8, 0, 33}, dictWord{8, 0, 238}, dictWord{10, 0, 616}, dictWord{11, 0, 467}, dictWord{11, 0, 881}, dictWord{13, 0, 217}, dictWord{ 13, 0, 253, }, dictWord{142, 0, 268}, dictWord{137, 0, 857}, dictWord{8, 0, 467}, dictWord{8, 0, 1006}, dictWord{7, 11, 148}, dictWord{8, 11, 284}, dictWord{ 141, 11, 63, }, dictWord{4, 10, 576}, dictWord{135, 10, 1263}, dictWord{133, 11, 888}, dictWord{5, 10, 919}, dictWord{134, 10, 1673}, dictWord{20, 10, 37}, dictWord{148, 11, 37}, dictWord{132, 0, 447}, dictWord{132, 11, 711}, dictWord{4, 0, 128}, dictWord{5, 0, 415}, dictWord{6, 0, 462}, dictWord{7, 0, 294}, dictWord{ 7, 0, 578, }, dictWord{10, 0, 710}, dictWord{139, 0, 86}, dictWord{4, 10, 82}, dictWord{5, 10, 333}, dictWord{5, 10, 904}, dictWord{6, 10, 207}, dictWord{7, 10, 325}, dictWord{7, 10, 1726}, dictWord{8, 10, 101}, dictWord{10, 10, 778}, dictWord{139, 10, 220}, dictWord{136, 0, 587}, dictWord{137, 11, 440}, dictWord{ 133, 10, 903, }, dictWord{6, 0, 427}, dictWord{7, 0, 1018}, dictWord{138, 0, 692}, dictWord{4, 0, 195}, dictWord{135, 0, 802}, dictWord{140, 10, 147}, dictWord{ 134, 0, 1546, }, dictWord{134, 0, 684}, dictWord{132, 10, 705}, dictWord{136, 0, 345}, dictWord{11, 11, 678}, dictWord{140, 11, 307}, dictWord{ 133, 0, 365, }, dictWord{134, 0, 1683}, dictWord{4, 11, 65}, dictWord{5, 11, 479}, dictWord{5, 11, 1004}, dictWord{7, 11, 1913}, dictWord{8, 11, 317}, dictWord{ 9, 11, 302, }, dictWord{10, 11, 612}, dictWord{141, 11, 22}, dictWord{138, 0, 472}, dictWord{4, 11, 261}, dictWord{135, 11, 510}, dictWord{134, 10, 90}, dictWord{142, 0, 433}, dictWord{151, 0, 28}, dictWord{4, 11, 291}, dictWord{7, 11, 101}, dictWord{9, 11, 515}, dictWord{12, 11, 152}, dictWord{12, 11, 443}, dictWord{13, 11, 392}, dictWord{142, 11, 357}, dictWord{140, 0, 997}, dictWord{5, 0, 3}, dictWord{8, 0, 578}, dictWord{9, 0, 118}, dictWord{10, 0, 705}, dictWord{ 141, 0, 279, }, dictWord{135, 11, 1266}, dictWord{7, 10, 813}, dictWord{12, 10, 497}, dictWord{141, 10, 56}, dictWord{133, 0, 229}, dictWord{6, 10, 125}, dictWord{135, 10, 1277}, dictWord{8, 0, 102}, dictWord{10, 0, 578}, dictWord{10, 0, 672}, dictWord{12, 0, 496}, dictWord{13, 0, 408}, dictWord{14, 0, 121}, dictWord{17, 0, 106}, dictWord{151, 10, 12}, dictWord{6, 0, 866}, dictWord{134, 0, 1080}, dictWord{136, 0, 1022}, dictWord{4, 11, 130}, dictWord{135, 11, 843}, dictWord{5, 11, 42}, dictWord{5, 11, 879}, dictWord{7, 11, 245}, dictWord{7, 11, 324}, dictWord{7, 11, 1532}, dictWord{11, 11, 463}, dictWord{11, 11, 472}, dictWord{13, 11, 363}, dictWord{144, 11, 52}, dictWord{150, 0, 55}, dictWord{8, 0, 115}, dictWord{8, 0, 350}, dictWord{9, 0, 489}, dictWord{10, 0, 128}, dictWord{ 11, 0, 306, }, dictWord{12, 0, 373}, dictWord{14, 0, 30}, dictWord{17, 0, 79}, dictWord{19, 0, 80}, dictWord{4, 11, 134}, dictWord{133, 11, 372}, dictWord{ 134, 0, 657, }, dictWord{134, 0, 933}, dictWord{135, 11, 1147}, dictWord{4, 0, 230}, dictWord{133, 0, 702}, dictWord{134, 0, 1728}, dictWord{4, 0, 484}, dictWord{ 18, 0, 26, }, dictWord{19, 0, 42}, dictWord{20, 0, 43}, dictWord{21, 0, 0}, dictWord{23, 0, 27}, dictWord{152, 0, 14}, dictWord{7, 0, 185}, dictWord{135, 0, 703}, dictWord{ 6, 0, 417, }, dictWord{10, 0, 618}, dictWord{7, 10, 1106}, dictWord{9, 10, 770}, dictWord{11, 10, 112}, dictWord{140, 10, 413}, dictWord{134, 0, 803}, dictWord{132, 11, 644}, dictWord{134, 0, 1262}, dictWord{7, 11, 540}, dictWord{12, 10, 271}, dictWord{145, 10, 109}, dictWord{135, 11, 123}, dictWord{ 132, 0, 633, }, dictWord{134, 11, 623}, dictWord{4, 11, 908}, dictWord{5, 11, 359}, dictWord{5, 11, 508}, dictWord{6, 11, 1723}, dictWord{7, 11, 343}, dictWord{ 7, 11, 1996, }, dictWord{135, 11, 2026}, dictWord{135, 0, 479}, dictWord{10, 0, 262}, dictWord{7, 10, 304}, dictWord{9, 10, 646}, dictWord{9, 10, 862}, dictWord{ 11, 10, 696, }, dictWord{12, 10, 208}, dictWord{15, 10, 79}, dictWord{147, 10, 108}, dictWord{4, 11, 341}, dictWord{135, 11, 480}, dictWord{134, 0, 830}, dictWord{5, 0, 70}, dictWord{5, 0, 622}, dictWord{6, 0, 334}, dictWord{7, 0, 1032}, dictWord{9, 0, 171}, dictWord{11, 0, 26}, dictWord{11, 0, 213}, dictWord{ 11, 0, 637, }, dictWord{11, 0, 707}, dictWord{12, 0, 202}, dictWord{12, 0, 380}, dictWord{13, 0, 226}, dictWord{13, 0, 355}, dictWord{14, 0, 222}, dictWord{145, 0, 42}, dictWord{135, 10, 981}, dictWord{143, 0, 217}, dictWord{137, 11, 114}, dictWord{4, 0, 23}, dictWord{4, 0, 141}, dictWord{5, 0, 313}, dictWord{5, 0, 1014}, dictWord{6, 0, 50}, dictWord{6, 0, 51}, dictWord{7, 0, 142}, dictWord{7, 0, 384}, dictWord{7, 0, 559}, dictWord{8, 0, 640}, dictWord{9, 0, 460}, dictWord{9, 0, 783}, dictWord{11, 0, 741}, dictWord{12, 0, 183}, dictWord{141, 0, 488}, dictWord{141, 0, 360}, dictWord{7, 0, 1586}, dictWord{7, 11, 1995}, dictWord{8, 11, 299}, dictWord{11, 11, 890}, dictWord{140, 11, 674}, dictWord{132, 10, 434}, dictWord{7, 0, 652}, dictWord{134, 10, 550}, dictWord{7, 0, 766}, dictWord{5, 10, 553}, dictWord{138, 10, 824}, dictWord{7, 0, 737}, dictWord{8, 0, 298}, dictWord{136, 10, 452}, dictWord{4, 11, 238}, dictWord{5, 11, 503}, dictWord{6, 11, 179}, dictWord{7, 11, 2003}, dictWord{8, 11, 381}, dictWord{8, 11, 473}, dictWord{9, 11, 149}, dictWord{10, 11, 183}, dictWord{15, 11, 45}, dictWord{143, 11, 86}, dictWord{133, 10, 292}, dictWord{5, 0, 222}, dictWord{9, 0, 655}, dictWord{138, 0, 534}, dictWord{138, 10, 135}, dictWord{4, 11, 121}, dictWord{5, 11, 156}, dictWord{5, 11, 349}, dictWord{9, 11, 136}, dictWord{10, 11, 605}, dictWord{14, 11, 342}, dictWord{147, 11, 107}, dictWord{137, 0, 906}, dictWord{6, 0, 1013}, dictWord{134, 0, 1250}, dictWord{6, 0, 1956}, dictWord{6, 0, 2009}, dictWord{8, 0, 991}, dictWord{144, 0, 120}, dictWord{135, 11, 1192}, dictWord{ 138, 0, 503, }, dictWord{5, 0, 154}, dictWord{7, 0, 1491}, dictWord{10, 0, 379}, dictWord{138, 0, 485}, dictWord{6, 0, 1867}, dictWord{6, 0, 1914}, dictWord{6, 0, 1925}, dictWord{9, 0, 917}, dictWord{9, 0, 925}, dictWord{9, 0, 932}, dictWord{9, 0, 951}, dictWord{9, 0, 1007}, dictWord{9, 0, 1013}, dictWord{12, 0, 806}, dictWord{ 12, 0, 810, }, dictWord{12, 0, 814}, dictWord{12, 0, 816}, dictWord{12, 0, 824}, dictWord{12, 0, 832}, dictWord{12, 0, 837}, dictWord{12, 0, 863}, dictWord{ 12, 0, 868, }, dictWord{12, 0, 870}, dictWord{12, 0, 889}, dictWord{12, 0, 892}, dictWord{12, 0, 900}, dictWord{12, 0, 902}, dictWord{12, 0, 908}, dictWord{12, 0, 933}, dictWord{12, 0, 942}, dictWord{12, 0, 949}, dictWord{12, 0, 954}, dictWord{15, 0, 175}, dictWord{15, 0, 203}, dictWord{15, 0, 213}, dictWord{15, 0, 218}, dictWord{15, 0, 225}, dictWord{15, 0, 231}, dictWord{15, 0, 239}, dictWord{15, 0, 248}, dictWord{15, 0, 252}, dictWord{18, 0, 190}, dictWord{18, 0, 204}, dictWord{ 18, 0, 215, }, dictWord{18, 0, 216}, dictWord{18, 0, 222}, dictWord{18, 0, 225}, dictWord{18, 0, 230}, dictWord{18, 0, 239}, dictWord{18, 0, 241}, dictWord{ 21, 0, 42, }, dictWord{21, 0, 43}, dictWord{21, 0, 44}, dictWord{21, 0, 45}, dictWord{21, 0, 46}, dictWord{21, 0, 53}, dictWord{24, 0, 27}, dictWord{152, 0, 31}, dictWord{ 133, 0, 716, }, dictWord{135, 0, 844}, dictWord{4, 0, 91}, dictWord{5, 0, 388}, dictWord{5, 0, 845}, dictWord{6, 0, 206}, dictWord{6, 0, 252}, dictWord{6, 0, 365}, dictWord{ 7, 0, 136, }, dictWord{7, 0, 531}, dictWord{136, 0, 621}, dictWord{7, 10, 393}, dictWord{10, 10, 603}, dictWord{139, 10, 206}, dictWord{6, 11, 80}, dictWord{ 6, 11, 1694, }, dictWord{7, 11, 173}, dictWord{7, 11, 1974}, dictWord{9, 11, 547}, dictWord{10, 11, 730}, dictWord{14, 11, 18}, dictWord{150, 11, 39}, dictWord{137, 0, 748}, dictWord{4, 11, 923}, dictWord{134, 11, 1711}, dictWord{4, 10, 912}, dictWord{137, 10, 232}, dictWord{7, 10, 98}, dictWord{7, 10, 1973}, dictWord{136, 10, 716}, dictWord{14, 0, 103}, dictWord{133, 10, 733}, dictWord{132, 11, 595}, dictWord{12, 0, 158}, dictWord{18, 0, 8}, dictWord{19, 0, 62}, dictWord{20, 0, 6}, dictWord{22, 0, 4}, dictWord{23, 0, 2}, dictWord{23, 0, 9}, dictWord{5, 11, 240}, dictWord{6, 11, 459}, dictWord{7, 11, 12}, dictWord{7, 11, 114}, dictWord{7, 11, 502}, dictWord{7, 11, 1751}, dictWord{7, 11, 1753}, dictWord{7, 11, 1805}, dictWord{8, 11, 658}, dictWord{9, 11, 1}, dictWord{11, 11, 959}, dictWord{13, 11, 446}, dictWord{142, 11, 211}, dictWord{135, 0, 576}, dictWord{5, 0, 771}, dictWord{5, 0, 863}, dictWord{5, 0, 898}, dictWord{6, 0, 648}, dictWord{ 6, 0, 1632, }, dictWord{6, 0, 1644}, dictWord{134, 0, 1780}, dictWord{133, 0, 331}, dictWord{7, 11, 633}, dictWord{7, 11, 905}, dictWord{7, 11, 909}, dictWord{ 7, 11, 1538, }, dictWord{9, 11, 767}, dictWord{140, 11, 636}, dictWord{140, 0, 632}, dictWord{5, 0, 107}, dictWord{7, 0, 201}, dictWord{136, 0, 518}, dictWord{ 6, 0, 446, }, dictWord{7, 0, 1817}, dictWord{134, 11, 490}, dictWord{9, 0, 851}, dictWord{141, 0, 510}, dictWord{7, 11, 250}, dictWord{8, 11, 506}, dictWord{ 136, 11, 507, }, dictWord{4, 0, 504}, dictWord{137, 10, 72}, dictWord{132, 11, 158}, dictWord{4, 11, 140}, dictWord{7, 11, 362}, dictWord{8, 11, 209}, dictWord{ 9, 11, 10, }, dictWord{9, 11, 160}, dictWord{9, 11, 503}, dictWord{10, 11, 689}, dictWord{11, 11, 350}, dictWord{11, 11, 553}, dictWord{11, 11, 725}, dictWord{ 12, 11, 252, }, dictWord{12, 11, 583}, dictWord{13, 11, 192}, dictWord{13, 11, 352}, dictWord{14, 11, 269}, dictWord{14, 11, 356}, dictWord{148, 11, 50}, dictWord{6, 11, 597}, dictWord{135, 11, 1318}, dictWord{135, 10, 1454}, dictWord{5, 0, 883}, dictWord{5, 0, 975}, dictWord{8, 0, 392}, dictWord{148, 0, 7}, dictWord{6, 11, 228}, dictWord{7, 11, 1341}, dictWord{9, 11, 408}, dictWord{138, 11, 343}, dictWord{11, 11, 348}, dictWord{11, 10, 600}, dictWord{12, 11, 99}, dictWord{13, 10, 245}, dictWord{18, 11, 1}, dictWord{18, 11, 11}, dictWord{147, 11, 4}, dictWord{134, 11, 296}, dictWord{5, 0, 922}, dictWord{134, 0, 1707}, dictWord{132, 11, 557}, dictWord{4, 11, 548}, dictWord{7, 10, 164}, dictWord{7, 10, 1571}, dictWord{9, 10, 107}, dictWord{140, 10, 225}, dictWord{ 7, 11, 197, }, dictWord{8, 11, 142}, dictWord{8, 11, 325}, dictWord{9, 11, 150}, dictWord{9, 11, 596}, dictWord{10, 11, 350}, dictWord{10, 11, 353}, dictWord{ 11, 11, 74, }, dictWord{11, 11, 315}, dictWord{14, 11, 423}, dictWord{143, 11, 141}, dictWord{5, 0, 993}, dictWord{7, 0, 515}, dictWord{137, 0, 91}, dictWord{4, 0, 131}, dictWord{8, 0, 200}, dictWord{5, 10, 484}, dictWord{5, 10, 510}, dictWord{6, 10, 434}, dictWord{7, 10, 1000}, dictWord{7, 10, 1098}, dictWord{136, 10, 2}, dictWord{152, 0, 10}, dictWord{4, 11, 62}, dictWord{5, 11, 83}, dictWord{6, 11, 399}, dictWord{6, 11, 579}, dictWord{7, 11, 692}, dictWord{7, 11, 846}, dictWord{ 7, 11, 1015, }, dictWord{7, 11, 1799}, dictWord{8, 11, 403}, dictWord{9, 11, 394}, dictWord{10, 11, 133}, dictWord{12, 11, 4}, dictWord{12, 11, 297}, dictWord{ 12, 11, 452, }, dictWord{16, 11, 81}, dictWord{18, 11, 19}, dictWord{18, 11, 25}, dictWord{21, 11, 14}, dictWord{22, 11, 12}, dictWord{151, 11, 18}, dictWord{ 140, 11, 459, }, dictWord{132, 11, 177}, dictWord{7, 0, 1433}, dictWord{9, 0, 365}, dictWord{137, 11, 365}, dictWord{132, 10, 460}, dictWord{5, 0, 103}, dictWord{ 6, 0, 2004, }, dictWord{7, 0, 921}, dictWord{8, 0, 580}, dictWord{8, 0, 593}, dictWord{8, 0, 630}, dictWord{10, 0, 28}, dictWord{5, 11, 411}, dictWord{ 135, 11, 653, }, dictWord{4, 10, 932}, dictWord{133, 10, 891}, dictWord{4, 0, 911}, dictWord{5, 0, 867}, dictWord{5, 0, 1013}, dictWord{7, 0, 2034}, dictWord{8, 0, 798}, dictWord{136, 0, 813}, dictWord{7, 11, 439}, dictWord{10, 11, 727}, dictWord{11, 11, 260}, dictWord{139, 11, 684}, dictWord{136, 10, 625}, dictWord{ 5, 11, 208, }, dictWord{7, 11, 753}, dictWord{135, 11, 1528}, dictWord{5, 0, 461}, dictWord{7, 0, 1925}, dictWord{12, 0, 39}, dictWord{13, 0, 265}, dictWord{ 13, 0, 439, }, dictWord{134, 10, 76}, dictWord{6, 0, 853}, dictWord{8, 10, 92}, dictWord{137, 10, 221}, dictWord{5, 0, 135}, dictWord{6, 0, 519}, dictWord{7, 0, 1722}, dictWord{10, 0, 271}, dictWord{11, 0, 261}, dictWord{145, 0, 54}, dictWord{139, 11, 814}, dictWord{14, 0, 338}, dictWord{148, 0, 81}, dictWord{4, 0, 300}, dictWord{133, 0, 436}, dictWord{5, 0, 419}, dictWord{5, 0, 687}, dictWord{7, 0, 864}, dictWord{9, 0, 470}, dictWord{135, 11, 864}, dictWord{9, 0, 836}, dictWord{ 133, 11, 242, }, dictWord{134, 0, 1937}, dictWord{4, 10, 763}, dictWord{133, 11, 953}, dictWord{132, 10, 622}, dictWord{132, 0, 393}, dictWord{ 133, 10, 253, }, dictWord{8, 0, 357}, dictWord{10, 0, 745}, dictWord{14, 0, 426}, dictWord{17, 0, 94}, dictWord{19, 0, 57}, dictWord{135, 10, 546}, dictWord{5, 11, 615}, dictWord{146, 11, 37}, dictWord{9, 10, 73}, dictWord{10, 10, 110}, dictWord{14, 10, 185}, dictWord{145, 10, 119}, dictWord{11, 0, 703}, dictWord{7, 10, 624}, dictWord{7, 10, 916}, dictWord{10, 10, 256}, dictWord{139, 10, 87}, dictWord{133, 11, 290}, dictWord{5, 10, 212}, dictWord{12, 10, 35}, dictWord{ 141, 10, 382, }, dictWord{132, 11, 380}, dictWord{5, 11, 52}, dictWord{7, 11, 277}, dictWord{9, 11, 368}, dictWord{139, 11, 791}, dictWord{133, 0, 387}, dictWord{ 10, 11, 138, }, dictWord{139, 11, 476}, dictWord{4, 0, 6}, dictWord{5, 0, 708}, dictWord{136, 0, 75}, dictWord{7, 0, 1351}, dictWord{9, 0, 581}, dictWord{10, 0, 639}, dictWord{11, 0, 453}, dictWord{140, 0, 584}, dictWord{132, 0, 303}, dictWord{138, 0, 772}, dictWord{135, 10, 1175}, dictWord{4, 0, 749}, dictWord{ 5, 10, 816, }, dictWord{6, 11, 256}, dictWord{7, 11, 307}, dictWord{7, 11, 999}, dictWord{7, 11, 1481}, dictWord{7, 11, 1732}, dictWord{7, 11, 1738}, dictWord{ 8, 11, 265, }, dictWord{9, 11, 414}, dictWord{11, 11, 316}, dictWord{12, 11, 52}, dictWord{13, 11, 420}, dictWord{147, 11, 100}, dictWord{135, 11, 1296}, dictWord{ 6, 0, 1065, }, dictWord{5, 10, 869}, dictWord{5, 10, 968}, dictWord{6, 10, 1626}, dictWord{8, 10, 734}, dictWord{136, 10, 784}, dictWord{4, 10, 542}, dictWord{ 6, 10, 1716, }, dictWord{6, 10, 1727}, dictWord{7, 10, 1082}, dictWord{7, 10, 1545}, dictWord{8, 10, 56}, dictWord{8, 10, 118}, dictWord{8, 10, 412}, dictWord{ 8, 10, 564, }, dictWord{9, 10, 888}, dictWord{9, 10, 908}, dictWord{10, 10, 50}, dictWord{10, 10, 423}, dictWord{11, 10, 685}, dictWord{11, 10, 697}, dictWord{11, 10, 933}, dictWord{12, 10, 299}, dictWord{13, 10, 126}, dictWord{13, 10, 136}, dictWord{13, 10, 170}, dictWord{141, 10, 190}, dictWord{ 134, 0, 226, }, dictWord{4, 0, 106}, dictWord{7, 0, 310}, dictWord{11, 0, 717}, dictWord{133, 11, 723}, dictWord{5, 0, 890}, dictWord{5, 0, 988}, dictWord{4, 10, 232}, dictWord{9, 10, 202}, dictWord{10, 10, 474}, dictWord{140, 10, 433}, dictWord{6, 0, 626}, dictWord{142, 0, 431}, dictWord{10, 0, 706}, dictWord{150, 0, 44}, dictWord{13, 0, 51}, dictWord{6, 10, 108}, dictWord{7, 10, 1003}, dictWord{7, 10, 1181}, dictWord{8, 10, 111}, dictWord{136, 10, 343}, dictWord{132, 0, 698}, dictWord{5, 11, 109}, dictWord{6, 11, 1784}, dictWord{7, 11, 1895}, dictWord{12, 11, 296}, dictWord{140, 11, 302}, dictWord{134, 0, 828}, dictWord{ 134, 10, 1712, }, dictWord{138, 0, 17}, dictWord{7, 0, 1929}, dictWord{4, 10, 133}, dictWord{5, 11, 216}, dictWord{7, 10, 711}, dictWord{7, 10, 1298}, dictWord{ 7, 10, 1585, }, dictWord{7, 11, 1879}, dictWord{9, 11, 141}, dictWord{9, 11, 270}, dictWord{9, 11, 679}, dictWord{10, 11, 159}, dictWord{10, 11, 553}, dictWord{ 11, 11, 197, }, dictWord{11, 11, 438}, dictWord{12, 11, 538}, dictWord{12, 11, 559}, dictWord{13, 11, 193}, dictWord{13, 11, 423}, dictWord{14, 11, 144}, dictWord{14, 11, 166}, dictWord{14, 11, 167}, dictWord{15, 11, 67}, dictWord{147, 11, 84}, dictWord{141, 11, 127}, dictWord{7, 11, 1872}, dictWord{ 137, 11, 81, }, dictWord{6, 10, 99}, dictWord{7, 10, 1808}, dictWord{145, 10, 57}, dictWord{134, 11, 391}, dictWord{5, 0, 689}, dictWord{6, 0, 84}, dictWord{7, 0, 1250}, dictWord{6, 10, 574}, dictWord{7, 10, 428}, dictWord{10, 10, 669}, dictWord{11, 10, 485}, dictWord{11, 10, 840}, dictWord{12, 10, 300}, dictWord{ 142, 10, 250, }, dictWord{7, 11, 322}, dictWord{136, 11, 249}, dictWord{7, 11, 432}, dictWord{135, 11, 1649}, dictWord{135, 10, 1871}, dictWord{137, 10, 252}, dictWord{6, 11, 155}, dictWord{140, 11, 234}, dictWord{7, 0, 871}, dictWord{19, 0, 27}, dictWord{147, 11, 27}, dictWord{140, 0, 498}, dictWord{5, 0, 986}, dictWord{6, 0, 130}, dictWord{138, 0, 823}, dictWord{6, 0, 1793}, dictWord{7, 0, 1582}, dictWord{8, 0, 458}, dictWord{10, 0, 101}, dictWord{10, 0, 318}, dictWord{ 10, 0, 945, }, dictWord{12, 0, 734}, dictWord{16, 0, 104}, dictWord{18, 0, 177}, dictWord{6, 10, 323}, dictWord{135, 10, 1564}, dictWord{5, 11, 632}, dictWord{ 138, 11, 526, }, dictWord{10, 0, 435}, dictWord{7, 10, 461}, dictWord{136, 10, 775}, dictWord{6, 11, 144}, dictWord{7, 11, 948}, dictWord{7, 11, 1042}, dictWord{ 7, 11, 1857, }, dictWord{8, 11, 235}, dictWord{8, 11, 461}, dictWord{9, 11, 453}, dictWord{9, 11, 530}, dictWord{10, 11, 354}, dictWord{17, 11, 77}, dictWord{ 19, 11, 99, }, dictWord{148, 11, 79}, dictWord{138, 0, 966}, dictWord{7, 0, 1644}, dictWord{137, 0, 129}, dictWord{135, 0, 997}, dictWord{136, 0, 502}, dictWord{ 5, 11, 196, }, dictWord{6, 11, 486}, dictWord{7, 11, 212}, dictWord{8, 11, 309}, dictWord{136, 11, 346}, dictWord{7, 10, 727}, dictWord{146, 10, 73}, dictWord{132, 0, 823}, dictWord{132, 11, 686}, dictWord{135, 0, 1927}, dictWord{4, 0, 762}, dictWord{7, 0, 1756}, dictWord{137, 0, 98}, dictWord{136, 10, 577}, dictWord{24, 0, 8}, dictWord{4, 11, 30}, dictWord{5, 11, 43}, dictWord{152, 11, 8}, dictWord{7, 0, 1046}, dictWord{139, 0, 160}, dictWord{7, 0, 492}, dictWord{ 4, 10, 413, }, dictWord{5, 10, 677}, dictWord{7, 11, 492}, dictWord{8, 10, 432}, dictWord{140, 10, 280}, dictWord{6, 0, 45}, dictWord{7, 0, 433}, dictWord{8, 0, 129}, dictWord{9, 0, 21}, dictWord{10, 0, 392}, dictWord{11, 0, 79}, dictWord{12, 0, 499}, dictWord{13, 0, 199}, dictWord{141, 0, 451}, dictWord{7, 0, 558}, dictWord{ 136, 0, 353, }, dictWord{4, 11, 220}, dictWord{7, 11, 1535}, dictWord{9, 11, 93}, dictWord{139, 11, 474}, dictWord{7, 10, 646}, dictWord{7, 10, 1730}, dictWord{ 11, 10, 446, }, dictWord{141, 10, 178}, dictWord{133, 0, 785}, dictWord{134, 0, 1145}, dictWord{8, 0, 81}, dictWord{9, 0, 189}, dictWord{9, 0, 201}, dictWord{ 11, 0, 478, }, dictWord{11, 0, 712}, dictWord{141, 0, 338}, dictWord{5, 0, 353}, dictWord{151, 0, 26}, dictWord{11, 0, 762}, dictWord{132, 10, 395}, dictWord{ 134, 0, 2024, }, dictWord{4, 0, 611}, dictWord{133, 0, 606}, dictWord{9, 10, 174}, dictWord{10, 10, 164}, dictWord{11, 10, 440}, dictWord{11, 10, 841}, dictWord{ 143, 10, 98, }, dictWord{134, 10, 426}, dictWord{10, 10, 608}, dictWord{139, 10, 1002}, dictWord{138, 10, 250}, dictWord{6, 0, 25}, dictWord{7, 0, 855}, dictWord{7, 0, 1258}, dictWord{144, 0, 32}, dictWord{7, 11, 1725}, dictWord{138, 11, 393}, dictWord{5, 11, 263}, dictWord{134, 11, 414}, dictWord{6, 0, 2011}, dictWord{133, 10, 476}, dictWord{4, 0, 4}, dictWord{7, 0, 1118}, dictWord{7, 0, 1320}, dictWord{7, 0, 1706}, dictWord{8, 0, 277}, dictWord{9, 0, 622}, dictWord{ 10, 0, 9, }, dictWord{11, 0, 724}, dictWord{12, 0, 350}, dictWord{12, 0, 397}, dictWord{13, 0, 28}, dictWord{13, 0, 159}, dictWord{15, 0, 89}, dictWord{18, 0, 5}, dictWord{ 19, 0, 9, }, dictWord{20, 0, 34}, dictWord{22, 0, 47}, dictWord{6, 11, 178}, dictWord{6, 11, 1750}, dictWord{8, 11, 251}, dictWord{9, 11, 690}, dictWord{ 10, 11, 155, }, dictWord{10, 11, 196}, dictWord{10, 11, 373}, dictWord{11, 11, 698}, dictWord{13, 11, 155}, dictWord{148, 11, 93}, dictWord{5, 11, 97}, dictWord{ 137, 11, 393, }, dictWord{7, 0, 764}, dictWord{11, 0, 461}, dictWord{12, 0, 172}, dictWord{5, 10, 76}, dictWord{6, 10, 458}, dictWord{6, 10, 497}, dictWord{ 7, 10, 868, }, dictWord{9, 10, 658}, dictWord{10, 10, 594}, dictWord{11, 10, 566}, dictWord{12, 10, 338}, dictWord{141, 10, 200}, dictWord{134, 0, 1449}, dictWord{138, 11, 40}, dictWord{134, 11, 1639}, dictWord{134, 0, 1445}, dictWord{6, 0, 1168}, dictWord{4, 10, 526}, dictWord{7, 10, 1029}, dictWord{ 135, 10, 1054, }, dictWord{4, 11, 191}, dictWord{7, 11, 934}, dictWord{8, 11, 647}, dictWord{145, 11, 97}, dictWord{132, 10, 636}, dictWord{6, 0, 233}, dictWord{ 7, 10, 660, }, dictWord{7, 10, 1124}, dictWord{17, 10, 31}, dictWord{19, 10, 22}, dictWord{151, 10, 14}, dictWord{6, 10, 1699}, dictWord{136, 11, 110}, dictWord{ 12, 11, 246, }, dictWord{15, 11, 162}, dictWord{19, 11, 64}, dictWord{20, 11, 8}, dictWord{20, 11, 95}, dictWord{22, 11, 24}, dictWord{152, 11, 17}, dictWord{ 5, 11, 165, }, dictWord{9, 11, 346}, dictWord{138, 11, 655}, dictWord{5, 11, 319}, dictWord{135, 11, 534}, dictWord{134, 0, 255}, dictWord{9, 0, 216}, dictWord{ 8, 11, 128, }, dictWord{139, 11, 179}, dictWord{9, 0, 183}, dictWord{139, 0, 286}, dictWord{11, 0, 956}, dictWord{151, 0, 3}, dictWord{4, 0, 536}, dictWord{ 7, 0, 1141, }, dictWord{10, 0, 723}, dictWord{139, 0, 371}, dictWord{4, 10, 279}, dictWord{7, 10, 301}, dictWord{137, 10, 362}, dictWord{7, 0, 285}, dictWord{ 5, 11, 57, }, dictWord{6, 11, 101}, dictWord{6, 11, 1663}, dictWord{7, 11, 132}, dictWord{7, 11, 1048}, dictWord{7, 11, 1154}, dictWord{7, 11, 1415}, dictWord{ 7, 11, 1507, }, dictWord{12, 11, 493}, dictWord{15, 11, 105}, dictWord{151, 11, 15}, dictWord{5, 11, 459}, dictWord{7, 11, 1073}, dictWord{7, 10, 1743}, dictWord{ 8, 11, 241, }, dictWord{136, 11, 334}, dictWord{4, 10, 178}, dictWord{133, 10, 399}, dictWord{135, 0, 560}, dictWord{132, 0, 690}, dictWord{135, 0, 1246}, dictWord{18, 0, 157}, dictWord{147, 0, 63}, dictWord{10, 0, 599}, dictWord{11, 0, 33}, dictWord{12, 0, 571}, dictWord{149, 0, 1}, dictWord{6, 11, 324}, dictWord{ 6, 11, 520, }, dictWord{7, 11, 338}, dictWord{7, 11, 1616}, dictWord{7, 11, 1729}, dictWord{8, 11, 228}, dictWord{9, 11, 69}, dictWord{139, 11, 750}, dictWord{ 7, 0, 1862, }, dictWord{12, 0, 491}, dictWord{12, 0, 520}, dictWord{13, 0, 383}, dictWord{142, 0, 244}, dictWord{135, 11, 734}, dictWord{134, 10, 1692}, dictWord{10, 0, 448}, dictWord{11, 0, 630}, dictWord{17, 0, 117}, dictWord{6, 10, 202}, dictWord{7, 11, 705}, dictWord{12, 10, 360}, dictWord{17, 10, 118}, dictWord{18, 10, 27}, dictWord{148, 10, 67}, dictWord{4, 11, 73}, dictWord{6, 11, 612}, dictWord{7, 11, 927}, dictWord{7, 11, 1822}, dictWord{8, 11, 217}, dictWord{ 9, 11, 472, }, dictWord{9, 11, 765}, dictWord{9, 11, 766}, dictWord{10, 11, 408}, dictWord{11, 11, 51}, dictWord{11, 11, 793}, dictWord{12, 11, 266}, dictWord{ 15, 11, 158, }, dictWord{20, 11, 89}, dictWord{150, 11, 32}, dictWord{4, 0, 190}, dictWord{133, 0, 554}, dictWord{133, 0, 1001}, dictWord{5, 11, 389}, dictWord{ 8, 11, 636, }, dictWord{137, 11, 229}, dictWord{5, 0, 446}, dictWord{7, 10, 872}, dictWord{10, 10, 516}, dictWord{139, 10, 167}, dictWord{137, 10, 313}, dictWord{132, 10, 224}, dictWord{134, 0, 1313}, dictWord{5, 10, 546}, dictWord{7, 10, 35}, dictWord{8, 10, 11}, dictWord{8, 10, 12}, dictWord{9, 10, 315}, dictWord{9, 10, 533}, dictWord{10, 10, 802}, dictWord{11, 10, 166}, dictWord{12, 10, 525}, dictWord{142, 10, 243}, dictWord{6, 0, 636}, dictWord{137, 0, 837}, dictWord{5, 10, 241}, dictWord{8, 10, 242}, dictWord{9, 10, 451}, dictWord{10, 10, 667}, dictWord{11, 10, 598}, dictWord{140, 10, 429}, dictWord{22, 10, 46}, dictWord{150, 11, 46}, dictWord{136, 11, 472}, dictWord{11, 0, 278}, dictWord{142, 0, 73}, dictWord{141, 11, 185}, dictWord{132, 0, 868}, dictWord{ 134, 0, 972, }, dictWord{4, 10, 366}, dictWord{137, 10, 516}, dictWord{138, 0, 1010}, dictWord{5, 11, 189}, dictWord{6, 10, 1736}, dictWord{7, 11, 442}, dictWord{ 7, 11, 443, }, dictWord{8, 11, 281}, dictWord{12, 11, 174}, dictWord{13, 11, 83}, dictWord{141, 11, 261}, dictWord{139, 11, 384}, dictWord{6, 11, 2}, dictWord{ 7, 11, 191, }, dictWord{7, 11, 446}, dictWord{7, 11, 758}, dictWord{7, 11, 1262}, dictWord{7, 11, 1737}, dictWord{8, 11, 22}, dictWord{8, 11, 270}, dictWord{ 8, 11, 612, }, dictWord{9, 11, 4}, dictWord{9, 11, 167}, dictWord{9, 11, 312}, dictWord{9, 11, 436}, dictWord{10, 11, 156}, dictWord{10, 11, 216}, dictWord{ 10, 11, 311, }, dictWord{10, 11, 623}, dictWord{11, 11, 72}, dictWord{11, 11, 330}, dictWord{11, 11, 455}, dictWord{12, 11, 101}, dictWord{12, 11, 321}, dictWord{ 12, 11, 504, }, dictWord{12, 11, 530}, dictWord{12, 11, 543}, dictWord{13, 11, 17}, dictWord{13, 11, 156}, dictWord{13, 11, 334}, dictWord{14, 11, 48}, dictWord{15, 11, 70}, dictWord{17, 11, 60}, dictWord{148, 11, 64}, dictWord{6, 10, 331}, dictWord{136, 10, 623}, dictWord{135, 0, 1231}, dictWord{132, 0, 304}, dictWord{6, 11, 60}, dictWord{7, 11, 670}, dictWord{7, 11, 1327}, dictWord{8, 11, 411}, dictWord{8, 11, 435}, dictWord{9, 11, 653}, dictWord{9, 11, 740}, dictWord{10, 11, 385}, dictWord{11, 11, 222}, dictWord{11, 11, 324}, dictWord{11, 11, 829}, dictWord{140, 11, 611}, dictWord{7, 0, 506}, dictWord{6, 11, 166}, dictWord{7, 11, 374}, dictWord{135, 11, 1174}, dictWord{14, 11, 43}, dictWord{146, 11, 21}, dictWord{135, 11, 1694}, dictWord{135, 10, 1888}, dictWord{ 5, 11, 206, }, dictWord{134, 11, 398}, dictWord{135, 11, 50}, dictWord{150, 0, 26}, dictWord{6, 0, 53}, dictWord{6, 0, 199}, dictWord{7, 0, 1408}, dictWord{ 8, 0, 32, }, dictWord{8, 0, 93}, dictWord{10, 0, 397}, dictWord{10, 0, 629}, dictWord{11, 0, 593}, dictWord{11, 0, 763}, dictWord{13, 0, 326}, dictWord{145, 0, 35}, dictWord{134, 0, 105}, dictWord{132, 10, 394}, dictWord{4, 0, 843}, dictWord{138, 0, 794}, dictWord{11, 0, 704}, dictWord{141, 0, 396}, dictWord{5, 0, 114}, dictWord{5, 0, 255}, dictWord{141, 0, 285}, dictWord{6, 0, 619}, dictWord{7, 0, 898}, dictWord{7, 0, 1092}, dictWord{8, 0, 485}, dictWord{18, 0, 28}, dictWord{ 19, 0, 116, }, dictWord{135, 10, 1931}, dictWord{9, 0, 145}, dictWord{7, 10, 574}, dictWord{135, 10, 1719}, dictWord{7, 0, 2035}, dictWord{8, 0, 19}, dictWord{ 9, 0, 89, }, dictWord{138, 0, 831}, dictWord{132, 10, 658}, dictWord{6, 11, 517}, dictWord{7, 11, 1159}, dictWord{10, 11, 621}, dictWord{139, 11, 192}, dictWord{ 7, 0, 1933, }, dictWord{7, 11, 1933}, dictWord{9, 10, 781}, dictWord{10, 10, 144}, dictWord{11, 10, 385}, dictWord{13, 10, 161}, dictWord{13, 10, 228}, dictWord{13, 10, 268}, dictWord{148, 10, 107}, dictWord{136, 10, 374}, dictWord{10, 11, 223}, dictWord{139, 11, 645}, dictWord{135, 0, 1728}, dictWord{ 7, 11, 64, }, dictWord{7, 11, 289}, dictWord{136, 11, 245}, dictWord{4, 10, 344}, dictWord{6, 10, 498}, dictWord{139, 10, 323}, dictWord{136, 0, 746}, dictWord{ 135, 10, 1063, }, dictWord{137, 10, 155}, dictWord{4, 0, 987}, dictWord{6, 0, 1964}, dictWord{6, 0, 1974}, dictWord{6, 0, 1990}, dictWord{136, 0, 995}, dictWord{133, 11, 609}, dictWord{133, 10, 906}, dictWord{134, 0, 1550}, dictWord{134, 0, 874}, dictWord{5, 11, 129}, dictWord{6, 11, 61}, dictWord{ 135, 11, 947, }, dictWord{4, 0, 1018}, dictWord{6, 0, 1938}, dictWord{6, 0, 2021}, dictWord{134, 0, 2039}, dictWord{132, 0, 814}, dictWord{11, 0, 126}, dictWord{ 139, 0, 287, }, dictWord{134, 0, 1264}, dictWord{5, 0, 955}, dictWord{136, 0, 814}, dictWord{141, 11, 506}, dictWord{132, 11, 314}, dictWord{6, 0, 981}, dictWord{139, 11, 1000}, dictWord{5, 0, 56}, dictWord{8, 0, 892}, dictWord{8, 0, 915}, dictWord{140, 0, 776}, dictWord{148, 0, 100}, dictWord{10, 0, 4}, dictWord{ 10, 0, 13, }, dictWord{11, 0, 638}, dictWord{148, 0, 57}, dictWord{148, 11, 74}, dictWord{5, 0, 738}, dictWord{132, 10, 616}, dictWord{133, 11, 637}, dictWord{ 136, 10, 692, }, dictWord{133, 0, 758}, dictWord{132, 10, 305}, dictWord{137, 11, 590}, dictWord{5, 11, 280}, dictWord{135, 11, 1226}, dictWord{ 134, 11, 494, }, dictWord{135, 0, 1112}, dictWord{133, 11, 281}, dictWord{13, 0, 44}, dictWord{14, 0, 214}, dictWord{5, 10, 214}, dictWord{7, 10, 603}, dictWord{ 8, 10, 611, }, dictWord{9, 10, 686}, dictWord{10, 10, 88}, dictWord{11, 10, 459}, dictWord{11, 10, 496}, dictWord{12, 10, 463}, dictWord{140, 10, 590}, dictWord{ 139, 0, 328, }, dictWord{135, 11, 1064}, dictWord{137, 0, 133}, dictWord{7, 0, 168}, dictWord{13, 0, 196}, dictWord{141, 0, 237}, dictWord{134, 10, 1703}, dictWord{134, 0, 1152}, dictWord{135, 0, 1245}, dictWord{5, 0, 110}, dictWord{6, 0, 169}, dictWord{6, 0, 1702}, dictWord{7, 0, 400}, dictWord{8, 0, 538}, dictWord{ 9, 0, 184, }, dictWord{9, 0, 524}, dictWord{140, 0, 218}, dictWord{6, 0, 1816}, dictWord{10, 0, 871}, dictWord{12, 0, 769}, dictWord{140, 0, 785}, dictWord{ 132, 11, 630, }, dictWord{7, 11, 33}, dictWord{7, 11, 120}, dictWord{8, 11, 489}, dictWord{9, 11, 319}, dictWord{10, 11, 820}, dictWord{11, 11, 1004}, dictWord{ 12, 11, 379, }, dictWord{13, 11, 117}, dictWord{13, 11, 412}, dictWord{14, 11, 25}, dictWord{15, 11, 52}, dictWord{15, 11, 161}, dictWord{16, 11, 47}, dictWord{149, 11, 2}, dictWord{6, 0, 133}, dictWord{8, 0, 413}, dictWord{9, 0, 353}, dictWord{139, 0, 993}, dictWord{145, 10, 19}, dictWord{4, 11, 937}, dictWord{ 133, 11, 801, }, dictWord{134, 0, 978}, dictWord{6, 0, 93}, dictWord{6, 0, 1508}, dictWord{7, 0, 1422}, dictWord{7, 0, 1851}, dictWord{8, 0, 673}, dictWord{9, 0, 529}, dictWord{140, 0, 43}, dictWord{6, 0, 317}, dictWord{10, 0, 512}, dictWord{4, 10, 737}, dictWord{11, 10, 294}, dictWord{12, 10, 60}, dictWord{12, 10, 437}, dictWord{13, 10, 64}, dictWord{13, 10, 380}, dictWord{142, 10, 430}, dictWord{9, 0, 371}, dictWord{7, 11, 1591}, dictWord{144, 11, 43}, dictWord{6, 10, 1758}, dictWord{8, 10, 520}, dictWord{9, 10, 345}, dictWord{9, 10, 403}, dictWord{142, 10, 350}, dictWord{5, 0, 526}, dictWord{10, 10, 242}, dictWord{ 138, 10, 579, }, dictWord{9, 0, 25}, dictWord{10, 0, 467}, dictWord{138, 0, 559}, dictWord{5, 10, 139}, dictWord{7, 10, 1168}, dictWord{138, 10, 539}, dictWord{ 4, 0, 335, }, dictWord{135, 0, 942}, dictWord{140, 0, 754}, dictWord{132, 11, 365}, dictWord{11, 0, 182}, dictWord{142, 0, 195}, dictWord{142, 11, 29}, dictWord{ 5, 11, 7, }, dictWord{139, 11, 774}, dictWord{4, 11, 746}, dictWord{135, 11, 1090}, dictWord{8, 0, 39}, dictWord{10, 0, 773}, dictWord{11, 0, 84}, dictWord{ 12, 0, 205, }, dictWord{142, 0, 1}, dictWord{5, 0, 601}, dictWord{5, 0, 870}, dictWord{5, 11, 360}, dictWord{136, 11, 237}, dictWord{132, 0, 181}, dictWord{ 136, 0, 370, }, dictWord{134, 0, 1652}, dictWord{8, 0, 358}, dictWord{4, 10, 107}, dictWord{7, 10, 613}, dictWord{8, 10, 439}, dictWord{8, 10, 504}, dictWord{ 9, 10, 501, }, dictWord{10, 10, 383}, dictWord{139, 10, 477}, dictWord{132, 10, 229}, dictWord{137, 11, 785}, dictWord{4, 0, 97}, dictWord{5, 0, 147}, dictWord{ 6, 0, 286, }, dictWord{7, 0, 1362}, dictWord{141, 0, 176}, dictWord{6, 0, 537}, dictWord{7, 0, 788}, dictWord{7, 0, 1816}, dictWord{132, 10, 903}, dictWord{ 140, 10, 71, }, dictWord{6, 0, 743}, dictWord{134, 0, 1223}, dictWord{6, 0, 375}, dictWord{7, 0, 169}, dictWord{7, 0, 254}, dictWord{8, 0, 780}, dictWord{135, 11, 1493}, dictWord{7, 0, 1714}, dictWord{4, 10, 47}, dictWord{6, 10, 373}, dictWord{7, 10, 452}, dictWord{7, 10, 543}, dictWord{7, 10, 1856}, dictWord{9, 10, 6}, dictWord{ 11, 10, 257, }, dictWord{139, 10, 391}, dictWord{6, 0, 896}, dictWord{136, 0, 1003}, dictWord{135, 0, 1447}, dictWord{137, 11, 341}, dictWord{5, 10, 980}, dictWord{134, 10, 1754}, dictWord{145, 11, 22}, dictWord{4, 11, 277}, dictWord{5, 11, 608}, dictWord{6, 11, 493}, dictWord{7, 11, 457}, dictWord{ 140, 11, 384, }, dictWord{7, 10, 536}, dictWord{7, 10, 1331}, dictWord{136, 10, 143}, dictWord{140, 0, 744}, dictWord{7, 11, 27}, dictWord{135, 11, 316}, dictWord{ 18, 0, 126, }, dictWord{5, 10, 19}, dictWord{134, 10, 533}, dictWord{4, 0, 788}, dictWord{11, 0, 41}, dictWord{5, 11, 552}, dictWord{5, 11, 586}, dictWord{ 5, 11, 676, }, dictWord{6, 11, 448}, dictWord{8, 11, 244}, dictWord{11, 11, 1}, dictWord{11, 11, 41}, dictWord{13, 11, 3}, dictWord{16, 11, 54}, dictWord{17, 11, 4}, dictWord{146, 11, 13}, dictWord{4, 0, 985}, dictWord{6, 0, 1801}, dictWord{4, 11, 401}, dictWord{137, 11, 264}, dictWord{5, 10, 395}, dictWord{5, 10, 951}, dictWord{134, 10, 1776}, dictWord{5, 0, 629}, dictWord{135, 0, 1549}, dictWord{11, 10, 663}, dictWord{12, 10, 210}, dictWord{13, 10, 166}, dictWord{ 13, 10, 310, }, dictWord{14, 10, 373}, dictWord{147, 10, 43}, dictWord{9, 11, 543}, dictWord{10, 11, 524}, dictWord{11, 11, 30}, dictWord{12, 11, 524}, dictWord{ 14, 11, 315, }, dictWord{16, 11, 18}, dictWord{20, 11, 26}, dictWord{148, 11, 65}, dictWord{4, 11, 205}, dictWord{5, 11, 623}, dictWord{7, 11, 104}, dictWord{ 136, 11, 519, }, dictWord{5, 0, 293}, dictWord{134, 0, 601}, dictWord{7, 11, 579}, dictWord{9, 11, 41}, dictWord{9, 11, 244}, dictWord{9, 11, 669}, dictWord{ 10, 11, 5, }, dictWord{11, 11, 861}, dictWord{11, 11, 951}, dictWord{139, 11, 980}, dictWord{132, 11, 717}, dictWord{132, 10, 695}, dictWord{7, 10, 497}, dictWord{ 9, 10, 387, }, dictWord{147, 10, 81}, dictWord{132, 0, 420}, dictWord{142, 0, 37}, dictWord{6, 0, 1134}, dictWord{6, 0, 1900}, dictWord{12, 0, 830}, dictWord{ 12, 0, 878, }, dictWord{12, 0, 894}, dictWord{15, 0, 221}, dictWord{143, 0, 245}, dictWord{132, 11, 489}, dictWord{7, 0, 1570}, dictWord{140, 0, 542}, dictWord{ 8, 0, 933, }, dictWord{136, 0, 957}, dictWord{6, 0, 1371}, dictWord{7, 0, 31}, dictWord{8, 0, 373}, dictWord{5, 10, 284}, dictWord{6, 10, 49}, dictWord{6, 10, 350}, dictWord{7, 10, 377}, dictWord{7, 10, 1693}, dictWord{8, 10, 678}, dictWord{9, 10, 161}, dictWord{9, 10, 585}, dictWord{9, 10, 671}, dictWord{9, 10, 839}, dictWord{11, 10, 912}, dictWord{141, 10, 427}, dictWord{135, 11, 892}, dictWord{4, 0, 325}, dictWord{138, 0, 125}, dictWord{139, 11, 47}, dictWord{ 132, 10, 597, }, dictWord{138, 0, 323}, dictWord{6, 0, 1547}, dictWord{7, 11, 1605}, dictWord{9, 11, 473}, dictWord{11, 11, 962}, dictWord{146, 11, 139}, dictWord{ 139, 10, 908, }, dictWord{7, 11, 819}, dictWord{9, 11, 26}, dictWord{9, 11, 392}, dictWord{10, 11, 152}, dictWord{10, 11, 226}, dictWord{11, 11, 19}, dictWord{ 12, 11, 276, }, dictWord{12, 11, 426}, dictWord{12, 11, 589}, dictWord{13, 11, 460}, dictWord{15, 11, 97}, dictWord{19, 11, 48}, dictWord{148, 11, 104}, dictWord{135, 11, 51}, dictWord{4, 0, 718}, dictWord{135, 0, 1216}, dictWord{6, 0, 1896}, dictWord{6, 0, 1905}, dictWord{6, 0, 1912}, dictWord{9, 0, 947}, dictWord{ 9, 0, 974, }, dictWord{12, 0, 809}, dictWord{12, 0, 850}, dictWord{12, 0, 858}, dictWord{12, 0, 874}, dictWord{12, 0, 887}, dictWord{12, 0, 904}, dictWord{ 12, 0, 929, }, dictWord{12, 0, 948}, dictWord{12, 0, 952}, dictWord{15, 0, 198}, dictWord{15, 0, 206}, dictWord{15, 0, 220}, dictWord{15, 0, 227}, dictWord{15, 0, 247}, dictWord{18, 0, 188}, dictWord{21, 0, 48}, dictWord{21, 0, 50}, dictWord{24, 0, 25}, dictWord{24, 0, 29}, dictWord{7, 11, 761}, dictWord{7, 11, 1051}, dictWord{ 137, 11, 545, }, dictWord{5, 0, 124}, dictWord{5, 0, 144}, dictWord{6, 0, 548}, dictWord{7, 0, 15}, dictWord{7, 0, 153}, dictWord{137, 0, 629}, dictWord{ 135, 11, 606, }, dictWord{135, 10, 2014}, dictWord{7, 10, 2007}, dictWord{9, 11, 46}, dictWord{9, 10, 101}, dictWord{9, 10, 450}, dictWord{10, 10, 66}, dictWord{ 10, 10, 842, }, dictWord{11, 10, 536}, dictWord{140, 10, 587}, dictWord{6, 0, 75}, dictWord{7, 0, 1531}, dictWord{8, 0, 416}, dictWord{9, 0, 240}, dictWord{9, 0, 275}, dictWord{10, 0, 100}, dictWord{11, 0, 658}, dictWord{11, 0, 979}, dictWord{12, 0, 86}, dictWord{14, 0, 207}, dictWord{15, 0, 20}, dictWord{143, 0, 25}, dictWord{ 5, 0, 141, }, dictWord{5, 0, 915}, dictWord{6, 0, 1783}, dictWord{7, 0, 211}, dictWord{7, 0, 698}, dictWord{7, 0, 1353}, dictWord{9, 0, 83}, dictWord{9, 0, 281}, dictWord{ 10, 0, 376, }, dictWord{10, 0, 431}, dictWord{11, 0, 543}, dictWord{12, 0, 664}, dictWord{13, 0, 280}, dictWord{13, 0, 428}, dictWord{14, 0, 61}, dictWord{ 14, 0, 128, }, dictWord{17, 0, 52}, dictWord{145, 0, 81}, dictWord{132, 11, 674}, dictWord{135, 0, 533}, dictWord{149, 0, 6}, dictWord{132, 11, 770}, dictWord{ 133, 0, 538, }, dictWord{5, 11, 79}, dictWord{7, 11, 1027}, dictWord{7, 11, 1477}, dictWord{139, 11, 52}, dictWord{139, 10, 62}, dictWord{4, 0, 338}, dictWord{ 133, 0, 400, }, dictWord{5, 11, 789}, dictWord{134, 11, 195}, dictWord{4, 11, 251}, dictWord{4, 11, 688}, dictWord{7, 11, 513}, dictWord{7, 11, 1284}, dictWord{ 9, 11, 87, }, dictWord{138, 11, 365}, dictWord{134, 10, 1766}, dictWord{6, 0, 0}, dictWord{7, 0, 84}, dictWord{11, 0, 895}, dictWord{145, 0, 11}, dictWord{ 139, 0, 892, }, dictWord{4, 0, 221}, dictWord{5, 0, 659}, dictWord{7, 0, 697}, dictWord{7, 0, 1211}, dictWord{138, 0, 284}, dictWord{133, 0, 989}, dictWord{ 133, 11, 889, }, dictWord{4, 11, 160}, dictWord{5, 11, 330}, dictWord{7, 11, 1434}, dictWord{136, 11, 174}, dictWord{6, 10, 1665}, dictWord{7, 10, 256}, dictWord{ 7, 10, 1388, }, dictWord{10, 10, 499}, dictWord{139, 10, 670}, dictWord{7, 0, 848}, dictWord{4, 10, 22}, dictWord{5, 10, 10}, dictWord{136, 10, 97}, dictWord{ 138, 0, 507, }, dictWord{133, 10, 481}, dictWord{4, 0, 188}, dictWord{135, 0, 805}, dictWord{5, 0, 884}, dictWord{6, 0, 732}, dictWord{139, 0, 991}, dictWord{ 135, 11, 968, }, dictWord{11, 11, 636}, dictWord{15, 11, 145}, dictWord{17, 11, 34}, dictWord{19, 11, 50}, dictWord{151, 11, 20}, dictWord{7, 0, 959}, dictWord{ 16, 0, 60, }, dictWord{6, 10, 134}, dictWord{7, 10, 437}, dictWord{9, 10, 37}, dictWord{14, 10, 285}, dictWord{142, 10, 371}, dictWord{7, 10, 486}, dictWord{ 8, 10, 155, }, dictWord{11, 10, 93}, dictWord{140, 10, 164}, dictWord{134, 0, 1653}, dictWord{7, 0, 337}, dictWord{133, 10, 591}, dictWord{6, 0, 1989}, dictWord{ 8, 0, 922, }, dictWord{8, 0, 978}, dictWord{133, 11, 374}, dictWord{132, 0, 638}, dictWord{138, 0, 500}, dictWord{133, 11, 731}, dictWord{5, 10, 380}, dictWord{ 5, 10, 650, }, dictWord{136, 10, 310}, dictWord{138, 11, 381}, dictWord{4, 10, 364}, dictWord{7, 10, 1156}, dictWord{7, 10, 1187}, dictWord{137, 10, 409}, dictWord{137, 11, 224}, dictWord{140, 0, 166}, dictWord{134, 10, 482}, dictWord{4, 11, 626}, dictWord{5, 11, 642}, dictWord{6, 11, 425}, dictWord{ 10, 11, 202, }, dictWord{139, 11, 141}, dictWord{4, 10, 781}, dictWord{6, 10, 487}, dictWord{7, 10, 926}, dictWord{8, 10, 263}, dictWord{139, 10, 500}, dictWord{ 135, 0, 418, }, dictWord{4, 10, 94}, dictWord{135, 10, 1265}, dictWord{136, 0, 760}, dictWord{132, 10, 417}, dictWord{136, 11, 835}, dictWord{5, 10, 348}, dictWord{134, 10, 522}, dictWord{6, 0, 1277}, dictWord{134, 0, 1538}, dictWord{139, 11, 541}, dictWord{135, 11, 1597}, dictWord{5, 11, 384}, dictWord{ 8, 11, 455, }, dictWord{140, 11, 48}, dictWord{136, 0, 770}, dictWord{5, 11, 264}, dictWord{134, 11, 184}, dictWord{4, 0, 89}, dictWord{5, 0, 489}, dictWord{ 6, 0, 315, }, dictWord{7, 0, 553}, dictWord{7, 0, 1745}, dictWord{138, 0, 243}, dictWord{4, 10, 408}, dictWord{4, 10, 741}, dictWord{135, 10, 500}, dictWord{ 134, 0, 1396, }, dictWord{133, 0, 560}, dictWord{6, 0, 1658}, dictWord{9, 0, 3}, dictWord{10, 0, 154}, dictWord{11, 0, 641}, dictWord{13, 0, 85}, dictWord{13, 0, 201}, dictWord{141, 0, 346}, dictWord{135, 11, 1595}, dictWord{5, 11, 633}, dictWord{6, 11, 28}, dictWord{7, 11, 219}, dictWord{135, 11, 1323}, dictWord{ 9, 11, 769, }, dictWord{140, 11, 185}, dictWord{135, 11, 785}, dictWord{7, 11, 359}, dictWord{8, 11, 243}, dictWord{140, 11, 175}, dictWord{138, 0, 586}, dictWord{ 7, 0, 1271, }, dictWord{134, 10, 73}, dictWord{132, 11, 105}, dictWord{4, 0, 166}, dictWord{5, 0, 505}, dictWord{134, 0, 1670}, dictWord{133, 10, 576}, dictWord{4, 11, 324}, dictWord{138, 11, 104}, dictWord{142, 10, 231}, dictWord{6, 0, 637}, dictWord{7, 10, 1264}, dictWord{7, 10, 1678}, dictWord{ 11, 10, 945, }, dictWord{12, 10, 341}, dictWord{12, 10, 471}, dictWord{12, 10, 569}, dictWord{23, 11, 21}, dictWord{151, 11, 23}, dictWord{8, 11, 559}, dictWord{ 141, 11, 109, }, dictWord{134, 0, 1947}, dictWord{7, 0, 445}, dictWord{8, 0, 307}, dictWord{8, 0, 704}, dictWord{10, 0, 41}, dictWord{10, 0, 439}, dictWord{ 11, 0, 237, }, dictWord{11, 0, 622}, dictWord{140, 0, 201}, dictWord{135, 11, 963}, dictWord{135, 0, 1977}, dictWord{4, 0, 189}, dictWord{5, 0, 713}, dictWord{ 136, 0, 57, }, dictWord{138, 0, 371}, dictWord{135, 10, 538}, dictWord{132, 0, 552}, dictWord{6, 0, 883}, dictWord{133, 10, 413}, dictWord{6, 0, 923}, dictWord{ 132, 11, 758, }, dictWord{138, 11, 215}, dictWord{136, 10, 495}, dictWord{7, 10, 54}, dictWord{8, 10, 312}, dictWord{10, 10, 191}, dictWord{10, 10, 614}, dictWord{140, 10, 567}, dictWord{7, 11, 351}, dictWord{139, 11, 128}, dictWord{7, 0, 875}, dictWord{6, 10, 468}, dictWord{7, 10, 1478}, dictWord{8, 10, 530}, dictWord{142, 10, 290}, dictWord{135, 0, 1788}, dictWord{17, 0, 49}, dictWord{133, 11, 918}, dictWord{12, 11, 398}, dictWord{20, 11, 39}, dictWord{ 21, 11, 11, }, dictWord{150, 11, 41}, dictWord{10, 0, 661}, dictWord{6, 10, 484}, dictWord{135, 10, 822}, dictWord{135, 0, 1945}, dictWord{134, 0, 794}, dictWord{ 137, 10, 900, }, dictWord{135, 10, 1335}, dictWord{6, 10, 1724}, dictWord{135, 10, 2022}, dictWord{132, 11, 340}, dictWord{134, 0, 1135}, dictWord{ 4, 0, 784, }, dictWord{133, 0, 745}, dictWord{5, 0, 84}, dictWord{134, 0, 163}, dictWord{133, 0, 410}, dictWord{4, 0, 976}, dictWord{5, 11, 985}, dictWord{7, 11, 509}, dictWord{7, 11, 529}, dictWord{145, 11, 96}, dictWord{132, 10, 474}, dictWord{134, 0, 703}, dictWord{135, 11, 1919}, dictWord{5, 0, 322}, dictWord{ 8, 0, 186, }, dictWord{9, 0, 262}, dictWord{10, 0, 187}, dictWord{142, 0, 208}, dictWord{135, 10, 1504}, dictWord{133, 0, 227}, dictWord{9, 0, 560}, dictWord{ 13, 0, 208, }, dictWord{133, 10, 305}, dictWord{132, 11, 247}, dictWord{7, 0, 1395}, dictWord{8, 0, 486}, dictWord{9, 0, 236}, dictWord{9, 0, 878}, dictWord{ 10, 0, 218, }, dictWord{11, 0, 95}, dictWord{19, 0, 17}, dictWord{147, 0, 31}, dictWord{7, 0, 2043}, dictWord{8, 0, 672}, dictWord{141, 0, 448}, dictWord{4, 11, 184}, dictWord{5, 11, 390}, dictWord{6, 11, 337}, dictWord{7, 11, 23}, dictWord{7, 11, 494}, dictWord{7, 11, 618}, dictWord{7, 11, 1456}, dictWord{8, 11, 27}, dictWord{ 8, 11, 599, }, dictWord{10, 11, 153}, dictWord{139, 11, 710}, dictWord{135, 0, 466}, dictWord{135, 10, 1236}, dictWord{6, 0, 167}, dictWord{7, 0, 186}, dictWord{7, 0, 656}, dictWord{10, 0, 643}, dictWord{4, 10, 480}, dictWord{6, 10, 302}, dictWord{6, 10, 1642}, dictWord{7, 10, 837}, dictWord{7, 10, 1547}, dictWord{ 7, 10, 1657, }, dictWord{8, 10, 429}, dictWord{9, 10, 228}, dictWord{13, 10, 289}, dictWord{13, 10, 343}, dictWord{147, 10, 101}, dictWord{134, 0, 1428}, dictWord{134, 0, 1440}, dictWord{5, 0, 412}, dictWord{7, 10, 278}, dictWord{10, 10, 739}, dictWord{11, 10, 708}, dictWord{141, 10, 348}, dictWord{ 134, 0, 1118, }, dictWord{136, 0, 562}, dictWord{148, 11, 46}, dictWord{9, 0, 316}, dictWord{139, 0, 256}, dictWord{134, 0, 1771}, dictWord{135, 0, 1190}, dictWord{137, 0, 132}, dictWord{10, 11, 227}, dictWord{11, 11, 497}, dictWord{11, 11, 709}, dictWord{140, 11, 415}, dictWord{143, 0, 66}, dictWord{6, 11, 360}, dictWord{7, 11, 1664}, dictWord{136, 11, 478}, dictWord{144, 10, 28}, dictWord{4, 0, 317}, dictWord{135, 0, 1279}, dictWord{5, 0, 63}, dictWord{ 133, 0, 509, }, dictWord{136, 11, 699}, dictWord{145, 10, 36}, dictWord{134, 0, 1475}, dictWord{11, 11, 343}, dictWord{142, 11, 127}, dictWord{132, 11, 739}, dictWord{132, 0, 288}, dictWord{135, 11, 1757}, dictWord{8, 0, 89}, dictWord{8, 0, 620}, dictWord{9, 0, 608}, dictWord{11, 0, 628}, dictWord{12, 0, 322}, dictWord{143, 0, 124}, dictWord{134, 0, 1225}, dictWord{7, 0, 1189}, dictWord{4, 11, 67}, dictWord{5, 11, 422}, dictWord{6, 10, 363}, dictWord{7, 11, 1037}, dictWord{7, 11, 1289}, dictWord{7, 11, 1555}, dictWord{7, 10, 1955}, dictWord{8, 10, 725}, dictWord{9, 11, 741}, dictWord{145, 11, 108}, dictWord{ 134, 0, 1468, }, dictWord{6, 0, 689}, dictWord{134, 0, 1451}, dictWord{138, 0, 120}, dictWord{151, 0, 1}, dictWord{137, 10, 805}, dictWord{142, 0, 329}, dictWord{ 5, 10, 813, }, dictWord{135, 10, 2046}, dictWord{135, 0, 226}, dictWord{138, 11, 96}, dictWord{7, 0, 1855}, dictWord{5, 10, 712}, dictWord{11, 10, 17}, dictWord{13, 10, 321}, dictWord{144, 10, 67}, dictWord{9, 0, 461}, dictWord{6, 10, 320}, dictWord{7, 10, 781}, dictWord{7, 10, 1921}, dictWord{9, 10, 55}, dictWord{ 10, 10, 186, }, dictWord{10, 10, 273}, dictWord{10, 10, 664}, dictWord{10, 10, 801}, dictWord{11, 10, 996}, dictWord{11, 10, 997}, dictWord{13, 10, 157}, dictWord{142, 10, 170}, dictWord{8, 11, 203}, dictWord{8, 10, 271}, dictWord{11, 11, 823}, dictWord{11, 11, 846}, dictWord{12, 11, 482}, dictWord{ 13, 11, 133, }, dictWord{13, 11, 277}, dictWord{13, 11, 302}, dictWord{13, 11, 464}, dictWord{14, 11, 205}, dictWord{142, 11, 221}, dictWord{135, 0, 1346}, dictWord{4, 11, 449}, dictWord{133, 11, 718}, dictWord{134, 0, 85}, dictWord{14, 0, 299}, dictWord{7, 10, 103}, dictWord{7, 10, 863}, dictWord{11, 10, 184}, dictWord{145, 10, 62}, dictWord{4, 11, 355}, dictWord{6, 11, 311}, dictWord{9, 11, 256}, dictWord{138, 11, 404}, dictWord{137, 10, 659}, dictWord{ 138, 11, 758, }, dictWord{133, 11, 827}, dictWord{5, 11, 64}, dictWord{140, 11, 581}, dictWord{134, 0, 1171}, dictWord{4, 11, 442}, dictWord{7, 11, 1047}, dictWord{ 7, 11, 1352, }, dictWord{135, 11, 1643}, dictWord{132, 0, 980}, dictWord{5, 11, 977}, dictWord{6, 11, 288}, dictWord{7, 11, 528}, dictWord{135, 11, 1065}, dictWord{5, 0, 279}, dictWord{6, 0, 235}, dictWord{7, 0, 468}, dictWord{8, 0, 446}, dictWord{9, 0, 637}, dictWord{10, 0, 717}, dictWord{11, 0, 738}, dictWord{ 140, 0, 514, }, dictWord{132, 0, 293}, dictWord{11, 10, 337}, dictWord{142, 10, 303}, dictWord{136, 11, 285}, dictWord{5, 0, 17}, dictWord{6, 0, 371}, dictWord{ 9, 0, 528, }, dictWord{12, 0, 364}, dictWord{132, 11, 254}, dictWord{5, 10, 77}, dictWord{7, 10, 1455}, dictWord{10, 10, 843}, dictWord{147, 10, 73}, dictWord{ 150, 0, 5, }, dictWord{132, 10, 458}, dictWord{6, 11, 12}, dictWord{7, 11, 1219}, dictWord{145, 11, 73}, dictWord{135, 10, 1420}, dictWord{6, 10, 109}, dictWord{138, 10, 382}, dictWord{135, 11, 125}, dictWord{6, 10, 330}, dictWord{7, 10, 1084}, dictWord{139, 10, 142}, dictWord{6, 11, 369}, dictWord{ 6, 11, 502, }, dictWord{7, 11, 1036}, dictWord{8, 11, 348}, dictWord{9, 11, 452}, dictWord{10, 11, 26}, dictWord{11, 11, 224}, dictWord{11, 11, 387}, dictWord{ 11, 11, 772, }, dictWord{12, 11, 95}, dictWord{12, 11, 629}, dictWord{13, 11, 195}, dictWord{13, 11, 207}, dictWord{13, 11, 241}, dictWord{14, 11, 260}, dictWord{ 14, 11, 270, }, dictWord{143, 11, 140}, dictWord{132, 11, 269}, dictWord{5, 11, 480}, dictWord{7, 11, 532}, dictWord{7, 11, 1197}, dictWord{7, 11, 1358}, dictWord{8, 11, 291}, dictWord{11, 11, 349}, dictWord{142, 11, 396}, dictWord{150, 0, 48}, dictWord{10, 0, 601}, dictWord{13, 0, 353}, dictWord{141, 0, 376}, dictWord{5, 0, 779}, dictWord{5, 0, 807}, dictWord{6, 0, 1655}, dictWord{134, 0, 1676}, dictWord{142, 11, 223}, dictWord{4, 0, 196}, dictWord{5, 0, 558}, dictWord{133, 0, 949}, dictWord{148, 11, 15}, dictWord{135, 11, 1764}, dictWord{134, 0, 1322}, dictWord{132, 0, 752}, dictWord{139, 0, 737}, dictWord{ 135, 11, 657, }, dictWord{136, 11, 533}, dictWord{135, 0, 412}, dictWord{4, 0, 227}, dictWord{5, 0, 159}, dictWord{5, 0, 409}, dictWord{7, 0, 80}, dictWord{8, 0, 556}, dictWord{10, 0, 479}, dictWord{12, 0, 418}, dictWord{14, 0, 50}, dictWord{14, 0, 123}, dictWord{14, 0, 192}, dictWord{14, 0, 249}, dictWord{14, 0, 295}, dictWord{143, 0, 27}, dictWord{7, 0, 1470}, dictWord{8, 0, 66}, dictWord{8, 0, 137}, dictWord{8, 0, 761}, dictWord{9, 0, 638}, dictWord{11, 0, 80}, dictWord{11, 0, 212}, dictWord{11, 0, 368}, dictWord{11, 0, 418}, dictWord{12, 0, 8}, dictWord{13, 0, 15}, dictWord{16, 0, 61}, dictWord{17, 0, 59}, dictWord{19, 0, 28}, dictWord{ 148, 0, 84, }, dictWord{135, 10, 1985}, dictWord{4, 11, 211}, dictWord{4, 11, 332}, dictWord{5, 11, 335}, dictWord{6, 11, 238}, dictWord{7, 11, 269}, dictWord{ 7, 11, 811, }, dictWord{7, 11, 1797}, dictWord{8, 10, 122}, dictWord{8, 11, 836}, dictWord{9, 11, 507}, dictWord{141, 11, 242}, dictWord{6, 0, 683}, dictWord{ 134, 0, 1252, }, dictWord{4, 0, 873}, dictWord{132, 10, 234}, dictWord{134, 0, 835}, dictWord{6, 0, 38}, dictWord{7, 0, 1220}, dictWord{8, 0, 185}, dictWord{8, 0, 256}, dictWord{9, 0, 22}, dictWord{9, 0, 331}, dictWord{10, 0, 738}, dictWord{11, 0, 205}, dictWord{11, 0, 540}, dictWord{11, 0, 746}, dictWord{13, 0, 465}, dictWord{ 14, 0, 88, }, dictWord{142, 0, 194}, dictWord{138, 0, 986}, dictWord{5, 11, 1009}, dictWord{12, 11, 582}, dictWord{146, 11, 131}, dictWord{4, 0, 159}, dictWord{ 6, 0, 115, }, dictWord{7, 0, 252}, dictWord{7, 0, 257}, dictWord{7, 0, 1928}, dictWord{8, 0, 69}, dictWord{9, 0, 384}, dictWord{10, 0, 91}, dictWord{10, 0, 615}, dictWord{ 12, 0, 375, }, dictWord{14, 0, 235}, dictWord{18, 0, 117}, dictWord{147, 0, 123}, dictWord{133, 0, 911}, dictWord{136, 0, 278}, dictWord{5, 10, 430}, dictWord{ 5, 10, 932, }, dictWord{6, 10, 131}, dictWord{7, 10, 417}, dictWord{9, 10, 522}, dictWord{11, 10, 314}, dictWord{141, 10, 390}, dictWord{14, 10, 149}, dictWord{14, 10, 399}, dictWord{143, 10, 57}, dictWord{4, 0, 151}, dictWord{7, 0, 1567}, dictWord{136, 0, 749}, dictWord{5, 11, 228}, dictWord{6, 11, 203}, dictWord{ 7, 11, 156, }, dictWord{8, 11, 347}, dictWord{137, 11, 265}, dictWord{132, 10, 507}, dictWord{10, 0, 989}, dictWord{140, 0, 956}, dictWord{133, 0, 990}, dictWord{5, 0, 194}, dictWord{6, 0, 927}, dictWord{7, 0, 1662}, dictWord{9, 0, 90}, dictWord{140, 0, 564}, dictWord{4, 10, 343}, dictWord{133, 10, 511}, dictWord{133, 0, 425}, dictWord{7, 10, 455}, dictWord{138, 10, 591}, dictWord{4, 0, 774}, dictWord{7, 11, 476}, dictWord{7, 11, 1592}, dictWord{138, 11, 87}, dictWord{5, 0, 971}, dictWord{135, 10, 1381}, dictWord{5, 11, 318}, dictWord{147, 11, 121}, dictWord{5, 11, 291}, dictWord{7, 11, 765}, dictWord{9, 11, 389}, dictWord{140, 11, 548}, dictWord{134, 10, 575}, dictWord{4, 0, 827}, dictWord{12, 0, 646}, dictWord{12, 0, 705}, dictWord{12, 0, 712}, dictWord{140, 0, 714}, dictWord{139, 0, 752}, dictWord{137, 0, 662}, dictWord{5, 0, 72}, dictWord{6, 0, 264}, dictWord{7, 0, 21}, dictWord{7, 0, 46}, dictWord{7, 0, 2013}, dictWord{ 8, 0, 215, }, dictWord{8, 0, 513}, dictWord{10, 0, 266}, dictWord{139, 0, 22}, dictWord{139, 11, 522}, dictWord{6, 0, 239}, dictWord{7, 0, 118}, dictWord{10, 0, 95}, dictWord{11, 0, 603}, dictWord{13, 0, 443}, dictWord{14, 0, 160}, dictWord{143, 0, 4}, dictWord{6, 0, 431}, dictWord{134, 0, 669}, dictWord{7, 10, 1127}, dictWord{ 7, 10, 1572, }, dictWord{10, 10, 297}, dictWord{10, 10, 422}, dictWord{11, 10, 764}, dictWord{11, 10, 810}, dictWord{12, 10, 264}, dictWord{13, 10, 102}, dictWord{13, 10, 300}, dictWord{13, 10, 484}, dictWord{14, 10, 147}, dictWord{14, 10, 229}, dictWord{17, 10, 71}, dictWord{18, 10, 118}, dictWord{ 147, 10, 120, }, dictWord{5, 0, 874}, dictWord{6, 0, 1677}, dictWord{15, 0, 0}, dictWord{10, 11, 525}, dictWord{139, 11, 82}, dictWord{6, 0, 65}, dictWord{7, 0, 939}, dictWord{ 7, 0, 1172, }, dictWord{7, 0, 1671}, dictWord{9, 0, 540}, dictWord{10, 0, 696}, dictWord{11, 0, 265}, dictWord{11, 0, 732}, dictWord{11, 0, 928}, dictWord{ 11, 0, 937, }, dictWord{141, 0, 438}, dictWord{134, 0, 1350}, dictWord{136, 11, 547}, dictWord{132, 11, 422}, dictWord{5, 11, 355}, dictWord{145, 11, 0}, dictWord{137, 11, 905}, dictWord{5, 0, 682}, dictWord{135, 0, 1887}, dictWord{132, 0, 809}, dictWord{4, 0, 696}, dictWord{133, 11, 865}, dictWord{6, 0, 1074}, dictWord{6, 0, 1472}, dictWord{14, 10, 35}, dictWord{142, 10, 191}, dictWord{5, 11, 914}, dictWord{134, 11, 1625}, dictWord{133, 11, 234}, dictWord{ 135, 11, 1383, }, dictWord{137, 11, 780}, dictWord{132, 10, 125}, dictWord{4, 0, 726}, dictWord{133, 0, 630}, dictWord{8, 0, 802}, dictWord{136, 0, 838}, dictWord{132, 10, 721}, dictWord{6, 0, 1337}, dictWord{7, 0, 776}, dictWord{19, 0, 56}, dictWord{136, 10, 145}, dictWord{132, 0, 970}, dictWord{7, 10, 792}, dictWord{8, 10, 147}, dictWord{10, 10, 821}, dictWord{139, 10, 1021}, dictWord{139, 10, 970}, dictWord{8, 0, 940}, dictWord{137, 0, 797}, dictWord{ 135, 11, 1312, }, dictWord{9, 0, 248}, dictWord{10, 0, 400}, dictWord{7, 11, 816}, dictWord{7, 11, 1241}, dictWord{7, 10, 1999}, dictWord{9, 11, 283}, dictWord{ 9, 11, 520, }, dictWord{10, 11, 213}, dictWord{10, 11, 307}, dictWord{10, 11, 463}, dictWord{10, 11, 671}, dictWord{10, 11, 746}, dictWord{11, 11, 401}, dictWord{ 11, 11, 794, }, dictWord{12, 11, 517}, dictWord{18, 11, 107}, dictWord{147, 11, 115}, dictWord{6, 0, 1951}, dictWord{134, 0, 2040}, dictWord{ 135, 11, 339, }, dictWord{13, 0, 41}, dictWord{15, 0, 93}, dictWord{5, 10, 168}, dictWord{5, 10, 930}, dictWord{8, 10, 74}, dictWord{9, 10, 623}, dictWord{12, 10, 500}, dictWord{140, 10, 579}, dictWord{6, 0, 118}, dictWord{7, 0, 215}, dictWord{7, 0, 1521}, dictWord{140, 0, 11}, dictWord{6, 10, 220}, dictWord{7, 10, 1101}, dictWord{141, 10, 105}, dictWord{6, 11, 421}, dictWord{7, 11, 61}, dictWord{7, 11, 1540}, dictWord{10, 11, 11}, dictWord{138, 11, 501}, dictWord{7, 0, 615}, dictWord{138, 0, 251}, dictWord{140, 11, 631}, dictWord{135, 0, 1044}, dictWord{6, 10, 19}, dictWord{7, 10, 1413}, dictWord{139, 10, 428}, dictWord{ 133, 0, 225, }, dictWord{7, 10, 96}, dictWord{8, 10, 401}, dictWord{8, 10, 703}, dictWord{137, 10, 896}, dictWord{145, 10, 116}, dictWord{6, 11, 102}, dictWord{ 7, 11, 72, }, dictWord{15, 11, 142}, dictWord{147, 11, 67}, dictWord{7, 10, 1961}, dictWord{7, 10, 1965}, dictWord{8, 10, 702}, dictWord{136, 10, 750}, dictWord{ 7, 10, 2030, }, dictWord{8, 10, 150}, dictWord{8, 10, 737}, dictWord{12, 10, 366}, dictWord{151, 11, 30}, dictWord{4, 0, 370}, dictWord{5, 0, 756}, dictWord{ 7, 0, 1326, }, dictWord{135, 11, 823}, dictWord{8, 10, 800}, dictWord{9, 10, 148}, dictWord{9, 10, 872}, dictWord{9, 10, 890}, dictWord{11, 10, 309}, dictWord{ 11, 10, 1001, }, dictWord{13, 10, 267}, dictWord{141, 10, 323}, dictWord{6, 0, 1662}, dictWord{7, 0, 48}, dictWord{8, 0, 771}, dictWord{10, 0, 116}, dictWord{ 13, 0, 104, }, dictWord{14, 0, 105}, dictWord{14, 0, 184}, dictWord{15, 0, 168}, dictWord{19, 0, 92}, dictWord{148, 0, 68}, dictWord{10, 0, 209}, dictWord{ 135, 11, 1870, }, dictWord{7, 11, 68}, dictWord{8, 11, 48}, dictWord{8, 11, 88}, dictWord{8, 11, 582}, dictWord{8, 11, 681}, dictWord{9, 11, 373}, dictWord{9, 11, 864}, dictWord{11, 11, 157}, dictWord{11, 11, 336}, dictWord{11, 11, 843}, dictWord{148, 11, 27}, dictWord{134, 0, 930}, dictWord{4, 11, 88}, dictWord{5, 11, 137}, dictWord{5, 11, 174}, dictWord{5, 11, 777}, dictWord{6, 11, 1664}, dictWord{6, 11, 1725}, dictWord{7, 11, 77}, dictWord{7, 11, 426}, dictWord{7, 11, 1317}, dictWord{7, 11, 1355}, dictWord{8, 11, 126}, dictWord{8, 11, 563}, dictWord{9, 11, 523}, dictWord{9, 11, 750}, dictWord{10, 11, 310}, dictWord{10, 11, 836}, dictWord{11, 11, 42}, dictWord{11, 11, 318}, dictWord{11, 11, 731}, dictWord{12, 11, 68}, dictWord{12, 11, 92}, dictWord{12, 11, 507}, dictWord{12, 11, 692}, dictWord{13, 11, 81}, dictWord{13, 11, 238}, dictWord{13, 11, 374}, dictWord{18, 11, 138}, dictWord{19, 11, 78}, dictWord{19, 11, 111}, dictWord{20, 11, 55}, dictWord{20, 11, 77}, dictWord{148, 11, 92}, dictWord{4, 11, 938}, dictWord{135, 11, 1831}, dictWord{5, 10, 547}, dictWord{7, 10, 424}, dictWord{ 8, 11, 617, }, dictWord{138, 11, 351}, dictWord{6, 0, 1286}, dictWord{6, 11, 1668}, dictWord{7, 11, 1499}, dictWord{8, 11, 117}, dictWord{9, 11, 314}, dictWord{ 138, 11, 174, }, dictWord{6, 0, 759}, dictWord{6, 0, 894}, dictWord{7, 11, 707}, dictWord{139, 11, 563}, dictWord{4, 0, 120}, dictWord{135, 0, 1894}, dictWord{ 9, 0, 385, }, dictWord{149, 0, 17}, dictWord{138, 0, 429}, dictWord{133, 11, 403}, dictWord{5, 0, 820}, dictWord{135, 0, 931}, dictWord{10, 0, 199}, dictWord{ 133, 10, 133, }, dictWord{6, 0, 151}, dictWord{6, 0, 1675}, dictWord{7, 0, 383}, dictWord{151, 0, 10}, dictWord{6, 0, 761}, dictWord{136, 10, 187}, dictWord{ 8, 0, 365, }, dictWord{10, 10, 0}, dictWord{10, 10, 818}, dictWord{139, 10, 988}, dictWord{4, 11, 44}, dictWord{5, 11, 311}, dictWord{6, 11, 156}, dictWord{ 7, 11, 639, }, dictWord{7, 11, 762}, dictWord{7, 11, 1827}, dictWord{9, 11, 8}, dictWord{9, 11, 462}, dictWord{148, 11, 83}, dictWord{4, 11, 346}, dictWord{7, 11, 115}, dictWord{9, 11, 180}, dictWord{9, 11, 456}, dictWord{138, 11, 363}, dictWord{136, 10, 685}, dictWord{7, 0, 1086}, dictWord{145, 0, 46}, dictWord{ 6, 0, 1624, }, dictWord{11, 0, 11}, dictWord{12, 0, 422}, dictWord{13, 0, 444}, dictWord{142, 0, 360}, dictWord{6, 0, 1020}, dictWord{6, 0, 1260}, dictWord{ 134, 0, 1589, }, dictWord{4, 0, 43}, dictWord{5, 0, 344}, dictWord{5, 0, 357}, dictWord{14, 0, 472}, dictWord{150, 0, 58}, dictWord{6, 0, 1864}, dictWord{6, 0, 1866}, dictWord{6, 0, 1868}, dictWord{6, 0, 1869}, dictWord{6, 0, 1874}, dictWord{6, 0, 1877}, dictWord{6, 0, 1903}, dictWord{6, 0, 1911}, dictWord{9, 0, 920}, dictWord{ 9, 0, 921, }, dictWord{9, 0, 924}, dictWord{9, 0, 946}, dictWord{9, 0, 959}, dictWord{9, 0, 963}, dictWord{9, 0, 970}, dictWord{9, 0, 997}, dictWord{9, 0, 1008}, dictWord{ 9, 0, 1017, }, dictWord{12, 0, 795}, dictWord{12, 0, 797}, dictWord{12, 0, 798}, dictWord{12, 0, 800}, dictWord{12, 0, 803}, dictWord{12, 0, 811}, dictWord{ 12, 0, 820, }, dictWord{12, 0, 821}, dictWord{12, 0, 839}, dictWord{12, 0, 841}, dictWord{12, 0, 848}, dictWord{12, 0, 911}, dictWord{12, 0, 921}, dictWord{12, 0, 922}, dictWord{12, 0, 925}, dictWord{12, 0, 937}, dictWord{12, 0, 944}, dictWord{12, 0, 945}, dictWord{12, 0, 953}, dictWord{15, 0, 184}, dictWord{15, 0, 191}, dictWord{15, 0, 199}, dictWord{15, 0, 237}, dictWord{15, 0, 240}, dictWord{15, 0, 243}, dictWord{15, 0, 246}, dictWord{18, 0, 203}, dictWord{21, 0, 40}, dictWord{ 21, 0, 52, }, dictWord{21, 0, 57}, dictWord{24, 0, 23}, dictWord{24, 0, 28}, dictWord{152, 0, 30}, dictWord{134, 0, 725}, dictWord{145, 11, 58}, dictWord{133, 0, 888}, dictWord{137, 10, 874}, dictWord{4, 0, 711}, dictWord{8, 10, 774}, dictWord{10, 10, 670}, dictWord{140, 10, 51}, dictWord{144, 11, 40}, dictWord{ 6, 11, 185, }, dictWord{7, 11, 1899}, dictWord{139, 11, 673}, dictWord{137, 10, 701}, dictWord{137, 0, 440}, dictWord{4, 11, 327}, dictWord{5, 11, 478}, dictWord{ 7, 11, 1332, }, dictWord{8, 11, 753}, dictWord{140, 11, 227}, dictWord{4, 10, 127}, dictWord{5, 10, 350}, dictWord{6, 10, 356}, dictWord{8, 10, 426}, dictWord{ 9, 10, 572, }, dictWord{10, 10, 247}, dictWord{139, 10, 312}, dictWord{5, 11, 1020}, dictWord{133, 11, 1022}, dictWord{4, 11, 103}, dictWord{ 133, 11, 401, }, dictWord{6, 0, 1913}, dictWord{6, 0, 1926}, dictWord{6, 0, 1959}, dictWord{9, 0, 914}, dictWord{9, 0, 939}, dictWord{9, 0, 952}, dictWord{9, 0, 979}, dictWord{ 9, 0, 990, }, dictWord{9, 0, 998}, dictWord{9, 0, 1003}, dictWord{9, 0, 1023}, dictWord{12, 0, 827}, dictWord{12, 0, 834}, dictWord{12, 0, 845}, dictWord{ 12, 0, 912, }, dictWord{12, 0, 935}, dictWord{12, 0, 951}, dictWord{15, 0, 172}, dictWord{15, 0, 174}, dictWord{18, 0, 198}, dictWord{149, 0, 63}, dictWord{5, 0, 958}, dictWord{5, 0, 987}, dictWord{4, 11, 499}, dictWord{135, 11, 1421}, dictWord{7, 0, 885}, dictWord{6, 10, 59}, dictWord{6, 10, 1762}, dictWord{9, 10, 603}, dictWord{141, 10, 397}, dictWord{10, 11, 62}, dictWord{141, 11, 164}, dictWord{4, 0, 847}, dictWord{135, 0, 326}, dictWord{11, 0, 276}, dictWord{142, 0, 293}, dictWord{4, 0, 65}, dictWord{5, 0, 479}, dictWord{5, 0, 1004}, dictWord{7, 0, 1913}, dictWord{8, 0, 317}, dictWord{9, 0, 302}, dictWord{10, 0, 612}, dictWord{ 13, 0, 22, }, dictWord{132, 11, 96}, dictWord{4, 0, 261}, dictWord{135, 0, 510}, dictWord{135, 0, 1514}, dictWord{6, 10, 111}, dictWord{7, 10, 4}, dictWord{8, 10, 163}, dictWord{8, 10, 776}, dictWord{138, 10, 566}, dictWord{4, 0, 291}, dictWord{9, 0, 515}, dictWord{12, 0, 152}, dictWord{12, 0, 443}, dictWord{13, 0, 392}, dictWord{142, 0, 357}, dictWord{7, 11, 399}, dictWord{135, 11, 1492}, dictWord{4, 0, 589}, dictWord{139, 0, 282}, dictWord{6, 11, 563}, dictWord{ 135, 10, 1994, }, dictWord{5, 10, 297}, dictWord{135, 10, 1038}, dictWord{4, 0, 130}, dictWord{7, 0, 843}, dictWord{135, 0, 1562}, dictWord{5, 0, 42}, dictWord{ 5, 0, 879, }, dictWord{7, 0, 245}, dictWord{7, 0, 324}, dictWord{7, 0, 1532}, dictWord{11, 0, 463}, dictWord{11, 0, 472}, dictWord{13, 0, 363}, dictWord{144, 0, 52}, dictWord{4, 0, 134}, dictWord{133, 0, 372}, dictWord{133, 0, 680}, dictWord{136, 10, 363}, dictWord{6, 0, 1997}, dictWord{8, 0, 935}, dictWord{136, 0, 977}, dictWord{4, 0, 810}, dictWord{135, 0, 1634}, dictWord{135, 10, 1675}, dictWord{7, 0, 1390}, dictWord{4, 11, 910}, dictWord{133, 11, 832}, dictWord{ 7, 10, 808, }, dictWord{8, 11, 266}, dictWord{139, 11, 578}, dictWord{132, 0, 644}, dictWord{4, 0, 982}, dictWord{138, 0, 867}, dictWord{132, 10, 280}, dictWord{ 135, 0, 540, }, dictWord{140, 10, 54}, dictWord{135, 0, 123}, dictWord{134, 0, 1978}, dictWord{4, 10, 421}, dictWord{133, 10, 548}, dictWord{6, 0, 623}, dictWord{136, 0, 789}, dictWord{4, 0, 908}, dictWord{5, 0, 359}, dictWord{5, 0, 508}, dictWord{6, 0, 1723}, dictWord{7, 0, 343}, dictWord{7, 0, 1996}, dictWord{ 135, 0, 2026, }, dictWord{134, 0, 1220}, dictWord{4, 0, 341}, dictWord{135, 0, 480}, dictWord{6, 10, 254}, dictWord{9, 10, 109}, dictWord{138, 10, 103}, dictWord{ 134, 0, 888, }, dictWord{8, 11, 528}, dictWord{137, 11, 348}, dictWord{7, 0, 1995}, dictWord{8, 0, 299}, dictWord{11, 0, 890}, dictWord{12, 0, 674}, dictWord{ 4, 11, 20, }, dictWord{133, 11, 616}, dictWord{135, 11, 1094}, dictWord{134, 10, 1630}, dictWord{4, 0, 238}, dictWord{5, 0, 503}, dictWord{6, 0, 179}, dictWord{ 7, 0, 2003, }, dictWord{8, 0, 381}, dictWord{8, 0, 473}, dictWord{9, 0, 149}, dictWord{10, 0, 788}, dictWord{15, 0, 45}, dictWord{15, 0, 86}, dictWord{20, 0, 110}, dictWord{150, 0, 57}, dictWord{133, 10, 671}, dictWord{4, 11, 26}, dictWord{5, 11, 429}, dictWord{6, 11, 245}, dictWord{7, 11, 704}, dictWord{7, 11, 1379}, dictWord{135, 11, 1474}, dictWord{4, 0, 121}, dictWord{5, 0, 156}, dictWord{5, 0, 349}, dictWord{9, 0, 431}, dictWord{10, 0, 605}, dictWord{142, 0, 342}, dictWord{ 7, 11, 943, }, dictWord{139, 11, 614}, dictWord{132, 10, 889}, dictWord{132, 11, 621}, dictWord{7, 10, 1382}, dictWord{7, 11, 1382}, dictWord{ 135, 10, 1910, }, dictWord{132, 10, 627}, dictWord{133, 10, 775}, dictWord{133, 11, 542}, dictWord{133, 11, 868}, dictWord{136, 11, 433}, dictWord{6, 0, 1373}, dictWord{7, 0, 1011}, dictWord{11, 10, 362}, dictWord{11, 10, 948}, dictWord{140, 10, 388}, dictWord{6, 0, 80}, dictWord{7, 0, 173}, dictWord{9, 0, 547}, dictWord{10, 0, 730}, dictWord{14, 0, 18}, dictWord{22, 0, 39}, dictWord{135, 11, 1495}, dictWord{6, 0, 1694}, dictWord{135, 0, 1974}, dictWord{140, 0, 196}, dictWord{4, 0, 923}, dictWord{6, 0, 507}, dictWord{6, 0, 1711}, dictWord{7, 10, 451}, dictWord{8, 10, 389}, dictWord{12, 10, 490}, dictWord{13, 10, 16}, dictWord{ 13, 10, 215, }, dictWord{13, 10, 351}, dictWord{18, 10, 132}, dictWord{147, 10, 125}, dictWord{6, 0, 646}, dictWord{134, 0, 1047}, dictWord{135, 10, 841}, dictWord{136, 10, 566}, dictWord{6, 0, 1611}, dictWord{135, 0, 1214}, dictWord{139, 0, 926}, dictWord{132, 11, 525}, dictWord{132, 0, 595}, dictWord{ 5, 0, 240, }, dictWord{6, 0, 459}, dictWord{7, 0, 12}, dictWord{7, 0, 114}, dictWord{7, 0, 949}, dictWord{7, 0, 1753}, dictWord{7, 0, 1805}, dictWord{8, 0, 658}, dictWord{ 9, 0, 1, }, dictWord{11, 0, 959}, dictWord{141, 0, 446}, dictWord{5, 10, 912}, dictWord{134, 10, 1695}, dictWord{132, 0, 446}, dictWord{7, 11, 62}, dictWord{ 12, 11, 45, }, dictWord{147, 11, 112}, dictWord{5, 10, 236}, dictWord{6, 10, 572}, dictWord{8, 10, 492}, dictWord{11, 10, 618}, dictWord{144, 10, 56}, dictWord{ 5, 10, 190, }, dictWord{136, 10, 318}, dictWord{135, 10, 1376}, dictWord{4, 11, 223}, dictWord{6, 11, 359}, dictWord{11, 11, 3}, dictWord{13, 11, 108}, dictWord{ 14, 11, 89, }, dictWord{144, 11, 22}, dictWord{132, 11, 647}, dictWord{134, 0, 490}, dictWord{134, 0, 491}, dictWord{134, 0, 1584}, dictWord{ 135, 11, 685, }, dictWord{138, 11, 220}, dictWord{7, 0, 250}, dictWord{136, 0, 507}, dictWord{132, 0, 158}, dictWord{4, 0, 140}, dictWord{7, 0, 362}, dictWord{8, 0, 209}, dictWord{9, 0, 10}, dictWord{9, 0, 160}, dictWord{9, 0, 503}, dictWord{9, 0, 614}, dictWord{10, 0, 689}, dictWord{11, 0, 327}, dictWord{11, 0, 553}, dictWord{ 11, 0, 725, }, dictWord{11, 0, 767}, dictWord{12, 0, 252}, dictWord{12, 0, 583}, dictWord{13, 0, 192}, dictWord{14, 0, 269}, dictWord{14, 0, 356}, dictWord{148, 0, 50}, dictWord{19, 0, 1}, dictWord{19, 0, 26}, dictWord{150, 0, 9}, dictWord{132, 11, 109}, dictWord{6, 0, 228}, dictWord{7, 0, 1341}, dictWord{9, 0, 408}, dictWord{ 138, 0, 343, }, dictWord{4, 0, 373}, dictWord{5, 0, 283}, dictWord{6, 0, 480}, dictWord{7, 0, 609}, dictWord{10, 0, 860}, dictWord{138, 0, 878}, dictWord{6, 0, 779}, dictWord{134, 0, 1209}, dictWord{4, 0, 557}, dictWord{7, 11, 263}, dictWord{7, 11, 628}, dictWord{136, 11, 349}, dictWord{132, 0, 548}, dictWord{7, 0, 197}, dictWord{8, 0, 142}, dictWord{8, 0, 325}, dictWord{9, 0, 150}, dictWord{9, 0, 596}, dictWord{10, 0, 350}, dictWord{10, 0, 353}, dictWord{11, 0, 74}, dictWord{ 11, 0, 315, }, dictWord{12, 0, 662}, dictWord{12, 0, 681}, dictWord{14, 0, 423}, dictWord{143, 0, 141}, dictWord{4, 11, 40}, dictWord{10, 11, 67}, dictWord{ 11, 11, 117, }, dictWord{11, 11, 768}, dictWord{139, 11, 935}, dictWord{7, 11, 992}, dictWord{8, 11, 301}, dictWord{9, 11, 722}, dictWord{12, 11, 63}, dictWord{ 13, 11, 29, }, dictWord{14, 11, 161}, dictWord{143, 11, 18}, dictWord{6, 0, 1490}, dictWord{138, 11, 532}, dictWord{5, 0, 580}, dictWord{7, 0, 378}, dictWord{ 7, 0, 674, }, dictWord{7, 0, 1424}, dictWord{15, 0, 83}, dictWord{16, 0, 11}, dictWord{15, 11, 83}, dictWord{144, 11, 11}, dictWord{6, 0, 1057}, dictWord{6, 0, 1335}, dictWord{10, 0, 316}, dictWord{7, 10, 85}, dictWord{7, 10, 247}, dictWord{8, 10, 585}, dictWord{138, 10, 163}, dictWord{4, 0, 169}, dictWord{5, 0, 83}, dictWord{ 6, 0, 399, }, dictWord{6, 0, 579}, dictWord{6, 0, 1513}, dictWord{7, 0, 692}, dictWord{7, 0, 846}, dictWord{7, 0, 1015}, dictWord{7, 0, 1799}, dictWord{8, 0, 403}, dictWord{9, 0, 394}, dictWord{10, 0, 133}, dictWord{12, 0, 4}, dictWord{12, 0, 297}, dictWord{12, 0, 452}, dictWord{16, 0, 81}, dictWord{18, 0, 25}, dictWord{21, 0, 14}, dictWord{22, 0, 12}, dictWord{151, 0, 18}, dictWord{134, 0, 1106}, dictWord{7, 0, 1546}, dictWord{11, 0, 299}, dictWord{142, 0, 407}, dictWord{134, 0, 1192}, dictWord{132, 0, 177}, dictWord{5, 0, 411}, dictWord{135, 0, 653}, dictWord{7, 0, 439}, dictWord{10, 0, 727}, dictWord{11, 0, 260}, dictWord{139, 0, 684}, dictWord{138, 10, 145}, dictWord{147, 10, 83}, dictWord{5, 0, 208}, dictWord{7, 0, 753}, dictWord{135, 0, 1528}, dictWord{137, 11, 617}, dictWord{ 135, 10, 1922, }, dictWord{135, 11, 825}, dictWord{11, 0, 422}, dictWord{13, 0, 389}, dictWord{4, 10, 124}, dictWord{10, 10, 457}, dictWord{11, 10, 121}, dictWord{ 11, 10, 169, }, dictWord{11, 10, 870}, dictWord{12, 10, 214}, dictWord{14, 10, 187}, dictWord{143, 10, 77}, dictWord{11, 0, 615}, dictWord{15, 0, 58}, dictWord{ 11, 11, 615, }, dictWord{143, 11, 58}, dictWord{9, 0, 618}, dictWord{138, 0, 482}, dictWord{6, 0, 1952}, dictWord{6, 0, 1970}, dictWord{142, 0, 505}, dictWord{ 7, 10, 1193, }, dictWord{135, 11, 1838}, dictWord{133, 0, 242}, dictWord{135, 10, 1333}, dictWord{6, 10, 107}, dictWord{7, 10, 638}, dictWord{ 7, 10, 1632, }, dictWord{137, 10, 396}, dictWord{133, 0, 953}, dictWord{5, 10, 370}, dictWord{134, 10, 1756}, dictWord{5, 11, 28}, dictWord{6, 11, 204}, dictWord{ 10, 11, 320, }, dictWord{10, 11, 583}, dictWord{13, 11, 502}, dictWord{14, 11, 72}, dictWord{14, 11, 274}, dictWord{14, 11, 312}, dictWord{14, 11, 344}, dictWord{15, 11, 159}, dictWord{16, 11, 62}, dictWord{16, 11, 69}, dictWord{17, 11, 30}, dictWord{18, 11, 42}, dictWord{18, 11, 53}, dictWord{18, 11, 84}, dictWord{18, 11, 140}, dictWord{19, 11, 68}, dictWord{19, 11, 85}, dictWord{20, 11, 5}, dictWord{20, 11, 45}, dictWord{20, 11, 101}, dictWord{22, 11, 7}, dictWord{ 150, 11, 20, }, dictWord{4, 11, 558}, dictWord{6, 11, 390}, dictWord{7, 11, 162}, dictWord{7, 11, 689}, dictWord{9, 11, 360}, dictWord{138, 11, 653}, dictWord{ 11, 0, 802, }, dictWord{141, 0, 67}, dictWord{133, 10, 204}, dictWord{133, 0, 290}, dictWord{5, 10, 970}, dictWord{134, 10, 1706}, dictWord{132, 0, 380}, dictWord{5, 0, 52}, dictWord{7, 0, 277}, dictWord{9, 0, 368}, dictWord{139, 0, 791}, dictWord{5, 11, 856}, dictWord{6, 11, 1672}, dictWord{6, 11, 1757}, dictWord{ 6, 11, 1781, }, dictWord{7, 11, 1150}, dictWord{7, 11, 1425}, dictWord{7, 11, 1453}, dictWord{140, 11, 513}, dictWord{5, 11, 92}, dictWord{7, 10, 3}, dictWord{ 10, 11, 736, }, dictWord{140, 11, 102}, dictWord{4, 0, 112}, dictWord{5, 0, 653}, dictWord{5, 10, 483}, dictWord{5, 10, 685}, dictWord{6, 10, 489}, dictWord{ 7, 10, 1204, }, dictWord{136, 10, 394}, dictWord{132, 10, 921}, dictWord{6, 0, 1028}, dictWord{133, 10, 1007}, dictWord{5, 11, 590}, dictWord{9, 11, 213}, dictWord{145, 11, 91}, dictWord{135, 10, 1696}, dictWord{10, 0, 138}, dictWord{139, 0, 476}, dictWord{5, 0, 725}, dictWord{5, 0, 727}, dictWord{135, 0, 1811}, dictWord{4, 0, 979}, dictWord{6, 0, 1821}, dictWord{6, 0, 1838}, dictWord{8, 0, 876}, dictWord{8, 0, 883}, dictWord{8, 0, 889}, dictWord{8, 0, 893}, dictWord{ 8, 0, 895, }, dictWord{10, 0, 934}, dictWord{12, 0, 720}, dictWord{14, 0, 459}, dictWord{148, 0, 123}, dictWord{135, 11, 551}, dictWord{4, 0, 38}, dictWord{6, 0, 435}, dictWord{7, 0, 307}, dictWord{7, 0, 999}, dictWord{7, 0, 1481}, dictWord{7, 0, 1732}, dictWord{7, 0, 1738}, dictWord{8, 0, 371}, dictWord{9, 0, 414}, dictWord{ 11, 0, 316, }, dictWord{12, 0, 52}, dictWord{13, 0, 420}, dictWord{147, 0, 100}, dictWord{135, 0, 1296}, dictWord{132, 10, 712}, dictWord{134, 10, 1629}, dictWord{133, 0, 723}, dictWord{134, 0, 651}, dictWord{136, 11, 191}, dictWord{9, 11, 791}, dictWord{10, 11, 93}, dictWord{11, 11, 301}, dictWord{16, 11, 13}, dictWord{17, 11, 23}, dictWord{18, 11, 135}, dictWord{19, 11, 12}, dictWord{20, 11, 1}, dictWord{20, 11, 12}, dictWord{148, 11, 14}, dictWord{136, 11, 503}, dictWord{6, 11, 466}, dictWord{135, 11, 671}, dictWord{6, 0, 1200}, dictWord{134, 0, 1330}, dictWord{135, 0, 1255}, dictWord{134, 0, 986}, dictWord{ 5, 0, 109, }, dictWord{6, 0, 1784}, dictWord{7, 0, 1895}, dictWord{12, 0, 296}, dictWord{140, 0, 302}, dictWord{135, 11, 983}, dictWord{133, 10, 485}, dictWord{ 134, 0, 660, }, dictWord{134, 0, 800}, dictWord{5, 0, 216}, dictWord{5, 0, 294}, dictWord{6, 0, 591}, dictWord{7, 0, 1879}, dictWord{9, 0, 141}, dictWord{9, 0, 270}, dictWord{9, 0, 679}, dictWord{10, 0, 159}, dictWord{11, 0, 197}, dictWord{11, 0, 438}, dictWord{12, 0, 538}, dictWord{12, 0, 559}, dictWord{14, 0, 144}, dictWord{ 14, 0, 167, }, dictWord{15, 0, 67}, dictWord{4, 10, 285}, dictWord{5, 10, 317}, dictWord{6, 10, 301}, dictWord{7, 10, 7}, dictWord{8, 10, 153}, dictWord{ 10, 10, 766, }, dictWord{11, 10, 468}, dictWord{12, 10, 467}, dictWord{141, 10, 143}, dictWord{136, 0, 945}, dictWord{134, 0, 1090}, dictWord{137, 0, 81}, dictWord{12, 11, 468}, dictWord{19, 11, 96}, dictWord{148, 11, 24}, dictWord{134, 0, 391}, dictWord{138, 11, 241}, dictWord{7, 0, 322}, dictWord{136, 0, 249}, dictWord{134, 0, 1412}, dictWord{135, 11, 795}, dictWord{5, 0, 632}, dictWord{138, 0, 526}, dictWord{136, 10, 819}, dictWord{6, 0, 144}, dictWord{7, 0, 948}, dictWord{7, 0, 1042}, dictWord{8, 0, 235}, dictWord{8, 0, 461}, dictWord{9, 0, 453}, dictWord{9, 0, 796}, dictWord{10, 0, 354}, dictWord{17, 0, 77}, dictWord{ 135, 11, 954, }, dictWord{139, 10, 917}, dictWord{6, 0, 940}, dictWord{134, 0, 1228}, dictWord{4, 0, 362}, dictWord{7, 0, 52}, dictWord{135, 0, 303}, dictWord{ 6, 11, 549, }, dictWord{8, 11, 34}, dictWord{8, 11, 283}, dictWord{9, 11, 165}, dictWord{138, 11, 475}, dictWord{7, 11, 370}, dictWord{7, 11, 1007}, dictWord{ 7, 11, 1177, }, dictWord{135, 11, 1565}, dictWord{5, 11, 652}, dictWord{5, 11, 701}, dictWord{135, 11, 449}, dictWord{5, 0, 196}, dictWord{6, 0, 486}, dictWord{ 7, 0, 212, }, dictWord{8, 0, 309}, dictWord{136, 0, 346}, dictWord{6, 10, 1719}, dictWord{6, 10, 1735}, dictWord{7, 10, 2016}, dictWord{7, 10, 2020}, dictWord{ 8, 10, 837, }, dictWord{137, 10, 852}, dictWord{6, 11, 159}, dictWord{6, 11, 364}, dictWord{7, 11, 516}, dictWord{7, 11, 1439}, dictWord{137, 11, 518}, dictWord{135, 0, 1912}, dictWord{135, 0, 1290}, dictWord{132, 0, 686}, dictWord{141, 11, 151}, dictWord{138, 0, 625}, dictWord{136, 0, 706}, dictWord{ 138, 10, 568, }, dictWord{139, 0, 412}, dictWord{4, 0, 30}, dictWord{133, 0, 43}, dictWord{8, 10, 67}, dictWord{138, 10, 419}, dictWord{7, 0, 967}, dictWord{ 141, 0, 11, }, dictWord{12, 0, 758}, dictWord{14, 0, 441}, dictWord{142, 0, 462}, dictWord{10, 10, 657}, dictWord{14, 10, 297}, dictWord{142, 10, 361}, dictWord{ 139, 10, 729, }, dictWord{4, 0, 220}, dictWord{135, 0, 1535}, dictWord{7, 11, 501}, dictWord{9, 11, 111}, dictWord{10, 11, 141}, dictWord{11, 11, 332}, dictWord{ 13, 11, 43, }, dictWord{13, 11, 429}, dictWord{14, 11, 130}, dictWord{14, 11, 415}, dictWord{145, 11, 102}, dictWord{4, 0, 950}, dictWord{6, 0, 1859}, dictWord{ 7, 0, 11, }, dictWord{8, 0, 873}, dictWord{12, 0, 710}, dictWord{12, 0, 718}, dictWord{12, 0, 748}, dictWord{12, 0, 765}, dictWord{148, 0, 124}, dictWord{ 5, 11, 149, }, dictWord{5, 11, 935}, dictWord{136, 11, 233}, dictWord{142, 11, 291}, dictWord{134, 0, 1579}, dictWord{7, 0, 890}, dictWord{8, 10, 51}, dictWord{ 9, 10, 868, }, dictWord{10, 10, 833}, dictWord{12, 10, 481}, dictWord{12, 10, 570}, dictWord{148, 10, 106}, dictWord{141, 0, 2}, dictWord{132, 10, 445}, dictWord{136, 11, 801}, dictWord{135, 0, 1774}, dictWord{7, 0, 1725}, dictWord{138, 0, 393}, dictWord{5, 0, 263}, dictWord{134, 0, 414}, dictWord{ 132, 11, 322, }, dictWord{133, 10, 239}, dictWord{7, 0, 456}, dictWord{7, 10, 1990}, dictWord{8, 10, 130}, dictWord{139, 10, 720}, dictWord{137, 0, 818}, dictWord{ 5, 10, 123, }, dictWord{6, 10, 530}, dictWord{7, 10, 348}, dictWord{135, 10, 1419}, dictWord{135, 10, 2024}, dictWord{6, 0, 178}, dictWord{6, 0, 1750}, dictWord{8, 0, 251}, dictWord{9, 0, 690}, dictWord{10, 0, 155}, dictWord{10, 0, 196}, dictWord{10, 0, 373}, dictWord{11, 0, 698}, dictWord{13, 0, 155}, dictWord{ 148, 0, 93, }, dictWord{5, 0, 97}, dictWord{137, 0, 393}, dictWord{134, 0, 674}, dictWord{11, 0, 223}, dictWord{140, 0, 168}, dictWord{132, 10, 210}, dictWord{ 139, 11, 464, }, dictWord{6, 0, 1639}, dictWord{146, 0, 159}, dictWord{139, 11, 2}, dictWord{7, 0, 934}, dictWord{8, 0, 647}, dictWord{17, 0, 97}, dictWord{19, 0, 59}, dictWord{150, 0, 2}, dictWord{132, 0, 191}, dictWord{5, 0, 165}, dictWord{9, 0, 346}, dictWord{10, 0, 655}, dictWord{11, 0, 885}, dictWord{4, 10, 430}, dictWord{135, 11, 357}, dictWord{133, 0, 877}, dictWord{5, 10, 213}, dictWord{133, 11, 406}, dictWord{8, 0, 128}, dictWord{139, 0, 179}, dictWord{6, 11, 69}, dictWord{135, 11, 117}, dictWord{135, 0, 1297}, dictWord{11, 11, 43}, dictWord{13, 11, 72}, dictWord{141, 11, 142}, dictWord{135, 11, 1830}, dictWord{ 142, 0, 164, }, dictWord{5, 0, 57}, dictWord{6, 0, 101}, dictWord{6, 0, 586}, dictWord{6, 0, 1663}, dictWord{7, 0, 132}, dictWord{7, 0, 1154}, dictWord{7, 0, 1415}, dictWord{7, 0, 1507}, dictWord{12, 0, 493}, dictWord{15, 0, 105}, dictWord{151, 0, 15}, dictWord{5, 0, 459}, dictWord{7, 0, 1073}, dictWord{8, 0, 241}, dictWord{ 136, 0, 334, }, dictWord{133, 11, 826}, dictWord{133, 10, 108}, dictWord{5, 10, 219}, dictWord{10, 11, 132}, dictWord{11, 11, 191}, dictWord{11, 11, 358}, dictWord{139, 11, 460}, dictWord{6, 0, 324}, dictWord{6, 0, 520}, dictWord{7, 0, 338}, dictWord{7, 0, 1729}, dictWord{8, 0, 228}, dictWord{139, 0, 750}, dictWord{ 21, 0, 30, }, dictWord{22, 0, 53}, dictWord{4, 10, 193}, dictWord{5, 10, 916}, dictWord{7, 10, 364}, dictWord{10, 10, 398}, dictWord{10, 10, 726}, dictWord{ 11, 10, 317, }, dictWord{11, 10, 626}, dictWord{12, 10, 142}, dictWord{12, 10, 288}, dictWord{12, 10, 678}, dictWord{13, 10, 313}, dictWord{15, 10, 113}, dictWord{146, 10, 114}, dictWord{6, 11, 110}, dictWord{135, 11, 1681}, dictWord{135, 0, 910}, dictWord{6, 10, 241}, dictWord{7, 10, 907}, dictWord{8, 10, 832}, dictWord{9, 10, 342}, dictWord{10, 10, 729}, dictWord{11, 10, 284}, dictWord{11, 10, 445}, dictWord{11, 10, 651}, dictWord{11, 10, 863}, dictWord{ 13, 10, 398, }, dictWord{146, 10, 99}, dictWord{7, 0, 705}, dictWord{9, 0, 734}, dictWord{5, 11, 1000}, dictWord{7, 11, 733}, dictWord{137, 11, 583}, dictWord{4, 0, 73}, dictWord{6, 0, 612}, dictWord{7, 0, 927}, dictWord{7, 0, 1822}, dictWord{8, 0, 217}, dictWord{9, 0, 765}, dictWord{9, 0, 766}, dictWord{10, 0, 408}, dictWord{ 11, 0, 51, }, dictWord{11, 0, 793}, dictWord{12, 0, 266}, dictWord{15, 0, 158}, dictWord{20, 0, 89}, dictWord{150, 0, 32}, dictWord{7, 0, 1330}, dictWord{4, 11, 297}, dictWord{6, 11, 529}, dictWord{7, 11, 152}, dictWord{7, 11, 713}, dictWord{7, 11, 1845}, dictWord{8, 11, 710}, dictWord{8, 11, 717}, dictWord{140, 11, 639}, dictWord{5, 0, 389}, dictWord{136, 0, 636}, dictWord{134, 0, 1409}, dictWord{4, 10, 562}, dictWord{9, 10, 254}, dictWord{139, 10, 879}, dictWord{134, 0, 893}, dictWord{132, 10, 786}, dictWord{4, 11, 520}, dictWord{135, 11, 575}, dictWord{136, 0, 21}, dictWord{140, 0, 721}, dictWord{136, 0, 959}, dictWord{ 7, 11, 1428, }, dictWord{7, 11, 1640}, dictWord{9, 11, 169}, dictWord{9, 11, 182}, dictWord{9, 11, 367}, dictWord{9, 11, 478}, dictWord{9, 11, 506}, dictWord{ 9, 11, 551, }, dictWord{9, 11, 648}, dictWord{9, 11, 651}, dictWord{9, 11, 697}, dictWord{9, 11, 705}, dictWord{9, 11, 725}, dictWord{9, 11, 787}, dictWord{9, 11, 794}, dictWord{10, 11, 198}, dictWord{10, 11, 214}, dictWord{10, 11, 267}, dictWord{10, 11, 275}, dictWord{10, 11, 456}, dictWord{10, 11, 551}, dictWord{ 10, 11, 561, }, dictWord{10, 11, 613}, dictWord{10, 11, 627}, dictWord{10, 11, 668}, dictWord{10, 11, 675}, dictWord{10, 11, 691}, dictWord{10, 11, 695}, dictWord{10, 11, 707}, dictWord{10, 11, 715}, dictWord{11, 11, 183}, dictWord{11, 11, 201}, dictWord{11, 11, 244}, dictWord{11, 11, 262}, dictWord{ 11, 11, 352, }, dictWord{11, 11, 439}, dictWord{11, 11, 493}, dictWord{11, 11, 572}, dictWord{11, 11, 591}, dictWord{11, 11, 608}, dictWord{11, 11, 611}, dictWord{ 11, 11, 646, }, dictWord{11, 11, 674}, dictWord{11, 11, 711}, dictWord{11, 11, 751}, dictWord{11, 11, 761}, dictWord{11, 11, 776}, dictWord{11, 11, 785}, dictWord{11, 11, 850}, dictWord{11, 11, 853}, dictWord{11, 11, 862}, dictWord{11, 11, 865}, dictWord{11, 11, 868}, dictWord{11, 11, 898}, dictWord{ 11, 11, 902, }, dictWord{11, 11, 903}, dictWord{11, 11, 910}, dictWord{11, 11, 932}, dictWord{11, 11, 942}, dictWord{11, 11, 957}, dictWord{11, 11, 967}, dictWord{ 11, 11, 972, }, dictWord{12, 11, 148}, dictWord{12, 11, 195}, dictWord{12, 11, 220}, dictWord{12, 11, 237}, dictWord{12, 11, 318}, dictWord{12, 11, 339}, dictWord{12, 11, 393}, dictWord{12, 11, 445}, dictWord{12, 11, 450}, dictWord{12, 11, 474}, dictWord{12, 11, 509}, dictWord{12, 11, 533}, dictWord{ 12, 11, 591, }, dictWord{12, 11, 594}, dictWord{12, 11, 597}, dictWord{12, 11, 621}, dictWord{12, 11, 633}, dictWord{12, 11, 642}, dictWord{13, 11, 59}, dictWord{ 13, 11, 60, }, dictWord{13, 11, 145}, dictWord{13, 11, 239}, dictWord{13, 11, 250}, dictWord{13, 11, 273}, dictWord{13, 11, 329}, dictWord{13, 11, 344}, dictWord{13, 11, 365}, dictWord{13, 11, 372}, dictWord{13, 11, 387}, dictWord{13, 11, 403}, dictWord{13, 11, 414}, dictWord{13, 11, 456}, dictWord{ 13, 11, 478, }, dictWord{13, 11, 483}, dictWord{13, 11, 489}, dictWord{14, 11, 55}, dictWord{14, 11, 57}, dictWord{14, 11, 81}, dictWord{14, 11, 90}, dictWord{ 14, 11, 148, }, dictWord{14, 11, 239}, dictWord{14, 11, 266}, dictWord{14, 11, 321}, dictWord{14, 11, 326}, dictWord{14, 11, 327}, dictWord{14, 11, 330}, dictWord{ 14, 11, 347, }, dictWord{14, 11, 355}, dictWord{14, 11, 401}, dictWord{14, 11, 411}, dictWord{14, 11, 414}, dictWord{14, 11, 416}, dictWord{14, 11, 420}, dictWord{15, 11, 61}, dictWord{15, 11, 74}, dictWord{15, 11, 87}, dictWord{15, 11, 88}, dictWord{15, 11, 94}, dictWord{15, 11, 96}, dictWord{15, 11, 116}, dictWord{15, 11, 149}, dictWord{15, 11, 154}, dictWord{16, 11, 50}, dictWord{16, 11, 63}, dictWord{16, 11, 73}, dictWord{17, 11, 2}, dictWord{17, 11, 66}, dictWord{ 17, 11, 92, }, dictWord{17, 11, 103}, dictWord{17, 11, 112}, dictWord{18, 11, 50}, dictWord{18, 11, 54}, dictWord{18, 11, 82}, dictWord{18, 11, 86}, dictWord{ 18, 11, 90, }, dictWord{18, 11, 111}, dictWord{18, 11, 115}, dictWord{18, 11, 156}, dictWord{19, 11, 40}, dictWord{19, 11, 79}, dictWord{20, 11, 78}, dictWord{ 149, 11, 22, }, dictWord{137, 11, 170}, dictWord{134, 0, 1433}, dictWord{135, 11, 1307}, dictWord{139, 11, 411}, dictWord{5, 0, 189}, dictWord{7, 0, 442}, dictWord{7, 0, 443}, dictWord{8, 0, 281}, dictWord{12, 0, 174}, dictWord{141, 0, 261}, dictWord{6, 10, 216}, dictWord{7, 10, 901}, dictWord{7, 10, 1343}, dictWord{136, 10, 493}, dictWord{5, 11, 397}, dictWord{6, 11, 154}, dictWord{7, 10, 341}, dictWord{7, 11, 676}, dictWord{8, 11, 443}, dictWord{8, 11, 609}, dictWord{ 9, 11, 24, }, dictWord{9, 11, 325}, dictWord{10, 11, 35}, dictWord{11, 10, 219}, dictWord{11, 11, 535}, dictWord{11, 11, 672}, dictWord{11, 11, 1018}, dictWord{12, 11, 637}, dictWord{144, 11, 30}, dictWord{6, 0, 2}, dictWord{7, 0, 191}, dictWord{7, 0, 446}, dictWord{7, 0, 1262}, dictWord{7, 0, 1737}, dictWord{8, 0, 22}, dictWord{8, 0, 270}, dictWord{8, 0, 612}, dictWord{9, 0, 4}, dictWord{9, 0, 312}, dictWord{9, 0, 436}, dictWord{9, 0, 626}, dictWord{10, 0, 216}, dictWord{10, 0, 311}, dictWord{10, 0, 521}, dictWord{10, 0, 623}, dictWord{11, 0, 72}, dictWord{11, 0, 330}, dictWord{11, 0, 455}, dictWord{12, 0, 321}, dictWord{12, 0, 504}, dictWord{12, 0, 530}, dictWord{12, 0, 543}, dictWord{13, 0, 17}, dictWord{13, 0, 156}, dictWord{13, 0, 334}, dictWord{14, 0, 131}, dictWord{17, 0, 60}, dictWord{ 148, 0, 64, }, dictWord{7, 0, 354}, dictWord{10, 0, 410}, dictWord{139, 0, 815}, dictWord{139, 10, 130}, dictWord{7, 10, 1734}, dictWord{137, 11, 631}, dictWord{ 12, 0, 425, }, dictWord{15, 0, 112}, dictWord{10, 10, 115}, dictWord{11, 10, 420}, dictWord{13, 10, 404}, dictWord{14, 10, 346}, dictWord{143, 10, 54}, dictWord{ 6, 0, 60, }, dictWord{6, 0, 166}, dictWord{7, 0, 374}, dictWord{7, 0, 670}, dictWord{7, 0, 1327}, dictWord{8, 0, 411}, dictWord{8, 0, 435}, dictWord{9, 0, 653}, dictWord{ 9, 0, 740, }, dictWord{10, 0, 385}, dictWord{11, 0, 222}, dictWord{11, 0, 324}, dictWord{11, 0, 829}, dictWord{140, 0, 611}, dictWord{7, 0, 1611}, dictWord{ 13, 0, 14, }, dictWord{15, 0, 44}, dictWord{19, 0, 13}, dictWord{148, 0, 76}, dictWord{133, 11, 981}, dictWord{4, 11, 56}, dictWord{7, 11, 1791}, dictWord{8, 11, 607}, dictWord{8, 11, 651}, dictWord{11, 11, 465}, dictWord{11, 11, 835}, dictWord{12, 11, 337}, dictWord{141, 11, 480}, dictWord{6, 0, 1478}, dictWord{ 5, 10, 1011, }, dictWord{136, 10, 701}, dictWord{139, 0, 596}, dictWord{5, 0, 206}, dictWord{134, 0, 398}, dictWord{4, 10, 54}, dictWord{5, 10, 666}, dictWord{ 7, 10, 1039, }, dictWord{7, 10, 1130}, dictWord{9, 10, 195}, dictWord{138, 10, 302}, dictWord{7, 0, 50}, dictWord{9, 11, 158}, dictWord{138, 11, 411}, dictWord{ 135, 11, 1120, }, dictWord{6, 0, 517}, dictWord{7, 0, 1159}, dictWord{10, 0, 621}, dictWord{11, 0, 192}, dictWord{134, 10, 1669}, dictWord{4, 0, 592}, dictWord{ 6, 0, 600, }, dictWord{135, 0, 1653}, dictWord{10, 0, 223}, dictWord{139, 0, 645}, dictWord{136, 11, 139}, dictWord{7, 0, 64}, dictWord{136, 0, 245}, dictWord{ 142, 0, 278, }, dictWord{6, 11, 622}, dictWord{135, 11, 1030}, dictWord{136, 0, 604}, dictWord{134, 0, 1502}, dictWord{138, 0, 265}, dictWord{ 141, 11, 168, }, dictWord{7, 0, 1763}, dictWord{140, 0, 310}, dictWord{7, 10, 798}, dictWord{139, 11, 719}, dictWord{7, 11, 160}, dictWord{10, 11, 624}, dictWord{ 142, 11, 279, }, dictWord{132, 11, 363}, dictWord{7, 10, 122}, dictWord{9, 10, 259}, dictWord{10, 10, 84}, dictWord{11, 10, 470}, dictWord{12, 10, 541}, dictWord{141, 10, 379}, dictWord{5, 0, 129}, dictWord{6, 0, 61}, dictWord{135, 0, 947}, dictWord{134, 0, 1356}, dictWord{135, 11, 1191}, dictWord{13, 0, 505}, dictWord{141, 0, 506}, dictWord{11, 0, 1000}, dictWord{5, 10, 82}, dictWord{5, 10, 131}, dictWord{7, 10, 1755}, dictWord{8, 10, 31}, dictWord{9, 10, 168}, dictWord{9, 10, 764}, dictWord{139, 10, 869}, dictWord{134, 0, 966}, dictWord{134, 10, 605}, dictWord{134, 11, 292}, dictWord{5, 11, 177}, dictWord{ 6, 11, 616, }, dictWord{7, 11, 827}, dictWord{9, 11, 525}, dictWord{138, 11, 656}, dictWord{135, 11, 1486}, dictWord{138, 11, 31}, dictWord{5, 10, 278}, dictWord{137, 10, 68}, dictWord{4, 10, 163}, dictWord{5, 10, 201}, dictWord{5, 10, 307}, dictWord{5, 10, 310}, dictWord{6, 10, 335}, dictWord{7, 10, 284}, dictWord{136, 10, 165}, dictWord{6, 0, 839}, dictWord{135, 10, 1660}, dictWord{136, 10, 781}, dictWord{6, 10, 33}, dictWord{135, 10, 1244}, dictWord{ 133, 0, 637, }, dictWord{4, 11, 161}, dictWord{133, 11, 631}, dictWord{137, 0, 590}, dictWord{7, 10, 1953}, dictWord{136, 10, 720}, dictWord{5, 0, 280}, dictWord{ 7, 0, 1226, }, dictWord{138, 10, 203}, dictWord{134, 0, 1386}, dictWord{5, 0, 281}, dictWord{6, 0, 1026}, dictWord{6, 10, 326}, dictWord{7, 10, 677}, dictWord{ 137, 10, 425, }, dictWord{7, 11, 1557}, dictWord{135, 11, 1684}, dictWord{135, 0, 1064}, dictWord{9, 11, 469}, dictWord{9, 11, 709}, dictWord{12, 11, 512}, dictWord{14, 11, 65}, dictWord{145, 11, 12}, dictWord{134, 0, 917}, dictWord{10, 11, 229}, dictWord{11, 11, 73}, dictWord{11, 11, 376}, dictWord{ 139, 11, 433, }, dictWord{7, 0, 555}, dictWord{9, 0, 192}, dictWord{13, 0, 30}, dictWord{13, 0, 49}, dictWord{15, 0, 150}, dictWord{16, 0, 76}, dictWord{20, 0, 52}, dictWord{ 7, 10, 1316, }, dictWord{7, 10, 1412}, dictWord{7, 10, 1839}, dictWord{9, 10, 589}, dictWord{11, 10, 241}, dictWord{11, 10, 676}, dictWord{11, 10, 811}, dictWord{11, 10, 891}, dictWord{12, 10, 140}, dictWord{12, 10, 346}, dictWord{12, 10, 479}, dictWord{13, 10, 381}, dictWord{14, 10, 188}, dictWord{ 146, 10, 30, }, dictWord{149, 0, 15}, dictWord{6, 0, 1882}, dictWord{6, 0, 1883}, dictWord{6, 0, 1897}, dictWord{9, 0, 945}, dictWord{9, 0, 1014}, dictWord{9, 0, 1020}, dictWord{12, 0, 823}, dictWord{12, 0, 842}, dictWord{12, 0, 866}, dictWord{12, 0, 934}, dictWord{15, 0, 242}, dictWord{146, 0, 208}, dictWord{6, 0, 965}, dictWord{134, 0, 1499}, dictWord{7, 0, 33}, dictWord{7, 0, 120}, dictWord{8, 0, 489}, dictWord{9, 0, 319}, dictWord{10, 0, 820}, dictWord{11, 0, 1004}, dictWord{ 12, 0, 379, }, dictWord{12, 0, 679}, dictWord{13, 0, 117}, dictWord{13, 0, 412}, dictWord{14, 0, 25}, dictWord{15, 0, 52}, dictWord{15, 0, 161}, dictWord{16, 0, 47}, dictWord{149, 0, 2}, dictWord{6, 11, 558}, dictWord{7, 11, 651}, dictWord{8, 11, 421}, dictWord{9, 11, 0}, dictWord{138, 11, 34}, dictWord{4, 0, 937}, dictWord{ 5, 0, 801, }, dictWord{7, 0, 473}, dictWord{5, 10, 358}, dictWord{7, 10, 1184}, dictWord{10, 10, 662}, dictWord{13, 10, 212}, dictWord{13, 10, 304}, dictWord{ 13, 10, 333, }, dictWord{145, 10, 98}, dictWord{132, 0, 877}, dictWord{6, 0, 693}, dictWord{134, 0, 824}, dictWord{132, 0, 365}, dictWord{7, 11, 1832}, dictWord{ 138, 11, 374, }, dictWord{5, 0, 7}, dictWord{139, 0, 774}, dictWord{4, 0, 734}, dictWord{5, 0, 662}, dictWord{134, 0, 430}, dictWord{4, 0, 746}, dictWord{ 135, 0, 1090, }, dictWord{5, 0, 360}, dictWord{8, 0, 237}, dictWord{10, 0, 231}, dictWord{147, 0, 124}, dictWord{138, 11, 348}, dictWord{6, 11, 6}, dictWord{7, 11, 81}, dictWord{7, 11, 771}, dictWord{7, 11, 1731}, dictWord{9, 11, 405}, dictWord{138, 11, 421}, dictWord{6, 0, 740}, dictWord{137, 0, 822}, dictWord{ 133, 10, 946, }, dictWord{7, 0, 1485}, dictWord{136, 0, 929}, dictWord{7, 10, 411}, dictWord{8, 10, 631}, dictWord{9, 10, 323}, dictWord{10, 10, 355}, dictWord{ 11, 10, 491, }, dictWord{12, 10, 143}, dictWord{12, 10, 402}, dictWord{13, 10, 73}, dictWord{14, 10, 408}, dictWord{15, 10, 107}, dictWord{146, 10, 71}, dictWord{ 135, 10, 590, }, dictWord{5, 11, 881}, dictWord{133, 11, 885}, dictWord{150, 11, 25}, dictWord{4, 0, 852}, dictWord{5, 11, 142}, dictWord{134, 11, 546}, dictWord{7, 10, 1467}, dictWord{8, 10, 328}, dictWord{10, 10, 544}, dictWord{11, 10, 955}, dictWord{13, 10, 320}, dictWord{145, 10, 83}, dictWord{9, 0, 17}, dictWord{10, 0, 291}, dictWord{11, 10, 511}, dictWord{13, 10, 394}, dictWord{14, 10, 298}, dictWord{14, 10, 318}, dictWord{146, 10, 103}, dictWord{5, 11, 466}, dictWord{11, 11, 571}, dictWord{12, 11, 198}, dictWord{13, 11, 283}, dictWord{14, 11, 186}, dictWord{15, 11, 21}, dictWord{143, 11, 103}, dictWord{ 134, 0, 1001, }, dictWord{4, 11, 185}, dictWord{5, 11, 257}, dictWord{5, 11, 839}, dictWord{5, 11, 936}, dictWord{7, 11, 171}, dictWord{9, 11, 399}, dictWord{ 10, 11, 258, }, dictWord{10, 11, 395}, dictWord{10, 11, 734}, dictWord{11, 11, 1014}, dictWord{12, 11, 23}, dictWord{13, 11, 350}, dictWord{14, 11, 150}, dictWord{147, 11, 6}, dictWord{143, 0, 35}, dictWord{132, 0, 831}, dictWord{5, 10, 835}, dictWord{134, 10, 483}, dictWord{4, 0, 277}, dictWord{5, 0, 608}, dictWord{ 6, 0, 493, }, dictWord{7, 0, 457}, dictWord{12, 0, 384}, dictWord{7, 11, 404}, dictWord{7, 11, 1377}, dictWord{7, 11, 1430}, dictWord{7, 11, 2017}, dictWord{ 8, 11, 149, }, dictWord{8, 11, 239}, dictWord{8, 11, 512}, dictWord{8, 11, 793}, dictWord{8, 11, 818}, dictWord{9, 11, 474}, dictWord{9, 11, 595}, dictWord{ 10, 11, 122, }, dictWord{10, 11, 565}, dictWord{10, 11, 649}, dictWord{10, 11, 783}, dictWord{11, 11, 239}, dictWord{11, 11, 295}, dictWord{11, 11, 447}, dictWord{ 11, 11, 528, }, dictWord{11, 11, 639}, dictWord{11, 11, 800}, dictWord{11, 11, 936}, dictWord{12, 11, 25}, dictWord{12, 11, 73}, dictWord{12, 11, 77}, dictWord{12, 11, 157}, dictWord{12, 11, 316}, dictWord{12, 11, 390}, dictWord{12, 11, 391}, dictWord{12, 11, 394}, dictWord{12, 11, 395}, dictWord{ 12, 11, 478, }, dictWord{12, 11, 503}, dictWord{12, 11, 592}, dictWord{12, 11, 680}, dictWord{13, 11, 50}, dictWord{13, 11, 53}, dictWord{13, 11, 132}, dictWord{ 13, 11, 198, }, dictWord{13, 11, 275}, dictWord{13, 11, 322}, dictWord{13, 11, 415}, dictWord{14, 11, 71}, dictWord{14, 11, 257}, dictWord{14, 11, 395}, dictWord{15, 11, 71}, dictWord{15, 11, 136}, dictWord{17, 11, 123}, dictWord{18, 11, 93}, dictWord{147, 11, 58}, dictWord{134, 0, 1351}, dictWord{7, 0, 27}, dictWord{135, 0, 316}, dictWord{136, 11, 712}, dictWord{136, 0, 984}, dictWord{133, 0, 552}, dictWord{137, 0, 264}, dictWord{132, 0, 401}, dictWord{6, 0, 710}, dictWord{6, 0, 1111}, dictWord{134, 0, 1343}, dictWord{134, 0, 1211}, dictWord{9, 0, 543}, dictWord{10, 0, 524}, dictWord{11, 0, 108}, dictWord{11, 0, 653}, dictWord{12, 0, 524}, dictWord{13, 0, 123}, dictWord{14, 0, 252}, dictWord{16, 0, 18}, dictWord{19, 0, 38}, dictWord{20, 0, 26}, dictWord{20, 0, 65}, dictWord{ 21, 0, 3, }, dictWord{151, 0, 11}, dictWord{4, 0, 205}, dictWord{5, 0, 623}, dictWord{7, 0, 104}, dictWord{8, 0, 519}, dictWord{137, 0, 716}, dictWord{132, 10, 677}, dictWord{4, 11, 377}, dictWord{152, 11, 13}, dictWord{135, 11, 1673}, dictWord{7, 0, 579}, dictWord{9, 0, 41}, dictWord{9, 0, 244}, dictWord{9, 0, 669}, dictWord{ 10, 0, 5, }, dictWord{11, 0, 861}, dictWord{11, 0, 951}, dictWord{139, 0, 980}, dictWord{132, 0, 717}, dictWord{136, 0, 1011}, dictWord{132, 0, 805}, dictWord{ 4, 11, 180, }, dictWord{135, 11, 1906}, dictWord{132, 10, 777}, dictWord{132, 10, 331}, dictWord{132, 0, 489}, dictWord{6, 0, 1024}, dictWord{4, 11, 491}, dictWord{133, 10, 747}, dictWord{135, 11, 1182}, dictWord{4, 11, 171}, dictWord{138, 11, 234}, dictWord{4, 11, 586}, dictWord{7, 11, 1186}, dictWord{ 138, 11, 631, }, dictWord{135, 0, 892}, dictWord{135, 11, 336}, dictWord{9, 11, 931}, dictWord{10, 11, 334}, dictWord{148, 11, 71}, dictWord{137, 0, 473}, dictWord{6, 0, 864}, dictWord{12, 0, 659}, dictWord{139, 11, 926}, dictWord{7, 0, 819}, dictWord{9, 0, 26}, dictWord{9, 0, 392}, dictWord{10, 0, 152}, dictWord{ 10, 0, 226, }, dictWord{11, 0, 19}, dictWord{12, 0, 276}, dictWord{12, 0, 426}, dictWord{12, 0, 589}, dictWord{13, 0, 460}, dictWord{15, 0, 97}, dictWord{19, 0, 48}, dictWord{148, 0, 104}, dictWord{135, 0, 51}, dictWord{133, 10, 326}, dictWord{4, 10, 691}, dictWord{146, 10, 16}, dictWord{9, 0, 130}, dictWord{11, 0, 765}, dictWord{10, 10, 680}, dictWord{10, 10, 793}, dictWord{141, 10, 357}, dictWord{133, 11, 765}, dictWord{8, 0, 229}, dictWord{6, 10, 32}, dictWord{7, 10, 385}, dictWord{7, 10, 757}, dictWord{7, 10, 1916}, dictWord{8, 10, 94}, dictWord{8, 10, 711}, dictWord{9, 10, 541}, dictWord{10, 10, 162}, dictWord{10, 10, 795}, dictWord{11, 10, 989}, dictWord{11, 10, 1010}, dictWord{12, 10, 14}, dictWord{142, 10, 308}, dictWord{7, 11, 474}, dictWord{137, 11, 578}, dictWord{ 132, 0, 674, }, dictWord{132, 0, 770}, dictWord{5, 0, 79}, dictWord{7, 0, 1027}, dictWord{7, 0, 1477}, dictWord{139, 0, 52}, dictWord{133, 11, 424}, dictWord{ 134, 0, 1666, }, dictWord{6, 0, 409}, dictWord{6, 10, 349}, dictWord{6, 10, 1682}, dictWord{7, 10, 1252}, dictWord{8, 10, 112}, dictWord{8, 11, 714}, dictWord{ 9, 10, 435, }, dictWord{9, 10, 668}, dictWord{10, 10, 290}, dictWord{10, 10, 319}, dictWord{10, 10, 815}, dictWord{11, 10, 180}, dictWord{11, 10, 837}, dictWord{ 12, 10, 240, }, dictWord{13, 10, 152}, dictWord{13, 10, 219}, dictWord{142, 10, 158}, dictWord{5, 0, 789}, dictWord{134, 0, 195}, dictWord{4, 0, 251}, dictWord{ 4, 0, 688, }, dictWord{7, 0, 513}, dictWord{135, 0, 1284}, dictWord{132, 10, 581}, dictWord{9, 11, 420}, dictWord{10, 11, 269}, dictWord{10, 11, 285}, dictWord{10, 11, 576}, dictWord{11, 11, 397}, dictWord{13, 11, 175}, dictWord{145, 11, 90}, dictWord{6, 10, 126}, dictWord{7, 10, 573}, dictWord{8, 10, 397}, dictWord{142, 10, 44}, dictWord{132, 11, 429}, dictWord{133, 0, 889}, dictWord{4, 0, 160}, dictWord{5, 0, 330}, dictWord{7, 0, 1434}, dictWord{136, 0, 174}, dictWord{7, 11, 18}, dictWord{7, 11, 699}, dictWord{7, 11, 1966}, dictWord{8, 11, 752}, dictWord{9, 11, 273}, dictWord{9, 11, 412}, dictWord{9, 11, 703}, dictWord{ 10, 11, 71, }, dictWord{10, 11, 427}, dictWord{10, 11, 508}, dictWord{146, 11, 97}, dictWord{6, 0, 872}, dictWord{134, 0, 899}, dictWord{133, 10, 926}, dictWord{134, 0, 1126}, dictWord{134, 0, 918}, dictWord{4, 11, 53}, dictWord{5, 11, 186}, dictWord{135, 11, 752}, dictWord{7, 0, 268}, dictWord{136, 0, 569}, dictWord{134, 0, 1224}, dictWord{6, 0, 1361}, dictWord{7, 10, 1232}, dictWord{137, 10, 531}, dictWord{8, 11, 575}, dictWord{10, 11, 289}, dictWord{ 139, 11, 319, }, dictWord{133, 10, 670}, dictWord{132, 11, 675}, dictWord{133, 0, 374}, dictWord{135, 10, 1957}, dictWord{133, 0, 731}, dictWord{11, 0, 190}, dictWord{15, 0, 49}, dictWord{11, 11, 190}, dictWord{143, 11, 49}, dictWord{4, 0, 626}, dictWord{5, 0, 506}, dictWord{5, 0, 642}, dictWord{6, 0, 425}, dictWord{ 10, 0, 202, }, dictWord{139, 0, 141}, dictWord{137, 0, 444}, dictWord{7, 10, 242}, dictWord{135, 10, 1942}, dictWord{6, 11, 209}, dictWord{8, 11, 468}, dictWord{ 9, 11, 210, }, dictWord{11, 11, 36}, dictWord{12, 11, 28}, dictWord{12, 11, 630}, dictWord{13, 11, 21}, dictWord{13, 11, 349}, dictWord{14, 11, 7}, dictWord{ 145, 11, 13, }, dictWord{4, 11, 342}, dictWord{135, 11, 1179}, dictWord{5, 10, 834}, dictWord{7, 10, 1202}, dictWord{8, 10, 14}, dictWord{9, 10, 481}, dictWord{ 137, 10, 880, }, dictWord{4, 11, 928}, dictWord{133, 11, 910}, dictWord{4, 11, 318}, dictWord{4, 11, 496}, dictWord{7, 11, 856}, dictWord{139, 11, 654}, dictWord{136, 0, 835}, dictWord{7, 0, 1526}, dictWord{138, 10, 465}, dictWord{151, 0, 17}, dictWord{135, 0, 477}, dictWord{4, 10, 357}, dictWord{6, 10, 172}, dictWord{7, 10, 143}, dictWord{137, 10, 413}, dictWord{6, 0, 1374}, dictWord{138, 0, 994}, dictWord{18, 0, 76}, dictWord{132, 10, 590}, dictWord{7, 0, 287}, dictWord{8, 0, 355}, dictWord{9, 0, 293}, dictWord{137, 0, 743}, dictWord{134, 0, 1389}, dictWord{7, 11, 915}, dictWord{8, 11, 247}, dictWord{147, 11, 0}, dictWord{ 4, 11, 202, }, dictWord{5, 11, 382}, dictWord{6, 11, 454}, dictWord{7, 11, 936}, dictWord{7, 11, 1803}, dictWord{8, 11, 758}, dictWord{9, 11, 375}, dictWord{ 9, 11, 895, }, dictWord{10, 11, 743}, dictWord{10, 11, 792}, dictWord{11, 11, 978}, dictWord{11, 11, 1012}, dictWord{142, 11, 109}, dictWord{5, 0, 384}, dictWord{8, 0, 455}, dictWord{140, 0, 48}, dictWord{132, 11, 390}, dictWord{5, 10, 169}, dictWord{7, 10, 333}, dictWord{136, 10, 45}, dictWord{5, 0, 264}, dictWord{134, 0, 184}, dictWord{138, 11, 791}, dictWord{133, 11, 717}, dictWord{132, 10, 198}, dictWord{6, 11, 445}, dictWord{7, 11, 332}, dictWord{ 137, 11, 909, }, dictWord{136, 0, 1001}, dictWord{4, 10, 24}, dictWord{5, 10, 140}, dictWord{5, 10, 185}, dictWord{7, 10, 1500}, dictWord{11, 10, 565}, dictWord{ 139, 10, 838, }, dictWord{134, 11, 578}, dictWord{5, 0, 633}, dictWord{6, 0, 28}, dictWord{135, 0, 1323}, dictWord{132, 0, 851}, dictWord{136, 11, 267}, dictWord{ 7, 0, 359, }, dictWord{8, 0, 243}, dictWord{140, 0, 175}, dictWord{4, 10, 334}, dictWord{133, 10, 593}, dictWord{141, 11, 87}, dictWord{136, 11, 766}, dictWord{10, 0, 287}, dictWord{12, 0, 138}, dictWord{10, 11, 287}, dictWord{140, 11, 138}, dictWord{4, 0, 105}, dictWord{132, 0, 740}, dictWord{140, 10, 116}, dictWord{134, 0, 857}, dictWord{135, 11, 1841}, dictWord{6, 0, 1402}, dictWord{137, 0, 819}, dictWord{132, 11, 584}, dictWord{132, 10, 709}, dictWord{ 133, 10, 897, }, dictWord{5, 0, 224}, dictWord{13, 0, 174}, dictWord{146, 0, 52}, dictWord{135, 10, 1840}, dictWord{4, 10, 608}, dictWord{133, 10, 497}, dictWord{139, 11, 60}, dictWord{4, 0, 758}, dictWord{135, 0, 1649}, dictWord{4, 11, 226}, dictWord{4, 11, 326}, dictWord{135, 11, 1770}, dictWord{5, 11, 426}, dictWord{8, 11, 30}, dictWord{9, 11, 2}, dictWord{11, 11, 549}, dictWord{147, 11, 122}, dictWord{135, 10, 2039}, dictWord{6, 10, 540}, dictWord{ 136, 10, 136, }, dictWord{4, 0, 573}, dictWord{8, 0, 655}, dictWord{4, 10, 897}, dictWord{133, 10, 786}, dictWord{7, 0, 351}, dictWord{139, 0, 128}, dictWord{ 133, 10, 999, }, dictWord{4, 10, 299}, dictWord{135, 10, 1004}, dictWord{133, 0, 918}, dictWord{132, 11, 345}, dictWord{4, 11, 385}, dictWord{7, 11, 265}, dictWord{135, 11, 587}, dictWord{133, 10, 456}, dictWord{136, 10, 180}, dictWord{6, 0, 687}, dictWord{134, 0, 1537}, dictWord{4, 11, 347}, dictWord{ 5, 11, 423, }, dictWord{5, 11, 996}, dictWord{135, 11, 1329}, dictWord{132, 10, 755}, dictWord{7, 11, 1259}, dictWord{9, 11, 125}, dictWord{11, 11, 65}, dictWord{140, 11, 285}, dictWord{5, 11, 136}, dictWord{6, 11, 136}, dictWord{136, 11, 644}, dictWord{134, 0, 1525}, dictWord{4, 0, 1009}, dictWord{ 135, 0, 1139, }, dictWord{139, 10, 338}, dictWord{132, 0, 340}, dictWord{135, 10, 1464}, dictWord{8, 0, 847}, dictWord{10, 0, 861}, dictWord{10, 0, 876}, dictWord{ 10, 0, 889, }, dictWord{10, 0, 922}, dictWord{10, 0, 929}, dictWord{10, 0, 933}, dictWord{12, 0, 784}, dictWord{140, 0, 791}, dictWord{139, 0, 176}, dictWord{ 9, 11, 134, }, dictWord{10, 11, 2}, dictWord{10, 11, 27}, dictWord{10, 11, 333}, dictWord{11, 11, 722}, dictWord{143, 11, 1}, dictWord{4, 11, 433}, dictWord{ 133, 11, 719, }, dictWord{5, 0, 985}, dictWord{7, 0, 509}, dictWord{7, 0, 529}, dictWord{145, 0, 96}, dictWord{132, 0, 615}, dictWord{4, 10, 890}, dictWord{ 5, 10, 805, }, dictWord{5, 10, 819}, dictWord{5, 10, 961}, dictWord{6, 10, 396}, dictWord{6, 10, 1631}, dictWord{6, 10, 1678}, dictWord{7, 10, 1967}, dictWord{ 7, 10, 2041, }, dictWord{9, 10, 630}, dictWord{11, 10, 8}, dictWord{11, 10, 1019}, dictWord{12, 10, 176}, dictWord{13, 10, 225}, dictWord{14, 10, 292}, dictWord{ 149, 10, 24, }, dictWord{135, 0, 1919}, dictWord{134, 0, 1131}, dictWord{144, 11, 21}, dictWord{144, 11, 51}, dictWord{135, 10, 1815}, dictWord{4, 0, 247}, dictWord{7, 10, 1505}, dictWord{10, 10, 190}, dictWord{10, 10, 634}, dictWord{11, 10, 792}, dictWord{12, 10, 358}, dictWord{140, 10, 447}, dictWord{ 5, 10, 0, }, dictWord{6, 10, 536}, dictWord{7, 10, 604}, dictWord{13, 10, 445}, dictWord{145, 10, 126}, dictWord{4, 0, 184}, dictWord{5, 0, 390}, dictWord{6, 0, 337}, dictWord{7, 0, 23}, dictWord{7, 0, 494}, dictWord{7, 0, 618}, dictWord{7, 0, 1456}, dictWord{8, 0, 27}, dictWord{8, 0, 599}, dictWord{10, 0, 153}, dictWord{ 139, 0, 710, }, dictWord{6, 10, 232}, dictWord{6, 10, 412}, dictWord{7, 10, 1074}, dictWord{8, 10, 9}, dictWord{8, 10, 157}, dictWord{8, 10, 786}, dictWord{9, 10, 196}, dictWord{9, 10, 352}, dictWord{9, 10, 457}, dictWord{10, 10, 337}, dictWord{11, 10, 232}, dictWord{11, 10, 877}, dictWord{12, 10, 480}, dictWord{ 140, 10, 546, }, dictWord{13, 0, 38}, dictWord{135, 10, 958}, dictWord{4, 10, 382}, dictWord{136, 10, 579}, dictWord{4, 10, 212}, dictWord{135, 10, 1206}, dictWord{ 4, 11, 555, }, dictWord{8, 11, 536}, dictWord{138, 11, 288}, dictWord{11, 11, 139}, dictWord{139, 11, 171}, dictWord{9, 11, 370}, dictWord{138, 11, 90}, dictWord{132, 0, 1015}, dictWord{134, 0, 1088}, dictWord{5, 10, 655}, dictWord{135, 11, 977}, dictWord{134, 0, 1585}, dictWord{17, 10, 67}, dictWord{ 147, 10, 74, }, dictWord{10, 0, 227}, dictWord{11, 0, 497}, dictWord{11, 0, 709}, dictWord{140, 0, 415}, dictWord{6, 0, 360}, dictWord{7, 0, 1664}, dictWord{ 136, 0, 478, }, dictWord{7, 0, 95}, dictWord{6, 10, 231}, dictWord{136, 10, 423}, dictWord{140, 11, 65}, dictWord{4, 11, 257}, dictWord{135, 11, 2031}, dictWord{ 135, 11, 1768, }, dictWord{133, 10, 300}, dictWord{139, 11, 211}, dictWord{136, 0, 699}, dictWord{6, 10, 237}, dictWord{7, 10, 611}, dictWord{8, 10, 100}, dictWord{9, 10, 416}, dictWord{11, 10, 335}, dictWord{12, 10, 173}, dictWord{146, 10, 101}, dictWord{14, 0, 26}, dictWord{146, 0, 150}, dictWord{6, 0, 581}, dictWord{135, 0, 1119}, dictWord{135, 10, 1208}, dictWord{132, 0, 739}, dictWord{6, 11, 83}, dictWord{6, 11, 1733}, dictWord{135, 11, 1389}, dictWord{ 137, 0, 869, }, dictWord{4, 0, 67}, dictWord{5, 0, 422}, dictWord{7, 0, 1037}, dictWord{7, 0, 1289}, dictWord{7, 0, 1555}, dictWord{9, 0, 741}, dictWord{145, 0, 108}, dictWord{133, 10, 199}, dictWord{12, 10, 427}, dictWord{146, 10, 38}, dictWord{136, 0, 464}, dictWord{142, 0, 42}, dictWord{10, 0, 96}, dictWord{8, 11, 501}, dictWord{137, 11, 696}, dictWord{134, 11, 592}, dictWord{4, 0, 512}, dictWord{4, 0, 966}, dictWord{5, 0, 342}, dictWord{6, 0, 1855}, dictWord{8, 0, 869}, dictWord{8, 0, 875}, dictWord{8, 0, 901}, dictWord{144, 0, 26}, dictWord{8, 0, 203}, dictWord{11, 0, 823}, dictWord{11, 0, 846}, dictWord{12, 0, 482}, dictWord{ 13, 0, 277, }, dictWord{13, 0, 302}, dictWord{13, 0, 464}, dictWord{14, 0, 205}, dictWord{142, 0, 221}, dictWord{4, 0, 449}, dictWord{133, 0, 718}, dictWord{ 7, 11, 1718, }, dictWord{9, 11, 95}, dictWord{9, 11, 274}, dictWord{10, 11, 279}, dictWord{10, 11, 317}, dictWord{10, 11, 420}, dictWord{11, 11, 303}, dictWord{ 11, 11, 808, }, dictWord{12, 11, 134}, dictWord{12, 11, 367}, dictWord{13, 11, 149}, dictWord{13, 11, 347}, dictWord{14, 11, 349}, dictWord{14, 11, 406}, dictWord{18, 11, 22}, dictWord{18, 11, 89}, dictWord{18, 11, 122}, dictWord{147, 11, 47}, dictWord{133, 11, 26}, dictWord{4, 0, 355}, dictWord{6, 0, 311}, dictWord{ 9, 0, 256, }, dictWord{138, 0, 404}, dictWord{132, 11, 550}, dictWord{10, 0, 758}, dictWord{6, 10, 312}, dictWord{6, 10, 1715}, dictWord{10, 10, 584}, dictWord{11, 10, 546}, dictWord{11, 10, 692}, dictWord{12, 10, 259}, dictWord{12, 10, 295}, dictWord{13, 10, 46}, dictWord{141, 10, 154}, dictWord{ 136, 11, 822, }, dictWord{5, 0, 827}, dictWord{4, 11, 902}, dictWord{5, 11, 809}, dictWord{6, 11, 122}, dictWord{135, 11, 896}, dictWord{5, 0, 64}, dictWord{140, 0, 581}, dictWord{4, 0, 442}, dictWord{6, 0, 739}, dictWord{7, 0, 1047}, dictWord{7, 0, 1352}, dictWord{7, 0, 1643}, dictWord{7, 11, 1911}, dictWord{9, 11, 449}, dictWord{10, 11, 192}, dictWord{138, 11, 740}, dictWord{135, 11, 262}, dictWord{132, 10, 588}, dictWord{133, 11, 620}, dictWord{5, 0, 977}, dictWord{ 6, 0, 288, }, dictWord{7, 0, 528}, dictWord{4, 11, 34}, dictWord{5, 11, 574}, dictWord{7, 11, 279}, dictWord{7, 11, 1624}, dictWord{136, 11, 601}, dictWord{ 6, 0, 1375, }, dictWord{4, 10, 231}, dictWord{5, 10, 61}, dictWord{6, 10, 104}, dictWord{7, 10, 729}, dictWord{7, 10, 964}, dictWord{7, 10, 1658}, dictWord{ 140, 10, 414, }, dictWord{6, 10, 263}, dictWord{138, 10, 757}, dictWord{132, 10, 320}, dictWord{4, 0, 254}, dictWord{7, 0, 1309}, dictWord{5, 11, 332}, dictWord{ 135, 11, 1309, }, dictWord{6, 11, 261}, dictWord{8, 11, 182}, dictWord{139, 11, 943}, dictWord{132, 10, 225}, dictWord{6, 0, 12}, dictWord{135, 0, 1219}, dictWord{4, 0, 275}, dictWord{12, 0, 376}, dictWord{6, 11, 1721}, dictWord{141, 11, 490}, dictWord{4, 11, 933}, dictWord{133, 11, 880}, dictWord{6, 0, 951}, dictWord{6, 0, 1109}, dictWord{6, 0, 1181}, dictWord{7, 0, 154}, dictWord{4, 10, 405}, dictWord{7, 10, 817}, dictWord{14, 10, 58}, dictWord{17, 10, 37}, dictWord{ 146, 10, 124, }, dictWord{6, 0, 1520}, dictWord{133, 10, 974}, dictWord{134, 0, 1753}, dictWord{6, 0, 369}, dictWord{6, 0, 502}, dictWord{7, 0, 1036}, dictWord{ 8, 0, 348, }, dictWord{9, 0, 452}, dictWord{10, 0, 26}, dictWord{11, 0, 224}, dictWord{11, 0, 387}, dictWord{11, 0, 772}, dictWord{12, 0, 95}, dictWord{12, 0, 629}, dictWord{13, 0, 195}, dictWord{13, 0, 207}, dictWord{13, 0, 241}, dictWord{14, 0, 260}, dictWord{14, 0, 270}, dictWord{143, 0, 140}, dictWord{132, 0, 269}, dictWord{5, 0, 480}, dictWord{7, 0, 532}, dictWord{7, 0, 1197}, dictWord{7, 0, 1358}, dictWord{8, 0, 291}, dictWord{11, 0, 349}, dictWord{142, 0, 396}, dictWord{ 5, 10, 235, }, dictWord{7, 10, 1239}, dictWord{11, 10, 131}, dictWord{140, 10, 370}, dictWord{7, 10, 956}, dictWord{7, 10, 1157}, dictWord{7, 10, 1506}, dictWord{ 7, 10, 1606, }, dictWord{7, 10, 1615}, dictWord{7, 10, 1619}, dictWord{7, 10, 1736}, dictWord{7, 10, 1775}, dictWord{8, 10, 590}, dictWord{9, 10, 324}, dictWord{9, 10, 736}, dictWord{9, 10, 774}, dictWord{9, 10, 776}, dictWord{9, 10, 784}, dictWord{10, 10, 567}, dictWord{10, 10, 708}, dictWord{11, 10, 518}, dictWord{11, 10, 613}, dictWord{11, 10, 695}, dictWord{11, 10, 716}, dictWord{11, 10, 739}, dictWord{11, 10, 770}, dictWord{11, 10, 771}, dictWord{ 11, 10, 848, }, dictWord{11, 10, 857}, dictWord{11, 10, 931}, dictWord{11, 10, 947}, dictWord{12, 10, 326}, dictWord{12, 10, 387}, dictWord{12, 10, 484}, dictWord{ 12, 10, 528, }, dictWord{12, 10, 552}, dictWord{12, 10, 613}, dictWord{13, 10, 189}, dictWord{13, 10, 256}, dictWord{13, 10, 340}, dictWord{13, 10, 432}, dictWord{13, 10, 436}, dictWord{13, 10, 440}, dictWord{13, 10, 454}, dictWord{14, 10, 174}, dictWord{14, 10, 220}, dictWord{14, 10, 284}, dictWord{ 14, 10, 390, }, dictWord{145, 10, 121}, dictWord{8, 11, 598}, dictWord{9, 11, 664}, dictWord{138, 11, 441}, dictWord{9, 10, 137}, dictWord{138, 10, 221}, dictWord{133, 11, 812}, dictWord{148, 0, 15}, dictWord{134, 0, 1341}, dictWord{6, 0, 1017}, dictWord{4, 11, 137}, dictWord{7, 11, 1178}, dictWord{ 135, 11, 1520, }, dictWord{7, 10, 390}, dictWord{138, 10, 140}, dictWord{7, 11, 1260}, dictWord{135, 11, 1790}, dictWord{137, 11, 191}, dictWord{ 135, 10, 1144, }, dictWord{6, 0, 1810}, dictWord{7, 0, 657}, dictWord{8, 0, 886}, dictWord{10, 0, 857}, dictWord{14, 0, 440}, dictWord{144, 0, 96}, dictWord{8, 0, 533}, dictWord{6, 11, 1661}, dictWord{7, 11, 1975}, dictWord{7, 11, 2009}, dictWord{135, 11, 2011}, dictWord{6, 0, 1453}, dictWord{134, 10, 464}, dictWord{ 132, 11, 715, }, dictWord{5, 10, 407}, dictWord{11, 10, 204}, dictWord{11, 10, 243}, dictWord{11, 10, 489}, dictWord{12, 10, 293}, dictWord{19, 10, 37}, dictWord{20, 10, 73}, dictWord{150, 10, 38}, dictWord{133, 11, 703}, dictWord{4, 0, 211}, dictWord{7, 0, 1483}, dictWord{5, 10, 325}, dictWord{8, 10, 5}, dictWord{ 8, 10, 227, }, dictWord{9, 10, 105}, dictWord{10, 10, 585}, dictWord{140, 10, 614}, dictWord{4, 0, 332}, dictWord{5, 0, 335}, dictWord{6, 0, 238}, dictWord{ 7, 0, 269, }, dictWord{7, 0, 811}, dictWord{7, 0, 1797}, dictWord{8, 0, 836}, dictWord{9, 0, 507}, dictWord{141, 0, 242}, dictWord{5, 11, 89}, dictWord{7, 11, 1915}, dictWord{9, 11, 185}, dictWord{9, 11, 235}, dictWord{9, 11, 496}, dictWord{10, 11, 64}, dictWord{10, 11, 270}, dictWord{10, 11, 403}, dictWord{10, 11, 469}, dictWord{10, 11, 529}, dictWord{10, 11, 590}, dictWord{11, 11, 140}, dictWord{11, 11, 860}, dictWord{13, 11, 1}, dictWord{13, 11, 422}, dictWord{14, 11, 341}, dictWord{14, 11, 364}, dictWord{17, 11, 93}, dictWord{18, 11, 113}, dictWord{19, 11, 97}, dictWord{147, 11, 113}, dictWord{133, 11, 695}, dictWord{ 16, 0, 19, }, dictWord{5, 11, 6}, dictWord{6, 11, 183}, dictWord{6, 10, 621}, dictWord{7, 11, 680}, dictWord{7, 11, 978}, dictWord{7, 11, 1013}, dictWord{7, 11, 1055}, dictWord{12, 11, 230}, dictWord{13, 11, 172}, dictWord{13, 10, 504}, dictWord{146, 11, 29}, dictWord{136, 0, 156}, dictWord{133, 0, 1009}, dictWord{ 6, 11, 29, }, dictWord{139, 11, 63}, dictWord{134, 0, 820}, dictWord{134, 10, 218}, dictWord{7, 10, 454}, dictWord{7, 10, 782}, dictWord{8, 10, 768}, dictWord{ 140, 10, 686, }, dictWord{5, 0, 228}, dictWord{6, 0, 203}, dictWord{7, 0, 156}, dictWord{8, 0, 347}, dictWord{9, 0, 265}, dictWord{18, 0, 39}, dictWord{20, 0, 54}, dictWord{21, 0, 31}, dictWord{22, 0, 3}, dictWord{23, 0, 0}, dictWord{15, 11, 8}, dictWord{18, 11, 39}, dictWord{20, 11, 54}, dictWord{21, 11, 31}, dictWord{22, 11, 3}, dictWord{151, 11, 0}, dictWord{7, 0, 1131}, dictWord{135, 0, 1468}, dictWord{144, 10, 0}, dictWord{134, 0, 1276}, dictWord{10, 10, 676}, dictWord{ 140, 10, 462, }, dictWord{132, 11, 311}, dictWord{134, 11, 1740}, dictWord{7, 11, 170}, dictWord{8, 11, 90}, dictWord{8, 11, 177}, dictWord{8, 11, 415}, dictWord{ 11, 11, 714, }, dictWord{142, 11, 281}, dictWord{134, 10, 164}, dictWord{6, 0, 1792}, dictWord{138, 0, 849}, dictWord{150, 10, 50}, dictWord{5, 0, 291}, dictWord{5, 0, 318}, dictWord{7, 0, 765}, dictWord{9, 0, 389}, dictWord{12, 0, 548}, dictWord{8, 11, 522}, dictWord{142, 11, 328}, dictWord{11, 11, 91}, dictWord{ 13, 11, 129, }, dictWord{15, 11, 101}, dictWord{145, 11, 125}, dictWord{4, 11, 494}, dictWord{6, 11, 74}, dictWord{7, 11, 44}, dictWord{7, 11, 407}, dictWord{ 8, 11, 551, }, dictWord{12, 11, 17}, dictWord{15, 11, 5}, dictWord{148, 11, 11}, dictWord{4, 11, 276}, dictWord{133, 11, 296}, dictWord{6, 10, 343}, dictWord{ 7, 10, 195, }, dictWord{7, 11, 1777}, dictWord{9, 10, 226}, dictWord{10, 10, 197}, dictWord{10, 10, 575}, dictWord{11, 10, 502}, dictWord{139, 10, 899}, dictWord{ 10, 0, 525, }, dictWord{139, 0, 82}, dictWord{14, 0, 453}, dictWord{4, 11, 7}, dictWord{5, 11, 90}, dictWord{5, 11, 158}, dictWord{6, 11, 542}, dictWord{7, 11, 221}, dictWord{7, 11, 1574}, dictWord{9, 11, 490}, dictWord{10, 11, 540}, dictWord{11, 11, 443}, dictWord{139, 11, 757}, dictWord{135, 0, 666}, dictWord{ 22, 10, 29, }, dictWord{150, 11, 29}, dictWord{4, 0, 422}, dictWord{147, 10, 8}, dictWord{5, 0, 355}, dictWord{145, 0, 0}, dictWord{6, 0, 1873}, dictWord{9, 0, 918}, dictWord{7, 11, 588}, dictWord{9, 11, 175}, dictWord{138, 11, 530}, dictWord{143, 11, 31}, dictWord{11, 0, 165}, dictWord{7, 10, 1125}, dictWord{9, 10, 143}, dictWord{14, 10, 405}, dictWord{150, 10, 21}, dictWord{9, 0, 260}, dictWord{137, 0, 905}, dictWord{5, 11, 872}, dictWord{6, 11, 57}, dictWord{6, 11, 479}, dictWord{ 6, 11, 562, }, dictWord{7, 11, 471}, dictWord{7, 11, 1060}, dictWord{9, 11, 447}, dictWord{9, 11, 454}, dictWord{141, 11, 6}, dictWord{138, 11, 704}, dictWord{133, 0, 865}, dictWord{5, 0, 914}, dictWord{134, 0, 1625}, dictWord{133, 0, 234}, dictWord{7, 0, 1383}, dictWord{5, 11, 31}, dictWord{6, 11, 614}, dictWord{145, 11, 61}, dictWord{7, 11, 1200}, dictWord{138, 11, 460}, dictWord{6, 11, 424}, dictWord{135, 11, 1866}, dictWord{136, 0, 306}, dictWord{ 5, 10, 959, }, dictWord{12, 11, 30}, dictWord{13, 11, 148}, dictWord{14, 11, 87}, dictWord{14, 11, 182}, dictWord{16, 11, 42}, dictWord{18, 11, 92}, dictWord{ 148, 11, 70, }, dictWord{6, 0, 1919}, dictWord{6, 0, 1921}, dictWord{9, 0, 923}, dictWord{9, 0, 930}, dictWord{9, 0, 941}, dictWord{9, 0, 949}, dictWord{9, 0, 987}, dictWord{ 9, 0, 988, }, dictWord{9, 0, 992}, dictWord{12, 0, 802}, dictWord{12, 0, 815}, dictWord{12, 0, 856}, dictWord{12, 0, 885}, dictWord{12, 0, 893}, dictWord{ 12, 0, 898, }, dictWord{12, 0, 919}, dictWord{12, 0, 920}, dictWord{12, 0, 941}, dictWord{12, 0, 947}, dictWord{15, 0, 183}, dictWord{15, 0, 185}, dictWord{15, 0, 189}, dictWord{15, 0, 197}, dictWord{15, 0, 202}, dictWord{15, 0, 233}, dictWord{18, 0, 218}, dictWord{18, 0, 219}, dictWord{18, 0, 233}, dictWord{143, 11, 156}, dictWord{135, 10, 1759}, dictWord{136, 10, 173}, dictWord{13, 0, 163}, dictWord{13, 0, 180}, dictWord{18, 0, 78}, dictWord{20, 0, 35}, dictWord{5, 11, 13}, dictWord{134, 11, 142}, dictWord{134, 10, 266}, dictWord{6, 11, 97}, dictWord{7, 11, 116}, dictWord{8, 11, 322}, dictWord{8, 11, 755}, dictWord{9, 11, 548}, dictWord{10, 11, 714}, dictWord{11, 11, 884}, dictWord{141, 11, 324}, dictWord{135, 0, 1312}, dictWord{9, 0, 814}, dictWord{137, 11, 676}, dictWord{ 133, 0, 707, }, dictWord{135, 0, 1493}, dictWord{6, 0, 421}, dictWord{7, 0, 61}, dictWord{7, 0, 1540}, dictWord{10, 0, 11}, dictWord{138, 0, 501}, dictWord{12, 0, 733}, dictWord{12, 0, 766}, dictWord{7, 11, 866}, dictWord{135, 11, 1163}, dictWord{137, 0, 341}, dictWord{142, 0, 98}, dictWord{145, 11, 115}, dictWord{ 135, 11, 1111, }, dictWord{136, 10, 300}, dictWord{136, 0, 1014}, dictWord{8, 11, 1}, dictWord{9, 11, 112}, dictWord{138, 11, 326}, dictWord{132, 11, 730}, dictWord{5, 11, 488}, dictWord{6, 11, 527}, dictWord{7, 11, 489}, dictWord{7, 11, 1636}, dictWord{8, 11, 121}, dictWord{8, 11, 144}, dictWord{8, 11, 359}, dictWord{ 9, 11, 193, }, dictWord{9, 11, 241}, dictWord{9, 11, 336}, dictWord{9, 11, 882}, dictWord{11, 11, 266}, dictWord{11, 11, 372}, dictWord{11, 11, 944}, dictWord{ 12, 11, 401, }, dictWord{140, 11, 641}, dictWord{6, 0, 971}, dictWord{134, 0, 1121}, dictWord{6, 0, 102}, dictWord{7, 0, 72}, dictWord{15, 0, 142}, dictWord{ 147, 0, 67, }, dictWord{151, 0, 30}, dictWord{135, 0, 823}, dictWord{134, 0, 1045}, dictWord{5, 10, 427}, dictWord{5, 10, 734}, dictWord{7, 10, 478}, dictWord{ 136, 10, 52, }, dictWord{7, 0, 1930}, dictWord{11, 10, 217}, dictWord{142, 10, 165}, dictWord{6, 0, 1512}, dictWord{135, 0, 1870}, dictWord{9, 11, 31}, dictWord{ 10, 11, 244, }, dictWord{10, 11, 699}, dictWord{12, 11, 149}, dictWord{141, 11, 497}, dictWord{133, 11, 377}, dictWord{145, 11, 101}, dictWord{ 10, 11, 158, }, dictWord{13, 11, 13}, dictWord{13, 11, 137}, dictWord{13, 11, 258}, dictWord{14, 11, 111}, dictWord{14, 11, 225}, dictWord{14, 11, 253}, dictWord{ 14, 11, 304, }, dictWord{14, 11, 339}, dictWord{14, 11, 417}, dictWord{146, 11, 33}, dictWord{6, 0, 87}, dictWord{6, 10, 1734}, dictWord{7, 10, 20}, dictWord{ 7, 10, 1056, }, dictWord{8, 10, 732}, dictWord{9, 10, 406}, dictWord{9, 10, 911}, dictWord{138, 10, 694}, dictWord{134, 0, 1243}, dictWord{137, 0, 245}, dictWord{ 7, 0, 68, }, dictWord{8, 0, 48}, dictWord{8, 0, 88}, dictWord{8, 0, 582}, dictWord{8, 0, 681}, dictWord{9, 0, 373}, dictWord{9, 0, 864}, dictWord{11, 0, 157}, dictWord{ 11, 0, 336, }, dictWord{11, 0, 843}, dictWord{148, 0, 27}, dictWord{8, 11, 663}, dictWord{144, 11, 8}, dictWord{133, 10, 613}, dictWord{4, 0, 88}, dictWord{ 5, 0, 137, }, dictWord{5, 0, 174}, dictWord{5, 0, 777}, dictWord{6, 0, 1664}, dictWord{6, 0, 1725}, dictWord{7, 0, 77}, dictWord{7, 0, 426}, dictWord{7, 0, 1317}, dictWord{ 7, 0, 1355, }, dictWord{8, 0, 126}, dictWord{8, 0, 563}, dictWord{9, 0, 523}, dictWord{9, 0, 750}, dictWord{10, 0, 310}, dictWord{10, 0, 836}, dictWord{11, 0, 42}, dictWord{11, 0, 318}, dictWord{11, 0, 731}, dictWord{12, 0, 68}, dictWord{12, 0, 92}, dictWord{12, 0, 507}, dictWord{12, 0, 692}, dictWord{13, 0, 81}, dictWord{ 13, 0, 238, }, dictWord{13, 0, 374}, dictWord{14, 0, 436}, dictWord{18, 0, 138}, dictWord{19, 0, 78}, dictWord{19, 0, 111}, dictWord{20, 0, 55}, dictWord{20, 0, 77}, dictWord{148, 0, 92}, dictWord{141, 0, 418}, dictWord{4, 0, 938}, dictWord{137, 0, 625}, dictWord{138, 0, 351}, dictWord{5, 11, 843}, dictWord{7, 10, 32}, dictWord{ 7, 10, 984, }, dictWord{8, 10, 85}, dictWord{8, 10, 709}, dictWord{9, 10, 579}, dictWord{9, 10, 847}, dictWord{9, 10, 856}, dictWord{10, 10, 799}, dictWord{ 11, 10, 258, }, dictWord{11, 10, 1007}, dictWord{12, 10, 331}, dictWord{12, 10, 615}, dictWord{13, 10, 188}, dictWord{13, 10, 435}, dictWord{14, 10, 8}, dictWord{ 15, 10, 165, }, dictWord{16, 10, 27}, dictWord{148, 10, 40}, dictWord{6, 0, 1668}, dictWord{7, 0, 1499}, dictWord{8, 0, 117}, dictWord{9, 0, 314}, dictWord{ 138, 0, 174, }, dictWord{135, 0, 707}, dictWord{132, 11, 554}, dictWord{133, 11, 536}, dictWord{5, 0, 403}, dictWord{5, 11, 207}, dictWord{9, 11, 79}, dictWord{ 11, 11, 625, }, dictWord{145, 11, 7}, dictWord{132, 11, 424}, dictWord{136, 11, 785}, dictWord{4, 10, 167}, dictWord{135, 10, 82}, dictWord{9, 0, 7}, dictWord{ 23, 0, 6, }, dictWord{9, 11, 7}, dictWord{151, 11, 6}, dictWord{6, 0, 282}, dictWord{5, 10, 62}, dictWord{6, 10, 534}, dictWord{7, 10, 74}, dictWord{7, 10, 678}, dictWord{ 7, 10, 684, }, dictWord{7, 10, 1043}, dictWord{7, 10, 1072}, dictWord{8, 10, 280}, dictWord{8, 10, 541}, dictWord{8, 10, 686}, dictWord{9, 10, 258}, dictWord{ 10, 10, 519, }, dictWord{11, 10, 252}, dictWord{140, 10, 282}, dictWord{138, 10, 33}, dictWord{132, 10, 359}, dictWord{4, 0, 44}, dictWord{5, 0, 311}, dictWord{ 6, 0, 156, }, dictWord{7, 0, 639}, dictWord{7, 0, 762}, dictWord{7, 0, 1827}, dictWord{9, 0, 8}, dictWord{9, 0, 462}, dictWord{148, 0, 83}, dictWord{7, 11, 769}, dictWord{ 9, 11, 18, }, dictWord{138, 11, 358}, dictWord{4, 0, 346}, dictWord{7, 0, 115}, dictWord{9, 0, 180}, dictWord{9, 0, 456}, dictWord{10, 0, 363}, dictWord{ 4, 11, 896, }, dictWord{134, 11, 1777}, dictWord{133, 10, 211}, dictWord{7, 0, 761}, dictWord{7, 0, 1051}, dictWord{137, 0, 545}, dictWord{6, 10, 145}, dictWord{ 141, 10, 336, }, dictWord{7, 11, 750}, dictWord{9, 11, 223}, dictWord{11, 11, 27}, dictWord{11, 11, 466}, dictWord{12, 11, 624}, dictWord{14, 11, 265}, dictWord{146, 11, 61}, dictWord{6, 0, 752}, dictWord{6, 0, 768}, dictWord{6, 0, 1195}, dictWord{6, 0, 1254}, dictWord{6, 0, 1619}, dictWord{137, 0, 835}, dictWord{ 6, 0, 1936, }, dictWord{8, 0, 930}, dictWord{136, 0, 960}, dictWord{132, 10, 263}, dictWord{132, 11, 249}, dictWord{12, 0, 653}, dictWord{132, 10, 916}, dictWord{4, 11, 603}, dictWord{133, 11, 661}, dictWord{8, 0, 344}, dictWord{4, 11, 11}, dictWord{6, 11, 128}, dictWord{7, 11, 231}, dictWord{7, 11, 1533}, dictWord{138, 11, 725}, dictWord{134, 0, 1483}, dictWord{134, 0, 875}, dictWord{6, 0, 185}, dictWord{7, 0, 1899}, dictWord{9, 0, 875}, dictWord{139, 0, 673}, dictWord{15, 10, 155}, dictWord{144, 10, 79}, dictWord{7, 0, 93}, dictWord{7, 0, 210}, dictWord{7, 0, 1223}, dictWord{8, 0, 451}, dictWord{8, 0, 460}, dictWord{ 11, 0, 353, }, dictWord{11, 0, 475}, dictWord{4, 10, 599}, dictWord{6, 10, 1634}, dictWord{7, 10, 67}, dictWord{7, 10, 691}, dictWord{7, 10, 979}, dictWord{ 7, 10, 1697, }, dictWord{8, 10, 207}, dictWord{8, 10, 214}, dictWord{8, 10, 231}, dictWord{8, 10, 294}, dictWord{8, 10, 336}, dictWord{8, 10, 428}, dictWord{ 8, 10, 471, }, dictWord{8, 10, 622}, dictWord{8, 10, 626}, dictWord{8, 10, 679}, dictWord{8, 10, 759}, dictWord{8, 10, 829}, dictWord{9, 10, 11}, dictWord{9, 10, 246}, dictWord{9, 10, 484}, dictWord{9, 10, 573}, dictWord{9, 10, 706}, dictWord{9, 10, 762}, dictWord{9, 10, 798}, dictWord{9, 10, 855}, dictWord{9, 10, 870}, dictWord{ 9, 10, 912, }, dictWord{10, 10, 303}, dictWord{10, 10, 335}, dictWord{10, 10, 424}, dictWord{10, 10, 461}, dictWord{10, 10, 543}, dictWord{10, 10, 759}, dictWord{10, 10, 814}, dictWord{11, 10, 59}, dictWord{11, 10, 235}, dictWord{11, 10, 590}, dictWord{11, 10, 929}, dictWord{11, 10, 963}, dictWord{ 11, 10, 987, }, dictWord{12, 10, 114}, dictWord{12, 10, 182}, dictWord{12, 10, 226}, dictWord{12, 10, 332}, dictWord{12, 10, 439}, dictWord{12, 10, 575}, dictWord{ 12, 10, 598, }, dictWord{12, 10, 675}, dictWord{13, 10, 8}, dictWord{13, 10, 125}, dictWord{13, 10, 194}, dictWord{13, 10, 287}, dictWord{14, 10, 197}, dictWord{14, 10, 383}, dictWord{15, 10, 53}, dictWord{17, 10, 63}, dictWord{19, 10, 46}, dictWord{19, 10, 98}, dictWord{19, 10, 106}, dictWord{148, 10, 85}, dictWord{132, 11, 476}, dictWord{4, 0, 327}, dictWord{5, 0, 478}, dictWord{7, 0, 1332}, dictWord{136, 0, 753}, dictWord{5, 0, 1020}, dictWord{133, 0, 1022}, dictWord{135, 11, 1807}, dictWord{4, 0, 103}, dictWord{133, 0, 401}, dictWord{4, 0, 499}, dictWord{135, 0, 1421}, dictWord{10, 0, 207}, dictWord{13, 0, 164}, dictWord{147, 10, 126}, dictWord{9, 11, 20}, dictWord{10, 11, 324}, dictWord{139, 11, 488}, dictWord{132, 0, 96}, dictWord{9, 11, 280}, dictWord{ 138, 11, 134, }, dictWord{135, 0, 968}, dictWord{133, 10, 187}, dictWord{135, 10, 1286}, dictWord{5, 11, 112}, dictWord{6, 11, 103}, dictWord{134, 11, 150}, dictWord{8, 0, 914}, dictWord{10, 0, 3}, dictWord{4, 10, 215}, dictWord{9, 10, 38}, dictWord{11, 10, 23}, dictWord{11, 10, 127}, dictWord{139, 10, 796}, dictWord{ 135, 0, 399, }, dictWord{6, 0, 563}, dictWord{137, 0, 224}, dictWord{6, 0, 704}, dictWord{134, 0, 1214}, dictWord{4, 11, 708}, dictWord{8, 11, 15}, dictWord{ 9, 11, 50, }, dictWord{9, 11, 386}, dictWord{11, 11, 18}, dictWord{11, 11, 529}, dictWord{140, 11, 228}, dictWord{4, 11, 563}, dictWord{7, 11, 109}, dictWord{ 7, 11, 592, }, dictWord{7, 11, 637}, dictWord{7, 11, 770}, dictWord{7, 11, 1701}, dictWord{8, 11, 436}, dictWord{8, 11, 463}, dictWord{9, 11, 60}, dictWord{9, 11, 335}, dictWord{9, 11, 904}, dictWord{10, 11, 73}, dictWord{11, 11, 434}, dictWord{12, 11, 585}, dictWord{13, 11, 331}, dictWord{18, 11, 110}, dictWord{ 148, 11, 60, }, dictWord{134, 0, 1559}, dictWord{132, 11, 502}, dictWord{6, 11, 347}, dictWord{138, 11, 161}, dictWord{4, 11, 33}, dictWord{5, 11, 102}, dictWord{ 5, 11, 500, }, dictWord{6, 11, 284}, dictWord{7, 11, 1079}, dictWord{7, 11, 1423}, dictWord{7, 11, 1702}, dictWord{8, 11, 470}, dictWord{9, 11, 554}, dictWord{ 9, 11, 723, }, dictWord{139, 11, 333}, dictWord{7, 11, 246}, dictWord{135, 11, 840}, dictWord{6, 11, 10}, dictWord{8, 11, 571}, dictWord{9, 11, 739}, dictWord{ 143, 11, 91, }, dictWord{8, 0, 861}, dictWord{10, 0, 905}, dictWord{12, 0, 730}, dictWord{12, 0, 789}, dictWord{133, 11, 626}, dictWord{134, 0, 946}, dictWord{ 5, 0, 746, }, dictWord{12, 0, 333}, dictWord{14, 0, 332}, dictWord{12, 11, 333}, dictWord{142, 11, 332}, dictWord{5, 11, 18}, dictWord{6, 11, 526}, dictWord{ 13, 11, 24, }, dictWord{13, 11, 110}, dictWord{19, 11, 5}, dictWord{147, 11, 44}, dictWord{4, 0, 910}, dictWord{5, 0, 832}, dictWord{135, 10, 2002}, dictWord{ 10, 11, 768, }, dictWord{139, 11, 787}, dictWord{4, 11, 309}, dictWord{5, 11, 462}, dictWord{7, 11, 970}, dictWord{135, 11, 1097}, dictWord{4, 10, 28}, dictWord{ 5, 10, 440, }, dictWord{7, 10, 248}, dictWord{11, 10, 833}, dictWord{140, 10, 344}, dictWord{134, 10, 1654}, dictWord{6, 0, 632}, dictWord{6, 0, 652}, dictWord{ 6, 0, 1272, }, dictWord{6, 0, 1384}, dictWord{134, 0, 1560}, dictWord{134, 11, 1704}, dictWord{6, 0, 1393}, dictWord{133, 10, 853}, dictWord{6, 10, 249}, dictWord{7, 10, 1234}, dictWord{139, 10, 573}, dictWord{5, 11, 86}, dictWord{7, 11, 743}, dictWord{9, 11, 85}, dictWord{10, 11, 281}, dictWord{10, 11, 432}, dictWord{11, 11, 490}, dictWord{12, 11, 251}, dictWord{13, 11, 118}, dictWord{14, 11, 378}, dictWord{146, 11, 143}, dictWord{5, 11, 524}, dictWord{ 133, 11, 744, }, dictWord{134, 0, 1514}, dictWord{10, 0, 201}, dictWord{142, 0, 319}, dictWord{7, 0, 717}, dictWord{10, 0, 510}, dictWord{7, 10, 392}, dictWord{ 8, 10, 20, }, dictWord{8, 10, 172}, dictWord{8, 10, 690}, dictWord{9, 10, 383}, dictWord{9, 10, 845}, dictWord{11, 10, 293}, dictWord{11, 10, 832}, dictWord{ 11, 10, 920, }, dictWord{11, 10, 984}, dictWord{141, 10, 221}, dictWord{134, 0, 1381}, dictWord{5, 10, 858}, dictWord{133, 10, 992}, dictWord{8, 0, 528}, dictWord{137, 0, 348}, dictWord{10, 11, 107}, dictWord{140, 11, 436}, dictWord{4, 0, 20}, dictWord{133, 0, 616}, dictWord{134, 0, 1251}, dictWord{ 132, 11, 927, }, dictWord{10, 11, 123}, dictWord{12, 11, 670}, dictWord{13, 11, 371}, dictWord{14, 11, 142}, dictWord{146, 11, 94}, dictWord{134, 0, 1163}, dictWord{ 7, 11, 1149, }, dictWord{137, 11, 156}, dictWord{134, 0, 307}, dictWord{133, 11, 778}, dictWord{7, 0, 1091}, dictWord{135, 0, 1765}, dictWord{ 5, 11, 502, }, dictWord{6, 10, 268}, dictWord{137, 10, 62}, dictWord{8, 11, 196}, dictWord{10, 11, 283}, dictWord{139, 11, 406}, dictWord{4, 0, 26}, dictWord{ 5, 0, 429, }, dictWord{6, 0, 245}, dictWord{7, 0, 704}, dictWord{7, 0, 1379}, dictWord{135, 0, 1474}, dictWord{133, 11, 855}, dictWord{132, 0, 881}, dictWord{ 4, 0, 621, }, dictWord{135, 11, 1596}, dictWord{7, 11, 1400}, dictWord{9, 11, 446}, dictWord{138, 11, 45}, dictWord{6, 0, 736}, dictWord{138, 10, 106}, dictWord{133, 0, 542}, dictWord{134, 0, 348}, dictWord{133, 0, 868}, dictWord{136, 0, 433}, dictWord{135, 0, 1495}, dictWord{138, 0, 771}, dictWord{ 6, 10, 613, }, dictWord{136, 10, 223}, dictWord{138, 0, 215}, dictWord{141, 0, 124}, dictWord{136, 11, 391}, dictWord{135, 11, 172}, dictWord{132, 10, 670}, dictWord{140, 0, 55}, dictWord{9, 10, 40}, dictWord{139, 10, 136}, dictWord{7, 0, 62}, dictWord{147, 0, 112}, dictWord{132, 0, 856}, dictWord{132, 11, 568}, dictWord{12, 0, 270}, dictWord{139, 10, 259}, dictWord{8, 0, 572}, dictWord{137, 0, 698}, dictWord{4, 11, 732}, dictWord{9, 10, 310}, dictWord{137, 10, 682}, dictWord{142, 10, 296}, dictWord{134, 0, 939}, dictWord{136, 11, 733}, dictWord{135, 11, 1435}, dictWord{7, 10, 1401}, dictWord{135, 10, 1476}, dictWord{6, 0, 352}, dictWord{4, 10, 296}, dictWord{7, 10, 401}, dictWord{7, 10, 1410}, dictWord{7, 10, 1594}, dictWord{7, 10, 1674}, dictWord{8, 10, 63}, dictWord{ 8, 10, 660, }, dictWord{137, 10, 74}, dictWord{4, 11, 428}, dictWord{133, 11, 668}, dictWord{4, 10, 139}, dictWord{4, 10, 388}, dictWord{140, 10, 188}, dictWord{7, 11, 2015}, dictWord{140, 11, 665}, dictWord{132, 0, 647}, dictWord{146, 0, 10}, dictWord{138, 0, 220}, dictWord{142, 0, 464}, dictWord{ 132, 0, 109, }, dictWord{134, 0, 1746}, dictWord{6, 0, 515}, dictWord{4, 10, 747}, dictWord{6, 11, 1623}, dictWord{6, 11, 1681}, dictWord{7, 10, 649}, dictWord{ 7, 10, 1479, }, dictWord{135, 10, 1583}, dictWord{133, 10, 232}, dictWord{135, 0, 566}, dictWord{137, 10, 887}, dictWord{4, 0, 40}, dictWord{10, 0, 67}, dictWord{ 11, 0, 117, }, dictWord{11, 0, 768}, dictWord{139, 0, 935}, dictWord{132, 0, 801}, dictWord{7, 0, 992}, dictWord{8, 0, 301}, dictWord{9, 0, 722}, dictWord{ 12, 0, 63, }, dictWord{13, 0, 29}, dictWord{14, 0, 161}, dictWord{143, 0, 18}, dictWord{139, 0, 923}, dictWord{6, 11, 1748}, dictWord{8, 11, 715}, dictWord{9, 11, 802}, dictWord{10, 11, 46}, dictWord{10, 11, 819}, dictWord{13, 11, 308}, dictWord{14, 11, 351}, dictWord{14, 11, 363}, dictWord{146, 11, 67}, dictWord{ 137, 11, 745, }, dictWord{7, 0, 1145}, dictWord{4, 10, 14}, dictWord{7, 10, 1801}, dictWord{10, 10, 748}, dictWord{141, 10, 458}, dictWord{4, 11, 63}, dictWord{ 5, 11, 347, }, dictWord{134, 11, 474}, dictWord{135, 0, 568}, dictWord{4, 10, 425}, dictWord{7, 11, 577}, dictWord{7, 11, 1432}, dictWord{9, 11, 475}, dictWord{ 9, 11, 505, }, dictWord{9, 11, 526}, dictWord{9, 11, 609}, dictWord{9, 11, 689}, dictWord{9, 11, 726}, dictWord{9, 11, 735}, dictWord{9, 11, 738}, dictWord{ 10, 11, 556, }, dictWord{10, 11, 674}, dictWord{10, 11, 684}, dictWord{11, 11, 89}, dictWord{11, 11, 202}, dictWord{11, 11, 272}, dictWord{11, 11, 380}, dictWord{ 11, 11, 415, }, dictWord{11, 11, 505}, dictWord{11, 11, 537}, dictWord{11, 11, 550}, dictWord{11, 11, 562}, dictWord{11, 11, 640}, dictWord{11, 11, 667}, dictWord{11, 11, 688}, dictWord{11, 11, 847}, dictWord{11, 11, 927}, dictWord{11, 11, 930}, dictWord{11, 11, 940}, dictWord{12, 11, 144}, dictWord{ 12, 11, 325, }, dictWord{12, 11, 329}, dictWord{12, 11, 389}, dictWord{12, 11, 403}, dictWord{12, 11, 451}, dictWord{12, 11, 515}, dictWord{12, 11, 604}, dictWord{ 12, 11, 616, }, dictWord{12, 11, 626}, dictWord{13, 11, 66}, dictWord{13, 11, 131}, dictWord{13, 11, 167}, dictWord{13, 11, 236}, dictWord{13, 11, 368}, dictWord{13, 11, 411}, dictWord{13, 11, 434}, dictWord{13, 11, 453}, dictWord{13, 11, 461}, dictWord{13, 11, 474}, dictWord{14, 11, 59}, dictWord{14, 11, 60}, dictWord{14, 11, 139}, dictWord{14, 11, 152}, dictWord{14, 11, 276}, dictWord{14, 11, 353}, dictWord{14, 11, 402}, dictWord{15, 11, 28}, dictWord{ 15, 11, 81, }, dictWord{15, 11, 123}, dictWord{15, 11, 152}, dictWord{18, 11, 136}, dictWord{148, 11, 88}, dictWord{137, 0, 247}, dictWord{135, 11, 1622}, dictWord{ 9, 11, 544, }, dictWord{11, 11, 413}, dictWord{144, 11, 25}, dictWord{4, 0, 645}, dictWord{7, 0, 825}, dictWord{6, 10, 1768}, dictWord{135, 11, 89}, dictWord{140, 0, 328}, dictWord{5, 10, 943}, dictWord{134, 10, 1779}, dictWord{134, 0, 1363}, dictWord{5, 10, 245}, dictWord{6, 10, 576}, dictWord{7, 10, 582}, dictWord{136, 10, 225}, dictWord{134, 0, 1280}, dictWord{5, 11, 824}, dictWord{133, 11, 941}, dictWord{7, 11, 440}, dictWord{8, 11, 230}, dictWord{ 139, 11, 106, }, dictWord{5, 0, 28}, dictWord{6, 0, 204}, dictWord{10, 0, 320}, dictWord{10, 0, 583}, dictWord{13, 0, 502}, dictWord{14, 0, 72}, dictWord{14, 0, 274}, dictWord{14, 0, 312}, dictWord{14, 0, 344}, dictWord{15, 0, 159}, dictWord{16, 0, 62}, dictWord{16, 0, 69}, dictWord{17, 0, 30}, dictWord{18, 0, 42}, dictWord{ 18, 0, 53, }, dictWord{18, 0, 84}, dictWord{18, 0, 140}, dictWord{19, 0, 68}, dictWord{19, 0, 85}, dictWord{20, 0, 5}, dictWord{20, 0, 45}, dictWord{20, 0, 101}, dictWord{ 22, 0, 7, }, dictWord{150, 0, 20}, dictWord{4, 0, 558}, dictWord{6, 0, 390}, dictWord{7, 0, 162}, dictWord{7, 0, 689}, dictWord{9, 0, 360}, dictWord{138, 0, 653}, dictWord{134, 0, 764}, dictWord{6, 0, 862}, dictWord{137, 0, 833}, dictWord{5, 0, 856}, dictWord{6, 0, 1672}, dictWord{6, 0, 1757}, dictWord{134, 0, 1781}, dictWord{ 5, 0, 92, }, dictWord{10, 0, 736}, dictWord{140, 0, 102}, dictWord{6, 0, 1927}, dictWord{6, 0, 1944}, dictWord{8, 0, 924}, dictWord{8, 0, 948}, dictWord{ 10, 0, 967, }, dictWord{138, 0, 978}, dictWord{134, 0, 1479}, dictWord{5, 0, 590}, dictWord{8, 0, 360}, dictWord{9, 0, 213}, dictWord{138, 0, 63}, dictWord{ 134, 0, 1521, }, dictWord{6, 0, 709}, dictWord{134, 0, 891}, dictWord{132, 10, 443}, dictWord{13, 0, 477}, dictWord{14, 0, 120}, dictWord{148, 0, 61}, dictWord{ 4, 11, 914, }, dictWord{5, 11, 800}, dictWord{133, 11, 852}, dictWord{10, 11, 54}, dictWord{141, 11, 115}, dictWord{4, 11, 918}, dictWord{133, 11, 876}, dictWord{139, 11, 152}, dictWord{4, 11, 92}, dictWord{133, 11, 274}, dictWord{135, 11, 1901}, dictWord{9, 11, 800}, dictWord{10, 11, 693}, dictWord{ 11, 11, 482, }, dictWord{11, 11, 734}, dictWord{139, 11, 789}, dictWord{9, 0, 483}, dictWord{132, 10, 298}, dictWord{6, 0, 1213}, dictWord{141, 11, 498}, dictWord{135, 11, 1451}, dictWord{133, 11, 743}, dictWord{4, 0, 1022}, dictWord{10, 0, 1000}, dictWord{12, 0, 957}, dictWord{12, 0, 980}, dictWord{ 12, 0, 1013, }, dictWord{14, 0, 481}, dictWord{144, 0, 116}, dictWord{8, 0, 503}, dictWord{17, 0, 29}, dictWord{4, 11, 49}, dictWord{7, 11, 280}, dictWord{ 135, 11, 1633, }, dictWord{135, 0, 1712}, dictWord{134, 0, 466}, dictWord{136, 11, 47}, dictWord{5, 10, 164}, dictWord{7, 10, 121}, dictWord{142, 10, 189}, dictWord{ 7, 10, 812, }, dictWord{7, 10, 1261}, dictWord{7, 10, 1360}, dictWord{9, 10, 632}, dictWord{140, 10, 352}, dictWord{139, 10, 556}, dictWord{132, 0, 731}, dictWord{5, 11, 272}, dictWord{5, 11, 908}, dictWord{5, 11, 942}, dictWord{7, 11, 1008}, dictWord{7, 11, 1560}, dictWord{8, 11, 197}, dictWord{9, 11, 47}, dictWord{11, 11, 538}, dictWord{139, 11, 742}, dictWord{4, 10, 172}, dictWord{9, 10, 611}, dictWord{10, 10, 436}, dictWord{12, 10, 673}, dictWord{ 141, 10, 255, }, dictWord{133, 10, 844}, dictWord{10, 0, 484}, dictWord{11, 0, 754}, dictWord{12, 0, 457}, dictWord{14, 0, 171}, dictWord{14, 0, 389}, dictWord{ 146, 0, 153, }, dictWord{9, 10, 263}, dictWord{10, 10, 147}, dictWord{138, 10, 492}, dictWord{137, 11, 891}, dictWord{138, 0, 241}, dictWord{133, 10, 537}, dictWord{6, 0, 2005}, dictWord{136, 0, 964}, dictWord{137, 10, 842}, dictWord{151, 11, 8}, dictWord{4, 11, 407}, dictWord{132, 11, 560}, dictWord{ 135, 11, 1884, }, dictWord{6, 0, 1100}, dictWord{134, 0, 1242}, dictWord{135, 0, 954}, dictWord{5, 10, 230}, dictWord{5, 10, 392}, dictWord{6, 10, 420}, dictWord{ 9, 10, 568, }, dictWord{140, 10, 612}, dictWord{4, 11, 475}, dictWord{11, 11, 35}, dictWord{11, 11, 90}, dictWord{13, 11, 7}, dictWord{13, 11, 71}, dictWord{ 13, 11, 177, }, dictWord{142, 11, 422}, dictWord{136, 11, 332}, dictWord{135, 0, 1958}, dictWord{6, 0, 549}, dictWord{8, 0, 34}, dictWord{8, 0, 283}, dictWord{ 9, 0, 165, }, dictWord{138, 0, 475}, dictWord{10, 0, 952}, dictWord{12, 0, 966}, dictWord{140, 0, 994}, dictWord{5, 0, 652}, dictWord{5, 0, 701}, dictWord{ 135, 0, 449, }, dictWord{4, 0, 655}, dictWord{7, 0, 850}, dictWord{17, 0, 75}, dictWord{146, 0, 137}, dictWord{4, 0, 146}, dictWord{7, 0, 1618}, dictWord{8, 0, 670}, dictWord{ 5, 10, 41, }, dictWord{7, 10, 1459}, dictWord{7, 10, 1469}, dictWord{7, 10, 1859}, dictWord{9, 10, 549}, dictWord{139, 10, 905}, dictWord{133, 10, 696}, dictWord{6, 0, 159}, dictWord{6, 0, 364}, dictWord{7, 0, 516}, dictWord{137, 0, 518}, dictWord{135, 0, 1439}, dictWord{6, 11, 222}, dictWord{7, 11, 636}, dictWord{ 7, 11, 1620, }, dictWord{8, 11, 409}, dictWord{9, 11, 693}, dictWord{139, 11, 77}, dictWord{13, 0, 151}, dictWord{141, 11, 45}, dictWord{6, 0, 1027}, dictWord{ 4, 11, 336, }, dictWord{132, 10, 771}, dictWord{139, 11, 392}, dictWord{10, 11, 121}, dictWord{11, 11, 175}, dictWord{149, 11, 16}, dictWord{8, 0, 950}, dictWord{138, 0, 983}, dictWord{133, 10, 921}, dictWord{135, 0, 993}, dictWord{6, 10, 180}, dictWord{7, 10, 1137}, dictWord{8, 10, 751}, dictWord{ 139, 10, 805, }, dictWord{7, 0, 501}, dictWord{9, 0, 111}, dictWord{10, 0, 141}, dictWord{11, 0, 332}, dictWord{13, 0, 43}, dictWord{13, 0, 429}, dictWord{14, 0, 130}, dictWord{14, 0, 415}, dictWord{145, 0, 102}, dictWord{4, 10, 183}, dictWord{5, 11, 882}, dictWord{7, 10, 271}, dictWord{11, 10, 824}, dictWord{11, 10, 952}, dictWord{13, 10, 278}, dictWord{13, 10, 339}, dictWord{13, 10, 482}, dictWord{14, 10, 424}, dictWord{148, 10, 99}, dictWord{4, 10, 19}, dictWord{5, 10, 477}, dictWord{5, 10, 596}, dictWord{6, 10, 505}, dictWord{7, 10, 1221}, dictWord{11, 10, 907}, dictWord{12, 10, 209}, dictWord{141, 10, 214}, dictWord{ 135, 10, 1215, }, dictWord{133, 0, 452}, dictWord{132, 11, 426}, dictWord{5, 0, 149}, dictWord{136, 0, 233}, dictWord{133, 0, 935}, dictWord{6, 11, 58}, dictWord{ 7, 11, 654, }, dictWord{7, 11, 745}, dictWord{7, 11, 1969}, dictWord{8, 11, 240}, dictWord{8, 11, 675}, dictWord{9, 11, 479}, dictWord{9, 11, 731}, dictWord{ 10, 11, 330, }, dictWord{10, 11, 593}, dictWord{10, 11, 817}, dictWord{11, 11, 32}, dictWord{11, 11, 133}, dictWord{11, 11, 221}, dictWord{145, 11, 68}, dictWord{ 12, 0, 582, }, dictWord{18, 0, 131}, dictWord{7, 11, 102}, dictWord{137, 11, 538}, dictWord{136, 0, 801}, dictWord{134, 10, 1645}, dictWord{132, 0, 70}, dictWord{6, 10, 92}, dictWord{6, 10, 188}, dictWord{7, 10, 1269}, dictWord{7, 10, 1524}, dictWord{7, 10, 1876}, dictWord{10, 10, 228}, dictWord{139, 10, 1020}, dictWord{4, 10, 459}, dictWord{133, 10, 966}, dictWord{138, 0, 369}, dictWord{16, 0, 36}, dictWord{140, 10, 330}, dictWord{141, 11, 366}, dictWord{ 7, 0, 721, }, dictWord{10, 0, 236}, dictWord{12, 0, 204}, dictWord{6, 10, 18}, dictWord{7, 10, 932}, dictWord{8, 10, 757}, dictWord{9, 10, 54}, dictWord{9, 10, 65}, dictWord{9, 10, 844}, dictWord{10, 10, 113}, dictWord{10, 10, 315}, dictWord{10, 10, 798}, dictWord{11, 10, 153}, dictWord{12, 10, 151}, dictWord{12, 10, 392}, dictWord{12, 10, 666}, dictWord{142, 10, 248}, dictWord{7, 0, 241}, dictWord{10, 0, 430}, dictWord{8, 10, 548}, dictWord{9, 10, 532}, dictWord{10, 10, 117}, dictWord{11, 10, 351}, dictWord{11, 10, 375}, dictWord{143, 10, 23}, dictWord{134, 10, 1742}, dictWord{133, 10, 965}, dictWord{133, 11, 566}, dictWord{ 6, 11, 48, }, dictWord{135, 11, 63}, dictWord{134, 10, 182}, dictWord{10, 10, 65}, dictWord{10, 10, 488}, dictWord{138, 10, 497}, dictWord{6, 11, 114}, dictWord{7, 11, 1224}, dictWord{7, 11, 1556}, dictWord{136, 11, 3}, dictWord{134, 0, 1817}, dictWord{8, 11, 576}, dictWord{137, 11, 267}, dictWord{ 6, 0, 1078, }, dictWord{144, 0, 16}, dictWord{9, 10, 588}, dictWord{138, 10, 260}, dictWord{138, 0, 1021}, dictWord{5, 0, 406}, dictWord{134, 0, 2022}, dictWord{133, 11, 933}, dictWord{6, 0, 69}, dictWord{135, 0, 117}, dictWord{7, 0, 1830}, dictWord{136, 11, 427}, dictWord{4, 0, 432}, dictWord{135, 0, 824}, dictWord{134, 10, 1786}, dictWord{133, 0, 826}, dictWord{139, 11, 67}, dictWord{133, 11, 759}, dictWord{135, 10, 308}, dictWord{137, 0, 816}, dictWord{ 133, 0, 1000, }, dictWord{4, 0, 297}, dictWord{6, 0, 529}, dictWord{7, 0, 152}, dictWord{7, 0, 713}, dictWord{7, 0, 1845}, dictWord{8, 0, 710}, dictWord{8, 0, 717}, dictWord{12, 0, 639}, dictWord{140, 0, 685}, dictWord{7, 0, 423}, dictWord{136, 10, 588}, dictWord{136, 10, 287}, dictWord{136, 0, 510}, dictWord{ 134, 0, 1048, }, dictWord{6, 0, 618}, dictWord{7, 11, 56}, dictWord{7, 11, 1989}, dictWord{8, 11, 337}, dictWord{8, 11, 738}, dictWord{9, 11, 600}, dictWord{ 10, 11, 483, }, dictWord{12, 11, 37}, dictWord{13, 11, 447}, dictWord{142, 11, 92}, dictWord{4, 0, 520}, dictWord{135, 0, 575}, dictWord{8, 0, 990}, dictWord{ 138, 0, 977, }, dictWord{135, 11, 774}, dictWord{9, 11, 347}, dictWord{11, 11, 24}, dictWord{140, 11, 170}, dictWord{136, 11, 379}, dictWord{140, 10, 290}, dictWord{132, 11, 328}, dictWord{4, 0, 321}, dictWord{134, 0, 569}, dictWord{4, 11, 101}, dictWord{135, 11, 1171}, dictWord{7, 0, 723}, dictWord{7, 0, 1135}, dictWord{5, 11, 833}, dictWord{136, 11, 744}, dictWord{7, 10, 719}, dictWord{8, 10, 809}, dictWord{136, 10, 834}, dictWord{8, 0, 921}, dictWord{136, 10, 796}, dictWord{5, 10, 210}, dictWord{6, 10, 213}, dictWord{7, 10, 60}, dictWord{10, 10, 364}, dictWord{139, 10, 135}, dictWord{5, 0, 397}, dictWord{6, 0, 154}, dictWord{7, 0, 676}, dictWord{8, 0, 443}, dictWord{8, 0, 609}, dictWord{9, 0, 24}, dictWord{9, 0, 325}, dictWord{10, 0, 35}, dictWord{11, 0, 535}, dictWord{11, 0, 672}, dictWord{11, 0, 1018}, dictWord{12, 0, 637}, dictWord{16, 0, 30}, dictWord{5, 10, 607}, dictWord{8, 10, 326}, dictWord{136, 10, 490}, dictWord{4, 10, 701}, dictWord{5, 10, 472}, dictWord{6, 11, 9}, dictWord{6, 11, 397}, dictWord{7, 11, 53}, dictWord{7, 11, 1742}, dictWord{9, 10, 758}, dictWord{10, 11, 632}, dictWord{ 11, 11, 828, }, dictWord{140, 11, 146}, dictWord{135, 10, 380}, dictWord{135, 10, 1947}, dictWord{148, 11, 109}, dictWord{10, 10, 278}, dictWord{ 138, 11, 278, }, dictWord{134, 0, 856}, dictWord{7, 0, 139}, dictWord{4, 10, 386}, dictWord{8, 10, 405}, dictWord{8, 10, 728}, dictWord{9, 10, 497}, dictWord{ 11, 10, 110, }, dictWord{11, 10, 360}, dictWord{15, 10, 37}, dictWord{144, 10, 84}, dictWord{141, 0, 282}, dictWord{133, 0, 981}, dictWord{5, 0, 288}, dictWord{ 7, 10, 1452, }, dictWord{7, 10, 1480}, dictWord{8, 10, 634}, dictWord{140, 10, 472}, dictWord{7, 0, 1890}, dictWord{8, 11, 367}, dictWord{10, 11, 760}, dictWord{ 14, 11, 79, }, dictWord{20, 11, 17}, dictWord{152, 11, 0}, dictWord{4, 10, 524}, dictWord{136, 10, 810}, dictWord{4, 0, 56}, dictWord{7, 0, 1791}, dictWord{ 8, 0, 607, }, dictWord{8, 0, 651}, dictWord{11, 0, 465}, dictWord{11, 0, 835}, dictWord{12, 0, 337}, dictWord{141, 0, 480}, dictWord{10, 10, 238}, dictWord{ 141, 10, 33, }, dictWord{11, 11, 417}, dictWord{12, 11, 223}, dictWord{140, 11, 265}, dictWord{9, 0, 158}, dictWord{10, 0, 411}, dictWord{140, 0, 261}, dictWord{ 133, 10, 532, }, dictWord{133, 10, 997}, dictWord{12, 11, 186}, dictWord{12, 11, 292}, dictWord{14, 11, 100}, dictWord{146, 11, 70}, dictWord{6, 0, 1403}, dictWord{136, 0, 617}, dictWord{134, 0, 1205}, dictWord{139, 0, 563}, dictWord{4, 0, 242}, dictWord{134, 0, 333}, dictWord{4, 11, 186}, dictWord{5, 11, 157}, dictWord{8, 11, 168}, dictWord{138, 11, 6}, dictWord{132, 0, 369}, dictWord{133, 11, 875}, dictWord{5, 10, 782}, dictWord{5, 10, 829}, dictWord{ 134, 10, 1738, }, dictWord{134, 0, 622}, dictWord{135, 11, 1272}, dictWord{6, 0, 1407}, dictWord{7, 11, 111}, dictWord{136, 11, 581}, dictWord{7, 10, 1823}, dictWord{139, 10, 693}, dictWord{7, 0, 160}, dictWord{10, 0, 624}, dictWord{142, 0, 279}, dictWord{132, 0, 363}, dictWord{10, 11, 589}, dictWord{12, 11, 111}, dictWord{13, 11, 260}, dictWord{14, 11, 82}, dictWord{18, 11, 63}, dictWord{147, 11, 45}, dictWord{7, 11, 1364}, dictWord{7, 11, 1907}, dictWord{ 141, 11, 158, }, dictWord{4, 11, 404}, dictWord{4, 11, 659}, dictWord{135, 11, 675}, dictWord{13, 11, 211}, dictWord{14, 11, 133}, dictWord{14, 11, 204}, dictWord{ 15, 11, 64, }, dictWord{15, 11, 69}, dictWord{15, 11, 114}, dictWord{16, 11, 10}, dictWord{19, 11, 23}, dictWord{19, 11, 35}, dictWord{19, 11, 39}, dictWord{ 19, 11, 51, }, dictWord{19, 11, 71}, dictWord{19, 11, 75}, dictWord{152, 11, 15}, dictWord{4, 10, 78}, dictWord{5, 10, 96}, dictWord{5, 10, 182}, dictWord{7, 10, 1724}, dictWord{7, 10, 1825}, dictWord{10, 10, 394}, dictWord{10, 10, 471}, dictWord{11, 10, 532}, dictWord{14, 10, 340}, dictWord{145, 10, 88}, dictWord{ 135, 10, 1964, }, dictWord{133, 11, 391}, dictWord{11, 11, 887}, dictWord{14, 11, 365}, dictWord{142, 11, 375}, dictWord{5, 11, 540}, dictWord{6, 11, 1697}, dictWord{7, 11, 222}, dictWord{136, 11, 341}, dictWord{134, 11, 78}, dictWord{9, 0, 601}, dictWord{9, 0, 619}, dictWord{10, 0, 505}, dictWord{10, 0, 732}, dictWord{11, 0, 355}, dictWord{140, 0, 139}, dictWord{134, 0, 292}, dictWord{139, 0, 174}, dictWord{5, 0, 177}, dictWord{6, 0, 616}, dictWord{7, 0, 827}, dictWord{ 9, 0, 525, }, dictWord{138, 0, 656}, dictWord{10, 0, 31}, dictWord{6, 10, 215}, dictWord{7, 10, 1028}, dictWord{7, 10, 1473}, dictWord{7, 10, 1721}, dictWord{ 9, 10, 424, }, dictWord{138, 10, 779}, dictWord{135, 10, 584}, dictWord{136, 11, 293}, dictWord{134, 0, 685}, dictWord{135, 11, 1868}, dictWord{ 133, 11, 460, }, dictWord{7, 0, 647}, dictWord{6, 10, 67}, dictWord{7, 10, 1630}, dictWord{9, 10, 354}, dictWord{9, 10, 675}, dictWord{10, 10, 830}, dictWord{ 14, 10, 80, }, dictWord{145, 10, 80}, dictWord{4, 0, 161}, dictWord{133, 0, 631}, dictWord{6, 10, 141}, dictWord{7, 10, 225}, dictWord{9, 10, 59}, dictWord{9, 10, 607}, dictWord{10, 10, 312}, dictWord{11, 10, 687}, dictWord{12, 10, 555}, dictWord{13, 10, 373}, dictWord{13, 10, 494}, dictWord{148, 10, 58}, dictWord{ 7, 11, 965, }, dictWord{7, 11, 1460}, dictWord{135, 11, 1604}, dictWord{136, 10, 783}, dictWord{134, 11, 388}, dictWord{6, 0, 722}, dictWord{6, 0, 1267}, dictWord{ 4, 11, 511, }, dictWord{9, 11, 333}, dictWord{9, 11, 379}, dictWord{10, 11, 602}, dictWord{11, 11, 441}, dictWord{11, 11, 723}, dictWord{11, 11, 976}, dictWord{140, 11, 357}, dictWord{134, 0, 1797}, dictWord{135, 0, 1684}, dictWord{9, 0, 469}, dictWord{9, 0, 709}, dictWord{12, 0, 512}, dictWord{14, 0, 65}, dictWord{17, 0, 12}, dictWord{5, 11, 938}, dictWord{136, 11, 707}, dictWord{7, 0, 1230}, dictWord{136, 0, 531}, dictWord{10, 0, 229}, dictWord{11, 0, 73}, dictWord{ 11, 0, 376, }, dictWord{139, 0, 433}, dictWord{12, 0, 268}, dictWord{12, 0, 640}, dictWord{142, 0, 119}, dictWord{7, 10, 430}, dictWord{139, 10, 46}, dictWord{ 6, 0, 558, }, dictWord{7, 0, 651}, dictWord{8, 0, 421}, dictWord{9, 0, 0}, dictWord{10, 0, 34}, dictWord{139, 0, 1008}, dictWord{6, 0, 106}, dictWord{7, 0, 1786}, dictWord{7, 0, 1821}, dictWord{9, 0, 102}, dictWord{9, 0, 763}, dictWord{5, 10, 602}, dictWord{7, 10, 2018}, dictWord{137, 10, 418}, dictWord{5, 0, 65}, dictWord{ 6, 0, 416, }, dictWord{7, 0, 1720}, dictWord{7, 0, 1924}, dictWord{10, 0, 109}, dictWord{11, 0, 14}, dictWord{11, 0, 70}, dictWord{11, 0, 569}, dictWord{11, 0, 735}, dictWord{15, 0, 153}, dictWord{20, 0, 80}, dictWord{136, 10, 677}, dictWord{135, 11, 1625}, dictWord{137, 11, 772}, dictWord{136, 0, 595}, dictWord{ 6, 11, 469, }, dictWord{7, 11, 1709}, dictWord{138, 11, 515}, dictWord{7, 0, 1832}, dictWord{138, 0, 374}, dictWord{9, 0, 106}, dictWord{9, 0, 163}, dictWord{ 9, 0, 296, }, dictWord{10, 0, 167}, dictWord{10, 0, 172}, dictWord{10, 0, 777}, dictWord{139, 0, 16}, dictWord{6, 0, 6}, dictWord{7, 0, 81}, dictWord{7, 0, 771}, dictWord{ 7, 0, 1731, }, dictWord{9, 0, 405}, dictWord{138, 0, 421}, dictWord{4, 11, 500}, dictWord{135, 11, 938}, dictWord{5, 11, 68}, dictWord{134, 11, 383}, dictWord{ 5, 0, 881, }, dictWord{133, 0, 885}, dictWord{6, 0, 854}, dictWord{6, 0, 1132}, dictWord{6, 0, 1495}, dictWord{6, 0, 1526}, dictWord{6, 0, 1533}, dictWord{ 134, 0, 1577, }, dictWord{4, 11, 337}, dictWord{6, 11, 353}, dictWord{7, 11, 1934}, dictWord{8, 11, 488}, dictWord{137, 11, 429}, dictWord{7, 11, 236}, dictWord{ 7, 11, 1795, }, dictWord{8, 11, 259}, dictWord{9, 11, 135}, dictWord{9, 11, 177}, dictWord{10, 11, 825}, dictWord{11, 11, 115}, dictWord{11, 11, 370}, dictWord{ 11, 11, 405, }, dictWord{11, 11, 604}, dictWord{12, 11, 10}, dictWord{12, 11, 667}, dictWord{12, 11, 669}, dictWord{13, 11, 76}, dictWord{14, 11, 310}, dictWord{15, 11, 76}, dictWord{15, 11, 147}, dictWord{148, 11, 23}, dictWord{5, 0, 142}, dictWord{134, 0, 546}, dictWord{4, 11, 15}, dictWord{5, 11, 22}, dictWord{ 6, 11, 244, }, dictWord{7, 11, 40}, dictWord{7, 11, 200}, dictWord{7, 11, 906}, dictWord{7, 11, 1199}, dictWord{9, 11, 616}, dictWord{10, 11, 716}, dictWord{ 11, 11, 635, }, dictWord{11, 11, 801}, dictWord{140, 11, 458}, dictWord{5, 0, 466}, dictWord{11, 0, 571}, dictWord{12, 0, 198}, dictWord{13, 0, 283}, dictWord{ 14, 0, 186, }, dictWord{15, 0, 21}, dictWord{15, 0, 103}, dictWord{135, 10, 329}, dictWord{4, 0, 185}, dictWord{5, 0, 257}, dictWord{5, 0, 839}, dictWord{5, 0, 936}, dictWord{9, 0, 399}, dictWord{10, 0, 258}, dictWord{10, 0, 395}, dictWord{10, 0, 734}, dictWord{11, 0, 1014}, dictWord{12, 0, 23}, dictWord{13, 0, 350}, dictWord{ 14, 0, 150, }, dictWord{19, 0, 6}, dictWord{135, 11, 1735}, dictWord{12, 11, 36}, dictWord{141, 11, 337}, dictWord{5, 11, 598}, dictWord{7, 11, 791}, dictWord{ 8, 11, 108, }, dictWord{137, 11, 123}, dictWord{132, 10, 469}, dictWord{7, 0, 404}, dictWord{7, 0, 1377}, dictWord{7, 0, 1430}, dictWord{7, 0, 2017}, dictWord{ 8, 0, 149, }, dictWord{8, 0, 239}, dictWord{8, 0, 512}, dictWord{8, 0, 793}, dictWord{8, 0, 818}, dictWord{9, 0, 474}, dictWord{9, 0, 595}, dictWord{10, 0, 122}, dictWord{10, 0, 565}, dictWord{10, 0, 649}, dictWord{10, 0, 783}, dictWord{11, 0, 239}, dictWord{11, 0, 295}, dictWord{11, 0, 447}, dictWord{11, 0, 528}, dictWord{ 11, 0, 639, }, dictWord{11, 0, 800}, dictWord{12, 0, 25}, dictWord{12, 0, 77}, dictWord{12, 0, 157}, dictWord{12, 0, 256}, dictWord{12, 0, 316}, dictWord{12, 0, 390}, dictWord{12, 0, 391}, dictWord{12, 0, 395}, dictWord{12, 0, 478}, dictWord{12, 0, 503}, dictWord{12, 0, 592}, dictWord{12, 0, 680}, dictWord{13, 0, 50}, dictWord{13, 0, 53}, dictWord{13, 0, 132}, dictWord{13, 0, 198}, dictWord{13, 0, 322}, dictWord{13, 0, 415}, dictWord{13, 0, 511}, dictWord{14, 0, 71}, dictWord{ 14, 0, 395, }, dictWord{15, 0, 71}, dictWord{15, 0, 136}, dictWord{17, 0, 123}, dictWord{18, 0, 93}, dictWord{147, 0, 58}, dictWord{136, 0, 712}, dictWord{ 134, 10, 1743, }, dictWord{5, 10, 929}, dictWord{6, 10, 340}, dictWord{8, 10, 376}, dictWord{136, 10, 807}, dictWord{6, 0, 1848}, dictWord{8, 0, 860}, dictWord{ 10, 0, 856, }, dictWord{10, 0, 859}, dictWord{10, 0, 925}, dictWord{10, 0, 941}, dictWord{140, 0, 762}, dictWord{6, 0, 629}, dictWord{6, 0, 906}, dictWord{9, 0, 810}, dictWord{140, 0, 652}, dictWord{5, 10, 218}, dictWord{7, 10, 1610}, dictWord{138, 10, 83}, dictWord{7, 10, 1512}, dictWord{135, 10, 1794}, dictWord{ 4, 0, 377, }, dictWord{24, 0, 13}, dictWord{4, 11, 155}, dictWord{7, 11, 1689}, dictWord{11, 10, 0}, dictWord{144, 10, 78}, dictWord{4, 11, 164}, dictWord{5, 11, 151}, dictWord{5, 11, 730}, dictWord{5, 11, 741}, dictWord{7, 11, 498}, dictWord{7, 11, 870}, dictWord{7, 11, 1542}, dictWord{12, 11, 213}, dictWord{14, 11, 36}, dictWord{14, 11, 391}, dictWord{17, 11, 111}, dictWord{18, 11, 6}, dictWord{18, 11, 46}, dictWord{18, 11, 151}, dictWord{19, 11, 36}, dictWord{20, 11, 32}, dictWord{20, 11, 56}, dictWord{20, 11, 69}, dictWord{20, 11, 102}, dictWord{21, 11, 4}, dictWord{22, 11, 8}, dictWord{22, 11, 10}, dictWord{22, 11, 14}, dictWord{ 150, 11, 31, }, dictWord{7, 0, 1842}, dictWord{133, 10, 571}, dictWord{4, 10, 455}, dictWord{4, 11, 624}, dictWord{135, 11, 1752}, dictWord{134, 0, 1501}, dictWord{4, 11, 492}, dictWord{5, 11, 451}, dictWord{6, 10, 161}, dictWord{7, 10, 372}, dictWord{137, 10, 597}, dictWord{132, 10, 349}, dictWord{4, 0, 180}, dictWord{135, 0, 1906}, dictWord{135, 11, 835}, dictWord{141, 11, 70}, dictWord{132, 0, 491}, dictWord{137, 10, 751}, dictWord{6, 10, 432}, dictWord{ 139, 10, 322, }, dictWord{4, 0, 171}, dictWord{138, 0, 234}, dictWord{6, 11, 113}, dictWord{135, 11, 436}, dictWord{4, 0, 586}, dictWord{7, 0, 1186}, dictWord{ 138, 0, 631, }, dictWord{5, 10, 468}, dictWord{10, 10, 325}, dictWord{11, 10, 856}, dictWord{12, 10, 345}, dictWord{143, 10, 104}, dictWord{5, 10, 223}, dictWord{10, 11, 592}, dictWord{10, 11, 753}, dictWord{12, 11, 317}, dictWord{12, 11, 355}, dictWord{12, 11, 465}, dictWord{12, 11, 469}, dictWord{ 12, 11, 560, }, dictWord{12, 11, 578}, dictWord{141, 11, 243}, dictWord{132, 10, 566}, dictWord{135, 11, 520}, dictWord{4, 10, 59}, dictWord{135, 10, 1394}, dictWord{6, 10, 436}, dictWord{139, 10, 481}, dictWord{9, 0, 931}, dictWord{10, 0, 334}, dictWord{20, 0, 71}, dictWord{4, 10, 48}, dictWord{5, 10, 271}, dictWord{ 7, 10, 953, }, dictWord{135, 11, 1878}, dictWord{11, 0, 170}, dictWord{5, 10, 610}, dictWord{136, 10, 457}, dictWord{133, 10, 755}, dictWord{6, 0, 1587}, dictWord{135, 10, 1217}, dictWord{4, 10, 197}, dictWord{149, 11, 26}, dictWord{133, 11, 585}, dictWord{137, 11, 521}, dictWord{133, 0, 765}, dictWord{ 133, 10, 217, }, dictWord{139, 11, 586}, dictWord{133, 0, 424}, dictWord{9, 11, 752}, dictWord{12, 11, 610}, dictWord{13, 11, 431}, dictWord{16, 11, 59}, dictWord{146, 11, 109}, dictWord{136, 0, 714}, dictWord{7, 0, 685}, dictWord{132, 11, 307}, dictWord{9, 0, 420}, dictWord{10, 0, 269}, dictWord{10, 0, 285}, dictWord{10, 0, 576}, dictWord{11, 0, 397}, dictWord{13, 0, 175}, dictWord{145, 0, 90}, dictWord{132, 0, 429}, dictWord{133, 11, 964}, dictWord{9, 11, 463}, dictWord{138, 11, 595}, dictWord{7, 0, 18}, dictWord{7, 0, 699}, dictWord{7, 0, 1966}, dictWord{8, 0, 752}, dictWord{9, 0, 273}, dictWord{9, 0, 412}, dictWord{ 9, 0, 703, }, dictWord{10, 0, 71}, dictWord{10, 0, 427}, dictWord{138, 0, 508}, dictWord{4, 10, 165}, dictWord{7, 10, 1398}, dictWord{135, 10, 1829}, dictWord{ 4, 0, 53, }, dictWord{5, 0, 186}, dictWord{7, 0, 752}, dictWord{7, 0, 828}, dictWord{142, 0, 116}, dictWord{8, 0, 575}, dictWord{10, 0, 289}, dictWord{139, 0, 319}, dictWord{132, 0, 675}, dictWord{134, 0, 1424}, dictWord{4, 11, 75}, dictWord{5, 11, 180}, dictWord{6, 11, 500}, dictWord{7, 11, 58}, dictWord{7, 11, 710}, dictWord{138, 11, 645}, dictWord{133, 11, 649}, dictWord{6, 11, 276}, dictWord{7, 11, 282}, dictWord{7, 11, 879}, dictWord{7, 11, 924}, dictWord{8, 11, 459}, dictWord{9, 11, 599}, dictWord{9, 11, 754}, dictWord{11, 11, 574}, dictWord{12, 11, 128}, dictWord{12, 11, 494}, dictWord{13, 11, 52}, dictWord{13, 11, 301}, dictWord{15, 11, 30}, dictWord{143, 11, 132}, dictWord{6, 0, 647}, dictWord{134, 0, 1095}, dictWord{5, 10, 9}, dictWord{7, 10, 297}, dictWord{7, 10, 966}, dictWord{140, 10, 306}, dictWord{132, 11, 200}, dictWord{134, 0, 1334}, dictWord{5, 10, 146}, dictWord{6, 10, 411}, dictWord{138, 10, 721}, dictWord{ 6, 0, 209, }, dictWord{6, 0, 1141}, dictWord{6, 0, 1288}, dictWord{8, 0, 468}, dictWord{9, 0, 210}, dictWord{11, 0, 36}, dictWord{12, 0, 28}, dictWord{12, 0, 630}, dictWord{13, 0, 21}, dictWord{13, 0, 349}, dictWord{14, 0, 7}, dictWord{145, 0, 13}, dictWord{6, 10, 177}, dictWord{135, 10, 467}, dictWord{4, 0, 342}, dictWord{ 135, 0, 1179, }, dictWord{10, 11, 454}, dictWord{140, 11, 324}, dictWord{4, 0, 928}, dictWord{133, 0, 910}, dictWord{7, 0, 1838}, dictWord{6, 11, 225}, dictWord{ 137, 11, 211, }, dictWord{16, 0, 101}, dictWord{20, 0, 115}, dictWord{20, 0, 118}, dictWord{148, 0, 122}, dictWord{4, 0, 496}, dictWord{135, 0, 856}, dictWord{ 4, 0, 318, }, dictWord{11, 0, 654}, dictWord{7, 11, 718}, dictWord{139, 11, 102}, dictWord{8, 11, 58}, dictWord{9, 11, 724}, dictWord{11, 11, 809}, dictWord{ 13, 11, 113, }, dictWord{145, 11, 72}, dictWord{5, 10, 200}, dictWord{6, 11, 345}, dictWord{135, 11, 1247}, dictWord{8, 11, 767}, dictWord{8, 11, 803}, dictWord{ 9, 11, 301, }, dictWord{137, 11, 903}, dictWord{7, 0, 915}, dictWord{8, 0, 247}, dictWord{19, 0, 0}, dictWord{7, 11, 1949}, dictWord{136, 11, 674}, dictWord{ 4, 0, 202, }, dictWord{5, 0, 382}, dictWord{6, 0, 454}, dictWord{7, 0, 936}, dictWord{7, 0, 1803}, dictWord{8, 0, 758}, dictWord{9, 0, 375}, dictWord{9, 0, 895}, dictWord{ 10, 0, 743, }, dictWord{10, 0, 792}, dictWord{11, 0, 978}, dictWord{11, 0, 1012}, dictWord{142, 0, 109}, dictWord{7, 0, 1150}, dictWord{7, 0, 1425}, dictWord{ 7, 0, 1453, }, dictWord{140, 0, 513}, dictWord{134, 11, 259}, dictWord{138, 0, 791}, dictWord{11, 0, 821}, dictWord{12, 0, 110}, dictWord{12, 0, 153}, dictWord{ 18, 0, 41, }, dictWord{150, 0, 19}, dictWord{134, 10, 481}, dictWord{132, 0, 796}, dictWord{6, 0, 445}, dictWord{9, 0, 909}, dictWord{136, 11, 254}, dictWord{ 10, 0, 776, }, dictWord{13, 0, 345}, dictWord{142, 0, 425}, dictWord{4, 10, 84}, dictWord{7, 10, 1482}, dictWord{10, 10, 76}, dictWord{138, 10, 142}, dictWord{ 135, 11, 742, }, dictWord{6, 0, 578}, dictWord{133, 10, 1015}, dictWord{6, 0, 1387}, dictWord{4, 10, 315}, dictWord{5, 10, 507}, dictWord{135, 10, 1370}, dictWord{4, 0, 438}, dictWord{133, 0, 555}, dictWord{136, 0, 766}, dictWord{133, 11, 248}, dictWord{134, 10, 1722}, dictWord{4, 11, 116}, dictWord{5, 11, 95}, dictWord{5, 11, 445}, dictWord{7, 11, 1688}, dictWord{8, 11, 29}, dictWord{9, 11, 272}, dictWord{11, 11, 509}, dictWord{139, 11, 915}, dictWord{135, 0, 541}, dictWord{133, 11, 543}, dictWord{8, 10, 222}, dictWord{8, 10, 476}, dictWord{9, 10, 238}, dictWord{11, 10, 516}, dictWord{11, 10, 575}, dictWord{ 15, 10, 109, }, dictWord{146, 10, 100}, dictWord{6, 0, 880}, dictWord{134, 0, 1191}, dictWord{5, 11, 181}, dictWord{136, 11, 41}, dictWord{134, 0, 1506}, dictWord{132, 11, 681}, dictWord{7, 11, 25}, dictWord{8, 11, 202}, dictWord{138, 11, 536}, dictWord{139, 0, 983}, dictWord{137, 0, 768}, dictWord{132, 0, 584}, dictWord{9, 11, 423}, dictWord{140, 11, 89}, dictWord{8, 11, 113}, dictWord{9, 11, 877}, dictWord{10, 11, 554}, dictWord{11, 11, 83}, dictWord{12, 11, 136}, dictWord{147, 11, 109}, dictWord{7, 10, 706}, dictWord{7, 10, 1058}, dictWord{138, 10, 538}, dictWord{133, 11, 976}, dictWord{4, 11, 206}, dictWord{ 135, 11, 746, }, dictWord{136, 11, 526}, dictWord{140, 0, 737}, dictWord{11, 10, 92}, dictWord{11, 10, 196}, dictWord{11, 10, 409}, dictWord{11, 10, 450}, dictWord{11, 10, 666}, dictWord{11, 10, 777}, dictWord{12, 10, 262}, dictWord{13, 10, 385}, dictWord{13, 10, 393}, dictWord{15, 10, 115}, dictWord{ 16, 10, 45, }, dictWord{145, 10, 82}, dictWord{4, 0, 226}, dictWord{4, 0, 326}, dictWord{7, 0, 1770}, dictWord{4, 11, 319}, dictWord{5, 11, 699}, dictWord{138, 11, 673}, dictWord{6, 10, 40}, dictWord{135, 10, 1781}, dictWord{5, 0, 426}, dictWord{8, 0, 30}, dictWord{9, 0, 2}, dictWord{11, 0, 549}, dictWord{147, 0, 122}, dictWord{ 6, 0, 1161, }, dictWord{134, 0, 1329}, dictWord{138, 10, 97}, dictWord{6, 10, 423}, dictWord{7, 10, 665}, dictWord{135, 10, 1210}, dictWord{7, 11, 13}, dictWord{ 8, 11, 226, }, dictWord{10, 11, 537}, dictWord{11, 11, 570}, dictWord{11, 11, 605}, dictWord{11, 11, 799}, dictWord{11, 11, 804}, dictWord{12, 11, 85}, dictWord{12, 11, 516}, dictWord{12, 11, 623}, dictWord{13, 11, 112}, dictWord{13, 11, 361}, dictWord{14, 11, 77}, dictWord{14, 11, 78}, dictWord{17, 11, 28}, dictWord{147, 11, 110}, dictWord{132, 11, 769}, dictWord{132, 11, 551}, dictWord{132, 11, 728}, dictWord{147, 0, 117}, dictWord{9, 11, 57}, dictWord{ 9, 11, 459, }, dictWord{10, 11, 425}, dictWord{11, 11, 119}, dictWord{12, 11, 184}, dictWord{12, 11, 371}, dictWord{13, 11, 358}, dictWord{145, 11, 51}, dictWord{ 5, 11, 188, }, dictWord{5, 11, 814}, dictWord{8, 11, 10}, dictWord{9, 11, 421}, dictWord{9, 11, 729}, dictWord{10, 11, 609}, dictWord{139, 11, 689}, dictWord{134, 11, 624}, dictWord{135, 11, 298}, dictWord{135, 0, 462}, dictWord{4, 0, 345}, dictWord{139, 10, 624}, dictWord{136, 10, 574}, dictWord{ 4, 0, 385, }, dictWord{7, 0, 265}, dictWord{135, 0, 587}, dictWord{6, 0, 808}, dictWord{132, 11, 528}, dictWord{133, 0, 398}, dictWord{132, 10, 354}, dictWord{ 4, 0, 347, }, dictWord{5, 0, 423}, dictWord{5, 0, 996}, dictWord{135, 0, 1329}, dictWord{135, 10, 1558}, dictWord{7, 0, 1259}, dictWord{9, 0, 125}, dictWord{ 139, 0, 65, }, dictWord{5, 0, 136}, dictWord{6, 0, 136}, dictWord{136, 0, 644}, dictWord{5, 11, 104}, dictWord{6, 11, 173}, dictWord{135, 11, 1631}, dictWord{ 135, 0, 469, }, dictWord{133, 10, 830}, dictWord{4, 0, 278}, dictWord{5, 0, 465}, dictWord{135, 0, 1367}, dictWord{7, 11, 810}, dictWord{8, 11, 138}, dictWord{ 8, 11, 342, }, dictWord{9, 11, 84}, dictWord{10, 11, 193}, dictWord{11, 11, 883}, dictWord{140, 11, 359}, dictWord{5, 10, 496}, dictWord{135, 10, 203}, dictWord{ 4, 0, 433, }, dictWord{133, 0, 719}, dictWord{6, 11, 95}, dictWord{134, 10, 547}, dictWord{5, 10, 88}, dictWord{137, 10, 239}, dictWord{6, 11, 406}, dictWord{ 10, 11, 409, }, dictWord{10, 11, 447}, dictWord{11, 11, 44}, dictWord{140, 11, 100}, dictWord{134, 0, 1423}, dictWord{7, 10, 650}, dictWord{135, 10, 1310}, dictWord{134, 0, 749}, dictWord{135, 11, 1243}, dictWord{135, 0, 1363}, dictWord{6, 0, 381}, dictWord{7, 0, 645}, dictWord{7, 0, 694}, dictWord{8, 0, 546}, dictWord{7, 10, 1076}, dictWord{9, 10, 80}, dictWord{11, 10, 78}, dictWord{11, 10, 421}, dictWord{11, 10, 534}, dictWord{140, 10, 545}, dictWord{ 134, 11, 1636, }, dictWord{135, 11, 1344}, dictWord{12, 0, 277}, dictWord{7, 10, 274}, dictWord{11, 10, 479}, dictWord{139, 10, 507}, dictWord{6, 0, 705}, dictWord{ 6, 0, 783, }, dictWord{6, 0, 1275}, dictWord{6, 0, 1481}, dictWord{4, 11, 282}, dictWord{7, 11, 1034}, dictWord{11, 11, 398}, dictWord{11, 11, 634}, dictWord{ 12, 11, 1, }, dictWord{12, 11, 79}, dictWord{12, 11, 544}, dictWord{14, 11, 237}, dictWord{17, 11, 10}, dictWord{146, 11, 20}, dictWord{134, 0, 453}, dictWord{ 4, 0, 555, }, dictWord{8, 0, 536}, dictWord{10, 0, 288}, dictWord{11, 0, 1005}, dictWord{4, 10, 497}, dictWord{135, 10, 1584}, dictWord{5, 11, 118}, dictWord{ 5, 11, 499, }, dictWord{6, 11, 476}, dictWord{7, 11, 600}, dictWord{7, 11, 888}, dictWord{135, 11, 1096}, dictWord{138, 0, 987}, dictWord{7, 0, 1107}, dictWord{ 7, 10, 261, }, dictWord{7, 10, 1115}, dictWord{7, 10, 1354}, dictWord{7, 10, 1588}, dictWord{7, 10, 1705}, dictWord{7, 10, 1902}, dictWord{9, 10, 465}, dictWord{10, 10, 248}, dictWord{10, 10, 349}, dictWord{10, 10, 647}, dictWord{11, 10, 527}, dictWord{11, 10, 660}, dictWord{11, 10, 669}, dictWord{ 12, 10, 529, }, dictWord{141, 10, 305}, dictWord{7, 11, 296}, dictWord{7, 11, 596}, dictWord{8, 11, 560}, dictWord{8, 11, 586}, dictWord{9, 11, 612}, dictWord{ 11, 11, 100, }, dictWord{11, 11, 304}, dictWord{12, 11, 46}, dictWord{13, 11, 89}, dictWord{14, 11, 112}, dictWord{145, 11, 122}, dictWord{9, 0, 370}, dictWord{ 138, 0, 90, }, dictWord{136, 10, 13}, dictWord{132, 0, 860}, dictWord{7, 10, 642}, dictWord{8, 10, 250}, dictWord{11, 10, 123}, dictWord{11, 10, 137}, dictWord{ 13, 10, 48, }, dictWord{142, 10, 95}, dictWord{135, 10, 1429}, dictWord{137, 11, 321}, dictWord{132, 0, 257}, dictWord{135, 0, 2031}, dictWord{7, 0, 1768}, dictWord{7, 11, 1599}, dictWord{7, 11, 1723}, dictWord{8, 11, 79}, dictWord{8, 11, 106}, dictWord{8, 11, 190}, dictWord{8, 11, 302}, dictWord{8, 11, 383}, dictWord{9, 11, 119}, dictWord{9, 11, 233}, dictWord{9, 11, 298}, dictWord{9, 11, 419}, dictWord{9, 11, 471}, dictWord{10, 11, 181}, dictWord{10, 11, 406}, dictWord{11, 11, 57}, dictWord{11, 11, 85}, dictWord{11, 11, 120}, dictWord{11, 11, 177}, dictWord{11, 11, 296}, dictWord{11, 11, 382}, dictWord{11, 11, 454}, dictWord{11, 11, 758}, dictWord{11, 11, 999}, dictWord{12, 11, 27}, dictWord{12, 11, 98}, dictWord{12, 11, 131}, dictWord{12, 11, 245}, dictWord{ 12, 11, 312, }, dictWord{12, 11, 446}, dictWord{12, 11, 454}, dictWord{13, 11, 25}, dictWord{13, 11, 98}, dictWord{13, 11, 426}, dictWord{13, 11, 508}, dictWord{ 14, 11, 6, }, dictWord{14, 11, 163}, dictWord{14, 11, 272}, dictWord{14, 11, 277}, dictWord{14, 11, 370}, dictWord{15, 11, 95}, dictWord{15, 11, 138}, dictWord{ 15, 11, 167, }, dictWord{17, 11, 18}, dictWord{17, 11, 38}, dictWord{20, 11, 96}, dictWord{149, 11, 32}, dictWord{5, 11, 722}, dictWord{134, 11, 1759}, dictWord{145, 11, 16}, dictWord{6, 0, 1071}, dictWord{134, 0, 1561}, dictWord{10, 10, 545}, dictWord{140, 10, 301}, dictWord{6, 0, 83}, dictWord{6, 0, 1733}, dictWord{135, 0, 1389}, dictWord{4, 0, 835}, dictWord{135, 0, 1818}, dictWord{133, 11, 258}, dictWord{4, 10, 904}, dictWord{133, 10, 794}, dictWord{ 134, 0, 2006, }, dictWord{5, 11, 30}, dictWord{7, 11, 495}, dictWord{8, 11, 134}, dictWord{9, 11, 788}, dictWord{140, 11, 438}, dictWord{135, 11, 2004}, dictWord{ 137, 0, 696, }, dictWord{5, 11, 50}, dictWord{6, 11, 439}, dictWord{7, 11, 780}, dictWord{135, 11, 1040}, dictWord{7, 11, 772}, dictWord{7, 11, 1104}, dictWord{ 7, 11, 1647, }, dictWord{11, 11, 269}, dictWord{11, 11, 539}, dictWord{11, 11, 607}, dictWord{11, 11, 627}, dictWord{11, 11, 706}, dictWord{11, 11, 975}, dictWord{12, 11, 248}, dictWord{12, 11, 311}, dictWord{12, 11, 434}, dictWord{12, 11, 600}, dictWord{12, 11, 622}, dictWord{13, 11, 297}, dictWord{ 13, 11, 367, }, dictWord{13, 11, 485}, dictWord{14, 11, 69}, dictWord{14, 11, 409}, dictWord{143, 11, 108}, dictWord{5, 11, 1}, dictWord{6, 11, 81}, dictWord{ 138, 11, 520, }, dictWord{7, 0, 1718}, dictWord{9, 0, 95}, dictWord{9, 0, 274}, dictWord{10, 0, 279}, dictWord{10, 0, 317}, dictWord{10, 0, 420}, dictWord{11, 0, 303}, dictWord{11, 0, 808}, dictWord{12, 0, 134}, dictWord{12, 0, 367}, dictWord{13, 0, 149}, dictWord{13, 0, 347}, dictWord{14, 0, 349}, dictWord{14, 0, 406}, dictWord{ 18, 0, 22, }, dictWord{18, 0, 89}, dictWord{18, 0, 122}, dictWord{147, 0, 47}, dictWord{5, 11, 482}, dictWord{8, 11, 98}, dictWord{9, 11, 172}, dictWord{10, 11, 222}, dictWord{10, 11, 700}, dictWord{10, 11, 822}, dictWord{11, 11, 302}, dictWord{11, 11, 778}, dictWord{12, 11, 50}, dictWord{12, 11, 127}, dictWord{ 12, 11, 396, }, dictWord{13, 11, 62}, dictWord{13, 11, 328}, dictWord{14, 11, 122}, dictWord{147, 11, 72}, dictWord{7, 10, 386}, dictWord{138, 10, 713}, dictWord{ 6, 10, 7, }, dictWord{6, 10, 35}, dictWord{7, 10, 147}, dictWord{7, 10, 1069}, dictWord{7, 10, 1568}, dictWord{7, 10, 1575}, dictWord{7, 10, 1917}, dictWord{ 8, 10, 43, }, dictWord{8, 10, 208}, dictWord{9, 10, 128}, dictWord{9, 10, 866}, dictWord{10, 10, 20}, dictWord{11, 10, 981}, dictWord{147, 10, 33}, dictWord{ 133, 0, 26, }, dictWord{132, 0, 550}, dictWord{5, 11, 2}, dictWord{7, 11, 1494}, dictWord{136, 11, 589}, dictWord{6, 11, 512}, dictWord{7, 11, 797}, dictWord{ 8, 11, 253, }, dictWord{9, 11, 77}, dictWord{10, 11, 1}, dictWord{10, 11, 129}, dictWord{10, 11, 225}, dictWord{11, 11, 118}, dictWord{11, 11, 226}, dictWord{ 11, 11, 251, }, dictWord{11, 11, 430}, dictWord{11, 11, 701}, dictWord{11, 11, 974}, dictWord{11, 11, 982}, dictWord{12, 11, 64}, dictWord{12, 11, 260}, dictWord{ 12, 11, 488, }, dictWord{140, 11, 690}, dictWord{7, 10, 893}, dictWord{141, 10, 424}, dictWord{134, 0, 901}, dictWord{136, 0, 822}, dictWord{4, 0, 902}, dictWord{5, 0, 809}, dictWord{134, 0, 122}, dictWord{6, 0, 807}, dictWord{134, 0, 1366}, dictWord{7, 0, 262}, dictWord{5, 11, 748}, dictWord{134, 11, 553}, dictWord{133, 0, 620}, dictWord{4, 0, 34}, dictWord{5, 0, 574}, dictWord{7, 0, 279}, dictWord{7, 0, 1624}, dictWord{136, 0, 601}, dictWord{9, 0, 170}, dictWord{ 6, 10, 322, }, dictWord{9, 10, 552}, dictWord{11, 10, 274}, dictWord{13, 10, 209}, dictWord{13, 10, 499}, dictWord{14, 10, 85}, dictWord{15, 10, 126}, dictWord{ 145, 10, 70, }, dictWord{132, 0, 537}, dictWord{4, 11, 12}, dictWord{7, 11, 420}, dictWord{7, 11, 522}, dictWord{7, 11, 809}, dictWord{8, 11, 797}, dictWord{ 141, 11, 88, }, dictWord{133, 0, 332}, dictWord{8, 10, 83}, dictWord{8, 10, 742}, dictWord{8, 10, 817}, dictWord{9, 10, 28}, dictWord{9, 10, 29}, dictWord{9, 10, 885}, dictWord{10, 10, 387}, dictWord{11, 10, 633}, dictWord{11, 10, 740}, dictWord{13, 10, 235}, dictWord{13, 10, 254}, dictWord{15, 10, 143}, dictWord{ 143, 10, 146, }, dictWord{6, 0, 1909}, dictWord{9, 0, 964}, dictWord{12, 0, 822}, dictWord{12, 0, 854}, dictWord{12, 0, 865}, dictWord{12, 0, 910}, dictWord{12, 0, 938}, dictWord{15, 0, 169}, dictWord{15, 0, 208}, dictWord{15, 0, 211}, dictWord{18, 0, 205}, dictWord{18, 0, 206}, dictWord{18, 0, 220}, dictWord{18, 0, 223}, dictWord{152, 0, 24}, dictWord{140, 10, 49}, dictWord{5, 11, 528}, dictWord{135, 11, 1580}, dictWord{6, 0, 261}, dictWord{8, 0, 182}, dictWord{139, 0, 943}, dictWord{134, 0, 1721}, dictWord{4, 0, 933}, dictWord{133, 0, 880}, dictWord{136, 11, 321}, dictWord{5, 11, 266}, dictWord{9, 11, 290}, dictWord{9, 11, 364}, dictWord{10, 11, 293}, dictWord{11, 11, 606}, dictWord{142, 11, 45}, dictWord{6, 0, 1609}, dictWord{4, 11, 50}, dictWord{6, 11, 510}, dictWord{6, 11, 594}, dictWord{9, 11, 121}, dictWord{10, 11, 49}, dictWord{10, 11, 412}, dictWord{139, 11, 834}, dictWord{7, 0, 895}, dictWord{136, 11, 748}, dictWord{132, 11, 466}, dictWord{4, 10, 110}, dictWord{10, 10, 415}, dictWord{10, 10, 597}, dictWord{142, 10, 206}, dictWord{133, 0, 812}, dictWord{135, 11, 281}, dictWord{ 6, 0, 1890, }, dictWord{6, 0, 1902}, dictWord{6, 0, 1916}, dictWord{9, 0, 929}, dictWord{9, 0, 942}, dictWord{9, 0, 975}, dictWord{9, 0, 984}, dictWord{9, 0, 986}, dictWord{ 9, 0, 1011, }, dictWord{9, 0, 1019}, dictWord{12, 0, 804}, dictWord{12, 0, 851}, dictWord{12, 0, 867}, dictWord{12, 0, 916}, dictWord{12, 0, 923}, dictWord{ 15, 0, 194, }, dictWord{15, 0, 204}, dictWord{15, 0, 210}, dictWord{15, 0, 222}, dictWord{15, 0, 223}, dictWord{15, 0, 229}, dictWord{15, 0, 250}, dictWord{ 18, 0, 179, }, dictWord{18, 0, 186}, dictWord{18, 0, 192}, dictWord{7, 10, 205}, dictWord{135, 10, 2000}, dictWord{132, 11, 667}, dictWord{135, 0, 778}, dictWord{ 4, 0, 137, }, dictWord{7, 0, 1178}, dictWord{135, 0, 1520}, dictWord{134, 0, 1314}, dictWord{4, 11, 242}, dictWord{134, 11, 333}, dictWord{6, 0, 1661}, dictWord{7, 0, 1975}, dictWord{7, 0, 2009}, dictWord{135, 0, 2011}, dictWord{134, 0, 1591}, dictWord{4, 10, 283}, dictWord{135, 10, 1194}, dictWord{ 11, 0, 820, }, dictWord{150, 0, 51}, dictWord{4, 11, 39}, dictWord{5, 11, 36}, dictWord{7, 11, 1843}, dictWord{8, 11, 407}, dictWord{11, 11, 144}, dictWord{ 140, 11, 523, }, dictWord{134, 10, 1720}, dictWord{4, 11, 510}, dictWord{7, 11, 29}, dictWord{7, 11, 66}, dictWord{7, 11, 1980}, dictWord{10, 11, 487}, dictWord{ 10, 11, 809, }, dictWord{146, 11, 9}, dictWord{5, 0, 89}, dictWord{7, 0, 1915}, dictWord{9, 0, 185}, dictWord{9, 0, 235}, dictWord{10, 0, 64}, dictWord{10, 0, 270}, dictWord{10, 0, 403}, dictWord{10, 0, 469}, dictWord{10, 0, 529}, dictWord{10, 0, 590}, dictWord{11, 0, 140}, dictWord{11, 0, 860}, dictWord{13, 0, 1}, dictWord{ 13, 0, 422, }, dictWord{14, 0, 341}, dictWord{14, 0, 364}, dictWord{17, 0, 93}, dictWord{18, 0, 113}, dictWord{19, 0, 97}, dictWord{147, 0, 113}, dictWord{133, 0, 695}, dictWord{6, 0, 987}, dictWord{134, 0, 1160}, dictWord{5, 0, 6}, dictWord{6, 0, 183}, dictWord{7, 0, 680}, dictWord{7, 0, 978}, dictWord{7, 0, 1013}, dictWord{ 7, 0, 1055, }, dictWord{12, 0, 230}, dictWord{13, 0, 172}, dictWord{146, 0, 29}, dictWord{134, 11, 570}, dictWord{132, 11, 787}, dictWord{134, 11, 518}, dictWord{ 6, 0, 29, }, dictWord{139, 0, 63}, dictWord{132, 11, 516}, dictWord{136, 11, 821}, dictWord{132, 0, 311}, dictWord{134, 0, 1740}, dictWord{7, 0, 170}, dictWord{8, 0, 90}, dictWord{8, 0, 177}, dictWord{8, 0, 415}, dictWord{11, 0, 714}, dictWord{14, 0, 281}, dictWord{136, 10, 735}, dictWord{134, 0, 1961}, dictWord{ 135, 11, 1405, }, dictWord{4, 11, 10}, dictWord{7, 11, 917}, dictWord{139, 11, 786}, dictWord{5, 10, 132}, dictWord{9, 10, 486}, dictWord{9, 10, 715}, dictWord{ 10, 10, 458, }, dictWord{11, 10, 373}, dictWord{11, 10, 668}, dictWord{11, 10, 795}, dictWord{11, 10, 897}, dictWord{12, 10, 272}, dictWord{12, 10, 424}, dictWord{12, 10, 539}, dictWord{12, 10, 558}, dictWord{14, 10, 245}, dictWord{14, 10, 263}, dictWord{14, 10, 264}, dictWord{14, 10, 393}, dictWord{ 142, 10, 403, }, dictWord{11, 0, 91}, dictWord{13, 0, 129}, dictWord{15, 0, 101}, dictWord{145, 0, 125}, dictWord{135, 0, 1132}, dictWord{4, 0, 494}, dictWord{6, 0, 74}, dictWord{7, 0, 44}, dictWord{7, 0, 407}, dictWord{12, 0, 17}, dictWord{15, 0, 5}, dictWord{148, 0, 11}, dictWord{133, 10, 379}, dictWord{5, 0, 270}, dictWord{ 5, 11, 684, }, dictWord{6, 10, 89}, dictWord{6, 10, 400}, dictWord{7, 10, 1569}, dictWord{7, 10, 1623}, dictWord{7, 10, 1850}, dictWord{8, 10, 218}, dictWord{ 8, 10, 422, }, dictWord{9, 10, 570}, dictWord{138, 10, 626}, dictWord{4, 0, 276}, dictWord{133, 0, 296}, dictWord{6, 0, 1523}, dictWord{134, 11, 27}, dictWord{ 6, 10, 387, }, dictWord{7, 10, 882}, dictWord{141, 10, 111}, dictWord{6, 10, 224}, dictWord{7, 10, 877}, dictWord{137, 10, 647}, dictWord{135, 10, 790}, dictWord{ 4, 0, 7, }, dictWord{5, 0, 90}, dictWord{5, 0, 158}, dictWord{6, 0, 542}, dictWord{7, 0, 221}, dictWord{7, 0, 1574}, dictWord{9, 0, 490}, dictWord{10, 0, 540}, dictWord{ 11, 0, 443, }, dictWord{139, 0, 757}, dictWord{7, 0, 588}, dictWord{9, 0, 175}, dictWord{138, 0, 530}, dictWord{135, 10, 394}, dictWord{142, 11, 23}, dictWord{ 134, 0, 786, }, dictWord{135, 0, 580}, dictWord{7, 0, 88}, dictWord{136, 0, 627}, dictWord{5, 0, 872}, dictWord{6, 0, 57}, dictWord{7, 0, 471}, dictWord{9, 0, 447}, dictWord{137, 0, 454}, dictWord{6, 11, 342}, dictWord{6, 11, 496}, dictWord{8, 11, 275}, dictWord{137, 11, 206}, dictWord{4, 11, 909}, dictWord{133, 11, 940}, dictWord{6, 0, 735}, dictWord{132, 11, 891}, dictWord{8, 0, 845}, dictWord{8, 0, 916}, dictWord{135, 10, 1409}, dictWord{5, 0, 31}, dictWord{134, 0, 614}, dictWord{11, 0, 458}, dictWord{12, 0, 15}, dictWord{140, 0, 432}, dictWord{8, 0, 330}, dictWord{140, 0, 477}, dictWord{4, 0, 530}, dictWord{5, 0, 521}, dictWord{ 7, 0, 1200, }, dictWord{10, 0, 460}, dictWord{132, 11, 687}, dictWord{6, 0, 424}, dictWord{135, 0, 1866}, dictWord{9, 0, 569}, dictWord{12, 0, 12}, dictWord{ 12, 0, 81, }, dictWord{12, 0, 319}, dictWord{13, 0, 69}, dictWord{14, 0, 259}, dictWord{16, 0, 87}, dictWord{17, 0, 1}, dictWord{17, 0, 21}, dictWord{17, 0, 24}, dictWord{ 18, 0, 15, }, dictWord{18, 0, 56}, dictWord{18, 0, 59}, dictWord{18, 0, 127}, dictWord{18, 0, 154}, dictWord{19, 0, 19}, dictWord{148, 0, 31}, dictWord{7, 0, 1302}, dictWord{136, 10, 38}, dictWord{134, 11, 253}, dictWord{5, 10, 261}, dictWord{7, 10, 78}, dictWord{7, 10, 199}, dictWord{8, 10, 815}, dictWord{9, 10, 126}, dictWord{138, 10, 342}, dictWord{5, 0, 595}, dictWord{135, 0, 1863}, dictWord{6, 11, 41}, dictWord{141, 11, 160}, dictWord{5, 0, 13}, dictWord{134, 0, 142}, dictWord{6, 0, 97}, dictWord{7, 0, 116}, dictWord{8, 0, 322}, dictWord{8, 0, 755}, dictWord{9, 0, 548}, dictWord{10, 0, 714}, dictWord{11, 0, 884}, dictWord{13, 0, 324}, dictWord{7, 11, 1304}, dictWord{138, 11, 477}, dictWord{132, 10, 628}, dictWord{134, 11, 1718}, dictWord{7, 10, 266}, dictWord{136, 10, 804}, dictWord{135, 10, 208}, dictWord{7, 0, 1021}, dictWord{6, 10, 79}, dictWord{135, 10, 1519}, dictWord{7, 0, 1472}, dictWord{135, 0, 1554}, dictWord{6, 11, 362}, dictWord{146, 11, 51}, dictWord{7, 0, 1071}, dictWord{7, 0, 1541}, dictWord{7, 0, 1767}, dictWord{7, 0, 1806}, dictWord{11, 0, 162}, dictWord{11, 0, 242}, dictWord{11, 0, 452}, dictWord{12, 0, 605}, dictWord{15, 0, 26}, dictWord{144, 0, 44}, dictWord{136, 10, 741}, dictWord{133, 11, 115}, dictWord{145, 0, 115}, dictWord{134, 10, 376}, dictWord{6, 0, 1406}, dictWord{134, 0, 1543}, dictWord{5, 11, 193}, dictWord{12, 11, 178}, dictWord{13, 11, 130}, dictWord{ 145, 11, 84, }, dictWord{135, 0, 1111}, dictWord{8, 0, 1}, dictWord{9, 0, 650}, dictWord{10, 0, 326}, dictWord{5, 11, 705}, dictWord{137, 11, 606}, dictWord{5, 0, 488}, dictWord{6, 0, 527}, dictWord{7, 0, 489}, dictWord{7, 0, 1636}, dictWord{8, 0, 121}, dictWord{8, 0, 144}, dictWord{8, 0, 359}, dictWord{9, 0, 193}, dictWord{9, 0, 241}, dictWord{9, 0, 336}, dictWord{9, 0, 882}, dictWord{11, 0, 266}, dictWord{11, 0, 372}, dictWord{11, 0, 944}, dictWord{12, 0, 401}, dictWord{140, 0, 641}, dictWord{135, 11, 174}, dictWord{6, 0, 267}, dictWord{7, 10, 244}, dictWord{7, 10, 632}, dictWord{7, 10, 1609}, dictWord{8, 10, 178}, dictWord{8, 10, 638}, dictWord{141, 10, 58}, dictWord{134, 0, 1983}, dictWord{134, 0, 1155}, dictWord{134, 0, 1575}, dictWord{134, 0, 1438}, dictWord{9, 0, 31}, dictWord{ 10, 0, 244, }, dictWord{10, 0, 699}, dictWord{12, 0, 149}, dictWord{141, 0, 497}, dictWord{133, 0, 377}, dictWord{4, 11, 122}, dictWord{5, 11, 796}, dictWord{ 5, 11, 952, }, dictWord{6, 11, 1660}, dictWord{6, 11, 1671}, dictWord{8, 11, 567}, dictWord{9, 11, 687}, dictWord{9, 11, 742}, dictWord{10, 11, 686}, dictWord{ 11, 11, 356, }, dictWord{11, 11, 682}, dictWord{140, 11, 281}, dictWord{145, 0, 101}, dictWord{11, 11, 0}, dictWord{144, 11, 78}, dictWord{5, 11, 179}, dictWord{ 5, 10, 791, }, dictWord{7, 11, 1095}, dictWord{135, 11, 1213}, dictWord{8, 11, 372}, dictWord{9, 11, 122}, dictWord{138, 11, 175}, dictWord{7, 10, 686}, dictWord{8, 10, 33}, dictWord{8, 10, 238}, dictWord{10, 10, 616}, dictWord{11, 10, 467}, dictWord{11, 10, 881}, dictWord{13, 10, 217}, dictWord{13, 10, 253}, dictWord{142, 10, 268}, dictWord{9, 0, 476}, dictWord{4, 11, 66}, dictWord{7, 11, 722}, dictWord{135, 11, 904}, dictWord{7, 11, 352}, dictWord{137, 11, 684}, dictWord{135, 0, 2023}, dictWord{135, 0, 1836}, dictWord{132, 10, 447}, dictWord{5, 0, 843}, dictWord{144, 0, 35}, dictWord{137, 11, 779}, dictWord{ 141, 11, 35, }, dictWord{4, 10, 128}, dictWord{5, 10, 415}, dictWord{6, 10, 462}, dictWord{7, 10, 294}, dictWord{7, 10, 578}, dictWord{10, 10, 710}, dictWord{ 139, 10, 86, }, dictWord{132, 0, 554}, dictWord{133, 0, 536}, dictWord{136, 10, 587}, dictWord{5, 0, 207}, dictWord{9, 0, 79}, dictWord{11, 0, 625}, dictWord{ 145, 0, 7, }, dictWord{7, 0, 1371}, dictWord{6, 10, 427}, dictWord{138, 10, 692}, dictWord{4, 0, 424}, dictWord{4, 10, 195}, dictWord{135, 10, 802}, dictWord{ 8, 0, 785, }, dictWord{133, 11, 564}, dictWord{135, 0, 336}, dictWord{4, 0, 896}, dictWord{6, 0, 1777}, dictWord{134, 11, 556}, dictWord{137, 11, 103}, dictWord{134, 10, 1683}, dictWord{7, 11, 544}, dictWord{8, 11, 719}, dictWord{138, 11, 61}, dictWord{138, 10, 472}, dictWord{4, 11, 5}, dictWord{5, 11, 498}, dictWord{136, 11, 637}, dictWord{7, 0, 750}, dictWord{9, 0, 223}, dictWord{11, 0, 27}, dictWord{11, 0, 466}, dictWord{12, 0, 624}, dictWord{14, 0, 265}, dictWord{ 146, 0, 61, }, dictWord{12, 0, 238}, dictWord{18, 0, 155}, dictWord{12, 11, 238}, dictWord{146, 11, 155}, dictWord{151, 10, 28}, dictWord{133, 11, 927}, dictWord{12, 0, 383}, dictWord{5, 10, 3}, dictWord{8, 10, 578}, dictWord{9, 10, 118}, dictWord{10, 10, 705}, dictWord{141, 10, 279}, dictWord{4, 11, 893}, dictWord{ 5, 11, 780, }, dictWord{133, 11, 893}, dictWord{4, 0, 603}, dictWord{133, 0, 661}, dictWord{4, 0, 11}, dictWord{6, 0, 128}, dictWord{7, 0, 231}, dictWord{ 7, 0, 1533, }, dictWord{10, 0, 725}, dictWord{5, 10, 229}, dictWord{5, 11, 238}, dictWord{135, 11, 1350}, dictWord{8, 10, 102}, dictWord{10, 10, 578}, dictWord{ 10, 10, 672, }, dictWord{12, 10, 496}, dictWord{13, 10, 408}, dictWord{14, 10, 121}, dictWord{145, 10, 106}, dictWord{132, 0, 476}, dictWord{134, 0, 1552}, dictWord{134, 11, 1729}, dictWord{8, 10, 115}, dictWord{8, 10, 350}, dictWord{9, 10, 489}, dictWord{10, 10, 128}, dictWord{11, 10, 306}, dictWord{ 12, 10, 373, }, dictWord{14, 10, 30}, dictWord{17, 10, 79}, dictWord{19, 10, 80}, dictWord{150, 10, 55}, dictWord{135, 0, 1807}, dictWord{4, 0, 680}, dictWord{ 4, 11, 60, }, dictWord{7, 11, 760}, dictWord{7, 11, 1800}, dictWord{8, 11, 314}, dictWord{9, 11, 700}, dictWord{139, 11, 487}, dictWord{4, 10, 230}, dictWord{ 5, 10, 702, }, dictWord{148, 11, 94}, dictWord{132, 11, 228}, dictWord{139, 0, 435}, dictWord{9, 0, 20}, dictWord{10, 0, 324}, dictWord{10, 0, 807}, dictWord{ 139, 0, 488, }, dictWord{6, 10, 1728}, dictWord{136, 11, 419}, dictWord{4, 10, 484}, dictWord{18, 10, 26}, dictWord{19, 10, 42}, dictWord{20, 10, 43}, dictWord{ 21, 10, 0, }, dictWord{23, 10, 27}, dictWord{152, 10, 14}, dictWord{135, 0, 1431}, dictWord{133, 11, 828}, dictWord{5, 0, 112}, dictWord{6, 0, 103}, dictWord{ 6, 0, 150, }, dictWord{7, 0, 1303}, dictWord{9, 0, 292}, dictWord{10, 0, 481}, dictWord{20, 0, 13}, dictWord{7, 11, 176}, dictWord{7, 11, 178}, dictWord{7, 11, 1110}, dictWord{10, 11, 481}, dictWord{148, 11, 13}, dictWord{138, 0, 356}, dictWord{4, 11, 51}, dictWord{5, 11, 39}, dictWord{6, 11, 4}, dictWord{7, 11, 591}, dictWord{ 7, 11, 849, }, dictWord{7, 11, 951}, dictWord{7, 11, 1129}, dictWord{7, 11, 1613}, dictWord{7, 11, 1760}, dictWord{7, 11, 1988}, dictWord{9, 11, 434}, dictWord{10, 11, 754}, dictWord{11, 11, 25}, dictWord{11, 11, 37}, dictWord{139, 11, 414}, dictWord{6, 0, 1963}, dictWord{134, 0, 2000}, dictWord{ 132, 10, 633, }, dictWord{6, 0, 1244}, dictWord{133, 11, 902}, dictWord{135, 11, 928}, dictWord{140, 0, 18}, dictWord{138, 0, 204}, dictWord{135, 11, 1173}, dictWord{134, 0, 867}, dictWord{4, 0, 708}, dictWord{8, 0, 15}, dictWord{9, 0, 50}, dictWord{9, 0, 386}, dictWord{11, 0, 18}, dictWord{11, 0, 529}, dictWord{140, 0, 228}, dictWord{134, 11, 270}, dictWord{4, 0, 563}, dictWord{7, 0, 109}, dictWord{7, 0, 592}, dictWord{7, 0, 637}, dictWord{7, 0, 770}, dictWord{8, 0, 463}, dictWord{ 9, 0, 60, }, dictWord{9, 0, 335}, dictWord{9, 0, 904}, dictWord{10, 0, 73}, dictWord{11, 0, 434}, dictWord{12, 0, 585}, dictWord{13, 0, 331}, dictWord{18, 0, 110}, dictWord{148, 0, 60}, dictWord{132, 0, 502}, dictWord{14, 11, 359}, dictWord{19, 11, 52}, dictWord{148, 11, 47}, dictWord{6, 11, 377}, dictWord{7, 11, 1025}, dictWord{9, 11, 613}, dictWord{145, 11, 104}, dictWord{6, 0, 347}, dictWord{10, 0, 161}, dictWord{5, 10, 70}, dictWord{5, 10, 622}, dictWord{6, 10, 334}, dictWord{ 7, 10, 1032, }, dictWord{9, 10, 171}, dictWord{11, 10, 26}, dictWord{11, 10, 213}, dictWord{11, 10, 637}, dictWord{11, 10, 707}, dictWord{12, 10, 202}, dictWord{12, 10, 380}, dictWord{13, 10, 226}, dictWord{13, 10, 355}, dictWord{14, 10, 222}, dictWord{145, 10, 42}, dictWord{132, 11, 416}, dictWord{4, 0, 33}, dictWord{5, 0, 102}, dictWord{6, 0, 284}, dictWord{7, 0, 1079}, dictWord{7, 0, 1423}, dictWord{7, 0, 1702}, dictWord{8, 0, 470}, dictWord{9, 0, 554}, dictWord{ 9, 0, 723, }, dictWord{11, 0, 333}, dictWord{142, 11, 372}, dictWord{5, 11, 152}, dictWord{5, 11, 197}, dictWord{7, 11, 340}, dictWord{7, 11, 867}, dictWord{ 10, 11, 548, }, dictWord{10, 11, 581}, dictWord{11, 11, 6}, dictWord{12, 11, 3}, dictWord{12, 11, 19}, dictWord{14, 11, 110}, dictWord{142, 11, 289}, dictWord{ 7, 0, 246, }, dictWord{135, 0, 840}, dictWord{6, 0, 10}, dictWord{8, 0, 571}, dictWord{9, 0, 739}, dictWord{143, 0, 91}, dictWord{6, 0, 465}, dictWord{7, 0, 1465}, dictWord{ 4, 10, 23, }, dictWord{4, 10, 141}, dictWord{5, 10, 313}, dictWord{5, 10, 1014}, dictWord{6, 10, 50}, dictWord{7, 10, 142}, dictWord{7, 10, 559}, dictWord{ 8, 10, 640, }, dictWord{9, 10, 460}, dictWord{9, 10, 783}, dictWord{11, 10, 741}, dictWord{12, 10, 183}, dictWord{141, 10, 488}, dictWord{133, 0, 626}, dictWord{ 136, 0, 614, }, dictWord{138, 0, 237}, dictWord{7, 11, 34}, dictWord{7, 11, 190}, dictWord{8, 11, 28}, dictWord{8, 11, 141}, dictWord{8, 11, 444}, dictWord{ 8, 11, 811, }, dictWord{9, 11, 468}, dictWord{11, 11, 334}, dictWord{12, 11, 24}, dictWord{12, 11, 386}, dictWord{140, 11, 576}, dictWord{133, 11, 757}, dictWord{ 5, 0, 18, }, dictWord{6, 0, 526}, dictWord{13, 0, 24}, dictWord{13, 0, 110}, dictWord{19, 0, 5}, dictWord{147, 0, 44}, dictWord{6, 0, 506}, dictWord{134, 11, 506}, dictWord{135, 11, 1553}, dictWord{4, 0, 309}, dictWord{5, 0, 462}, dictWord{7, 0, 970}, dictWord{7, 0, 1097}, dictWord{22, 0, 30}, dictWord{22, 0, 33}, dictWord{ 7, 11, 1385, }, dictWord{11, 11, 582}, dictWord{11, 11, 650}, dictWord{11, 11, 901}, dictWord{11, 11, 949}, dictWord{12, 11, 232}, dictWord{12, 11, 236}, dictWord{13, 11, 413}, dictWord{13, 11, 501}, dictWord{146, 11, 116}, dictWord{9, 0, 140}, dictWord{5, 10, 222}, dictWord{138, 10, 534}, dictWord{6, 0, 1056}, dictWord{137, 10, 906}, dictWord{134, 0, 1704}, dictWord{138, 10, 503}, dictWord{134, 0, 1036}, dictWord{5, 10, 154}, dictWord{7, 10, 1491}, dictWord{ 10, 10, 379, }, dictWord{138, 10, 485}, dictWord{4, 11, 383}, dictWord{133, 10, 716}, dictWord{134, 0, 1315}, dictWord{5, 0, 86}, dictWord{7, 0, 743}, dictWord{ 9, 0, 85, }, dictWord{10, 0, 281}, dictWord{10, 0, 432}, dictWord{11, 0, 825}, dictWord{12, 0, 251}, dictWord{13, 0, 118}, dictWord{142, 0, 378}, dictWord{ 8, 0, 264, }, dictWord{4, 10, 91}, dictWord{5, 10, 388}, dictWord{5, 10, 845}, dictWord{6, 10, 206}, dictWord{6, 10, 252}, dictWord{6, 10, 365}, dictWord{7, 10, 136}, dictWord{7, 10, 531}, dictWord{136, 10, 621}, dictWord{5, 0, 524}, dictWord{133, 0, 744}, dictWord{5, 11, 277}, dictWord{141, 11, 247}, dictWord{ 132, 11, 435, }, dictWord{10, 0, 107}, dictWord{140, 0, 436}, dictWord{132, 0, 927}, dictWord{10, 0, 123}, dictWord{12, 0, 670}, dictWord{146, 0, 94}, dictWord{ 7, 0, 1149, }, dictWord{9, 0, 156}, dictWord{138, 0, 957}, dictWord{5, 11, 265}, dictWord{6, 11, 212}, dictWord{135, 11, 28}, dictWord{133, 0, 778}, dictWord{ 133, 0, 502, }, dictWord{8, 0, 196}, dictWord{10, 0, 283}, dictWord{139, 0, 406}, dictWord{135, 10, 576}, dictWord{136, 11, 535}, dictWord{134, 0, 1312}, dictWord{ 5, 10, 771, }, dictWord{5, 10, 863}, dictWord{5, 10, 898}, dictWord{6, 10, 1632}, dictWord{6, 10, 1644}, dictWord{134, 10, 1780}, dictWord{5, 0, 855}, dictWord{5, 10, 331}, dictWord{135, 11, 1487}, dictWord{132, 11, 702}, dictWord{5, 11, 808}, dictWord{135, 11, 2045}, dictWord{7, 0, 1400}, dictWord{ 9, 0, 446, }, dictWord{138, 0, 45}, dictWord{140, 10, 632}, dictWord{132, 0, 1003}, dictWord{5, 11, 166}, dictWord{8, 11, 739}, dictWord{140, 11, 511}, dictWord{ 5, 10, 107, }, dictWord{7, 10, 201}, dictWord{136, 10, 518}, dictWord{6, 10, 446}, dictWord{135, 10, 1817}, dictWord{134, 0, 1532}, dictWord{ 134, 0, 1097, }, dictWord{4, 11, 119}, dictWord{5, 11, 170}, dictWord{5, 11, 447}, dictWord{7, 11, 1708}, dictWord{7, 11, 1889}, dictWord{9, 11, 357}, dictWord{ 9, 11, 719, }, dictWord{12, 11, 486}, dictWord{140, 11, 596}, dictWord{9, 10, 851}, dictWord{141, 10, 510}, dictWord{7, 0, 612}, dictWord{8, 0, 545}, dictWord{ 8, 0, 568, }, dictWord{8, 0, 642}, dictWord{9, 0, 717}, dictWord{10, 0, 541}, dictWord{10, 0, 763}, dictWord{11, 0, 449}, dictWord{12, 0, 489}, dictWord{13, 0, 153}, dictWord{13, 0, 296}, dictWord{14, 0, 138}, dictWord{14, 0, 392}, dictWord{15, 0, 50}, dictWord{16, 0, 6}, dictWord{16, 0, 12}, dictWord{20, 0, 9}, dictWord{ 132, 10, 504, }, dictWord{4, 11, 450}, dictWord{135, 11, 1158}, dictWord{11, 0, 54}, dictWord{13, 0, 173}, dictWord{13, 0, 294}, dictWord{5, 10, 883}, dictWord{ 5, 10, 975, }, dictWord{8, 10, 392}, dictWord{148, 10, 7}, dictWord{13, 0, 455}, dictWord{15, 0, 99}, dictWord{15, 0, 129}, dictWord{144, 0, 68}, dictWord{135, 0, 172}, dictWord{132, 11, 754}, dictWord{5, 10, 922}, dictWord{134, 10, 1707}, dictWord{134, 0, 1029}, dictWord{17, 11, 39}, dictWord{148, 11, 36}, dictWord{ 4, 0, 568, }, dictWord{5, 10, 993}, dictWord{7, 10, 515}, dictWord{137, 10, 91}, dictWord{132, 0, 732}, dictWord{10, 0, 617}, dictWord{138, 11, 617}, dictWord{ 134, 0, 974, }, dictWord{7, 0, 989}, dictWord{10, 0, 377}, dictWord{12, 0, 363}, dictWord{13, 0, 68}, dictWord{13, 0, 94}, dictWord{14, 0, 108}, dictWord{ 142, 0, 306, }, dictWord{136, 0, 733}, dictWord{132, 0, 428}, dictWord{7, 0, 1789}, dictWord{135, 11, 1062}, dictWord{7, 0, 2015}, dictWord{140, 0, 665}, dictWord{135, 10, 1433}, dictWord{5, 0, 287}, dictWord{7, 10, 921}, dictWord{8, 10, 580}, dictWord{8, 10, 593}, dictWord{8, 10, 630}, dictWord{138, 10, 28}, dictWord{138, 0, 806}, dictWord{4, 10, 911}, dictWord{5, 10, 867}, dictWord{5, 10, 1013}, dictWord{7, 10, 2034}, dictWord{8, 10, 798}, dictWord{136, 10, 813}, dictWord{134, 0, 1539}, dictWord{8, 11, 523}, dictWord{150, 11, 34}, dictWord{135, 11, 740}, dictWord{7, 11, 238}, dictWord{7, 11, 2033}, dictWord{ 8, 11, 120, }, dictWord{8, 11, 188}, dictWord{8, 11, 659}, dictWord{9, 11, 598}, dictWord{10, 11, 466}, dictWord{12, 11, 342}, dictWord{12, 11, 588}, dictWord{ 13, 11, 503, }, dictWord{14, 11, 246}, dictWord{143, 11, 92}, dictWord{7, 0, 1563}, dictWord{141, 0, 182}, dictWord{5, 10, 135}, dictWord{6, 10, 519}, dictWord{ 7, 10, 1722, }, dictWord{10, 10, 271}, dictWord{11, 10, 261}, dictWord{145, 10, 54}, dictWord{14, 10, 338}, dictWord{148, 10, 81}, dictWord{7, 0, 484}, dictWord{ 4, 10, 300, }, dictWord{133, 10, 436}, dictWord{145, 11, 114}, dictWord{6, 0, 1623}, dictWord{134, 0, 1681}, dictWord{133, 11, 640}, dictWord{4, 11, 201}, dictWord{7, 11, 1744}, dictWord{8, 11, 602}, dictWord{11, 11, 247}, dictWord{11, 11, 826}, dictWord{145, 11, 65}, dictWord{8, 11, 164}, dictWord{ 146, 11, 62, }, dictWord{6, 0, 1833}, dictWord{6, 0, 1861}, dictWord{136, 0, 878}, dictWord{134, 0, 1569}, dictWord{8, 10, 357}, dictWord{10, 10, 745}, dictWord{ 14, 10, 426, }, dictWord{17, 10, 94}, dictWord{147, 10, 57}, dictWord{12, 0, 93}, dictWord{12, 0, 501}, dictWord{13, 0, 362}, dictWord{14, 0, 151}, dictWord{15, 0, 40}, dictWord{15, 0, 59}, dictWord{16, 0, 46}, dictWord{17, 0, 25}, dictWord{18, 0, 14}, dictWord{18, 0, 134}, dictWord{19, 0, 25}, dictWord{19, 0, 69}, dictWord{ 20, 0, 16, }, dictWord{20, 0, 19}, dictWord{20, 0, 66}, dictWord{21, 0, 23}, dictWord{21, 0, 25}, dictWord{150, 0, 42}, dictWord{6, 0, 1748}, dictWord{8, 0, 715}, dictWord{ 9, 0, 802, }, dictWord{10, 0, 46}, dictWord{10, 0, 819}, dictWord{13, 0, 308}, dictWord{14, 0, 351}, dictWord{14, 0, 363}, dictWord{146, 0, 67}, dictWord{ 132, 0, 994, }, dictWord{4, 0, 63}, dictWord{133, 0, 347}, dictWord{132, 0, 591}, dictWord{133, 0, 749}, dictWord{7, 11, 1577}, dictWord{10, 11, 304}, dictWord{ 10, 11, 549, }, dictWord{11, 11, 424}, dictWord{12, 11, 365}, dictWord{13, 11, 220}, dictWord{13, 11, 240}, dictWord{142, 11, 33}, dictWord{133, 0, 366}, dictWord{ 7, 0, 557, }, dictWord{12, 0, 547}, dictWord{14, 0, 86}, dictWord{133, 10, 387}, dictWord{135, 0, 1747}, dictWord{132, 11, 907}, dictWord{5, 11, 100}, dictWord{10, 11, 329}, dictWord{12, 11, 416}, dictWord{149, 11, 29}, dictWord{4, 10, 6}, dictWord{5, 10, 708}, dictWord{136, 10, 75}, dictWord{7, 10, 1351}, dictWord{9, 10, 581}, dictWord{10, 10, 639}, dictWord{11, 10, 453}, dictWord{140, 10, 584}, dictWord{7, 0, 89}, dictWord{132, 10, 303}, dictWord{138, 10, 772}, dictWord{132, 11, 176}, dictWord{5, 11, 636}, dictWord{5, 11, 998}, dictWord{8, 11, 26}, dictWord{137, 11, 358}, dictWord{7, 11, 9}, dictWord{7, 11, 1508}, dictWord{9, 11, 317}, dictWord{10, 11, 210}, dictWord{10, 11, 292}, dictWord{10, 11, 533}, dictWord{11, 11, 555}, dictWord{12, 11, 526}, dictWord{ 12, 11, 607, }, dictWord{13, 11, 263}, dictWord{13, 11, 459}, dictWord{142, 11, 271}, dictWord{134, 0, 1463}, dictWord{6, 0, 772}, dictWord{6, 0, 1137}, dictWord{ 139, 11, 595, }, dictWord{7, 0, 977}, dictWord{139, 11, 66}, dictWord{138, 0, 893}, dictWord{20, 0, 48}, dictWord{148, 11, 48}, dictWord{5, 0, 824}, dictWord{ 133, 0, 941, }, dictWord{134, 11, 295}, dictWord{7, 0, 1543}, dictWord{7, 0, 1785}, dictWord{10, 0, 690}, dictWord{4, 10, 106}, dictWord{139, 10, 717}, dictWord{ 7, 0, 440, }, dictWord{8, 0, 230}, dictWord{139, 0, 106}, dictWord{5, 10, 890}, dictWord{133, 10, 988}, dictWord{6, 10, 626}, dictWord{142, 10, 431}, dictWord{ 10, 11, 127, }, dictWord{141, 11, 27}, dictWord{17, 0, 32}, dictWord{10, 10, 706}, dictWord{150, 10, 44}, dictWord{132, 0, 216}, dictWord{137, 0, 332}, dictWord{4, 10, 698}, dictWord{136, 11, 119}, dictWord{139, 11, 267}, dictWord{138, 10, 17}, dictWord{11, 11, 526}, dictWord{11, 11, 939}, dictWord{ 141, 11, 290, }, dictWord{7, 11, 1167}, dictWord{11, 11, 934}, dictWord{13, 11, 391}, dictWord{145, 11, 76}, dictWord{139, 11, 39}, dictWord{134, 10, 84}, dictWord{ 4, 0, 914, }, dictWord{5, 0, 800}, dictWord{133, 0, 852}, dictWord{10, 0, 416}, dictWord{141, 0, 115}, dictWord{7, 0, 564}, dictWord{142, 0, 168}, dictWord{ 4, 0, 918, }, dictWord{133, 0, 876}, dictWord{134, 0, 1764}, dictWord{152, 0, 3}, dictWord{4, 0, 92}, dictWord{5, 0, 274}, dictWord{7, 11, 126}, dictWord{136, 11, 84}, dictWord{140, 10, 498}, dictWord{136, 11, 790}, dictWord{8, 0, 501}, dictWord{5, 10, 986}, dictWord{6, 10, 130}, dictWord{7, 10, 1582}, dictWord{ 8, 10, 458, }, dictWord{10, 10, 101}, dictWord{10, 10, 318}, dictWord{138, 10, 823}, dictWord{6, 11, 64}, dictWord{12, 11, 377}, dictWord{141, 11, 309}, dictWord{ 5, 0, 743, }, dictWord{138, 0, 851}, dictWord{4, 0, 49}, dictWord{7, 0, 280}, dictWord{135, 0, 1633}, dictWord{134, 0, 879}, dictWord{136, 0, 47}, dictWord{ 7, 10, 1644, }, dictWord{137, 10, 129}, dictWord{132, 0, 865}, dictWord{134, 0, 1202}, dictWord{9, 11, 34}, dictWord{139, 11, 484}, dictWord{135, 10, 997}, dictWord{5, 0, 272}, dictWord{5, 0, 908}, dictWord{5, 0, 942}, dictWord{8, 0, 197}, dictWord{9, 0, 47}, dictWord{11, 0, 538}, dictWord{139, 0, 742}, dictWord{ 6, 11, 1700, }, dictWord{7, 11, 26}, dictWord{7, 11, 293}, dictWord{7, 11, 382}, dictWord{7, 11, 1026}, dictWord{7, 11, 1087}, dictWord{7, 11, 2027}, dictWord{ 8, 11, 24, }, dictWord{8, 11, 114}, dictWord{8, 11, 252}, dictWord{8, 11, 727}, dictWord{8, 11, 729}, dictWord{9, 11, 30}, dictWord{9, 11, 199}, dictWord{9, 11, 231}, dictWord{9, 11, 251}, dictWord{9, 11, 334}, dictWord{9, 11, 361}, dictWord{9, 11, 488}, dictWord{9, 11, 712}, dictWord{10, 11, 55}, dictWord{10, 11, 60}, dictWord{ 10, 11, 232, }, dictWord{10, 11, 332}, dictWord{10, 11, 384}, dictWord{10, 11, 396}, dictWord{10, 11, 504}, dictWord{10, 11, 542}, dictWord{10, 11, 652}, dictWord{11, 11, 20}, dictWord{11, 11, 48}, dictWord{11, 11, 207}, dictWord{11, 11, 291}, dictWord{11, 11, 298}, dictWord{11, 11, 342}, dictWord{ 11, 11, 365, }, dictWord{11, 11, 394}, dictWord{11, 11, 620}, dictWord{11, 11, 705}, dictWord{11, 11, 1017}, dictWord{12, 11, 123}, dictWord{12, 11, 340}, dictWord{12, 11, 406}, dictWord{12, 11, 643}, dictWord{13, 11, 61}, dictWord{13, 11, 269}, dictWord{13, 11, 311}, dictWord{13, 11, 319}, dictWord{13, 11, 486}, dictWord{14, 11, 234}, dictWord{15, 11, 62}, dictWord{15, 11, 85}, dictWord{16, 11, 71}, dictWord{18, 11, 119}, dictWord{148, 11, 105}, dictWord{ 6, 0, 1455, }, dictWord{150, 11, 37}, dictWord{135, 10, 1927}, dictWord{135, 0, 1911}, dictWord{137, 0, 891}, dictWord{7, 10, 1756}, dictWord{137, 10, 98}, dictWord{7, 10, 1046}, dictWord{139, 10, 160}, dictWord{132, 0, 761}, dictWord{6, 11, 379}, dictWord{7, 11, 270}, dictWord{7, 11, 1116}, dictWord{ 8, 11, 176, }, dictWord{8, 11, 183}, dictWord{9, 11, 432}, dictWord{9, 11, 661}, dictWord{12, 11, 247}, dictWord{12, 11, 617}, dictWord{146, 11, 125}, dictWord{ 6, 10, 45, }, dictWord{7, 10, 433}, dictWord{8, 10, 129}, dictWord{9, 10, 21}, dictWord{10, 10, 392}, dictWord{11, 10, 79}, dictWord{12, 10, 499}, dictWord{ 13, 10, 199, }, dictWord{141, 10, 451}, dictWord{4, 0, 407}, dictWord{5, 11, 792}, dictWord{133, 11, 900}, dictWord{132, 0, 560}, dictWord{135, 0, 183}, dictWord{ 13, 0, 490, }, dictWord{7, 10, 558}, dictWord{136, 10, 353}, dictWord{4, 0, 475}, dictWord{6, 0, 731}, dictWord{11, 0, 35}, dictWord{13, 0, 71}, dictWord{13, 0, 177}, dictWord{14, 0, 422}, dictWord{133, 10, 785}, dictWord{8, 10, 81}, dictWord{9, 10, 189}, dictWord{9, 10, 201}, dictWord{11, 10, 478}, dictWord{11, 10, 712}, dictWord{141, 10, 338}, dictWord{4, 0, 418}, dictWord{4, 0, 819}, dictWord{133, 10, 353}, dictWord{151, 10, 26}, dictWord{4, 11, 901}, dictWord{ 133, 11, 776, }, dictWord{132, 0, 575}, dictWord{7, 0, 818}, dictWord{16, 0, 92}, dictWord{17, 0, 14}, dictWord{17, 0, 45}, dictWord{18, 0, 75}, dictWord{148, 0, 18}, dictWord{ 6, 0, 222, }, dictWord{7, 0, 636}, dictWord{7, 0, 1620}, dictWord{8, 0, 409}, dictWord{9, 0, 693}, dictWord{139, 0, 77}, dictWord{6, 10, 25}, dictWord{7, 10, 855}, dictWord{7, 10, 1258}, dictWord{144, 10, 32}, dictWord{6, 0, 1880}, dictWord{6, 0, 1887}, dictWord{6, 0, 1918}, dictWord{6, 0, 1924}, dictWord{9, 0, 967}, dictWord{9, 0, 995}, dictWord{9, 0, 1015}, dictWord{12, 0, 826}, dictWord{12, 0, 849}, dictWord{12, 0, 857}, dictWord{12, 0, 860}, dictWord{12, 0, 886}, dictWord{ 12, 0, 932, }, dictWord{18, 0, 228}, dictWord{18, 0, 231}, dictWord{146, 0, 240}, dictWord{134, 0, 633}, dictWord{134, 0, 1308}, dictWord{4, 11, 37}, dictWord{ 5, 11, 334, }, dictWord{135, 11, 1253}, dictWord{10, 0, 86}, dictWord{4, 10, 4}, dictWord{7, 10, 1118}, dictWord{7, 10, 1320}, dictWord{7, 10, 1706}, dictWord{ 8, 10, 277, }, dictWord{9, 10, 622}, dictWord{11, 10, 724}, dictWord{12, 10, 350}, dictWord{12, 10, 397}, dictWord{13, 10, 28}, dictWord{13, 10, 159}, dictWord{ 15, 10, 89, }, dictWord{18, 10, 5}, dictWord{19, 10, 9}, dictWord{20, 10, 34}, dictWord{150, 10, 47}, dictWord{132, 11, 508}, dictWord{137, 11, 448}, dictWord{ 12, 11, 107, }, dictWord{146, 11, 31}, dictWord{132, 0, 817}, dictWord{134, 0, 663}, dictWord{133, 0, 882}, dictWord{134, 0, 914}, dictWord{132, 11, 540}, dictWord{132, 11, 533}, dictWord{136, 11, 608}, dictWord{8, 0, 885}, dictWord{138, 0, 865}, dictWord{132, 0, 426}, dictWord{6, 0, 58}, dictWord{7, 0, 745}, dictWord{7, 0, 1969}, dictWord{8, 0, 399}, dictWord{8, 0, 675}, dictWord{9, 0, 479}, dictWord{9, 0, 731}, dictWord{10, 0, 330}, dictWord{10, 0, 593}, dictWord{ 10, 0, 817, }, dictWord{11, 0, 32}, dictWord{11, 0, 133}, dictWord{11, 0, 221}, dictWord{145, 0, 68}, dictWord{134, 10, 255}, dictWord{7, 0, 102}, dictWord{ 137, 0, 538, }, dictWord{137, 10, 216}, dictWord{7, 11, 253}, dictWord{136, 11, 549}, dictWord{135, 11, 912}, dictWord{9, 10, 183}, dictWord{139, 10, 286}, dictWord{11, 10, 956}, dictWord{151, 10, 3}, dictWord{8, 11, 527}, dictWord{18, 11, 60}, dictWord{147, 11, 24}, dictWord{4, 10, 536}, dictWord{7, 10, 1141}, dictWord{10, 10, 723}, dictWord{139, 10, 371}, dictWord{133, 11, 920}, dictWord{7, 0, 876}, dictWord{135, 10, 285}, dictWord{135, 10, 560}, dictWord{ 132, 10, 690, }, dictWord{142, 11, 126}, dictWord{11, 10, 33}, dictWord{12, 10, 571}, dictWord{149, 10, 1}, dictWord{133, 0, 566}, dictWord{9, 0, 139}, dictWord{ 10, 0, 399, }, dictWord{11, 0, 469}, dictWord{12, 0, 634}, dictWord{13, 0, 223}, dictWord{132, 11, 483}, dictWord{6, 0, 48}, dictWord{135, 0, 63}, dictWord{18, 0, 12}, dictWord{7, 10, 1862}, dictWord{12, 10, 491}, dictWord{12, 10, 520}, dictWord{13, 10, 383}, dictWord{142, 10, 244}, dictWord{135, 11, 1665}, dictWord{132, 11, 448}, dictWord{9, 11, 495}, dictWord{146, 11, 104}, dictWord{6, 0, 114}, dictWord{7, 0, 1224}, dictWord{7, 0, 1556}, dictWord{136, 0, 3}, dictWord{ 4, 10, 190, }, dictWord{133, 10, 554}, dictWord{8, 0, 576}, dictWord{9, 0, 267}, dictWord{133, 10, 1001}, dictWord{133, 10, 446}, dictWord{133, 0, 933}, dictWord{139, 11, 1009}, dictWord{8, 11, 653}, dictWord{13, 11, 93}, dictWord{147, 11, 14}, dictWord{6, 0, 692}, dictWord{6, 0, 821}, dictWord{134, 0, 1077}, dictWord{5, 11, 172}, dictWord{135, 11, 801}, dictWord{138, 0, 752}, dictWord{4, 0, 375}, dictWord{134, 0, 638}, dictWord{134, 0, 1011}, dictWord{ 140, 11, 540, }, dictWord{9, 0, 96}, dictWord{133, 11, 260}, dictWord{139, 11, 587}, dictWord{135, 10, 1231}, dictWord{12, 0, 30}, dictWord{13, 0, 148}, dictWord{ 14, 0, 87, }, dictWord{14, 0, 182}, dictWord{16, 0, 42}, dictWord{20, 0, 70}, dictWord{132, 10, 304}, dictWord{6, 0, 1398}, dictWord{7, 0, 56}, dictWord{7, 0, 1989}, dictWord{8, 0, 337}, dictWord{8, 0, 738}, dictWord{9, 0, 600}, dictWord{12, 0, 37}, dictWord{13, 0, 447}, dictWord{142, 0, 92}, dictWord{138, 0, 666}, dictWord{ 5, 0, 394, }, dictWord{7, 0, 487}, dictWord{136, 0, 246}, dictWord{9, 0, 437}, dictWord{6, 10, 53}, dictWord{6, 10, 199}, dictWord{7, 10, 1408}, dictWord{8, 10, 32}, dictWord{8, 10, 93}, dictWord{10, 10, 397}, dictWord{10, 10, 629}, dictWord{11, 10, 593}, dictWord{11, 10, 763}, dictWord{13, 10, 326}, dictWord{145, 10, 35}, dictWord{134, 10, 105}, dictWord{9, 0, 320}, dictWord{10, 0, 506}, dictWord{138, 10, 794}, dictWord{7, 11, 57}, dictWord{8, 11, 167}, dictWord{8, 11, 375}, dictWord{9, 11, 82}, dictWord{9, 11, 561}, dictWord{10, 11, 620}, dictWord{10, 11, 770}, dictWord{11, 10, 704}, dictWord{141, 10, 396}, dictWord{6, 0, 1003}, dictWord{5, 10, 114}, dictWord{5, 10, 255}, dictWord{141, 10, 285}, dictWord{7, 0, 866}, dictWord{135, 0, 1163}, dictWord{133, 11, 531}, dictWord{ 132, 0, 328, }, dictWord{7, 10, 2035}, dictWord{8, 10, 19}, dictWord{9, 10, 89}, dictWord{138, 10, 831}, dictWord{8, 11, 194}, dictWord{136, 11, 756}, dictWord{ 136, 0, 1000, }, dictWord{5, 11, 453}, dictWord{134, 11, 441}, dictWord{4, 0, 101}, dictWord{5, 0, 833}, dictWord{7, 0, 1171}, dictWord{136, 0, 744}, dictWord{ 133, 0, 726, }, dictWord{136, 10, 746}, dictWord{138, 0, 176}, dictWord{6, 0, 9}, dictWord{6, 0, 397}, dictWord{7, 0, 53}, dictWord{7, 0, 1742}, dictWord{10, 0, 632}, dictWord{11, 0, 828}, dictWord{140, 0, 146}, dictWord{135, 11, 22}, dictWord{145, 11, 64}, dictWord{132, 0, 839}, dictWord{11, 0, 417}, dictWord{12, 0, 223}, dictWord{140, 0, 265}, dictWord{4, 11, 102}, dictWord{7, 11, 815}, dictWord{7, 11, 1699}, dictWord{139, 11, 964}, dictWord{5, 10, 955}, dictWord{ 136, 10, 814, }, dictWord{6, 0, 1931}, dictWord{6, 0, 2007}, dictWord{18, 0, 246}, dictWord{146, 0, 247}, dictWord{8, 0, 198}, dictWord{11, 0, 29}, dictWord{140, 0, 534}, dictWord{135, 0, 1771}, dictWord{6, 0, 846}, dictWord{7, 11, 1010}, dictWord{11, 11, 733}, dictWord{11, 11, 759}, dictWord{12, 11, 563}, dictWord{ 13, 11, 34, }, dictWord{14, 11, 101}, dictWord{18, 11, 45}, dictWord{146, 11, 129}, dictWord{4, 0, 186}, dictWord{5, 0, 157}, dictWord{8, 0, 168}, dictWord{138, 0, 6}, dictWord{132, 11, 899}, dictWord{133, 10, 56}, dictWord{148, 10, 100}, dictWord{133, 0, 875}, dictWord{5, 0, 773}, dictWord{5, 0, 991}, dictWord{6, 0, 1635}, dictWord{134, 0, 1788}, dictWord{6, 0, 1274}, dictWord{9, 0, 477}, dictWord{141, 0, 78}, dictWord{4, 0, 639}, dictWord{7, 0, 111}, dictWord{8, 0, 581}, dictWord{ 12, 0, 177, }, dictWord{6, 11, 52}, dictWord{9, 11, 104}, dictWord{9, 11, 559}, dictWord{10, 10, 4}, dictWord{10, 10, 13}, dictWord{11, 10, 638}, dictWord{ 12, 11, 308, }, dictWord{19, 11, 87}, dictWord{148, 10, 57}, dictWord{132, 11, 604}, dictWord{4, 11, 301}, dictWord{133, 10, 738}, dictWord{133, 10, 758}, dictWord{134, 0, 1747}, dictWord{7, 11, 1440}, dictWord{11, 11, 854}, dictWord{11, 11, 872}, dictWord{11, 11, 921}, dictWord{12, 11, 551}, dictWord{ 13, 11, 472, }, dictWord{142, 11, 367}, dictWord{7, 0, 1364}, dictWord{7, 0, 1907}, dictWord{141, 0, 158}, dictWord{134, 0, 873}, dictWord{4, 0, 404}, dictWord{ 4, 0, 659, }, dictWord{7, 0, 552}, dictWord{135, 0, 675}, dictWord{135, 10, 1112}, dictWord{139, 10, 328}, dictWord{7, 11, 508}, dictWord{137, 10, 133}, dictWord{133, 0, 391}, dictWord{5, 10, 110}, dictWord{6, 10, 169}, dictWord{6, 10, 1702}, dictWord{7, 10, 400}, dictWord{8, 10, 538}, dictWord{9, 10, 184}, dictWord{ 9, 10, 524, }, dictWord{140, 10, 218}, dictWord{6, 11, 310}, dictWord{7, 11, 1849}, dictWord{8, 11, 72}, dictWord{8, 11, 272}, dictWord{8, 11, 431}, dictWord{ 9, 11, 12, }, dictWord{9, 11, 351}, dictWord{10, 11, 563}, dictWord{10, 11, 630}, dictWord{10, 11, 810}, dictWord{11, 11, 367}, dictWord{11, 11, 599}, dictWord{11, 11, 686}, dictWord{140, 11, 672}, dictWord{5, 0, 540}, dictWord{6, 0, 1697}, dictWord{136, 0, 668}, dictWord{132, 0, 883}, dictWord{134, 0, 78}, dictWord{12, 0, 628}, dictWord{18, 0, 79}, dictWord{6, 10, 133}, dictWord{9, 10, 353}, dictWord{139, 10, 993}, dictWord{6, 11, 181}, dictWord{7, 11, 537}, dictWord{ 8, 11, 64, }, dictWord{9, 11, 127}, dictWord{10, 11, 496}, dictWord{12, 11, 510}, dictWord{141, 11, 384}, dictWord{6, 10, 93}, dictWord{7, 10, 1422}, dictWord{ 7, 10, 1851, }, dictWord{8, 10, 673}, dictWord{9, 10, 529}, dictWord{140, 10, 43}, dictWord{137, 10, 371}, dictWord{134, 0, 1460}, dictWord{134, 0, 962}, dictWord{4, 11, 244}, dictWord{135, 11, 233}, dictWord{9, 10, 25}, dictWord{10, 10, 467}, dictWord{138, 10, 559}, dictWord{4, 10, 335}, dictWord{ 135, 10, 942, }, dictWord{133, 0, 460}, dictWord{135, 11, 334}, dictWord{134, 11, 1650}, dictWord{4, 0, 199}, dictWord{139, 0, 34}, dictWord{5, 10, 601}, dictWord{ 8, 10, 39, }, dictWord{10, 10, 773}, dictWord{11, 10, 84}, dictWord{12, 10, 205}, dictWord{142, 10, 1}, dictWord{133, 10, 870}, dictWord{134, 0, 388}, dictWord{14, 0, 474}, dictWord{148, 0, 120}, dictWord{133, 11, 369}, dictWord{139, 0, 271}, dictWord{4, 0, 511}, dictWord{9, 0, 333}, dictWord{9, 0, 379}, dictWord{ 10, 0, 602, }, dictWord{11, 0, 441}, dictWord{11, 0, 723}, dictWord{11, 0, 976}, dictWord{12, 0, 357}, dictWord{132, 10, 181}, dictWord{134, 0, 608}, dictWord{134, 10, 1652}, dictWord{22, 0, 49}, dictWord{137, 11, 338}, dictWord{140, 0, 988}, dictWord{134, 0, 617}, dictWord{5, 0, 938}, dictWord{136, 0, 707}, dictWord{132, 10, 97}, dictWord{5, 10, 147}, dictWord{6, 10, 286}, dictWord{7, 10, 1362}, dictWord{141, 10, 176}, dictWord{6, 0, 756}, dictWord{ 134, 0, 1149, }, dictWord{133, 11, 896}, dictWord{6, 10, 375}, dictWord{7, 10, 169}, dictWord{7, 10, 254}, dictWord{136, 10, 780}, dictWord{134, 0, 1583}, dictWord{135, 10, 1447}, dictWord{139, 0, 285}, dictWord{7, 11, 1117}, dictWord{8, 11, 393}, dictWord{136, 11, 539}, dictWord{135, 0, 344}, dictWord{ 6, 0, 469, }, dictWord{7, 0, 1709}, dictWord{138, 0, 515}, dictWord{5, 10, 629}, dictWord{135, 10, 1549}, dictWord{5, 11, 4}, dictWord{5, 11, 810}, dictWord{ 6, 11, 13, }, dictWord{6, 11, 538}, dictWord{6, 11, 1690}, dictWord{6, 11, 1726}, dictWord{7, 11, 499}, dictWord{7, 11, 1819}, dictWord{8, 11, 148}, dictWord{ 8, 11, 696, }, dictWord{8, 11, 791}, dictWord{12, 11, 125}, dictWord{13, 11, 54}, dictWord{143, 11, 9}, dictWord{135, 11, 1268}, dictWord{137, 0, 404}, dictWord{ 132, 0, 500, }, dictWord{5, 0, 68}, dictWord{134, 0, 383}, dictWord{11, 0, 216}, dictWord{139, 0, 340}, dictWord{4, 11, 925}, dictWord{5, 11, 803}, dictWord{ 8, 11, 698, }, dictWord{138, 11, 828}, dictWord{4, 0, 337}, dictWord{6, 0, 353}, dictWord{7, 0, 1934}, dictWord{8, 0, 488}, dictWord{137, 0, 429}, dictWord{7, 0, 236}, dictWord{7, 0, 1795}, dictWord{8, 0, 259}, dictWord{9, 0, 135}, dictWord{9, 0, 177}, dictWord{9, 0, 860}, dictWord{10, 0, 825}, dictWord{11, 0, 115}, dictWord{ 11, 0, 370, }, dictWord{11, 0, 405}, dictWord{11, 0, 604}, dictWord{12, 0, 10}, dictWord{12, 0, 667}, dictWord{12, 0, 669}, dictWord{13, 0, 76}, dictWord{14, 0, 310}, dictWord{15, 0, 76}, dictWord{15, 0, 147}, dictWord{148, 0, 23}, dictWord{4, 0, 15}, dictWord{4, 0, 490}, dictWord{5, 0, 22}, dictWord{6, 0, 244}, dictWord{7, 0, 40}, dictWord{7, 0, 200}, dictWord{7, 0, 906}, dictWord{7, 0, 1199}, dictWord{9, 0, 616}, dictWord{10, 0, 716}, dictWord{11, 0, 635}, dictWord{11, 0, 801}, dictWord{ 140, 0, 458, }, dictWord{12, 0, 756}, dictWord{132, 10, 420}, dictWord{134, 0, 1504}, dictWord{6, 0, 757}, dictWord{133, 11, 383}, dictWord{6, 0, 1266}, dictWord{ 135, 0, 1735, }, dictWord{5, 0, 598}, dictWord{7, 0, 791}, dictWord{8, 0, 108}, dictWord{9, 0, 123}, dictWord{7, 10, 1570}, dictWord{140, 10, 542}, dictWord{ 142, 11, 410, }, dictWord{9, 11, 660}, dictWord{138, 11, 347}, } brotli-1.0.4/symbol_list.go000066400000000000000000000007271412267201500157040ustar00rootroot00000000000000package brotli /* Copyright 2013 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* Utilities for building Huffman decoding tables. */ type symbolList struct { storage []uint16 offset int } func symbolListGet(sl symbolList, i int) uint16 { return sl.storage[i+sl.offset] } func symbolListPut(sl symbolList, i int, val uint16) { sl.storage[i+sl.offset] = val } brotli-1.0.4/testdata/000077500000000000000000000000001412267201500146205ustar00rootroot00000000000000brotli-1.0.4/testdata/Isaac.Newton-Opticks.txt000066400000000000000000021236361412267201500213010ustar00rootroot00000000000000Produced by Suzanne Lybarger, steve harris, Josephine Paolucci and the Online Distributed Proofreading Team at http://www.pgdp.net. OPTICKS: OR, A TREATISE OF THE _Reflections_, _Refractions_, _Inflections_ and _Colours_ OF LIGHT. _The_ FOURTH EDITION, _corrected_. By Sir _ISAAC NEWTON_, Knt. LONDON: Printed for WILLIAM INNYS at the West-End of St. _Paul's_. MDCCXXX. TITLE PAGE OF THE 1730 EDITION SIR ISAAC NEWTON'S ADVERTISEMENTS Advertisement I _Part of the ensuing Discourse about Light was written at the Desire of some Gentlemen of the_ Royal-Society, _in the Year 1675, and then sent to their Secretary, and read at their Meetings, and the rest was added about twelve Years after to complete the Theory; except the third Book, and the last Proposition of the Second, which were since put together out of scatter'd Papers. To avoid being engaged in Disputes about these Matters, I have hitherto delayed the printing, and should still have delayed it, had not the Importunity of Friends prevailed upon me. If any other Papers writ on this Subject are got out of my Hands they are imperfect, and were perhaps written before I had tried all the Experiments here set down, and fully satisfied my self about the Laws of Refractions and Composition of Colours. I have here publish'd what I think proper to come abroad, wishing that it may not be translated into another Language without my Consent._ _The Crowns of Colours, which sometimes appear about the Sun and Moon, I have endeavoured to give an Account of; but for want of sufficient Observations leave that Matter to be farther examined. The Subject of the Third Book I have also left imperfect, not having tried all the Experiments which I intended when I was about these Matters, nor repeated some of those which I did try, until I had satisfied my self about all their Circumstances. To communicate what I have tried, and leave the rest to others for farther Enquiry, is all my Design in publishing these Papers._ _In a Letter written to Mr._ Leibnitz _in the year 1679, and published by Dr._ Wallis, _I mention'd a Method by which I had found some general Theorems about squaring Curvilinear Figures, or comparing them with the Conic Sections, or other the simplest Figures with which they may be compared. And some Years ago I lent out a Manuscript containing such Theorems, and having since met with some Things copied out of it, I have on this Occasion made it publick, prefixing to it an_ Introduction, _and subjoining a_ Scholium _concerning that Method. And I have joined with it another small Tract concerning the Curvilinear Figures of the Second Kind, which was also written many Years ago, and made known to some Friends, who have solicited the making it publick._ _I. N._ April 1, 1704. Advertisement II _In this Second Edition of these Opticks I have omitted the Mathematical Tracts publish'd at the End of the former Edition, as not belonging to the Subject. And at the End of the Third Book I have added some Questions. And to shew that I do not take Gravity for an essential Property of Bodies, I have added one Question concerning its Cause, chusing to propose it by way of a Question, because I am not yet satisfied about it for want of Experiments._ _I. N._ July 16, 1717. Advertisement to this Fourth Edition _This new Edition of Sir_ Isaac Newton's Opticks _is carefully printed from the Third Edition, as it was corrected by the Author's own Hand, and left before his Death with the Bookseller. Since Sir_ Isaac's Lectiones Opticæ, _which he publickly read in the University of_ Cambridge _in the Years 1669, 1670, and 1671, are lately printed, it has been thought proper to make at the bottom of the Pages several Citations from thence, where may be found the Demonstrations, which the Author omitted in these_ Opticks. * * * * * Transcriber's Note: There are several greek letters used in the descriptions of the illustrations. They are signified by [Greek: letter]. Square roots are noted by the letters sqrt before the equation. * * * * * THE FIRST BOOK OF OPTICKS _PART I._ My Design in this Book is not to explain the Properties of Light by Hypotheses, but to propose and prove them by Reason and Experiments: In order to which I shall premise the following Definitions and Axioms. _DEFINITIONS_ DEFIN. I. _By the Rays of Light I understand its least Parts, and those as well Successive in the same Lines, as Contemporary in several Lines._ For it is manifest that Light consists of Parts, both Successive and Contemporary; because in the same place you may stop that which comes one moment, and let pass that which comes presently after; and in the same time you may stop it in any one place, and let it pass in any other. For that part of Light which is stopp'd cannot be the same with that which is let pass. The least Light or part of Light, which may be stopp'd alone without the rest of the Light, or propagated alone, or do or suffer any thing alone, which the rest of the Light doth not or suffers not, I call a Ray of Light. DEFIN. II. _Refrangibility of the Rays of Light, is their Disposition to be refracted or turned out of their Way in passing out of one transparent Body or Medium into another. And a greater or less Refrangibility of Rays, is their Disposition to be turned more or less out of their Way in like Incidences on the same Medium._ Mathematicians usually consider the Rays of Light to be Lines reaching from the luminous Body to the Body illuminated, and the refraction of those Rays to be the bending or breaking of those lines in their passing out of one Medium into another. And thus may Rays and Refractions be considered, if Light be propagated in an instant. But by an Argument taken from the Æquations of the times of the Eclipses of _Jupiter's Satellites_, it seems that Light is propagated in time, spending in its passage from the Sun to us about seven Minutes of time: And therefore I have chosen to define Rays and Refractions in such general terms as may agree to Light in both cases. DEFIN. III. _Reflexibility of Rays, is their Disposition to be reflected or turned back into the same Medium from any other Medium upon whose Surface they fall. And Rays are more or less reflexible, which are turned back more or less easily._ As if Light pass out of a Glass into Air, and by being inclined more and more to the common Surface of the Glass and Air, begins at length to be totally reflected by that Surface; those sorts of Rays which at like Incidences are reflected most copiously, or by inclining the Rays begin soonest to be totally reflected, are most reflexible. DEFIN. IV. _The Angle of Incidence is that Angle, which the Line described by the incident Ray contains with the Perpendicular to the reflecting or refracting Surface at the Point of Incidence._ DEFIN. V. _The Angle of Reflexion or Refraction, is the Angle which the line described by the reflected or refracted Ray containeth with the Perpendicular to the reflecting or refracting Surface at the Point of Incidence._ DEFIN. VI. _The Sines of Incidence, Reflexion, and Refraction, are the Sines of the Angles of Incidence, Reflexion, and Refraction._ DEFIN. VII _The Light whose Rays are all alike Refrangible, I call Simple, Homogeneal and Similar; and that whose Rays are some more Refrangible than others, I call Compound, Heterogeneal and Dissimilar._ The former Light I call Homogeneal, not because I would affirm it so in all respects, but because the Rays which agree in Refrangibility, agree at least in all those their other Properties which I consider in the following Discourse. DEFIN. VIII. _The Colours of Homogeneal Lights, I call Primary, Homogeneal and Simple; and those of Heterogeneal Lights, Heterogeneal and Compound._ For these are always compounded of the colours of Homogeneal Lights; as will appear in the following Discourse. _AXIOMS._ AX. I. _The Angles of Reflexion and Refraction, lie in one and the same Plane with the Angle of Incidence._ AX. II. _The Angle of Reflexion is equal to the Angle of Incidence._ AX. III. _If the refracted Ray be returned directly back to the Point of Incidence, it shall be refracted into the Line before described by the incident Ray._ AX. IV. _Refraction out of the rarer Medium into the denser, is made towards the Perpendicular; that is, so that the Angle of Refraction be less than the Angle of Incidence._ AX. V. _The Sine of Incidence is either accurately or very nearly in a given Ratio to the Sine of Refraction._ Whence if that Proportion be known in any one Inclination of the incident Ray, 'tis known in all the Inclinations, and thereby the Refraction in all cases of Incidence on the same refracting Body may be determined. Thus if the Refraction be made out of Air into Water, the Sine of Incidence of the red Light is to the Sine of its Refraction as 4 to 3. If out of Air into Glass, the Sines are as 17 to 11. In Light of other Colours the Sines have other Proportions: but the difference is so little that it need seldom be considered. [Illustration: FIG. 1] Suppose therefore, that RS [in _Fig._ 1.] represents the Surface of stagnating Water, and that C is the point of Incidence in which any Ray coming in the Air from A in the Line AC is reflected or refracted, and I would know whither this Ray shall go after Reflexion or Refraction: I erect upon the Surface of the Water from the point of Incidence the Perpendicular CP and produce it downwards to Q, and conclude by the first Axiom, that the Ray after Reflexion and Refraction, shall be found somewhere in the Plane of the Angle of Incidence ACP produced. I let fall therefore upon the Perpendicular CP the Sine of Incidence AD; and if the reflected Ray be desired, I produce AD to B so that DB be equal to AD, and draw CB. For this Line CB shall be the reflected Ray; the Angle of Reflexion BCP and its Sine BD being equal to the Angle and Sine of Incidence, as they ought to be by the second Axiom, But if the refracted Ray be desired, I produce AD to H, so that DH may be to AD as the Sine of Refraction to the Sine of Incidence, that is, (if the Light be red) as 3 to 4; and about the Center C and in the Plane ACP with the Radius CA describing a Circle ABE, I draw a parallel to the Perpendicular CPQ, the Line HE cutting the Circumference in E, and joining CE, this Line CE shall be the Line of the refracted Ray. For if EF be let fall perpendicularly on the Line PQ, this Line EF shall be the Sine of Refraction of the Ray CE, the Angle of Refraction being ECQ; and this Sine EF is equal to DH, and consequently in Proportion to the Sine of Incidence AD as 3 to 4. In like manner, if there be a Prism of Glass (that is, a Glass bounded with two Equal and Parallel Triangular ends, and three plain and well polished Sides, which meet in three Parallel Lines running from the three Angles of one end to the three Angles of the other end) and if the Refraction of the Light in passing cross this Prism be desired: Let ACB [in _Fig._ 2.] represent a Plane cutting this Prism transversly to its three Parallel lines or edges there where the Light passeth through it, and let DE be the Ray incident upon the first side of the Prism AC where the Light goes into the Glass; and by putting the Proportion of the Sine of Incidence to the Sine of Refraction as 17 to 11 find EF the first refracted Ray. Then taking this Ray for the Incident Ray upon the second side of the Glass BC where the Light goes out, find the next refracted Ray FG by putting the Proportion of the Sine of Incidence to the Sine of Refraction as 11 to 17. For if the Sine of Incidence out of Air into Glass be to the Sine of Refraction as 17 to 11, the Sine of Incidence out of Glass into Air must on the contrary be to the Sine of Refraction as 11 to 17, by the third Axiom. [Illustration: FIG. 2.] Much after the same manner, if ACBD [in _Fig._ 3.] represent a Glass spherically convex on both sides (usually called a _Lens_, such as is a Burning-glass, or Spectacle-glass, or an Object-glass of a Telescope) and it be required to know how Light falling upon it from any lucid point Q shall be refracted, let QM represent a Ray falling upon any point M of its first spherical Surface ACB, and by erecting a Perpendicular to the Glass at the point M, find the first refracted Ray MN by the Proportion of the Sines 17 to 11. Let that Ray in going out of the Glass be incident upon N, and then find the second refracted Ray N_q_ by the Proportion of the Sines 11 to 17. And after the same manner may the Refraction be found when the Lens is convex on one side and plane or concave on the other, or concave on both sides. [Illustration: FIG. 3.] AX. VI. _Homogeneal Rays which flow from several Points of any Object, and fall perpendicularly or almost perpendicularly on any reflecting or refracting Plane or spherical Surface, shall afterwards diverge from so many other Points, or be parallel to so many other Lines, or converge to so many other Points, either accurately or without any sensible Error. And the same thing will happen, if the Rays be reflected or refracted successively by two or three or more Plane or Spherical Surfaces._ The Point from which Rays diverge or to which they converge may be called their _Focus_. And the Focus of the incident Rays being given, that of the reflected or refracted ones may be found by finding the Refraction of any two Rays, as above; or more readily thus. _Cas._ 1. Let ACB [in _Fig._ 4.] be a reflecting or refracting Plane, and Q the Focus of the incident Rays, and Q_q_C a Perpendicular to that Plane. And if this Perpendicular be produced to _q_, so that _q_C be equal to QC, the Point _q_ shall be the Focus of the reflected Rays: Or if _q_C be taken on the same side of the Plane with QC, and in proportion to QC as the Sine of Incidence to the Sine of Refraction, the Point _q_ shall be the Focus of the refracted Rays. [Illustration: FIG. 4.] _Cas._ 2. Let ACB [in _Fig._ 5.] be the reflecting Surface of any Sphere whose Centre is E. Bisect any Radius thereof, (suppose EC) in T, and if in that Radius on the same side the Point T you take the Points Q and _q_, so that TQ, TE, and T_q_, be continual Proportionals, and the Point Q be the Focus of the incident Rays, the Point _q_ shall be the Focus of the reflected ones. [Illustration: FIG. 5.] _Cas._ 3. Let ACB [in _Fig._ 6.] be the refracting Surface of any Sphere whose Centre is E. In any Radius thereof EC produced both ways take ET and C_t_ equal to one another and severally in such Proportion to that Radius as the lesser of the Sines of Incidence and Refraction hath to the difference of those Sines. And then if in the same Line you find any two Points Q and _q_, so that TQ be to ET as E_t_ to _tq_, taking _tq_ the contrary way from _t_ which TQ lieth from T, and if the Point Q be the Focus of any incident Rays, the Point _q_ shall be the Focus of the refracted ones. [Illustration: FIG. 6.] And by the same means the Focus of the Rays after two or more Reflexions or Refractions may be found. [Illustration: FIG. 7.] _Cas._ 4. Let ACBD [in _Fig._ 7.] be any refracting Lens, spherically Convex or Concave or Plane on either side, and let CD be its Axis (that is, the Line which cuts both its Surfaces perpendicularly, and passes through the Centres of the Spheres,) and in this Axis produced let F and _f_ be the Foci of the refracted Rays found as above, when the incident Rays on both sides the Lens are parallel to the same Axis; and upon the Diameter F_f_ bisected in E, describe a Circle. Suppose now that any Point Q be the Focus of any incident Rays. Draw QE cutting the said Circle in T and _t_, and therein take _tq_ in such proportion to _t_E as _t_E or TE hath to TQ. Let _tq_ lie the contrary way from _t_ which TQ doth from T, and _q_ shall be the Focus of the refracted Rays without any sensible Error, provided the Point Q be not so remote from the Axis, nor the Lens so broad as to make any of the Rays fall too obliquely on the refracting Surfaces.[A] And by the like Operations may the reflecting or refracting Surfaces be found when the two Foci are given, and thereby a Lens be formed, which shall make the Rays flow towards or from what Place you please.[B] So then the Meaning of this Axiom is, that if Rays fall upon any Plane or Spherical Surface or Lens, and before their Incidence flow from or towards any Point Q, they shall after Reflexion or Refraction flow from or towards the Point _q_ found by the foregoing Rules. And if the incident Rays flow from or towards several points Q, the reflected or refracted Rays shall flow from or towards so many other Points _q_ found by the same Rules. Whether the reflected and refracted Rays flow from or towards the Point _q_ is easily known by the situation of that Point. For if that Point be on the same side of the reflecting or refracting Surface or Lens with the Point Q, and the incident Rays flow from the Point Q, the reflected flow towards the Point _q_ and the refracted from it; and if the incident Rays flow towards Q, the reflected flow from _q_, and the refracted towards it. And the contrary happens when _q_ is on the other side of the Surface. AX. VII. _Wherever the Rays which come from all the Points of any Object meet again in so many Points after they have been made to converge by Reflection or Refraction, there they will make a Picture of the Object upon any white Body on which they fall._ So if PR [in _Fig._ 3.] represent any Object without Doors, and AB be a Lens placed at a hole in the Window-shut of a dark Chamber, whereby the Rays that come from any Point Q of that Object are made to converge and meet again in the Point _q_; and if a Sheet of white Paper be held at _q_ for the Light there to fall upon it, the Picture of that Object PR will appear upon the Paper in its proper shape and Colours. For as the Light which comes from the Point Q goes to the Point _q_, so the Light which comes from other Points P and R of the Object, will go to so many other correspondent Points _p_ and _r_ (as is manifest by the sixth Axiom;) so that every Point of the Object shall illuminate a correspondent Point of the Picture, and thereby make a Picture like the Object in Shape and Colour, this only excepted, that the Picture shall be inverted. And this is the Reason of that vulgar Experiment of casting the Species of Objects from abroad upon a Wall or Sheet of white Paper in a dark Room. In like manner, when a Man views any Object PQR, [in _Fig._ 8.] the Light which comes from the several Points of the Object is so refracted by the transparent skins and humours of the Eye, (that is, by the outward coat EFG, called the _Tunica Cornea_, and by the crystalline humour AB which is beyond the Pupil _mk_) as to converge and meet again in so many Points in the bottom of the Eye, and there to paint the Picture of the Object upon that skin (called the _Tunica Retina_) with which the bottom of the Eye is covered. For Anatomists, when they have taken off from the bottom of the Eye that outward and most thick Coat called the _Dura Mater_, can then see through the thinner Coats, the Pictures of Objects lively painted thereon. And these Pictures, propagated by Motion along the Fibres of the Optick Nerves into the Brain, are the cause of Vision. For accordingly as these Pictures are perfect or imperfect, the Object is seen perfectly or imperfectly. If the Eye be tinged with any colour (as in the Disease of the _Jaundice_) so as to tinge the Pictures in the bottom of the Eye with that Colour, then all Objects appear tinged with the same Colour. If the Humours of the Eye by old Age decay, so as by shrinking to make the _Cornea_ and Coat of the _Crystalline Humour_ grow flatter than before, the Light will not be refracted enough, and for want of a sufficient Refraction will not converge to the bottom of the Eye but to some place beyond it, and by consequence paint in the bottom of the Eye a confused Picture, and according to the Indistinctness of this Picture the Object will appear confused. This is the reason of the decay of sight in old Men, and shews why their Sight is mended by Spectacles. For those Convex glasses supply the defect of plumpness in the Eye, and by increasing the Refraction make the Rays converge sooner, so as to convene distinctly at the bottom of the Eye if the Glass have a due degree of convexity. And the contrary happens in short-sighted Men whose Eyes are too plump. For the Refraction being now too great, the Rays converge and convene in the Eyes before they come at the bottom; and therefore the Picture made in the bottom and the Vision caused thereby will not be distinct, unless the Object be brought so near the Eye as that the place where the converging Rays convene may be removed to the bottom, or that the plumpness of the Eye be taken off and the Refractions diminished by a Concave-glass of a due degree of Concavity, or lastly that by Age the Eye grow flatter till it come to a due Figure: For short-sighted Men see remote Objects best in Old Age, and therefore they are accounted to have the most lasting Eyes. [Illustration: FIG. 8.] AX. VIII. _An Object seen by Reflexion or Refraction, appears in that place from whence the Rays after their last Reflexion or Refraction diverge in falling on the Spectator's Eye._ [Illustration: FIG. 9.] If the Object A [in FIG. 9.] be seen by Reflexion of a Looking-glass _mn_, it shall appear, not in its proper place A, but behind the Glass at _a_, from whence any Rays AB, AC, AD, which flow from one and the same Point of the Object, do after their Reflexion made in the Points B, C, D, diverge in going from the Glass to E, F, G, where they are incident on the Spectator's Eyes. For these Rays do make the same Picture in the bottom of the Eyes as if they had come from the Object really placed at _a_ without the Interposition of the Looking-glass; and all Vision is made according to the place and shape of that Picture. In like manner the Object D [in FIG. 2.] seen through a Prism, appears not in its proper place D, but is thence translated to some other place _d_ situated in the last refracted Ray FG drawn backward from F to _d_. [Illustration: FIG. 10.] And so the Object Q [in FIG. 10.] seen through the Lens AB, appears at the place _q_ from whence the Rays diverge in passing from the Lens to the Eye. Now it is to be noted, that the Image of the Object at _q_ is so much bigger or lesser than the Object it self at Q, as the distance of the Image at _q_ from the Lens AB is bigger or less than the distance of the Object at Q from the same Lens. And if the Object be seen through two or more such Convex or Concave-glasses, every Glass shall make a new Image, and the Object shall appear in the place of the bigness of the last Image. Which consideration unfolds the Theory of Microscopes and Telescopes. For that Theory consists in almost nothing else than the describing such Glasses as shall make the last Image of any Object as distinct and large and luminous as it can conveniently be made. I have now given in Axioms and their Explications the sum of what hath hitherto been treated of in Opticks. For what hath been generally agreed on I content my self to assume under the notion of Principles, in order to what I have farther to write. And this may suffice for an Introduction to Readers of quick Wit and good Understanding not yet versed in Opticks: Although those who are already acquainted with this Science, and have handled Glasses, will more readily apprehend what followeth. FOOTNOTES: [A] In our Author's _Lectiones Opticæ_, Part I. Sect. IV. Prop 29, 30, there is an elegant Method of determining these _Foci_; not only in spherical Surfaces, but likewise in any other curved Figure whatever: And in Prop. 32, 33, the same thing is done for any Ray lying out of the Axis. [B] _Ibid._ Prop. 34. _PROPOSITIONS._ _PROP._ I. THEOR. I. _Lights which differ in Colour, differ also in Degrees of Refrangibility._ The PROOF by Experiments. _Exper._ 1. I took a black oblong stiff Paper terminated by Parallel Sides, and with a Perpendicular right Line drawn cross from one Side to the other, distinguished it into two equal Parts. One of these parts I painted with a red colour and the other with a blue. The Paper was very black, and the Colours intense and thickly laid on, that the Phænomenon might be more conspicuous. This Paper I view'd through a Prism of solid Glass, whose two Sides through which the Light passed to the Eye were plane and well polished, and contained an Angle of about sixty degrees; which Angle I call the refracting Angle of the Prism. And whilst I view'd it, I held it and the Prism before a Window in such manner that the Sides of the Paper were parallel to the Prism, and both those Sides and the Prism were parallel to the Horizon, and the cross Line was also parallel to it: and that the Light which fell from the Window upon the Paper made an Angle with the Paper, equal to that Angle which was made with the same Paper by the Light reflected from it to the Eye. Beyond the Prism was the Wall of the Chamber under the Window covered over with black Cloth, and the Cloth was involved in Darkness that no Light might be reflected from thence, which in passing by the Edges of the Paper to the Eye, might mingle itself with the Light of the Paper, and obscure the Phænomenon thereof. These things being thus ordered, I found that if the refracting Angle of the Prism be turned upwards, so that the Paper may seem to be lifted upwards by the Refraction, its blue half will be lifted higher by the Refraction than its red half. But if the refracting Angle of the Prism be turned downward, so that the Paper may seem to be carried lower by the Refraction, its blue half will be carried something lower thereby than its red half. Wherefore in both Cases the Light which comes from the blue half of the Paper through the Prism to the Eye, does in like Circumstances suffer a greater Refraction than the Light which comes from the red half, and by consequence is more refrangible. _Illustration._ In the eleventh Figure, MN represents the Window, and DE the Paper terminated with parallel Sides DJ and HE, and by the transverse Line FG distinguished into two halfs, the one DG of an intensely blue Colour, the other FE of an intensely red. And BAC_cab_ represents the Prism whose refracting Planes AB_ba_ and AC_ca_ meet in the Edge of the refracting Angle A_a_. This Edge A_a_ being upward, is parallel both to the Horizon, and to the Parallel-Edges of the Paper DJ and HE, and the transverse Line FG is perpendicular to the Plane of the Window. And _de_ represents the Image of the Paper seen by Refraction upwards in such manner, that the blue half DG is carried higher to _dg_ than the red half FE is to _fe_, and therefore suffers a greater Refraction. If the Edge of the refracting Angle be turned downward, the Image of the Paper will be refracted downward; suppose to [Greek: de], and the blue half will be refracted lower to [Greek: dg] than the red half is to [Greek: pe]. [Illustration: FIG. 11.] _Exper._ 2. About the aforesaid Paper, whose two halfs were painted over with red and blue, and which was stiff like thin Pasteboard, I lapped several times a slender Thred of very black Silk, in such manner that the several parts of the Thred might appear upon the Colours like so many black Lines drawn over them, or like long and slender dark Shadows cast upon them. I might have drawn black Lines with a Pen, but the Threds were smaller and better defined. This Paper thus coloured and lined I set against a Wall perpendicularly to the Horizon, so that one of the Colours might stand to the Right Hand, and the other to the Left. Close before the Paper, at the Confine of the Colours below, I placed a Candle to illuminate the Paper strongly: For the Experiment was tried in the Night. The Flame of the Candle reached up to the lower edge of the Paper, or a very little higher. Then at the distance of six Feet, and one or two Inches from the Paper upon the Floor I erected a Glass Lens four Inches and a quarter broad, which might collect the Rays coming from the several Points of the Paper, and make them converge towards so many other Points at the same distance of six Feet, and one or two Inches on the other side of the Lens, and so form the Image of the coloured Paper upon a white Paper placed there, after the same manner that a Lens at a Hole in a Window casts the Images of Objects abroad upon a Sheet of white Paper in a dark Room. The aforesaid white Paper, erected perpendicular to the Horizon, and to the Rays which fell upon it from the Lens, I moved sometimes towards the Lens, sometimes from it, to find the Places where the Images of the blue and red Parts of the coloured Paper appeared most distinct. Those Places I easily knew by the Images of the black Lines which I had made by winding the Silk about the Paper. For the Images of those fine and slender Lines (which by reason of their Blackness were like Shadows on the Colours) were confused and scarce visible, unless when the Colours on either side of each Line were terminated most distinctly, Noting therefore, as diligently as I could, the Places where the Images of the red and blue halfs of the coloured Paper appeared most distinct, I found that where the red half of the Paper appeared distinct, the blue half appeared confused, so that the black Lines drawn upon it could scarce be seen; and on the contrary, where the blue half appeared most distinct, the red half appeared confused, so that the black Lines upon it were scarce visible. And between the two Places where these Images appeared distinct there was the distance of an Inch and a half; the distance of the white Paper from the Lens, when the Image of the red half of the coloured Paper appeared most distinct, being greater by an Inch and an half than the distance of the same white Paper from the Lens, when the Image of the blue half appeared most distinct. In like Incidences therefore of the blue and red upon the Lens, the blue was refracted more by the Lens than the red, so as to converge sooner by an Inch and a half, and therefore is more refrangible. _Illustration._ In the twelfth Figure (p. 27), DE signifies the coloured Paper, DG the blue half, FE the red half, MN the Lens, HJ the white Paper in that Place where the red half with its black Lines appeared distinct, and _hi_ the same Paper in that Place where the blue half appeared distinct. The Place _hi_ was nearer to the Lens MN than the Place HJ by an Inch and an half. _Scholium._ The same Things succeed, notwithstanding that some of the Circumstances be varied; as in the first Experiment when the Prism and Paper are any ways inclined to the Horizon, and in both when coloured Lines are drawn upon very black Paper. But in the Description of these Experiments, I have set down such Circumstances, by which either the Phænomenon might be render'd more conspicuous, or a Novice might more easily try them, or by which I did try them only. The same Thing, I have often done in the following Experiments: Concerning all which, this one Admonition may suffice. Now from these Experiments it follows not, that all the Light of the blue is more refrangible than all the Light of the red: For both Lights are mixed of Rays differently refrangible, so that in the red there are some Rays not less refrangible than those of the blue, and in the blue there are some Rays not more refrangible than those of the red: But these Rays, in proportion to the whole Light, are but few, and serve to diminish the Event of the Experiment, but are not able to destroy it. For, if the red and blue Colours were more dilute and weak, the distance of the Images would be less than an Inch and a half; and if they were more intense and full, that distance would be greater, as will appear hereafter. These Experiments may suffice for the Colours of Natural Bodies. For in the Colours made by the Refraction of Prisms, this Proposition will appear by the Experiments which are now to follow in the next Proposition. _PROP._ II. THEOR. II. _The Light of the Sun consists of Rays differently Refrangible._ The PROOF by Experiments. [Illustration: FIG. 12.] [Illustration: FIG. 13.] _Exper._ 3. In a very dark Chamber, at a round Hole, about one third Part of an Inch broad, made in the Shut of a Window, I placed a Glass Prism, whereby the Beam of the Sun's Light, which came in at that Hole, might be refracted upwards toward the opposite Wall of the Chamber, and there form a colour'd Image of the Sun. The Axis of the Prism (that is, the Line passing through the middle of the Prism from one end of it to the other end parallel to the edge of the Refracting Angle) was in this and the following Experiments perpendicular to the incident Rays. About this Axis I turned the Prism slowly, and saw the refracted Light on the Wall, or coloured Image of the Sun, first to descend, and then to ascend. Between the Descent and Ascent, when the Image seemed Stationary, I stopp'd the Prism, and fix'd it in that Posture, that it should be moved no more. For in that Posture the Refractions of the Light at the two Sides of the refracting Angle, that is, at the Entrance of the Rays into the Prism, and at their going out of it, were equal to one another.[C] So also in other Experiments, as often as I would have the Refractions on both sides the Prism to be equal to one another, I noted the Place where the Image of the Sun formed by the refracted Light stood still between its two contrary Motions, in the common Period of its Progress and Regress; and when the Image fell upon that Place, I made fast the Prism. And in this Posture, as the most convenient, it is to be understood that all the Prisms are placed in the following Experiments, unless where some other Posture is described. The Prism therefore being placed in this Posture, I let the refracted Light fall perpendicularly upon a Sheet of white Paper at the opposite Wall of the Chamber, and observed the Figure and Dimensions of the Solar Image formed on the Paper by that Light. This Image was Oblong and not Oval, but terminated with two Rectilinear and Parallel Sides, and two Semicircular Ends. On its Sides it was bounded pretty distinctly, but on its Ends very confusedly and indistinctly, the Light there decaying and vanishing by degrees. The Breadth of this Image answered to the Sun's Diameter, and was about two Inches and the eighth Part of an Inch, including the Penumbra. For the Image was eighteen Feet and an half distant from the Prism, and at this distance that Breadth, if diminished by the Diameter of the Hole in the Window-shut, that is by a quarter of an Inch, subtended an Angle at the Prism of about half a Degree, which is the Sun's apparent Diameter. But the Length of the Image was about ten Inches and a quarter, and the Length of the Rectilinear Sides about eight Inches; and the refracting Angle of the Prism, whereby so great a Length was made, was 64 degrees. With a less Angle the Length of the Image was less, the Breadth remaining the same. If the Prism was turned about its Axis that way which made the Rays emerge more obliquely out of the second refracting Surface of the Prism, the Image soon became an Inch or two longer, or more; and if the Prism was turned about the contrary way, so as to make the Rays fall more obliquely on the first refracting Surface, the Image soon became an Inch or two shorter. And therefore in trying this Experiment, I was as curious as I could be in placing the Prism by the above-mention'd Rule exactly in such a Posture, that the Refractions of the Rays at their Emergence out of the Prism might be equal to that at their Incidence on it. This Prism had some Veins running along within the Glass from one end to the other, which scattered some of the Sun's Light irregularly, but had no sensible Effect in increasing the Length of the coloured Spectrum. For I tried the same Experiment with other Prisms with the same Success. And particularly with a Prism which seemed free from such Veins, and whose refracting Angle was 62-1/2 Degrees, I found the Length of the Image 9-3/4 or 10 Inches at the distance of 18-1/2 Feet from the Prism, the Breadth of the Hole in the Window-shut being 1/4 of an Inch, as before. And because it is easy to commit a Mistake in placing the Prism in its due Posture, I repeated the Experiment four or five Times, and always found the Length of the Image that which is set down above. With another Prism of clearer Glass and better Polish, which seemed free from Veins, and whose refracting Angle was 63-1/2 Degrees, the Length of this Image at the same distance of 18-1/2 Feet was also about 10 Inches, or 10-1/8. Beyond these Measures for about a 1/4 or 1/3 of an Inch at either end of the Spectrum the Light of the Clouds seemed to be a little tinged with red and violet, but so very faintly, that I suspected that Tincture might either wholly, or in great Measure arise from some Rays of the Spectrum scattered irregularly by some Inequalities in the Substance and Polish of the Glass, and therefore I did not include it in these Measures. Now the different Magnitude of the hole in the Window-shut, and different thickness of the Prism where the Rays passed through it, and different inclinations of the Prism to the Horizon, made no sensible changes in the length of the Image. Neither did the different matter of the Prisms make any: for in a Vessel made of polished Plates of Glass cemented together in the shape of a Prism and filled with Water, there is the like Success of the Experiment according to the quantity of the Refraction. It is farther to be observed, that the Rays went on in right Lines from the Prism to the Image, and therefore at their very going out of the Prism had all that Inclination to one another from which the length of the Image proceeded, that is, the Inclination of more than two degrees and an half. And yet according to the Laws of Opticks vulgarly received, they could not possibly be so much inclined to one another.[D] For let EG [_Fig._ 13. (p. 27)] represent the Window-shut, F the hole made therein through which a beam of the Sun's Light was transmitted into the darkened Chamber, and ABC a Triangular Imaginary Plane whereby the Prism is feigned to be cut transversely through the middle of the Light. Or if you please, let ABC represent the Prism it self, looking directly towards the Spectator's Eye with its nearer end: And let XY be the Sun, MN the Paper upon which the Solar Image or Spectrum is cast, and PT the Image it self whose sides towards _v_ and _w_ are Rectilinear and Parallel, and ends towards P and T Semicircular. YKHP and XLJT are two Rays, the first of which comes from the lower part of the Sun to the higher part of the Image, and is refracted in the Prism at K and H, and the latter comes from the higher part of the Sun to the lower part of the Image, and is refracted at L and J. Since the Refractions on both sides the Prism are equal to one another, that is, the Refraction at K equal to the Refraction at J, and the Refraction at L equal to the Refraction at H, so that the Refractions of the incident Rays at K and L taken together, are equal to the Refractions of the emergent Rays at H and J taken together: it follows by adding equal things to equal things, that the Refractions at K and H taken together, are equal to the Refractions at J and L taken together, and therefore the two Rays being equally refracted, have the same Inclination to one another after Refraction which they had before; that is, the Inclination of half a Degree answering to the Sun's Diameter. For so great was the inclination of the Rays to one another before Refraction. So then, the length of the Image PT would by the Rules of Vulgar Opticks subtend an Angle of half a Degree at the Prism, and by Consequence be equal to the breadth _vw_; and therefore the Image would be round. Thus it would be were the two Rays XLJT and YKHP, and all the rest which form the Image P_w_T_v_, alike refrangible. And therefore seeing by Experience it is found that the Image is not round, but about five times longer than broad, the Rays which going to the upper end P of the Image suffer the greatest Refraction, must be more refrangible than those which go to the lower end T, unless the Inequality of Refraction be casual. This Image or Spectrum PT was coloured, being red at its least refracted end T, and violet at its most refracted end P, and yellow green and blue in the intermediate Spaces. Which agrees with the first Proposition, that Lights which differ in Colour, do also differ in Refrangibility. The length of the Image in the foregoing Experiments, I measured from the faintest and outmost red at one end, to the faintest and outmost blue at the other end, excepting only a little Penumbra, whose breadth scarce exceeded a quarter of an Inch, as was said above. _Exper._ 4. In the Sun's Beam which was propagated into the Room through the hole in the Window-shut, at the distance of some Feet from the hole, I held the Prism in such a Posture, that its Axis might be perpendicular to that Beam. Then I looked through the Prism upon the hole, and turning the Prism to and fro about its Axis, to make the Image of the Hole ascend and descend, when between its two contrary Motions it seemed Stationary, I stopp'd the Prism, that the Refractions of both sides of the refracting Angle might be equal to each other, as in the former Experiment. In this situation of the Prism viewing through it the said Hole, I observed the length of its refracted Image to be many times greater than its breadth, and that the most refracted part thereof appeared violet, the least refracted red, the middle parts blue, green and yellow in order. The same thing happen'd when I removed the Prism out of the Sun's Light, and looked through it upon the hole shining by the Light of the Clouds beyond it. And yet if the Refraction were done regularly according to one certain Proportion of the Sines of Incidence and Refraction as is vulgarly supposed, the refracted Image ought to have appeared round. So then, by these two Experiments it appears, that in Equal Incidences there is a considerable inequality of Refractions. But whence this inequality arises, whether it be that some of the incident Rays are refracted more, and others less, constantly, or by chance, or that one and the same Ray is by Refraction disturbed, shatter'd, dilated, and as it were split and spread into many diverging Rays, as _Grimaldo_ supposes, does not yet appear by these Experiments, but will appear by those that follow. _Exper._ 5. Considering therefore, that if in the third Experiment the Image of the Sun should be drawn out into an oblong Form, either by a Dilatation of every Ray, or by any other casual inequality of the Refractions, the same oblong Image would by a second Refraction made sideways be drawn out as much in breadth by the like Dilatation of the Rays, or other casual inequality of the Refractions sideways, I tried what would be the Effects of such a second Refraction. For this end I ordered all things as in the third Experiment, and then placed a second Prism immediately after the first in a cross Position to it, that it might again refract the beam of the Sun's Light which came to it through the first Prism. In the first Prism this beam was refracted upwards, and in the second sideways. And I found that by the Refraction of the second Prism, the breadth of the Image was not increased, but its superior part, which in the first Prism suffered the greater Refraction, and appeared violet and blue, did again in the second Prism suffer a greater Refraction than its inferior part, which appeared red and yellow, and this without any Dilatation of the Image in breadth. [Illustration: FIG. 14] _Illustration._ Let S [_Fig._ 14, 15.] represent the Sun, F the hole in the Window, ABC the first Prism, DH the second Prism, Y the round Image of the Sun made by a direct beam of Light when the Prisms are taken away, PT the oblong Image of the Sun made by that beam passing through the first Prism alone, when the second Prism is taken away, and _pt_ the Image made by the cross Refractions of both Prisms together. Now if the Rays which tend towards the several Points of the round Image Y were dilated and spread by the Refraction of the first Prism, so that they should not any longer go in single Lines to single Points, but that every Ray being split, shattered, and changed from a Linear Ray to a Superficies of Rays diverging from the Point of Refraction, and lying in the Plane of the Angles of Incidence and Refraction, they should go in those Planes to so many Lines reaching almost from one end of the Image PT to the other, and if that Image should thence become oblong: those Rays and their several parts tending towards the several Points of the Image PT ought to be again dilated and spread sideways by the transverse Refraction of the second Prism, so as to compose a four square Image, such as is represented at [Greek: pt]. For the better understanding of which, let the Image PT be distinguished into five equal parts PQK, KQRL, LRSM, MSVN, NVT. And by the same irregularity that the orbicular Light Y is by the Refraction of the first Prism dilated and drawn out into a long Image PT, the Light PQK which takes up a space of the same length and breadth with the Light Y ought to be by the Refraction of the second Prism dilated and drawn out into the long Image _[Greek: p]qkp_, and the Light KQRL into the long Image _kqrl_, and the Lights LRSM, MSVN, NVT, into so many other long Images _lrsm_, _msvn_, _nvt[Greek: t]_; and all these long Images would compose the four square Images _[Greek: pt]_. Thus it ought to be were every Ray dilated by Refraction, and spread into a triangular Superficies of Rays diverging from the Point of Refraction. For the second Refraction would spread the Rays one way as much as the first doth another, and so dilate the Image in breadth as much as the first doth in length. And the same thing ought to happen, were some rays casually refracted more than others. But the Event is otherwise. The Image PT was not made broader by the Refraction of the second Prism, but only became oblique, as 'tis represented at _pt_, its upper end P being by the Refraction translated to a greater distance than its lower end T. So then the Light which went towards the upper end P of the Image, was (at equal Incidences) more refracted in the second Prism, than the Light which tended towards the lower end T, that is the blue and violet, than the red and yellow; and therefore was more refrangible. The same Light was by the Refraction of the first Prism translated farther from the place Y to which it tended before Refraction; and therefore suffered as well in the first Prism as in the second a greater Refraction than the rest of the Light, and by consequence was more refrangible than the rest, even before its incidence on the first Prism. Sometimes I placed a third Prism after the second, and sometimes also a fourth after the third, by all which the Image might be often refracted sideways: but the Rays which were more refracted than the rest in the first Prism were also more refracted in all the rest, and that without any Dilatation of the Image sideways: and therefore those Rays for their constancy of a greater Refraction are deservedly reputed more refrangible. [Illustration: FIG. 15] But that the meaning of this Experiment may more clearly appear, it is to be considered that the Rays which are equally refrangible do fall upon a Circle answering to the Sun's Disque. For this was proved in the third Experiment. By a Circle I understand not here a perfect geometrical Circle, but any orbicular Figure whose length is equal to its breadth, and which, as to Sense, may seem circular. Let therefore AG [in _Fig._ 15.] represent the Circle which all the most refrangible Rays propagated from the whole Disque of the Sun, would illuminate and paint upon the opposite Wall if they were alone; EL the Circle which all the least refrangible Rays would in like manner illuminate and paint if they were alone; BH, CJ, DK, the Circles which so many intermediate sorts of Rays would successively paint upon the Wall, if they were singly propagated from the Sun in successive order, the rest being always intercepted; and conceive that there are other intermediate Circles without Number, which innumerable other intermediate sorts of Rays would successively paint upon the Wall if the Sun should successively emit every sort apart. And seeing the Sun emits all these sorts at once, they must all together illuminate and paint innumerable equal Circles, of all which, being according to their degrees of Refrangibility placed in order in a continual Series, that oblong Spectrum PT is composed which I described in the third Experiment. Now if the Sun's circular Image Y [in _Fig._ 15.] which is made by an unrefracted beam of Light was by any Dilation of the single Rays, or by any other irregularity in the Refraction of the first Prism, converted into the oblong Spectrum, PT: then ought every Circle AG, BH, CJ, &c. in that Spectrum, by the cross Refraction of the second Prism again dilating or otherwise scattering the Rays as before, to be in like manner drawn out and transformed into an oblong Figure, and thereby the breadth of the Image PT would be now as much augmented as the length of the Image Y was before by the Refraction of the first Prism; and thus by the Refractions of both Prisms together would be formed a four square Figure _p[Greek: p]t[Greek: t]_, as I described above. Wherefore since the breadth of the Spectrum PT is not increased by the Refraction sideways, it is certain that the Rays are not split or dilated, or otherways irregularly scatter'd by that Refraction, but that every Circle is by a regular and uniform Refraction translated entire into another Place, as the Circle AG by the greatest Refraction into the place _ag_, the Circle BH by a less Refraction into the place _bh_, the Circle CJ by a Refraction still less into the place _ci_, and so of the rest; by which means a new Spectrum _pt_ inclined to the former PT is in like manner composed of Circles lying in a right Line; and these Circles must be of the same bigness with the former, because the breadths of all the Spectrums Y, PT and _pt_ at equal distances from the Prisms are equal. I considered farther, that by the breadth of the hole F through which the Light enters into the dark Chamber, there is a Penumbra made in the Circuit of the Spectrum Y, and that Penumbra remains in the rectilinear Sides of the Spectrums PT and _pt_. I placed therefore at that hole a Lens or Object-glass of a Telescope which might cast the Image of the Sun distinctly on Y without any Penumbra at all, and found that the Penumbra of the rectilinear Sides of the oblong Spectrums PT and _pt_ was also thereby taken away, so that those Sides appeared as distinctly defined as did the Circumference of the first Image Y. Thus it happens if the Glass of the Prisms be free from Veins, and their sides be accurately plane and well polished without those numberless Waves or Curles which usually arise from Sand-holes a little smoothed in polishing with Putty. If the Glass be only well polished and free from Veins, and the Sides not accurately plane, but a little Convex or Concave, as it frequently happens; yet may the three Spectrums Y, PT and _pt_ want Penumbras, but not in equal distances from the Prisms. Now from this want of Penumbras, I knew more certainly that every one of the Circles was refracted according to some most regular, uniform and constant Law. For if there were any irregularity in the Refraction, the right Lines AE and GL, which all the Circles in the Spectrum PT do touch, could not by that Refraction be translated into the Lines _ae_ and _gl_ as distinct and straight as they were before, but there would arise in those translated Lines some Penumbra or Crookedness or Undulation, or other sensible Perturbation contrary to what is found by Experience. Whatsoever Penumbra or Perturbation should be made in the Circles by the cross Refraction of the second Prism, all that Penumbra or Perturbation would be conspicuous in the right Lines _ae_ and _gl_ which touch those Circles. And therefore since there is no such Penumbra or Perturbation in those right Lines, there must be none in the Circles. Since the distance between those Tangents or breadth of the Spectrum is not increased by the Refractions, the Diameters of the Circles are not increased thereby. Since those Tangents continue to be right Lines, every Circle which in the first Prism is more or less refracted, is exactly in the same proportion more or less refracted in the second. And seeing all these things continue to succeed after the same manner when the Rays are again in a third Prism, and again in a fourth refracted sideways, it is evident that the Rays of one and the same Circle, as to their degree of Refrangibility, continue always uniform and homogeneal to one another, and that those of several Circles do differ in degree of Refrangibility, and that in some certain and constant Proportion. Which is the thing I was to prove. There is yet another Circumstance or two of this Experiment by which it becomes still more plain and convincing. Let the second Prism DH [in _Fig._ 16.] be placed not immediately after the first, but at some distance from it; suppose in the mid-way between it and the Wall on which the oblong Spectrum PT is cast, so that the Light from the first Prism may fall upon it in the form of an oblong Spectrum [Greek: pt] parallel to this second Prism, and be refracted sideways to form the oblong Spectrum _pt_ upon the Wall. And you will find as before, that this Spectrum _pt_ is inclined to that Spectrum PT, which the first Prism forms alone without the second; the blue ends P and _p_ being farther distant from one another than the red ones T and _t_, and by consequence that the Rays which go to the blue end [Greek: p] of the Image [Greek: pt], and which therefore suffer the greatest Refraction in the first Prism, are again in the second Prism more refracted than the rest. [Illustration: FIG. 16.] [Illustration: FIG. 17.] The same thing I try'd also by letting the Sun's Light into a dark Room through two little round holes F and [Greek: ph] [in _Fig._ 17.] made in the Window, and with two parallel Prisms ABC and [Greek: abg] placed at those holes (one at each) refracting those two beams of Light to the opposite Wall of the Chamber, in such manner that the two colour'd Images PT and MN which they there painted were joined end to end and lay in one straight Line, the red end T of the one touching the blue end M of the other. For if these two refracted Beams were again by a third Prism DH placed cross to the two first, refracted sideways, and the Spectrums thereby translated to some other part of the Wall of the Chamber, suppose the Spectrum PT to _pt_ and the Spectrum MN to _mn_, these translated Spectrums _pt_ and _mn_ would not lie in one straight Line with their ends contiguous as before, but be broken off from one another and become parallel, the blue end _m_ of the Image _mn_ being by a greater Refraction translated farther from its former place MT, than the red end _t_ of the other Image _pt_ from the same place MT; which puts the Proposition past Dispute. And this happens whether the third Prism DH be placed immediately after the two first, or at a great distance from them, so that the Light refracted in the two first Prisms be either white and circular, or coloured and oblong when it falls on the third. _Exper._ 6. In the middle of two thin Boards I made round holes a third part of an Inch in diameter, and in the Window-shut a much broader hole being made to let into my darkned Chamber a large Beam of the Sun's Light; I placed a Prism behind the Shut in that beam to refract it towards the opposite Wall, and close behind the Prism I fixed one of the Boards, in such manner that the middle of the refracted Light might pass through the hole made in it, and the rest be intercepted by the Board. Then at the distance of about twelve Feet from the first Board I fixed the other Board in such manner that the middle of the refracted Light which came through the hole in the first Board, and fell upon the opposite Wall, might pass through the hole in this other Board, and the rest being intercepted by the Board might paint upon it the coloured Spectrum of the Sun. And close behind this Board I fixed another Prism to refract the Light which came through the hole. Then I returned speedily to the first Prism, and by turning it slowly to and fro about its Axis, I caused the Image which fell upon the second Board to move up and down upon that Board, that all its parts might successively pass through the hole in that Board and fall upon the Prism behind it. And in the mean time, I noted the places on the opposite Wall to which that Light after its Refraction in the second Prism did pass; and by the difference of the places I found that the Light which being most refracted in the first Prism did go to the blue end of the Image, was again more refracted in the second Prism than the Light which went to the red end of that Image, which proves as well the first Proposition as the second. And this happened whether the Axis of the two Prisms were parallel, or inclined to one another, and to the Horizon in any given Angles. _Illustration._ Let F [in _Fig._ 18.] be the wide hole in the Window-shut, through which the Sun shines upon the first Prism ABC, and let the refracted Light fall upon the middle of the Board DE, and the middle part of that Light upon the hole G made in the middle part of that Board. Let this trajected part of that Light fall again upon the middle of the second Board _de_, and there paint such an oblong coloured Image of the Sun as was described in the third Experiment. By turning the Prism ABC slowly to and fro about its Axis, this Image will be made to move up and down the Board _de_, and by this means all its parts from one end to the other may be made to pass successively through the hole _g_ which is made in the middle of that Board. In the mean while another Prism _abc_ is to be fixed next after that hole _g_, to refract the trajected Light a second time. And these things being thus ordered, I marked the places M and N of the opposite Wall upon which the refracted Light fell, and found that whilst the two Boards and second Prism remained unmoved, those places by turning the first Prism about its Axis were changed perpetually. For when the lower part of the Light which fell upon the second Board _de_ was cast through the hole _g_, it went to a lower place M on the Wall and when the higher part of that Light was cast through the same hole _g_, it went to a higher place N on the Wall, and when any intermediate part of the Light was cast through that hole, it went to some place on the Wall between M and N. The unchanged Position of the holes in the Boards, made the Incidence of the Rays upon the second Prism to be the same in all cases. And yet in that common Incidence some of the Rays were more refracted, and others less. And those were more refracted in this Prism, which by a greater Refraction in the first Prism were more turned out of the way, and therefore for their Constancy of being more refracted are deservedly called more refrangible. [Illustration: FIG. 18.] [Illustration: FIG. 20.] _Exper._ 7. At two holes made near one another in my Window-shut I placed two Prisms, one at each, which might cast upon the opposite Wall (after the manner of the third Experiment) two oblong coloured Images of the Sun. And at a little distance from the Wall I placed a long slender Paper with straight and parallel edges, and ordered the Prisms and Paper so, that the red Colour of one Image might fall directly upon one half of the Paper, and the violet Colour of the other Image upon the other half of the same Paper; so that the Paper appeared of two Colours, red and violet, much after the manner of the painted Paper in the first and second Experiments. Then with a black Cloth I covered the Wall behind the Paper, that no Light might be reflected from it to disturb the Experiment, and viewing the Paper through a third Prism held parallel to it, I saw that half of it which was illuminated by the violet Light to be divided from the other half by a greater Refraction, especially when I went a good way off from the Paper. For when I viewed it too near at hand, the two halfs of the Paper did not appear fully divided from one another, but seemed contiguous at one of their Angles like the painted Paper in the first Experiment. Which also happened when the Paper was too broad. [Illustration: FIG. 19.] Sometimes instead of the Paper I used a white Thred, and this appeared through the Prism divided into two parallel Threds as is represented in the nineteenth Figure, where DG denotes the Thred illuminated with violet Light from D to E and with red Light from F to G, and _defg_ are the parts of the Thred seen by Refraction. If one half of the Thred be constantly illuminated with red, and the other half be illuminated with all the Colours successively, (which may be done by causing one of the Prisms to be turned about its Axis whilst the other remains unmoved) this other half in viewing the Thred through the Prism, will appear in a continual right Line with the first half when illuminated with red, and begin to be a little divided from it when illuminated with Orange, and remove farther from it when illuminated with yellow, and still farther when with green, and farther when with blue, and go yet farther off when illuminated with Indigo, and farthest when with deep violet. Which plainly shews, that the Lights of several Colours are more and more refrangible one than another, in this Order of their Colours, red, orange, yellow, green, blue, indigo, deep violet; and so proves as well the first Proposition as the second. I caused also the coloured Spectrums PT [in _Fig._ 17.] and MN made in a dark Chamber by the Refractions of two Prisms to lie in a Right Line end to end, as was described above in the fifth Experiment, and viewing them through a third Prism held parallel to their Length, they appeared no longer in a Right Line, but became broken from one another, as they are represented at _pt_ and _mn_, the violet end _m_ of the Spectrum _mn_ being by a greater Refraction translated farther from its former Place MT than the red end _t_ of the other Spectrum _pt_. I farther caused those two Spectrums PT [in _Fig._ 20.] and MN to become co-incident in an inverted Order of their Colours, the red end of each falling on the violet end of the other, as they are represented in the oblong Figure PTMN; and then viewing them through a Prism DH held parallel to their Length, they appeared not co-incident, as when view'd with the naked Eye, but in the form of two distinct Spectrums _pt_ and _mn_ crossing one another in the middle after the manner of the Letter X. Which shews that the red of the one Spectrum and violet of the other, which were co-incident at PN and MT, being parted from one another by a greater Refraction of the violet to _p_ and _m_ than of the red to _n_ and _t_, do differ in degrees of Refrangibility. I illuminated also a little Circular Piece of white Paper all over with the Lights of both Prisms intermixed, and when it was illuminated with the red of one Spectrum, and deep violet of the other, so as by the Mixture of those Colours to appear all over purple, I viewed the Paper, first at a less distance, and then at a greater, through a third Prism; and as I went from the Paper, the refracted Image thereof became more and more divided by the unequal Refraction of the two mixed Colours, and at length parted into two distinct Images, a red one and a violet one, whereof the violet was farthest from the Paper, and therefore suffered the greatest Refraction. And when that Prism at the Window, which cast the violet on the Paper was taken away, the violet Image disappeared; but when the other Prism was taken away the red vanished; which shews, that these two Images were nothing else than the Lights of the two Prisms, which had been intermixed on the purple Paper, but were parted again by their unequal Refractions made in the third Prism, through which the Paper was view'd. This also was observable, that if one of the Prisms at the Window, suppose that which cast the violet on the Paper, was turned about its Axis to make all the Colours in this order, violet, indigo, blue, green, yellow, orange, red, fall successively on the Paper from that Prism, the violet Image changed Colour accordingly, turning successively to indigo, blue, green, yellow and red, and in changing Colour came nearer and nearer to the red Image made by the other Prism, until when it was also red both Images became fully co-incident. I placed also two Paper Circles very near one another, the one in the red Light of one Prism, and the other in the violet Light of the other. The Circles were each of them an Inch in diameter, and behind them the Wall was dark, that the Experiment might not be disturbed by any Light coming from thence. These Circles thus illuminated, I viewed through a Prism, so held, that the Refraction might be made towards the red Circle, and as I went from them they came nearer and nearer together, and at length became co-incident; and afterwards when I went still farther off, they parted again in a contrary Order, the violet by a greater Refraction being carried beyond the red. _Exper._ 8. In Summer, when the Sun's Light uses to be strongest, I placed a Prism at the Hole of the Window-shut, as in the third Experiment, yet so that its Axis might be parallel to the Axis of the World, and at the opposite Wall in the Sun's refracted Light, I placed an open Book. Then going six Feet and two Inches from the Book, I placed there the above-mentioned Lens, by which the Light reflected from the Book might be made to converge and meet again at the distance of six Feet and two Inches behind the Lens, and there paint the Species of the Book upon a Sheet of white Paper much after the manner of the second Experiment. The Book and Lens being made fast, I noted the Place where the Paper was, when the Letters of the Book, illuminated by the fullest red Light of the Solar Image falling upon it, did cast their Species on that Paper most distinctly: And then I stay'd till by the Motion of the Sun, and consequent Motion of his Image on the Book, all the Colours from that red to the middle of the blue pass'd over those Letters; and when those Letters were illuminated by that blue, I noted again the Place of the Paper when they cast their Species most distinctly upon it: And I found that this last Place of the Paper was nearer to the Lens than its former Place by about two Inches and an half, or two and three quarters. So much sooner therefore did the Light in the violet end of the Image by a greater Refraction converge and meet, than the Light in the red end. But in trying this, the Chamber was as dark as I could make it. For, if these Colours be diluted and weakned by the Mixture of any adventitious Light, the distance between the Places of the Paper will not be so great. This distance in the second Experiment, where the Colours of natural Bodies were made use of, was but an Inch and an half, by reason of the Imperfection of those Colours. Here in the Colours of the Prism, which are manifestly more full, intense, and lively than those of natural Bodies, the distance is two Inches and three quarters. And were the Colours still more full, I question not but that the distance would be considerably greater. For the coloured Light of the Prism, by the interfering of the Circles described in the second Figure of the fifth Experiment, and also by the Light of the very bright Clouds next the Sun's Body intermixing with these Colours, and by the Light scattered by the Inequalities in the Polish of the Prism, was so very much compounded, that the Species which those faint and dark Colours, the indigo and violet, cast upon the Paper were not distinct enough to be well observed. _Exper._ 9. A Prism, whose two Angles at its Base were equal to one another, and half right ones, and the third a right one, I placed in a Beam of the Sun's Light let into a dark Chamber through a Hole in the Window-shut, as in the third Experiment. And turning the Prism slowly about its Axis, until all the Light which went through one of its Angles, and was refracted by it began to be reflected by its Base, at which till then it went out of the Glass, I observed that those Rays which had suffered the greatest Refraction were sooner reflected than the rest. I conceived therefore, that those Rays of the reflected Light, which were most refrangible, did first of all by a total Reflexion become more copious in that Light than the rest, and that afterwards the rest also, by a total Reflexion, became as copious as these. To try this, I made the reflected Light pass through another Prism, and being refracted by it to fall afterwards upon a Sheet of white Paper placed at some distance behind it, and there by that Refraction to paint the usual Colours of the Prism. And then causing the first Prism to be turned about its Axis as above, I observed that when those Rays, which in this Prism had suffered the greatest Refraction, and appeared of a blue and violet Colour began to be totally reflected, the blue and violet Light on the Paper, which was most refracted in the second Prism, received a sensible Increase above that of the red and yellow, which was least refracted; and afterwards, when the rest of the Light which was green, yellow, and red, began to be totally reflected in the first Prism, the Light of those Colours on the Paper received as great an Increase as the violet and blue had done before. Whence 'tis manifest, that the Beam of Light reflected by the Base of the Prism, being augmented first by the more refrangible Rays, and afterwards by the less refrangible ones, is compounded of Rays differently refrangible. And that all such reflected Light is of the same Nature with the Sun's Light before its Incidence on the Base of the Prism, no Man ever doubted; it being generally allowed, that Light by such Reflexions suffers no Alteration in its Modifications and Properties. I do not here take Notice of any Refractions made in the sides of the first Prism, because the Light enters it perpendicularly at the first side, and goes out perpendicularly at the second side, and therefore suffers none. So then, the Sun's incident Light being of the same Temper and Constitution with his emergent Light, and the last being compounded of Rays differently refrangible, the first must be in like manner compounded. [Illustration: FIG. 21.] _Illustration._ In the twenty-first Figure, ABC is the first Prism, BC its Base, B and C its equal Angles at the Base, each of 45 Degrees, A its rectangular Vertex, FM a beam of the Sun's Light let into a dark Room through a hole F one third part of an Inch broad, M its Incidence on the Base of the Prism, MG a less refracted Ray, MH a more refracted Ray, MN the beam of Light reflected from the Base, VXY the second Prism by which this beam in passing through it is refracted, N_t_ the less refracted Light of this beam, and N_p_ the more refracted part thereof. When the first Prism ABC is turned about its Axis according to the order of the Letters ABC, the Rays MH emerge more and more obliquely out of that Prism, and at length after their most oblique Emergence are reflected towards N, and going on to _p_ do increase the Number of the Rays N_p_. Afterwards by continuing the Motion of the first Prism, the Rays MG are also reflected to N and increase the number of the Rays N_t_. And therefore the Light MN admits into its Composition, first the more refrangible Rays, and then the less refrangible Rays, and yet after this Composition is of the same Nature with the Sun's immediate Light FM, the Reflexion of the specular Base BC causing no Alteration therein. _Exper._ 10. Two Prisms, which were alike in Shape, I tied so together, that their Axis and opposite Sides being parallel, they composed a Parallelopiped. And, the Sun shining into my dark Chamber through a little hole in the Window-shut, I placed that Parallelopiped in his beam at some distance from the hole, in such a Posture, that the Axes of the Prisms might be perpendicular to the incident Rays, and that those Rays being incident upon the first Side of one Prism, might go on through the two contiguous Sides of both Prisms, and emerge out of the last Side of the second Prism. This Side being parallel to the first Side of the first Prism, caused the emerging Light to be parallel to the incident. Then, beyond these two Prisms I placed a third, which might refract that emergent Light, and by that Refraction cast the usual Colours of the Prism upon the opposite Wall, or upon a sheet of white Paper held at a convenient Distance behind the Prism for that refracted Light to fall upon it. After this I turned the Parallelopiped about its Axis, and found that when the contiguous Sides of the two Prisms became so oblique to the incident Rays, that those Rays began all of them to be reflected, those Rays which in the third Prism had suffered the greatest Refraction, and painted the Paper with violet and blue, were first of all by a total Reflexion taken out of the transmitted Light, the rest remaining and on the Paper painting their Colours of green, yellow, orange and red, as before; and afterwards by continuing the Motion of the two Prisms, the rest of the Rays also by a total Reflexion vanished in order, according to their degrees of Refrangibility. The Light therefore which emerged out of the two Prisms is compounded of Rays differently refrangible, seeing the more refrangible Rays may be taken out of it, while the less refrangible remain. But this Light being trajected only through the parallel Superficies of the two Prisms, if it suffer'd any change by the Refraction of one Superficies it lost that Impression by the contrary Refraction of the other Superficies, and so being restor'd to its pristine Constitution, became of the same Nature and Condition as at first before its Incidence on those Prisms; and therefore, before its Incidence, was as much compounded of Rays differently refrangible, as afterwards. [Illustration: FIG. 22.] _Illustration._ In the twenty second Figure ABC and BCD are the two Prisms tied together in the form of a Parallelopiped, their Sides BC and CB being contiguous, and their Sides AB and CD parallel. And HJK is the third Prism, by which the Sun's Light propagated through the hole F into the dark Chamber, and there passing through those sides of the Prisms AB, BC, CB and CD, is refracted at O to the white Paper PT, falling there partly upon P by a greater Refraction, partly upon T by a less Refraction, and partly upon R and other intermediate places by intermediate Refractions. By turning the Parallelopiped ACBD about its Axis, according to the order of the Letters A, C, D, B, at length when the contiguous Planes BC and CB become sufficiently oblique to the Rays FM, which are incident upon them at M, there will vanish totally out of the refracted Light OPT, first of all the most refracted Rays OP, (the rest OR and OT remaining as before) then the Rays OR and other intermediate ones, and lastly, the least refracted Rays OT. For when the Plane BC becomes sufficiently oblique to the Rays incident upon it, those Rays will begin to be totally reflected by it towards N; and first the most refrangible Rays will be totally reflected (as was explained in the preceding Experiment) and by Consequence must first disappear at P, and afterwards the rest as they are in order totally reflected to N, they must disappear in the same order at R and T. So then the Rays which at O suffer the greatest Refraction, may be taken out of the Light MO whilst the rest of the Rays remain in it, and therefore that Light MO is compounded of Rays differently refrangible. And because the Planes AB and CD are parallel, and therefore by equal and contrary Refractions destroy one anothers Effects, the incident Light FM must be of the same Kind and Nature with the emergent Light MO, and therefore doth also consist of Rays differently refrangible. These two Lights FM and MO, before the most refrangible Rays are separated out of the emergent Light MO, agree in Colour, and in all other Properties so far as my Observation reaches, and therefore are deservedly reputed of the same Nature and Constitution, and by Consequence the one is compounded as well as the other. But after the most refrangible Rays begin to be totally reflected, and thereby separated out of the emergent Light MO, that Light changes its Colour from white to a dilute and faint yellow, a pretty good orange, a very full red successively, and then totally vanishes. For after the most refrangible Rays which paint the Paper at P with a purple Colour, are by a total Reflexion taken out of the beam of Light MO, the rest of the Colours which appear on the Paper at R and T being mix'd in the Light MO compound there a faint yellow, and after the blue and part of the green which appear on the Paper between P and R are taken away, the rest which appear between R and T (that is the yellow, orange, red and a little green) being mixed in the beam MO compound there an orange; and when all the Rays are by Reflexion taken out of the beam MO, except the least refrangible, which at T appear of a full red, their Colour is the same in that beam MO as afterwards at T, the Refraction of the Prism HJK serving only to separate the differently refrangible Rays, without making any Alteration in their Colours, as shall be more fully proved hereafter. All which confirms as well the first Proposition as the second. _Scholium._ If this Experiment and the former be conjoined and made one by applying a fourth Prism VXY [in _Fig._ 22.] to refract the reflected beam MN towards _tp_, the Conclusion will be clearer. For then the Light N_p_ which in the fourth Prism is more refracted, will become fuller and stronger when the Light OP, which in the third Prism HJK is more refracted, vanishes at P; and afterwards when the less refracted Light OT vanishes at T, the less refracted Light N_t_ will become increased whilst the more refracted Light at _p_ receives no farther increase. And as the trajected beam MO in vanishing is always of such a Colour as ought to result from the mixture of the Colours which fall upon the Paper PT, so is the reflected beam MN always of such a Colour as ought to result from the mixture of the Colours which fall upon the Paper _pt_. For when the most refrangible Rays are by a total Reflexion taken out of the beam MO, and leave that beam of an orange Colour, the Excess of those Rays in the reflected Light, does not only make the violet, indigo and blue at _p_ more full, but also makes the beam MN change from the yellowish Colour of the Sun's Light, to a pale white inclining to blue, and afterward recover its yellowish Colour again, so soon as all the rest of the transmitted Light MOT is reflected. Now seeing that in all this variety of Experiments, whether the Trial be made in Light reflected, and that either from natural Bodies, as in the first and second Experiment, or specular, as in the ninth; or in Light refracted, and that either before the unequally refracted Rays are by diverging separated from one another, and losing their whiteness which they have altogether, appear severally of several Colours, as in the fifth Experiment; or after they are separated from one another, and appear colour'd as in the sixth, seventh, and eighth Experiments; or in Light trajected through parallel Superficies, destroying each others Effects, as in the tenth Experiment; there are always found Rays, which at equal Incidences on the same Medium suffer unequal Refractions, and that without any splitting or dilating of single Rays, or contingence in the inequality of the Refractions, as is proved in the fifth and sixth Experiments. And seeing the Rays which differ in Refrangibility may be parted and sorted from one another, and that either by Refraction as in the third Experiment, or by Reflexion as in the tenth, and then the several sorts apart at equal Incidences suffer unequal Refractions, and those sorts are more refracted than others after Separation, which were more refracted before it, as in the sixth and following Experiments, and if the Sun's Light be trajected through three or more cross Prisms successively, those Rays which in the first Prism are refracted more than others, are in all the following Prisms refracted more than others in the same Rate and Proportion, as appears by the fifth Experiment; it's manifest that the Sun's Light is an heterogeneous Mixture of Rays, some of which are constantly more refrangible than others, as was proposed. _PROP._ III. THEOR. III. _The Sun's Light consists of Rays differing in Reflexibility, and those Rays are more reflexible than others which are more refrangible._ This is manifest by the ninth and tenth Experiments: For in the ninth Experiment, by turning the Prism about its Axis, until the Rays within it which in going out into the Air were refracted by its Base, became so oblique to that Base, as to begin to be totally reflected thereby; those Rays became first of all totally reflected, which before at equal Incidences with the rest had suffered the greatest Refraction. And the same thing happens in the Reflexion made by the common Base of the two Prisms in the tenth Experiment. _PROP._ IV. PROB. I. _To separate from one another the heterogeneous Rays of compound Light._ [Illustration: FIG. 23.] The heterogeneous Rays are in some measure separated from one another by the Refraction of the Prism in the third Experiment, and in the fifth Experiment, by taking away the Penumbra from the rectilinear sides of the coloured Image, that Separation in those very rectilinear sides or straight edges of the Image becomes perfect. But in all places between those rectilinear edges, those innumerable Circles there described, which are severally illuminated by homogeneal Rays, by interfering with one another, and being every where commix'd, do render the Light sufficiently compound. But if these Circles, whilst their Centers keep their Distances and Positions, could be made less in Diameter, their interfering one with another, and by Consequence the Mixture of the heterogeneous Rays would be proportionally diminish'd. In the twenty third Figure let AG, BH, CJ, DK, EL, FM be the Circles which so many sorts of Rays flowing from the same disque of the Sun, do in the third Experiment illuminate; of all which and innumerable other intermediate ones lying in a continual Series between the two rectilinear and parallel edges of the Sun's oblong Image PT, that Image is compos'd, as was explained in the fifth Experiment. And let _ag_, _bh_, _ci_, _dk_, _el_, _fm_ be so many less Circles lying in a like continual Series between two parallel right Lines _af_ and _gm_ with the same distances between their Centers, and illuminated by the same sorts of Rays, that is the Circle _ag_ with the same sort by which the corresponding Circle AG was illuminated, and the Circle _bh_ with the same sort by which the corresponding Circle BH was illuminated, and the rest of the Circles _ci_, _dk_, _el_, _fm_ respectively, with the same sorts of Rays by which the several corresponding Circles CJ, DK, EL, FM were illuminated. In the Figure PT composed of the greater Circles, three of those Circles AG, BH, CJ, are so expanded into one another, that the three sorts of Rays by which those Circles are illuminated, together with other innumerable sorts of intermediate Rays, are mixed at QR in the middle of the Circle BH. And the like Mixture happens throughout almost the whole length of the Figure PT. But in the Figure _pt_ composed of the less Circles, the three less Circles _ag_, _bh_, _ci_, which answer to those three greater, do not extend into one another; nor are there any where mingled so much as any two of the three sorts of Rays by which those Circles are illuminated, and which in the Figure PT are all of them intermingled at BH. Now he that shall thus consider it, will easily understand that the Mixture is diminished in the same Proportion with the Diameters of the Circles. If the Diameters of the Circles whilst their Centers remain the same, be made three times less than before, the Mixture will be also three times less; if ten times less, the Mixture will be ten times less, and so of other Proportions. That is, the Mixture of the Rays in the greater Figure PT will be to their Mixture in the less _pt_, as the Latitude of the greater Figure is to the Latitude of the less. For the Latitudes of these Figures are equal to the Diameters of their Circles. And hence it easily follows, that the Mixture of the Rays in the refracted Spectrum _pt_ is to the Mixture of the Rays in the direct and immediate Light of the Sun, as the breadth of that Spectrum is to the difference between the length and breadth of the same Spectrum. So then, if we would diminish the Mixture of the Rays, we are to diminish the Diameters of the Circles. Now these would be diminished if the Sun's Diameter to which they answer could be made less than it is, or (which comes to the same Purpose) if without Doors, at a great distance from the Prism towards the Sun, some opake Body were placed, with a round hole in the middle of it, to intercept all the Sun's Light, excepting so much as coming from the middle of his Body could pass through that Hole to the Prism. For so the Circles AG, BH, and the rest, would not any longer answer to the whole Disque of the Sun, but only to that Part of it which could be seen from the Prism through that Hole, that it is to the apparent Magnitude of that Hole view'd from the Prism. But that these Circles may answer more distinctly to that Hole, a Lens is to be placed by the Prism to cast the Image of the Hole, (that is, every one of the Circles AG, BH, &c.) distinctly upon the Paper at PT, after such a manner, as by a Lens placed at a Window, the Species of Objects abroad are cast distinctly upon a Paper within the Room, and the rectilinear Sides of the oblong Solar Image in the fifth Experiment became distinct without any Penumbra. If this be done, it will not be necessary to place that Hole very far off, no not beyond the Window. And therefore instead of that Hole, I used the Hole in the Window-shut, as follows. _Exper._ 11. In the Sun's Light let into my darken'd Chamber through a small round Hole in my Window-shut, at about ten or twelve Feet from the Window, I placed a Lens, by which the Image of the Hole might be distinctly cast upon a Sheet of white Paper, placed at the distance of six, eight, ten, or twelve Feet from the Lens. For, according to the difference of the Lenses I used various distances, which I think not worth the while to describe. Then immediately after the Lens I placed a Prism, by which the trajected Light might be refracted either upwards or sideways, and thereby the round Image, which the Lens alone did cast upon the Paper might be drawn out into a long one with Parallel Sides, as in the third Experiment. This oblong Image I let fall upon another Paper at about the same distance from the Prism as before, moving the Paper either towards the Prism or from it, until I found the just distance where the Rectilinear Sides of the Image became most distinct. For in this Case, the Circular Images of the Hole, which compose that Image after the same manner that the Circles _ag_, _bh_, _ci_, &c. do the Figure _pt_ [in _Fig._ 23.] were terminated most distinctly without any Penumbra, and therefore extended into one another the least that they could, and by consequence the Mixture of the heterogeneous Rays was now the least of all. By this means I used to form an oblong Image (such as is _pt_) [in _Fig._ 23, and 24.] of Circular Images of the Hole, (such as are _ag_, _bh_, _ci_, &c.) and by using a greater or less Hole in the Window-shut, I made the Circular Images _ag_, _bh_, _ci_, &c. of which it was formed, to become greater or less at pleasure, and thereby the Mixture of the Rays in the Image _pt_ to be as much, or as little as I desired. [Illustration: FIG. 24.] _Illustration._ In the twenty-fourth Figure, F represents the Circular Hole in the Window-shut, MN the Lens, whereby the Image or Species of that Hole is cast distinctly upon a Paper at J, ABC the Prism, whereby the Rays are at their emerging out of the Lens refracted from J towards another Paper at _pt_, and the round Image at J is turned into an oblong Image _pt_ falling on that other Paper. This Image _pt_ consists of Circles placed one after another in a Rectilinear Order, as was sufficiently explained in the fifth Experiment; and these Circles are equal to the Circle J, and consequently answer in magnitude to the Hole F; and therefore by diminishing that Hole they may be at pleasure diminished, whilst their Centers remain in their Places. By this means I made the Breadth of the Image _pt_ to be forty times, and sometimes sixty or seventy times less than its Length. As for instance, if the Breadth of the Hole F be one tenth of an Inch, and MF the distance of the Lens from the Hole be 12 Feet; and if _p_B or _p_M the distance of the Image _pt_ from the Prism or Lens be 10 Feet, and the refracting Angle of the Prism be 62 Degrees, the Breadth of the Image _pt_ will be one twelfth of an Inch, and the Length about six Inches, and therefore the Length to the Breadth as 72 to 1, and by consequence the Light of this Image 71 times less compound than the Sun's direct Light. And Light thus far simple and homogeneal, is sufficient for trying all the Experiments in this Book about simple Light. For the Composition of heterogeneal Rays is in this Light so little, that it is scarce to be discovered and perceiv'd by Sense, except perhaps in the indigo and violet. For these being dark Colours do easily suffer a sensible Allay by that little scattering Light which uses to be refracted irregularly by the Inequalities of the Prism. Yet instead of the Circular Hole F, 'tis better to substitute an oblong Hole shaped like a long Parallelogram with its Length parallel to the Prism ABC. For if this Hole be an Inch or two long, and but a tenth or twentieth Part of an Inch broad, or narrower; the Light of the Image _pt_ will be as simple as before, or simpler, and the Image will become much broader, and therefore more fit to have Experiments try'd in its Light than before. Instead of this Parallelogram Hole may be substituted a triangular one of equal Sides, whose Base, for instance, is about the tenth Part of an Inch, and its Height an Inch or more. For by this means, if the Axis of the Prism be parallel to the Perpendicular of the Triangle, the Image _pt_ [in _Fig._ 25.] will now be form'd of equicrural Triangles _ag_, _bh_, _ci_, _dk_, _el_, _fm_, &c. and innumerable other intermediate ones answering to the triangular Hole in Shape and Bigness, and lying one after another in a continual Series between two Parallel Lines _af_ and _gm_. These Triangles are a little intermingled at their Bases, but not at their Vertices; and therefore the Light on the brighter Side _af_ of the Image, where the Bases of the Triangles are, is a little compounded, but on the darker Side _gm_ is altogether uncompounded, and in all Places between the Sides the Composition is proportional to the distances of the Places from that obscurer Side _gm_. And having a Spectrum _pt_ of such a Composition, we may try Experiments either in its stronger and less simple Light near the Side _af_, or in its weaker and simpler Light near the other Side _gm_, as it shall seem most convenient. [Illustration: FIG. 25.] But in making Experiments of this kind, the Chamber ought to be made as dark as can be, lest any Foreign Light mingle it self with the Light of the Spectrum _pt_, and render it compound; especially if we would try Experiments in the more simple Light next the Side _gm_ of the Spectrum; which being fainter, will have a less proportion to the Foreign Light; and so by the mixture of that Light be more troubled, and made more compound. The Lens also ought to be good, such as may serve for optical Uses, and the Prism ought to have a large Angle, suppose of 65 or 70 Degrees, and to be well wrought, being made of Glass free from Bubbles and Veins, with its Sides not a little convex or concave, as usually happens, but truly plane, and its Polish elaborate, as in working Optick-glasses, and not such as is usually wrought with Putty, whereby the edges of the Sand-holes being worn away, there are left all over the Glass a numberless Company of very little convex polite Risings like Waves. The edges also of the Prism and Lens, so far as they may make any irregular Refraction, must be covered with a black Paper glewed on. And all the Light of the Sun's Beam let into the Chamber, which is useless and unprofitable to the Experiment, ought to be intercepted with black Paper, or other black Obstacles. For otherwise the useless Light being reflected every way in the Chamber, will mix with the oblong Spectrum, and help to disturb it. In trying these Things, so much diligence is not altogether necessary, but it will promote the Success of the Experiments, and by a very scrupulous Examiner of Things deserves to be apply'd. It's difficult to get Glass Prisms fit for this Purpose, and therefore I used sometimes prismatick Vessels made with pieces of broken Looking-glasses, and filled with Rain Water. And to increase the Refraction, I sometimes impregnated the Water strongly with _Saccharum Saturni_. _PROP._ V. THEOR. IV. _Homogeneal Light is refracted regularly without any Dilatation splitting or shattering of the Rays, and the confused Vision of Objects seen through refracting Bodies by heterogeneal Light arises from the different Refrangibility of several sorts of Rays._ The first Part of this Proposition has been already sufficiently proved in the fifth Experiment, and will farther appear by the Experiments which follow. _Exper._ 12. In the middle of a black Paper I made a round Hole about a fifth or sixth Part of an Inch in diameter. Upon this Paper I caused the Spectrum of homogeneal Light described in the former Proposition, so to fall, that some part of the Light might pass through the Hole of the Paper. This transmitted part of the Light I refracted with a Prism placed behind the Paper, and letting this refracted Light fall perpendicularly upon a white Paper two or three Feet distant from the Prism, I found that the Spectrum formed on the Paper by this Light was not oblong, as when 'tis made (in the third Experiment) by refracting the Sun's compound Light, but was (so far as I could judge by my Eye) perfectly circular, the Length being no greater than the Breadth. Which shews, that this Light is refracted regularly without any Dilatation of the Rays. _Exper._ 13. In the homogeneal Light I placed a Paper Circle of a quarter of an Inch in diameter, and in the Sun's unrefracted heterogeneal white Light I placed another Paper Circle of the same Bigness. And going from the Papers to the distance of some Feet, I viewed both Circles through a Prism. The Circle illuminated by the Sun's heterogeneal Light appeared very oblong, as in the fourth Experiment, the Length being many times greater than the Breadth; but the other Circle, illuminated with homogeneal Light, appeared circular and distinctly defined, as when 'tis view'd with the naked Eye. Which proves the whole Proposition. _Exper._ 14. In the homogeneal Light I placed Flies, and such-like minute Objects, and viewing them through a Prism, I saw their Parts as distinctly defined, as if I had viewed them with the naked Eye. The same Objects placed in the Sun's unrefracted heterogeneal Light, which was white, I viewed also through a Prism, and saw them most confusedly defined, so that I could not distinguish their smaller Parts from one another. I placed also the Letters of a small print, one while in the homogeneal Light, and then in the heterogeneal, and viewing them through a Prism, they appeared in the latter Case so confused and indistinct, that I could not read them; but in the former they appeared so distinct, that I could read readily, and thought I saw them as distinct, as when I view'd them with my naked Eye. In both Cases I view'd the same Objects, through the same Prism at the same distance from me, and in the same Situation. There was no difference, but in the Light by which the Objects were illuminated, and which in one Case was simple, and in the other compound; and therefore, the distinct Vision in the former Case, and confused in the latter, could arise from nothing else than from that difference of the Lights. Which proves the whole Proposition. And in these three Experiments it is farther very remarkable, that the Colour of homogeneal Light was never changed by the Refraction. _PROP._ VI. THEOR. V. _The Sine of Incidence of every Ray considered apart, is to its Sine of Refraction in a given Ratio._ That every Ray consider'd apart, is constant to it self in some degree of Refrangibility, is sufficiently manifest out of what has been said. Those Rays, which in the first Refraction, are at equal Incidences most refracted, are also in the following Refractions at equal Incidences most refracted; and so of the least refrangible, and the rest which have any mean Degree of Refrangibility, as is manifest by the fifth, sixth, seventh, eighth, and ninth Experiments. And those which the first Time at like Incidences are equally refracted, are again at like Incidences equally and uniformly refracted, and that whether they be refracted before they be separated from one another, as in the fifth Experiment, or whether they be refracted apart, as in the twelfth, thirteenth and fourteenth Experiments. The Refraction therefore of every Ray apart is regular, and what Rule that Refraction observes we are now to shew.[E] The late Writers in Opticks teach, that the Sines of Incidence are in a given Proportion to the Sines of Refraction, as was explained in the fifth Axiom, and some by Instruments fitted for measuring of Refractions, or otherwise experimentally examining this Proportion, do acquaint us that they have found it accurate. But whilst they, not understanding the different Refrangibility of several Rays, conceived them all to be refracted according to one and the same Proportion, 'tis to be presumed that they adapted their Measures only to the middle of the refracted Light; so that from their Measures we may conclude only that the Rays which have a mean Degree of Refrangibility, that is, those which when separated from the rest appear green, are refracted according to a given Proportion of their Sines. And therefore we are now to shew, that the like given Proportions obtain in all the rest. That it should be so is very reasonable, Nature being ever conformable to her self; but an experimental Proof is desired. And such a Proof will be had, if we can shew that the Sines of Refraction of Rays differently refrangible are one to another in a given Proportion when their Sines of Incidence are equal. For, if the Sines of Refraction of all the Rays are in given Proportions to the Sine of Refractions of a Ray which has a mean Degree of Refrangibility, and this Sine is in a given Proportion to the equal Sines of Incidence, those other Sines of Refraction will also be in given Proportions to the equal Sines of Incidence. Now, when the Sines of Incidence are equal, it will appear by the following Experiment, that the Sines of Refraction are in a given Proportion to one another. [Illustration: FIG. 26.] _Exper._ 15. The Sun shining into a dark Chamber through a little round Hole in the Window-shut, let S [in _Fig._ 26.] represent his round white Image painted on the opposite Wall by his direct Light, PT his oblong coloured Image made by refracting that Light with a Prism placed at the Window; and _pt_, or _2p 2t_, _3p 3t_, his oblong colour'd Image made by refracting again the same Light sideways with a second Prism placed immediately after the first in a cross Position to it, as was explained in the fifth Experiment; that is to say, _pt_ when the Refraction of the second Prism is small, _2p 2t_ when its Refraction is greater, and _3p 3t_ when it is greatest. For such will be the diversity of the Refractions, if the refracting Angle of the second Prism be of various Magnitudes; suppose of fifteen or twenty Degrees to make the Image _pt_, of thirty or forty to make the Image _2p 2t_, and of sixty to make the Image _3p 3t_. But for want of solid Glass Prisms with Angles of convenient Bignesses, there may be Vessels made of polished Plates of Glass cemented together in the form of Prisms and filled with Water. These things being thus ordered, I observed that all the solar Images or coloured Spectrums PT, _pt_, _2p 2t_, _3p 3t_ did very nearly converge to the place S on which the direct Light of the Sun fell and painted his white round Image when the Prisms were taken away. The Axis of the Spectrum PT, that is the Line drawn through the middle of it parallel to its rectilinear Sides, did when produced pass exactly through the middle of that white round Image S. And when the Refraction of the second Prism was equal to the Refraction of the first, the refracting Angles of them both being about 60 Degrees, the Axis of the Spectrum _3p 3t_ made by that Refraction, did when produced pass also through the middle of the same white round Image S. But when the Refraction of the second Prism was less than that of the first, the produced Axes of the Spectrums _tp_ or _2t 2p_ made by that Refraction did cut the produced Axis of the Spectrum TP in the points _m_ and _n_, a little beyond the Center of that white round Image S. Whence the proportion of the Line 3_t_T to the Line 3_p_P was a little greater than the Proportion of 2_t_T or 2_p_P, and this Proportion a little greater than that of _t_T to _p_P. Now when the Light of the Spectrum PT falls perpendicularly upon the Wall, those Lines 3_t_T, 3_p_P, and 2_t_T, and 2_p_P, and _t_T, _p_P, are the Tangents of the Refractions, and therefore by this Experiment the Proportions of the Tangents of the Refractions are obtained, from whence the Proportions of the Sines being derived, they come out equal, so far as by viewing the Spectrums, and using some mathematical Reasoning I could estimate. For I did not make an accurate Computation. So then the Proposition holds true in every Ray apart, so far as appears by Experiment. And that it is accurately true, may be demonstrated upon this Supposition. _That Bodies refract Light by acting upon its Rays in Lines perpendicular to their Surfaces._ But in order to this Demonstration, I must distinguish the Motion of every Ray into two Motions, the one perpendicular to the refracting Surface, the other parallel to it, and concerning the perpendicular Motion lay down the following Proposition. If any Motion or moving thing whatsoever be incident with any Velocity on any broad and thin space terminated on both sides by two parallel Planes, and in its Passage through that space be urged perpendicularly towards the farther Plane by any force which at given distances from the Plane is of given Quantities; the perpendicular velocity of that Motion or Thing, at its emerging out of that space, shall be always equal to the square Root of the sum of the square of the perpendicular velocity of that Motion or Thing at its Incidence on that space; and of the square of the perpendicular velocity which that Motion or Thing would have at its Emergence, if at its Incidence its perpendicular velocity was infinitely little. And the same Proposition holds true of any Motion or Thing perpendicularly retarded in its passage through that space, if instead of the sum of the two Squares you take their difference. The Demonstration Mathematicians will easily find out, and therefore I shall not trouble the Reader with it. Suppose now that a Ray coming most obliquely in the Line MC [in _Fig._ 1.] be refracted at C by the Plane RS into the Line CN, and if it be required to find the Line CE, into which any other Ray AC shall be refracted; let MC, AD, be the Sines of Incidence of the two Rays, and NG, EF, their Sines of Refraction, and let the equal Motions of the incident Rays be represented by the equal Lines MC and AC, and the Motion MC being considered as parallel to the refracting Plane, let the other Motion AC be distinguished into two Motions AD and DC, one of which AD is parallel, and the other DC perpendicular to the refracting Surface. In like manner, let the Motions of the emerging Rays be distinguish'd into two, whereof the perpendicular ones are MC/NG × CG and AD/EF × CF. And if the force of the refracting Plane begins to act upon the Rays either in that Plane or at a certain distance from it on the one side, and ends at a certain distance from it on the other side, and in all places between those two limits acts upon the Rays in Lines perpendicular to that refracting Plane, and the Actions upon the Rays at equal distances from the refracting Plane be equal, and at unequal ones either equal or unequal according to any rate whatever; that Motion of the Ray which is parallel to the refracting Plane, will suffer no Alteration by that Force; and that Motion which is perpendicular to it will be altered according to the rule of the foregoing Proposition. If therefore for the perpendicular velocity of the emerging Ray CN you write MC/NG × CG as above, then the perpendicular velocity of any other emerging Ray CE which was AD/EF × CF, will be equal to the square Root of CD_q_ + (_MCq/NGq_ × CG_q_). And by squaring these Equals, and adding to them the Equals AD_q_ and MC_q_ - CD_q_, and dividing the Sums by the Equals CF_q_ + EF_q_ and CG_q_ + NG_q_, you will have _MCq/NGq_ equal to _ADq/EFq_. Whence AD, the Sine of Incidence, is to EF the Sine of Refraction, as MC to NG, that is, in a given _ratio_. And this Demonstration being general, without determining what Light is, or by what kind of Force it is refracted, or assuming any thing farther than that the refracting Body acts upon the Rays in Lines perpendicular to its Surface; I take it to be a very convincing Argument of the full truth of this Proposition. So then, if the _ratio_ of the Sines of Incidence and Refraction of any sort of Rays be found in any one case, 'tis given in all cases; and this may be readily found by the Method in the following Proposition. _PROP._ VII. THEOR. VI. _The Perfection of Telescopes is impeded by the different Refrangibility of the Rays of Light._ The Imperfection of Telescopes is vulgarly attributed to the spherical Figures of the Glasses, and therefore Mathematicians have propounded to figure them by the conical Sections. To shew that they are mistaken, I have inserted this Proposition; the truth of which will appear by the measure of the Refractions of the several sorts of Rays; and these measures I thus determine. In the third Experiment of this first Part, where the refracting Angle of the Prism was 62-1/2 Degrees, the half of that Angle 31 deg. 15 min. is the Angle of Incidence of the Rays at their going out of the Glass into the Air[F]; and the Sine of this Angle is 5188, the Radius being 10000. When the Axis of this Prism was parallel to the Horizon, and the Refraction of the Rays at their Incidence on this Prism equal to that at their Emergence out of it, I observed with a Quadrant the Angle which the mean refrangible Rays, (that is those which went to the middle of the Sun's coloured Image) made with the Horizon, and by this Angle and the Sun's altitude observed at the same time, I found the Angle which the emergent Rays contained with the incident to be 44 deg. and 40 min. and the half of this Angle added to the Angle of Incidence 31 deg. 15 min. makes the Angle of Refraction, which is therefore 53 deg. 35 min. and its Sine 8047. These are the Sines of Incidence and Refraction of the mean refrangible Rays, and their Proportion in round Numbers is 20 to 31. This Glass was of a Colour inclining to green. The last of the Prisms mentioned in the third Experiment was of clear white Glass. Its refracting Angle 63-1/2 Degrees. The Angle which the emergent Rays contained, with the incident 45 deg. 50 min. The Sine of half the first Angle 5262. The Sine of half the Sum of the Angles 8157. And their Proportion in round Numbers 20 to 31, as before. From the Length of the Image, which was about 9-3/4 or 10 Inches, subduct its Breadth, which was 2-1/8 Inches, and the Remainder 7-3/4 Inches would be the Length of the Image were the Sun but a Point, and therefore subtends the Angle which the most and least refrangible Rays, when incident on the Prism in the same Lines, do contain with one another after their Emergence. Whence this Angle is 2 deg. 0´. 7´´. For the distance between the Image and the Prism where this Angle is made, was 18-1/2 Feet, and at that distance the Chord 7-3/4 Inches subtends an Angle of 2 deg. 0´. 7´´. Now half this Angle is the Angle which these emergent Rays contain with the emergent mean refrangible Rays, and a quarter thereof, that is 30´. 2´´. may be accounted the Angle which they would contain with the same emergent mean refrangible Rays, were they co-incident to them within the Glass, and suffered no other Refraction than that at their Emergence. For, if two equal Refractions, the one at the Incidence of the Rays on the Prism, the other at their Emergence, make half the Angle 2 deg. 0´. 7´´. then one of those Refractions will make about a quarter of that Angle, and this quarter added to, and subducted from the Angle of Refraction of the mean refrangible Rays, which was 53 deg. 35´, gives the Angles of Refraction of the most and least refrangible Rays 54 deg. 5´ 2´´, and 53 deg. 4´ 58´´, whose Sines are 8099 and 7995, the common Angle of Incidence being 31 deg. 15´, and its Sine 5188; and these Sines in the least round Numbers are in proportion to one another, as 78 and 77 to 50. Now, if you subduct the common Sine of Incidence 50 from the Sines of Refraction 77 and 78, the Remainders 27 and 28 shew, that in small Refractions the Refraction of the least refrangible Rays is to the Refraction of the most refrangible ones, as 27 to 28 very nearly, and that the difference of the Refractions of the least refrangible and most refrangible Rays is about the 27-1/2th Part of the whole Refraction of the mean refrangible Rays. Whence they that are skilled in Opticks will easily understand,[G] that the Breadth of the least circular Space, into which Object-glasses of Telescopes can collect all sorts of Parallel Rays, is about the 27-1/2th Part of half the Aperture of the Glass, or 55th Part of the whole Aperture; and that the Focus of the most refrangible Rays is nearer to the Object-glass than the Focus of the least refrangible ones, by about the 27-1/2th Part of the distance between the Object-glass and the Focus of the mean refrangible ones. And if Rays of all sorts, flowing from any one lucid Point in the Axis of any convex Lens, be made by the Refraction of the Lens to converge to Points not too remote from the Lens, the Focus of the most refrangible Rays shall be nearer to the Lens than the Focus of the least refrangible ones, by a distance which is to the 27-1/2th Part of the distance of the Focus of the mean refrangible Rays from the Lens, as the distance between that Focus and the lucid Point, from whence the Rays flow, is to the distance between that lucid Point and the Lens very nearly. Now to examine whether the Difference between the Refractions, which the most refrangible and the least refrangible Rays flowing from the same Point suffer in the Object-glasses of Telescopes and such-like Glasses, be so great as is here described, I contrived the following Experiment. _Exper._ 16. The Lens which I used in the second and eighth Experiments, being placed six Feet and an Inch distant from any Object, collected the Species of that Object by the mean refrangible Rays at the distance of six Feet and an Inch from the Lens on the other side. And therefore by the foregoing Rule, it ought to collect the Species of that Object by the least refrangible Rays at the distance of six Feet and 3-2/3 Inches from the Lens, and by the most refrangible ones at the distance of five Feet and 10-1/3 Inches from it: So that between the two Places, where these least and most refrangible Rays collect the Species, there may be the distance of about 5-1/3 Inches. For by that Rule, as six Feet and an Inch (the distance of the Lens from the lucid Object) is to twelve Feet and two Inches (the distance of the lucid Object from the Focus of the mean refrangible Rays) that is, as One is to Two; so is the 27-1/2th Part of six Feet and an Inch (the distance between the Lens and the same Focus) to the distance between the Focus of the most refrangible Rays and the Focus of the least refrangible ones, which is therefore 5-17/55 Inches, that is very nearly 5-1/3 Inches. Now to know whether this Measure was true, I repeated the second and eighth Experiment with coloured Light, which was less compounded than that I there made use of: For I now separated the heterogeneous Rays from one another by the Method I described in the eleventh Experiment, so as to make a coloured Spectrum about twelve or fifteen Times longer than broad. This Spectrum I cast on a printed Book, and placing the above-mentioned Lens at the distance of six Feet and an Inch from this Spectrum to collect the Species of the illuminated Letters at the same distance on the other side, I found that the Species of the Letters illuminated with blue were nearer to the Lens than those illuminated with deep red by about three Inches, or three and a quarter; but the Species of the Letters illuminated with indigo and violet appeared so confused and indistinct, that I could not read them: Whereupon viewing the Prism, I found it was full of Veins running from one end of the Glass to the other; so that the Refraction could not be regular. I took another Prism therefore which was free from Veins, and instead of the Letters I used two or three Parallel black Lines a little broader than the Strokes of the Letters, and casting the Colours upon these Lines in such manner, that the Lines ran along the Colours from one end of the Spectrum to the other, I found that the Focus where the indigo, or confine of this Colour and violet cast the Species of the black Lines most distinctly, to be about four Inches, or 4-1/4 nearer to the Lens than the Focus, where the deepest red cast the Species of the same black Lines most distinctly. The violet was so faint and dark, that I could not discern the Species of the Lines distinctly by that Colour; and therefore considering that the Prism was made of a dark coloured Glass inclining to green, I took another Prism of clear white Glass; but the Spectrum of Colours which this Prism made had long white Streams of faint Light shooting out from both ends of the Colours, which made me conclude that something was amiss; and viewing the Prism, I found two or three little Bubbles in the Glass, which refracted the Light irregularly. Wherefore I covered that Part of the Glass with black Paper, and letting the Light pass through another Part of it which was free from such Bubbles, the Spectrum of Colours became free from those irregular Streams of Light, and was now such as I desired. But still I found the violet so dark and faint, that I could scarce see the Species of the Lines by the violet, and not at all by the deepest Part of it, which was next the end of the Spectrum. I suspected therefore, that this faint and dark Colour might be allayed by that scattering Light which was refracted, and reflected irregularly, partly by some very small Bubbles in the Glasses, and partly by the Inequalities of their Polish; which Light, tho' it was but little, yet it being of a white Colour, might suffice to affect the Sense so strongly as to disturb the Phænomena of that weak and dark Colour the violet, and therefore I tried, as in the 12th, 13th, and 14th Experiments, whether the Light of this Colour did not consist of a sensible Mixture of heterogeneous Rays, but found it did not. Nor did the Refractions cause any other sensible Colour than violet to emerge out of this Light, as they would have done out of white Light, and by consequence out of this violet Light had it been sensibly compounded with white Light. And therefore I concluded, that the reason why I could not see the Species of the Lines distinctly by this Colour, was only the Darkness of this Colour, and Thinness of its Light, and its distance from the Axis of the Lens; I divided therefore those Parallel black Lines into equal Parts, by which I might readily know the distances of the Colours in the Spectrum from one another, and noted the distances of the Lens from the Foci of such Colours, as cast the Species of the Lines distinctly, and then considered whether the difference of those distances bear such proportion to 5-1/3 Inches, the greatest Difference of the distances, which the Foci of the deepest red and violet ought to have from the Lens, as the distance of the observed Colours from one another in the Spectrum bear to the greatest distance of the deepest red and violet measured in the Rectilinear Sides of the Spectrum, that is, to the Length of those Sides, or Excess of the Length of the Spectrum above its Breadth. And my Observations were as follows. When I observed and compared the deepest sensible red, and the Colour in the Confine of green and blue, which at the Rectilinear Sides of the Spectrum was distant from it half the Length of those Sides, the Focus where the Confine of green and blue cast the Species of the Lines distinctly on the Paper, was nearer to the Lens than the Focus, where the red cast those Lines distinctly on it by about 2-1/2 or 2-3/4 Inches. For sometimes the Measures were a little greater, sometimes a little less, but seldom varied from one another above 1/3 of an Inch. For it was very difficult to define the Places of the Foci, without some little Errors. Now, if the Colours distant half the Length of the Image, (measured at its Rectilinear Sides) give 2-1/2 or 2-3/4 Difference of the distances of their Foci from the Lens, then the Colours distant the whole Length ought to give 5 or 5-1/2 Inches difference of those distances. But here it's to be noted, that I could not see the red to the full end of the Spectrum, but only to the Center of the Semicircle which bounded that end, or a little farther; and therefore I compared this red not with that Colour which was exactly in the middle of the Spectrum, or Confine of green and blue, but with that which verged a little more to the blue than to the green: And as I reckoned the whole Length of the Colours not to be the whole Length of the Spectrum, but the Length of its Rectilinear Sides, so compleating the semicircular Ends into Circles, when either of the observed Colours fell within those Circles, I measured the distance of that Colour from the semicircular End of the Spectrum, and subducting half this distance from the measured distance of the two Colours, I took the Remainder for their corrected distance; and in these Observations set down this corrected distance for the difference of the distances of their Foci from the Lens. For, as the Length of the Rectilinear Sides of the Spectrum would be the whole Length of all the Colours, were the Circles of which (as we shewed) that Spectrum consists contracted and reduced to Physical Points, so in that Case this corrected distance would be the real distance of the two observed Colours. When therefore I farther observed the deepest sensible red, and that blue whose corrected distance from it was 7/12 Parts of the Length of the Rectilinear Sides of the Spectrum, the difference of the distances of their Foci from the Lens was about 3-1/4 Inches, and as 7 to 12, so is 3-1/4 to 5-4/7. When I observed the deepest sensible red, and that indigo whose corrected distance was 8/12 or 2/3 of the Length of the Rectilinear Sides of the Spectrum, the difference of the distances of their Foci from the Lens, was about 3-2/3 Inches, and as 2 to 3, so is 3-2/3 to 5-1/2. When I observed the deepest sensible red, and that deep indigo whose corrected distance from one another was 9/12 or 3/4 of the Length of the Rectilinear Sides of the Spectrum, the difference of the distances of their Foci from the Lens was about 4 Inches; and as 3 to 4, so is 4 to 5-1/3. When I observed the deepest sensible red, and that Part of the violet next the indigo, whose corrected distance from the red was 10/12 or 5/6 of the Length of the Rectilinear Sides of the Spectrum, the difference of the distances of their Foci from the Lens was about 4-1/2 Inches, and as 5 to 6, so is 4-1/2 to 5-2/5. For sometimes, when the Lens was advantageously placed, so that its Axis respected the blue, and all Things else were well ordered, and the Sun shone clear, and I held my Eye very near to the Paper on which the Lens cast the Species of the Lines, I could see pretty distinctly the Species of those Lines by that Part of the violet which was next the indigo; and sometimes I could see them by above half the violet, For in making these Experiments I had observed, that the Species of those Colours only appear distinct, which were in or near the Axis of the Lens: So that if the blue or indigo were in the Axis, I could see their Species distinctly; and then the red appeared much less distinct than before. Wherefore I contrived to make the Spectrum of Colours shorter than before, so that both its Ends might be nearer to the Axis of the Lens. And now its Length was about 2-1/2 Inches, and Breadth about 1/5 or 1/6 of an Inch. Also instead of the black Lines on which the Spectrum was cast, I made one black Line broader than those, that I might see its Species more easily; and this Line I divided by short cross Lines into equal Parts, for measuring the distances of the observed Colours. And now I could sometimes see the Species of this Line with its Divisions almost as far as the Center of the semicircular violet End of the Spectrum, and made these farther Observations. When I observed the deepest sensible red, and that Part of the violet, whose corrected distance from it was about 8/9 Parts of the Rectilinear Sides of the Spectrum, the Difference of the distances of the Foci of those Colours from the Lens, was one time 4-2/3, another time 4-3/4, another time 4-7/8 Inches; and as 8 to 9, so are 4-2/3, 4-3/4, 4-7/8, to 5-1/4, 5-11/32, 5-31/64 respectively. When I observed the deepest sensible red, and deepest sensible violet, (the corrected distance of which Colours, when all Things were ordered to the best Advantage, and the Sun shone very clear, was about 11/12 or 15/16 Parts of the Length of the Rectilinear Sides of the coloured Spectrum) I found the Difference of the distances of their Foci from the Lens sometimes 4-3/4 sometimes 5-1/4, and for the most part 5 Inches or thereabouts; and as 11 to 12, or 15 to 16, so is five Inches to 5-2/2 or 5-1/3 Inches. And by this Progression of Experiments I satisfied my self, that had the Light at the very Ends of the Spectrum been strong enough to make the Species of the black Lines appear plainly on the Paper, the Focus of the deepest violet would have been found nearer to the Lens, than the Focus of the deepest red, by about 5-1/3 Inches at least. And this is a farther Evidence, that the Sines of Incidence and Refraction of the several sorts of Rays, hold the same Proportion to one another in the smallest Refractions which they do in the greatest. My Progress in making this nice and troublesome Experiment I have set down more at large, that they that shall try it after me may be aware of the Circumspection requisite to make it succeed well. And if they cannot make it succeed so well as I did, they may notwithstanding collect by the Proportion of the distance of the Colours of the Spectrum, to the Difference of the distances of their Foci from the Lens, what would be the Success in the more distant Colours by a better trial. And yet, if they use a broader Lens than I did, and fix it to a long strait Staff, by means of which it may be readily and truly directed to the Colour whose Focus is desired, I question not but the Experiment will succeed better with them than it did with me. For I directed the Axis as nearly as I could to the middle of the Colours, and then the faint Ends of the Spectrum being remote from the Axis, cast their Species less distinctly on the Paper than they would have done, had the Axis been successively directed to them. Now by what has been said, it's certain that the Rays which differ in Refrangibility do not converge to the same Focus; but if they flow from a lucid Point, as far from the Lens on one side as their Foci are on the other, the Focus of the most refrangible Rays shall be nearer to the Lens than that of the least refrangible, by above the fourteenth Part of the whole distance; and if they flow from a lucid Point, so very remote from the Lens, that before their Incidence they may be accounted parallel, the Focus of the most refrangible Rays shall be nearer to the Lens than the Focus of the least refrangible, by about the 27th or 28th Part of their whole distance from it. And the Diameter of the Circle in the middle Space between those two Foci which they illuminate, when they fall there on any Plane, perpendicular to the Axis (which Circle is the least into which they can all be gathered) is about the 55th Part of the Diameter of the Aperture of the Glass. So that 'tis a wonder, that Telescopes represent Objects so distinct as they do. But were all the Rays of Light equally refrangible, the Error arising only from the Sphericalness of the Figures of Glasses would be many hundred times less. For, if the Object-glass of a Telescope be Plano-convex, and the Plane side be turned towards the Object, and the Diameter of the Sphere, whereof this Glass is a Segment, be called D, and the Semi-diameter of the Aperture of the Glass be called S, and the Sine of Incidence out of Glass into Air, be to the Sine of Refraction as I to R; the Rays which come parallel to the Axis of the Glass, shall in the Place where the Image of the Object is most distinctly made, be scattered all over a little Circle, whose Diameter is _(Rq/Iq) × (S cub./D quad.)_ very nearly,[H] as I gather by computing the Errors of the Rays by the Method of infinite Series, and rejecting the Terms, whose Quantities are inconsiderable. As for instance, if the Sine of Incidence I, be to the Sine of Refraction R, as 20 to 31, and if D the Diameter of the Sphere, to which the Convex-side of the Glass is ground, be 100 Feet or 1200 Inches, and S the Semi-diameter of the Aperture be two Inches, the Diameter of the little Circle, (that is (_Rq × S cub.)/(Iq × D quad._)) will be (31 × 31 × 8)/(20 × 20 × 1200 × 1200) (or 961/72000000) Parts of an Inch. But the Diameter of the little Circle, through which these Rays are scattered by unequal Refrangibility, will be about the 55th Part of the Aperture of the Object-glass, which here is four Inches. And therefore, the Error arising from the Spherical Figure of the Glass, is to the Error arising from the different Refrangibility of the Rays, as 961/72000000 to 4/55, that is as 1 to 5449; and therefore being in comparison so very little, deserves not to be considered. [Illustration: FIG. 27.] But you will say, if the Errors caused by the different Refrangibility be so very great, how comes it to pass, that Objects appear through Telescopes so distinct as they do? I answer, 'tis because the erring Rays are not scattered uniformly over all that Circular Space, but collected infinitely more densely in the Center than in any other Part of the Circle, and in the Way from the Center to the Circumference, grow continually rarer and rarer, so as at the Circumference to become infinitely rare; and by reason of their Rarity are not strong enough to be visible, unless in the Center and very near it. Let ADE [in _Fig._ 27.] represent one of those Circles described with the Center C, and Semi-diameter AC, and let BFG be a smaller Circle concentrick to the former, cutting with its Circumference the Diameter AC in B, and bisect AC in N; and by my reckoning, the Density of the Light in any Place B, will be to its Density in N, as AB to BC; and the whole Light within the lesser Circle BFG, will be to the whole Light within the greater AED, as the Excess of the Square of AC above the Square of AB, is to the Square of AC. As if BC be the fifth Part of AC, the Light will be four times denser in B than in N, and the whole Light within the less Circle, will be to the whole Light within the greater, as nine to twenty-five. Whence it's evident, that the Light within the less Circle, must strike the Sense much more strongly, than that faint and dilated Light round about between it and the Circumference of the greater. But it's farther to be noted, that the most luminous of the Prismatick Colours are the yellow and orange. These affect the Senses more strongly than all the rest together, and next to these in strength are the red and green. The blue compared with these is a faint and dark Colour, and the indigo and violet are much darker and fainter, so that these compared with the stronger Colours are little to be regarded. The Images of Objects are therefore to be placed, not in the Focus of the mean refrangible Rays, which are in the Confine of green and blue, but in the Focus of those Rays which are in the middle of the orange and yellow; there where the Colour is most luminous and fulgent, that is in the brightest yellow, that yellow which inclines more to orange than to green. And by the Refraction of these Rays (whose Sines of Incidence and Refraction in Glass are as 17 and 11) the Refraction of Glass and Crystal for Optical Uses is to be measured. Let us therefore place the Image of the Object in the Focus of these Rays, and all the yellow and orange will fall within a Circle, whose Diameter is about the 250th Part of the Diameter of the Aperture of the Glass. And if you add the brighter half of the red, (that half which is next the orange) and the brighter half of the green, (that half which is next the yellow) about three fifth Parts of the Light of these two Colours will fall within the same Circle, and two fifth Parts will fall without it round about; and that which falls without will be spread through almost as much more space as that which falls within, and so in the gross be almost three times rarer. Of the other half of the red and green, (that is of the deep dark red and willow green) about one quarter will fall within this Circle, and three quarters without, and that which falls without will be spread through about four or five times more space than that which falls within; and so in the gross be rarer, and if compared with the whole Light within it, will be about 25 times rarer than all that taken in the gross; or rather more than 30 or 40 times rarer, because the deep red in the end of the Spectrum of Colours made by a Prism is very thin and rare, and the willow green is something rarer than the orange and yellow. The Light of these Colours therefore being so very much rarer than that within the Circle, will scarce affect the Sense, especially since the deep red and willow green of this Light, are much darker Colours than the rest. And for the same reason the blue and violet being much darker Colours than these, and much more rarified, may be neglected. For the dense and bright Light of the Circle, will obscure the rare and weak Light of these dark Colours round about it, and render them almost insensible. The sensible Image of a lucid Point is therefore scarce broader than a Circle, whose Diameter is the 250th Part of the Diameter of the Aperture of the Object-glass of a good Telescope, or not much broader, if you except a faint and dark misty Light round about it, which a Spectator will scarce regard. And therefore in a Telescope, whose Aperture is four Inches, and Length an hundred Feet, it exceeds not 2´´ 45´´´, or 3´´. And in a Telescope whose Aperture is two Inches, and Length 20 or 30 Feet, it may be 5´´ or 6´´, and scarce above. And this answers well to Experience: For some Astronomers have found the Diameters of the fix'd Stars, in Telescopes of between 20 and 60 Feet in length, to be about 5´´ or 6´´, or at most 8´´ or 10´´ in diameter. But if the Eye-Glass be tincted faintly with the Smoak of a Lamp or Torch, to obscure the Light of the Star, the fainter Light in the Circumference of the Star ceases to be visible, and the Star (if the Glass be sufficiently soiled with Smoak) appears something more like a mathematical Point. And for the same Reason, the enormous Part of the Light in the Circumference of every lucid Point ought to be less discernible in shorter Telescopes than in longer, because the shorter transmit less Light to the Eye. Now, that the fix'd Stars, by reason of their immense Distance, appear like Points, unless so far as their Light is dilated by Refraction, may appear from hence; that when the Moon passes over them and eclipses them, their Light vanishes, not gradually like that of the Planets, but all at once; and in the end of the Eclipse it returns into Sight all at once, or certainly in less time than the second of a Minute; the Refraction of the Moon's Atmosphere a little protracting the time in which the Light of the Star first vanishes, and afterwards returns into Sight. Now, if we suppose the sensible Image of a lucid Point, to be even 250 times narrower than the Aperture of the Glass; yet this Image would be still much greater than if it were only from the spherical Figure of the Glass. For were it not for the different Refrangibility of the Rays, its breadth in an 100 Foot Telescope whose aperture is 4 Inches, would be but 961/72000000 parts of an Inch, as is manifest by the foregoing Computation. And therefore in this case the greatest Errors arising from the spherical Figure of the Glass, would be to the greatest sensible Errors arising from the different Refrangibility of the Rays as 961/72000000 to 4/250 at most, that is only as 1 to 1200. And this sufficiently shews that it is not the spherical Figures of Glasses, but the different Refrangibility of the Rays which hinders the perfection of Telescopes. There is another Argument by which it may appear that the different Refrangibility of Rays, is the true cause of the imperfection of Telescopes. For the Errors of the Rays arising from the spherical Figures of Object-glasses, are as the Cubes of the Apertures of the Object Glasses; and thence to make Telescopes of various Lengths magnify with equal distinctness, the Apertures of the Object-glasses, and the Charges or magnifying Powers ought to be as the Cubes of the square Roots of their lengths; which doth not answer to Experience. But the Errors of the Rays arising from the different Refrangibility, are as the Apertures of the Object-glasses; and thence to make Telescopes of various lengths, magnify with equal distinctness, their Apertures and Charges ought to be as the square Roots of their lengths; and this answers to Experience, as is well known. For Instance, a Telescope of 64 Feet in length, with an Aperture of 2-2/3 Inches, magnifies about 120 times, with as much distinctness as one of a Foot in length, with 1/3 of an Inch aperture, magnifies 15 times. [Illustration: FIG. 28.] Now were it not for this different Refrangibility of Rays, Telescopes might be brought to a greater perfection than we have yet describ'd, by composing the Object-glass of two Glasses with Water between them. Let ADFC [in _Fig._ 28.] represent the Object-glass composed of two Glasses ABED and BEFC, alike convex on the outsides AGD and CHF, and alike concave on the insides BME, BNE, with Water in the concavity BMEN. Let the Sine of Incidence out of Glass into Air be as I to R, and out of Water into Air, as K to R, and by consequence out of Glass into Water, as I to K: and let the Diameter of the Sphere to which the convex sides AGD and CHF are ground be D, and the Diameter of the Sphere to which the concave sides BME and BNE, are ground be to D, as the Cube Root of KK--KI to the Cube Root of RK--RI: and the Refractions on the concave sides of the Glasses, will very much correct the Errors of the Refractions on the convex sides, so far as they arise from the sphericalness of the Figure. And by this means might Telescopes be brought to sufficient perfection, were it not for the different Refrangibility of several sorts of Rays. But by reason of this different Refrangibility, I do not yet see any other means of improving Telescopes by Refractions alone, than that of increasing their lengths, for which end the late Contrivance of _Hugenius_ seems well accommodated. For very long Tubes are cumbersome, and scarce to be readily managed, and by reason of their length are very apt to bend, and shake by bending, so as to cause a continual trembling in the Objects, whereby it becomes difficult to see them distinctly: whereas by his Contrivance the Glasses are readily manageable, and the Object-glass being fix'd upon a strong upright Pole becomes more steady. Seeing therefore the Improvement of Telescopes of given lengths by Refractions is desperate; I contrived heretofore a Perspective by Reflexion, using instead of an Object-glass a concave Metal. The diameter of the Sphere to which the Metal was ground concave was about 25 _English_ Inches, and by consequence the length of the Instrument about six Inches and a quarter. The Eye-glass was Plano-convex, and the diameter of the Sphere to which the convex side was ground was about 1/5 of an Inch, or a little less, and by consequence it magnified between 30 and 40 times. By another way of measuring I found that it magnified about 35 times. The concave Metal bore an Aperture of an Inch and a third part; but the Aperture was limited not by an opake Circle, covering the Limb of the Metal round about, but by an opake Circle placed between the Eyeglass and the Eye, and perforated in the middle with a little round hole for the Rays to pass through to the Eye. For this Circle by being placed here, stopp'd much of the erroneous Light, which otherwise would have disturbed the Vision. By comparing it with a pretty good Perspective of four Feet in length, made with a concave Eye-glass, I could read at a greater distance with my own Instrument than with the Glass. Yet Objects appeared much darker in it than in the Glass, and that partly because more Light was lost by Reflexion in the Metal, than by Refraction in the Glass, and partly because my Instrument was overcharged. Had it magnified but 30 or 25 times, it would have made the Object appear more brisk and pleasant. Two of these I made about 16 Years ago, and have one of them still by me, by which I can prove the truth of what I write. Yet it is not so good as at the first. For the concave has been divers times tarnished and cleared again, by rubbing it with very soft Leather. When I made these an Artist in _London_ undertook to imitate it; but using another way of polishing them than I did, he fell much short of what I had attained to, as I afterwards understood by discoursing the Under-workman he had employed. The Polish I used was in this manner. I had two round Copper Plates, each six Inches in Diameter, the one convex, the other concave, ground very true to one another. On the convex I ground the Object-Metal or Concave which was to be polish'd, 'till it had taken the Figure of the Convex and was ready for a Polish. Then I pitched over the convex very thinly, by dropping melted Pitch upon it, and warming it to keep the Pitch soft, whilst I ground it with the concave Copper wetted to make it spread eavenly all over the convex. Thus by working it well I made it as thin as a Groat, and after the convex was cold I ground it again to give it as true a Figure as I could. Then I took Putty which I had made very fine by washing it from all its grosser Particles, and laying a little of this upon the Pitch, I ground it upon the Pitch with the concave Copper, till it had done making a Noise; and then upon the Pitch I ground the Object-Metal with a brisk motion, for about two or three Minutes of time, leaning hard upon it. Then I put fresh Putty upon the Pitch, and ground it again till it had done making a noise, and afterwards ground the Object-Metal upon it as before. And this Work I repeated till the Metal was polished, grinding it the last time with all my strength for a good while together, and frequently breathing upon the Pitch, to keep it moist without laying on any more fresh Putty. The Object-Metal was two Inches broad, and about one third part of an Inch thick, to keep it from bending. I had two of these Metals, and when I had polished them both, I tried which was best, and ground the other again, to see if I could make it better than that which I kept. And thus by many Trials I learn'd the way of polishing, till I made those two reflecting Perspectives I spake of above. For this Art of polishing will be better learn'd by repeated Practice than by my Description. Before I ground the Object-Metal on the Pitch, I always ground the Putty on it with the concave Copper, till it had done making a noise, because if the Particles of the Putty were not by this means made to stick fast in the Pitch, they would by rolling up and down grate and fret the Object-Metal and fill it full of little holes. But because Metal is more difficult to polish than Glass, and is afterwards very apt to be spoiled by tarnishing, and reflects not so much Light as Glass quick-silver'd over does: I would propound to use instead of the Metal, a Glass ground concave on the foreside, and as much convex on the backside, and quick-silver'd over on the convex side. The Glass must be every where of the same thickness exactly. Otherwise it will make Objects look colour'd and indistinct. By such a Glass I tried about five or six Years ago to make a reflecting Telescope of four Feet in length to magnify about 150 times, and I satisfied my self that there wants nothing but a good Artist to bring the Design to perfection. For the Glass being wrought by one of our _London_ Artists after such a manner as they grind Glasses for Telescopes, though it seemed as well wrought as the Object-glasses use to be, yet when it was quick-silver'd, the Reflexion discovered innumerable Inequalities all over the Glass. And by reason of these Inequalities, Objects appeared indistinct in this Instrument. For the Errors of reflected Rays caused by any Inequality of the Glass, are about six times greater than the Errors of refracted Rays caused by the like Inequalities. Yet by this Experiment I satisfied my self that the Reflexion on the concave side of the Glass, which I feared would disturb the Vision, did no sensible prejudice to it, and by consequence that nothing is wanting to perfect these Telescopes, but good Workmen who can grind and polish Glasses truly spherical. An Object-glass of a fourteen Foot Telescope, made by an Artificer at _London_, I once mended considerably, by grinding it on Pitch with Putty, and leaning very easily on it in the grinding, lest the Putty should scratch it. Whether this way may not do well enough for polishing these reflecting Glasses, I have not yet tried. But he that shall try either this or any other way of polishing which he may think better, may do well to make his Glasses ready for polishing, by grinding them without that Violence, wherewith our _London_ Workmen press their Glasses in grinding. For by such violent pressure, Glasses are apt to bend a little in the grinding, and such bending will certainly spoil their Figure. To recommend therefore the consideration of these reflecting Glasses to such Artists as are curious in figuring Glasses, I shall describe this optical Instrument in the following Proposition. _PROP._ VIII. PROB. II. _To shorten Telescopes._ Let ABCD [in _Fig._ 29.] represent a Glass spherically concave on the foreside AB, and as much convex on the backside CD, so that it be every where of an equal thickness. Let it not be thicker on one side than on the other, lest it make Objects appear colour'd and indistinct, and let it be very truly wrought and quick-silver'd over on the backside; and set in the Tube VXYZ which must be very black within. Let EFG represent a Prism of Glass or Crystal placed near the other end of the Tube, in the middle of it, by means of a handle of Brass or Iron FGK, to the end of which made flat it is cemented. Let this Prism be rectangular at E, and let the other two Angles at F and G be accurately equal to each other, and by consequence equal to half right ones, and let the plane sides FE and GE be square, and by consequence the third side FG a rectangular Parallelogram, whose length is to its breadth in a subduplicate proportion of two to one. Let it be so placed in the Tube, that the Axis of the Speculum may pass through the middle of the square side EF perpendicularly and by consequence through the middle of the side FG at an Angle of 45 Degrees, and let the side EF be turned towards the Speculum, and the distance of this Prism from the Speculum be such that the Rays of the Light PQ, RS, &c. which are incident upon the Speculum in Lines parallel to the Axis thereof, may enter the Prism at the side EF, and be reflected by the side FG, and thence go out of it through the side GE, to the Point T, which must be the common Focus of the Speculum ABDC, and of a Plano-convex Eye-glass H, through which those Rays must pass to the Eye. And let the Rays at their coming out of the Glass pass through a small round hole, or aperture made in a little plate of Lead, Brass, or Silver, wherewith the Glass is to be covered, which hole must be no bigger than is necessary for Light enough to pass through. For so it will render the Object distinct, the Plate in which 'tis made intercepting all the erroneous part of the Light which comes from the verges of the Speculum AB. Such an Instrument well made, if it be six Foot long, (reckoning the length from the Speculum to the Prism, and thence to the Focus T) will bear an aperture of six Inches at the Speculum, and magnify between two and three hundred times. But the hole H here limits the aperture with more advantage, than if the aperture was placed at the Speculum. If the Instrument be made longer or shorter, the aperture must be in proportion as the Cube of the square-square Root of the length, and the magnifying as the aperture. But it's convenient that the Speculum be an Inch or two broader than the aperture at the least, and that the Glass of the Speculum be thick, that it bend not in the working. The Prism EFG must be no bigger than is necessary, and its back side FG must not be quick-silver'd over. For without quicksilver it will reflect all the Light incident on it from the Speculum. [Illustration: FIG. 29.] In this Instrument the Object will be inverted, but may be erected by making the square sides FF and EG of the Prism EFG not plane but spherically convex, that the Rays may cross as well before they come at it as afterwards between it and the Eye-glass. If it be desired that the Instrument bear a larger aperture, that may be also done by composing the Speculum of two Glasses with Water between them. If the Theory of making Telescopes could at length be fully brought into Practice, yet there would be certain Bounds beyond which Telescopes could not perform. For the Air through which we look upon the Stars, is in a perpetual Tremor; as may be seen by the tremulous Motion of Shadows cast from high Towers, and by the twinkling of the fix'd Stars. But these Stars do not twinkle when viewed through Telescopes which have large apertures. For the Rays of Light which pass through divers parts of the aperture, tremble each of them apart, and by means of their various and sometimes contrary Tremors, fall at one and the same time upon different points in the bottom of the Eye, and their trembling Motions are too quick and confused to be perceived severally. And all these illuminated Points constitute one broad lucid Point, composed of those many trembling Points confusedly and insensibly mixed with one another by very short and swift Tremors, and thereby cause the Star to appear broader than it is, and without any trembling of the whole. Long Telescopes may cause Objects to appear brighter and larger than short ones can do, but they cannot be so formed as to take away that confusion of the Rays which arises from the Tremors of the Atmosphere. The only Remedy is a most serene and quiet Air, such as may perhaps be found on the tops of the highest Mountains above the grosser Clouds. FOOTNOTES: [C] _See our_ Author's Lectiones Opticæ § 10. _Sect. II. § 29. and Sect. III. Prop. 25._ [D] See our Author's _Lectiones Opticæ_, Part. I. Sect. 1. §5. [E] _This is very fully treated of in our_ Author's Lect. Optic. _Part_ I. _Sect._ II. [F] _See our_ Author's Lect. Optic. Part I. Sect. II. § 29. [G] _This is demonstrated in our_ Author's Lect. Optic. _Part_ I. _Sect._ IV. _Prop._ 37. [H] _How to do this, is shewn in our_ Author's Lect. Optic. _Part_ I. _Sect._ IV. _Prop._ 31. THE FIRST BOOK OF OPTICKS _PART II._ _PROP._ I. THEOR. I. _The Phænomena of Colours in refracted or reflected Light are not caused by new Modifications of the Light variously impress'd, according to the various Terminations of the Light and Shadow_. The PROOF by Experiments. _Exper._ 1. For if the Sun shine into a very dark Chamber through an oblong hole F, [in _Fig._ 1.] whose breadth is the sixth or eighth part of an Inch, or something less; and his beam FH do afterwards pass first through a very large Prism ABC, distant about 20 Feet from the hole, and parallel to it, and then (with its white part) through an oblong hole H, whose breadth is about the fortieth or sixtieth part of an Inch, and which is made in a black opake Body GI, and placed at the distance of two or three Feet from the Prism, in a parallel Situation both to the Prism and to the former hole, and if this white Light thus transmitted through the hole H, fall afterwards upon a white Paper _pt_, placed after that hole H, at the distance of three or four Feet from it, and there paint the usual Colours of the Prism, suppose red at _t_, yellow at _s_, green at _r_, blue at _q_, and violet at _p_; you may with an Iron Wire, or any such like slender opake Body, whose breadth is about the tenth part of an Inch, by intercepting the Rays at _k_, _l_, _m_, _n_ or _o_, take away any one of the Colours at _t_, _s_, _r_, _q_ or _p_, whilst the other Colours remain upon the Paper as before; or with an Obstacle something bigger you may take away any two, or three, or four Colours together, the rest remaining: So that any one of the Colours as well as violet may become outmost in the Confine of the Shadow towards _p_, and any one of them as well as red may become outmost in the Confine of the Shadow towards _t_, and any one of them may also border upon the Shadow made within the Colours by the Obstacle R intercepting some intermediate part of the Light; and, lastly, any one of them by being left alone, may border upon the Shadow on either hand. All the Colours have themselves indifferently to any Confines of Shadow, and therefore the differences of these Colours from one another, do not arise from the different Confines of Shadow, whereby Light is variously modified, as has hitherto been the Opinion of Philosophers. In trying these things 'tis to be observed, that by how much the holes F and H are narrower, and the Intervals between them and the Prism greater, and the Chamber darker, by so much the better doth the Experiment succeed; provided the Light be not so far diminished, but that the Colours at _pt_ be sufficiently visible. To procure a Prism of solid Glass large enough for this Experiment will be difficult, and therefore a prismatick Vessel must be made of polish'd Glass Plates cemented together, and filled with salt Water or clear Oil. [Illustration: FIG. 1.] _Exper._ 2. The Sun's Light let into a dark Chamber through the round hole F, [in _Fig._ 2.] half an Inch wide, passed first through the Prism ABC placed at the hole, and then through a Lens PT something more than four Inches broad, and about eight Feet distant from the Prism, and thence converged to O the Focus of the Lens distant from it about three Feet, and there fell upon a white Paper DE. If that Paper was perpendicular to that Light incident upon it, as 'tis represented in the posture DE, all the Colours upon it at O appeared white. But if the Paper being turned about an Axis parallel to the Prism, became very much inclined to the Light, as 'tis represented in the Positions _de_ and _[Greek: de]_; the same Light in the one case appeared yellow and red, in the other blue. Here one and the same part of the Light in one and the same place, according to the various Inclinations of the Paper, appeared in one case white, in another yellow or red, in a third blue, whilst the Confine of Light and shadow, and the Refractions of the Prism in all these cases remained the same. [Illustration: FIG. 2.] [Illustration: FIG. 3.] _Exper._ 3. Such another Experiment may be more easily tried as follows. Let a broad beam of the Sun's Light coming into a dark Chamber through a hole in the Window-shut be refracted by a large Prism ABC, [in _Fig._ 3.] whose refracting Angle C is more than 60 Degrees, and so soon as it comes out of the Prism, let it fall upon the white Paper DE glewed upon a stiff Plane; and this Light, when the Paper is perpendicular to it, as 'tis represented in DE, will appear perfectly white upon the Paper; but when the Paper is very much inclin'd to it in such a manner as to keep always parallel to the Axis of the Prism, the whiteness of the whole Light upon the Paper will according to the inclination of the Paper this way or that way, change either into yellow and red, as in the posture _de_, or into blue and violet, as in the posture [Greek: de]. And if the Light before it fall upon the Paper be twice refracted the same way by two parallel Prisms, these Colours will become the more conspicuous. Here all the middle parts of the broad beam of white Light which fell upon the Paper, did without any Confine of Shadow to modify it, become colour'd all over with one uniform Colour, the Colour being always the same in the middle of the Paper as at the edges, and this Colour changed according to the various Obliquity of the reflecting Paper, without any change in the Refractions or Shadow, or in the Light which fell upon the Paper. And therefore these Colours are to be derived from some other Cause than the new Modifications of Light by Refractions and Shadows. If it be asked, what then is their Cause? I answer, That the Paper in the posture _de_, being more oblique to the more refrangible Rays than to the less refrangible ones, is more strongly illuminated by the latter than by the former, and therefore the less refrangible Rays are predominant in the reflected Light. And where-ever they are predominant in any Light, they tinge it with red or yellow, as may in some measure appear by the first Proposition of the first Part of this Book, and will more fully appear hereafter. And the contrary happens in the posture of the Paper [Greek: de], the more refrangible Rays being then predominant which always tinge Light with blues and violets. _Exper._ 4. The Colours of Bubbles with which Children play are various, and change their Situation variously, without any respect to any Confine or Shadow. If such a Bubble be cover'd with a concave Glass, to keep it from being agitated by any Wind or Motion of the Air, the Colours will slowly and regularly change their situation, even whilst the Eye and the Bubble, and all Bodies which emit any Light, or cast any Shadow, remain unmoved. And therefore their Colours arise from some regular Cause which depends not on any Confine of Shadow. What this Cause is will be shewed in the next Book. To these Experiments may be added the tenth Experiment of the first Part of this first Book, where the Sun's Light in a dark Room being trajected through the parallel Superficies of two Prisms tied together in the form of a Parallelopipede, became totally of one uniform yellow or red Colour, at its emerging out of the Prisms. Here, in the production of these Colours, the Confine of Shadow can have nothing to do. For the Light changes from white to yellow, orange and red successively, without any alteration of the Confine of Shadow: And at both edges of the emerging Light where the contrary Confines of Shadow ought to produce different Effects, the Colour is one and the same, whether it be white, yellow, orange or red: And in the middle of the emerging Light, where there is no Confine of Shadow at all, the Colour is the very same as at the edges, the whole Light at its very first Emergence being of one uniform Colour, whether white, yellow, orange or red, and going on thence perpetually without any change of Colour, such as the Confine of Shadow is vulgarly supposed to work in refracted Light after its Emergence. Neither can these Colours arise from any new Modifications of the Light by Refractions, because they change successively from white to yellow, orange and red, while the Refractions remain the same, and also because the Refractions are made contrary ways by parallel Superficies which destroy one another's Effects. They arise not therefore from any Modifications of Light made by Refractions and Shadows, but have some other Cause. What that Cause is we shewed above in this tenth Experiment, and need not here repeat it. There is yet another material Circumstance of this Experiment. For this emerging Light being by a third Prism HIK [in _Fig._ 22. _Part_ I.][I] refracted towards the Paper PT, and there painting the usual Colours of the Prism, red, yellow, green, blue, violet: If these Colours arose from the Refractions of that Prism modifying the Light, they would not be in the Light before its Incidence on that Prism. And yet in that Experiment we found, that when by turning the two first Prisms about their common Axis all the Colours were made to vanish but the red; the Light which makes that red being left alone, appeared of the very same red Colour before its Incidence on the third Prism. And in general we find by other Experiments, that when the Rays which differ in Refrangibility are separated from one another, and any one Sort of them is considered apart, the Colour of the Light which they compose cannot be changed by any Refraction or Reflexion whatever, as it ought to be were Colours nothing else than Modifications of Light caused by Refractions, and Reflexions, and Shadows. This Unchangeableness of Colour I am now to describe in the following Proposition. _PROP._ II. THEOR. II. _All homogeneal Light has its proper Colour answering to its Degree of Refrangibility, and that Colour cannot be changed by Reflexions and Refractions._ In the Experiments of the fourth Proposition of the first Part of this first Book, when I had separated the heterogeneous Rays from one another, the Spectrum _pt_ formed by the separated Rays, did in the Progress from its End _p_, on which the most refrangible Rays fell, unto its other End _t_, on which the least refrangible Rays fell, appear tinged with this Series of Colours, violet, indigo, blue, green, yellow, orange, red, together with all their intermediate Degrees in a continual Succession perpetually varying. So that there appeared as many Degrees of Colours, as there were sorts of Rays differing in Refrangibility. _Exper._ 5. Now, that these Colours could not be changed by Refraction, I knew by refracting with a Prism sometimes one very little Part of this Light, sometimes another very little Part, as is described in the twelfth Experiment of the first Part of this Book. For by this Refraction the Colour of the Light was never changed in the least. If any Part of the red Light was refracted, it remained totally of the same red Colour as before. No orange, no yellow, no green or blue, no other new Colour was produced by that Refraction. Neither did the Colour any ways change by repeated Refractions, but continued always the same red entirely as at first. The like Constancy and Immutability I found also in the blue, green, and other Colours. So also, if I looked through a Prism upon any Body illuminated with any part of this homogeneal Light, as in the fourteenth Experiment of the first Part of this Book is described; I could not perceive any new Colour generated this way. All Bodies illuminated with compound Light appear through Prisms confused, (as was said above) and tinged with various new Colours, but those illuminated with homogeneal Light appeared through Prisms neither less distinct, nor otherwise colour'd, than when viewed with the naked Eyes. Their Colours were not in the least changed by the Refraction of the interposed Prism. I speak here of a sensible Change of Colour: For the Light which I here call homogeneal, being not absolutely homogeneal, there ought to arise some little Change of Colour from its Heterogeneity. But, if that Heterogeneity was so little as it might be made by the said Experiments of the fourth Proposition, that Change was not sensible, and therefore in Experiments, where Sense is Judge, ought to be accounted none at all. _Exper._ 6. And as these Colours were not changeable by Refractions, so neither were they by Reflexions. For all white, grey, red, yellow, green, blue, violet Bodies, as Paper, Ashes, red Lead, Orpiment, Indico Bise, Gold, Silver, Copper, Grass, blue Flowers, Violets, Bubbles of Water tinged with various Colours, Peacock's Feathers, the Tincture of _Lignum Nephriticum_, and such-like, in red homogeneal Light appeared totally red, in blue Light totally blue, in green Light totally green, and so of other Colours. In the homogeneal Light of any Colour they all appeared totally of that same Colour, with this only Difference, that some of them reflected that Light more strongly, others more faintly. I never yet found any Body, which by reflecting homogeneal Light could sensibly change its Colour. From all which it is manifest, that if the Sun's Light consisted of but one sort of Rays, there would be but one Colour in the whole World, nor would it be possible to produce any new Colour by Reflexions and Refractions, and by consequence that the variety of Colours depends upon the Composition of Light. _DEFINITION._ The homogeneal Light and Rays which appear red, or rather make Objects appear so, I call Rubrifick or Red-making; those which make Objects appear yellow, green, blue, and violet, I call Yellow-making, Green-making, Blue-making, Violet-making, and so of the rest. And if at any time I speak of Light and Rays as coloured or endued with Colours, I would be understood to speak not philosophically and properly, but grossly, and accordingly to such Conceptions as vulgar People in seeing all these Experiments would be apt to frame. For the Rays to speak properly are not coloured. In them there is nothing else than a certain Power and Disposition to stir up a Sensation of this or that Colour. For as Sound in a Bell or musical String, or other sounding Body, is nothing but a trembling Motion, and in the Air nothing but that Motion propagated from the Object, and in the Sensorium 'tis a Sense of that Motion under the Form of Sound; so Colours in the Object are nothing but a Disposition to reflect this or that sort of Rays more copiously than the rest; in the Rays they are nothing but their Dispositions to propagate this or that Motion into the Sensorium, and in the Sensorium they are Sensations of those Motions under the Forms of Colours. _PROP._ III. PROB. I. _To define the Refrangibility of the several sorts of homogeneal Light answering to the several Colours._ For determining this Problem I made the following Experiment.[J] _Exper._ 7. When I had caused the Rectilinear Sides AF, GM, [in _Fig._ 4.] of the Spectrum of Colours made by the Prism to be distinctly defined, as in the fifth Experiment of the first Part of this Book is described, there were found in it all the homogeneal Colours in the same Order and Situation one among another as in the Spectrum of simple Light, described in the fourth Proposition of that Part. For the Circles of which the Spectrum of compound Light PT is composed, and which in the middle Parts of the Spectrum interfere, and are intermix'd with one another, are not intermix'd in their outmost Parts where they touch those Rectilinear Sides AF and GM. And therefore, in those Rectilinear Sides when distinctly defined, there is no new Colour generated by Refraction. I observed also, that if any where between the two outmost Circles TMF and PGA a Right Line, as [Greek: gd], was cross to the Spectrum, so as both Ends to fall perpendicularly upon its Rectilinear Sides, there appeared one and the same Colour, and degree of Colour from one End of this Line to the other. I delineated therefore in a Paper the Perimeter of the Spectrum FAP GMT, and in trying the third Experiment of the first Part of this Book, I held the Paper so that the Spectrum might fall upon this delineated Figure, and agree with it exactly, whilst an Assistant, whose Eyes for distinguishing Colours were more critical than mine, did by Right Lines [Greek: ab, gd, ez,] &c. drawn cross the Spectrum, note the Confines of the Colours, that is of the red M[Greek: ab]F, of the orange [Greek: agdb], of the yellow [Greek: gezd], of the green [Greek: eêthz], of the blue [Greek: êikth], of the indico [Greek: ilmk], and of the violet [Greek: l]GA[Greek: m]. And this Operation being divers times repeated both in the same, and in several Papers, I found that the Observations agreed well enough with one another, and that the Rectilinear Sides MG and FA were by the said cross Lines divided after the manner of a Musical Chord. Let GM be produced to X, that MX may be equal to GM, and conceive GX, [Greek: l]X, [Greek: i]X, [Greek: ê]X, [Greek: e]X, [Greek: g]X, [Greek: a]X, MX, to be in proportion to one another, as the Numbers, 1, 8/9, 5/6, 3/4, 2/3, 3/5, 9/16, 1/2, and so to represent the Chords of the Key, and of a Tone, a third Minor, a fourth, a fifth, a sixth Major, a seventh and an eighth above that Key: And the Intervals M[Greek: a], [Greek: ag], [Greek: ge], [Greek: eê], [Greek: êi], [Greek: il], and [Greek: l]G, will be the Spaces which the several Colours (red, orange, yellow, green, blue, indigo, violet) take up. [Illustration: FIG. 4.] [Illustration: FIG. 5.] Now these Intervals or Spaces subtending the Differences of the Refractions of the Rays going to the Limits of those Colours, that is, to the Points M, [Greek: a], [Greek: g], [Greek: e], [Greek: ê], [Greek: i], [Greek: l], G, may without any sensible Error be accounted proportional to the Differences of the Sines of Refraction of those Rays having one common Sine of Incidence, and therefore since the common Sine of Incidence of the most and least refrangible Rays out of Glass into Air was (by a Method described above) found in proportion to their Sines of Refraction, as 50 to 77 and 78, divide the Difference between the Sines of Refraction 77 and 78, as the Line GM is divided by those Intervals, and you will have 77, 77-1/8, 77-1/5, 77-1/3, 77-1/2, 77-2/3, 77-7/9, 78, the Sines of Refraction of those Rays out of Glass into Air, their common Sine of Incidence being 50. So then the Sines of the Incidences of all the red-making Rays out of Glass into Air, were to the Sines of their Refractions, not greater than 50 to 77, nor less than 50 to 77-1/8, but they varied from one another according to all intermediate Proportions. And the Sines of the Incidences of the green-making Rays were to the Sines of their Refractions in all Proportions from that of 50 to 77-1/3, unto that of 50 to 77-1/2. And by the like Limits above-mentioned were the Refractions of the Rays belonging to the rest of the Colours defined, the Sines of the red-making Rays extending from 77 to 77-1/8, those of the orange-making from 77-1/8 to 77-1/5, those of the yellow-making from 77-1/5 to 77-1/3, those of the green-making from 77-1/3 to 77-1/2, those of the blue-making from 77-1/2 to 77-2/3, those of the indigo-making from 77-2/3 to 77-7/9, and those of the violet from 77-7/9, to 78. These are the Laws of the Refractions made out of Glass into Air, and thence by the third Axiom of the first Part of this Book, the Laws of the Refractions made out of Air into Glass are easily derived. _Exper._ 8. I found moreover, that when Light goes out of Air through several contiguous refracting Mediums as through Water and Glass, and thence goes out again into Air, whether the refracting Superficies be parallel or inclin'd to one another, that Light as often as by contrary Refractions 'tis so corrected, that it emergeth in Lines parallel to those in which it was incident, continues ever after to be white. But if the emergent Rays be inclined to the incident, the Whiteness of the emerging Light will by degrees in passing on from the Place of Emergence, become tinged in its Edges with Colours. This I try'd by refracting Light with Prisms of Glass placed within a Prismatick Vessel of Water. Now those Colours argue a diverging and separation of the heterogeneous Rays from one another by means of their unequal Refractions, as in what follows will more fully appear. And, on the contrary, the permanent whiteness argues, that in like Incidences of the Rays there is no such separation of the emerging Rays, and by consequence no inequality of their whole Refractions. Whence I seem to gather the two following Theorems. 1. The Excesses of the Sines of Refraction of several sorts of Rays above their common Sine of Incidence when the Refractions are made out of divers denser Mediums immediately into one and the same rarer Medium, suppose of Air, are to one another in a given Proportion. 2. The Proportion of the Sine of Incidence to the Sine of Refraction of one and the same sort of Rays out of one Medium into another, is composed of the Proportion of the Sine of Incidence to the Sine of Refraction out of the first Medium into any third Medium, and of the Proportion of the Sine of Incidence to the Sine of Refraction out of that third Medium into the second Medium. By the first Theorem the Refractions of the Rays of every sort made out of any Medium into Air are known by having the Refraction of the Rays of any one sort. As for instance, if the Refractions of the Rays of every sort out of Rain-water into Air be desired, let the common Sine of Incidence out of Glass into Air be subducted from the Sines of Refraction, and the Excesses will be 27, 27-1/8, 27-1/5, 27-1/3, 27-1/2, 27-2/3, 27-7/9, 28. Suppose now that the Sine of Incidence of the least refrangible Rays be to their Sine of Refraction out of Rain-water into Air as 3 to 4, and say as 1 the difference of those Sines is to 3 the Sine of Incidence, so is 27 the least of the Excesses above-mentioned to a fourth Number 81; and 81 will be the common Sine of Incidence out of Rain-water into Air, to which Sine if you add all the above-mentioned Excesses, you will have the desired Sines of the Refractions 108, 108-1/8, 108-1/5, 108-1/3, 108-1/2, 108-2/3, 108-7/9, 109. By the latter Theorem the Refraction out of one Medium into another is gathered as often as you have the Refractions out of them both into any third Medium. As if the Sine of Incidence of any Ray out of Glass into Air be to its Sine of Refraction, as 20 to 31, and the Sine of Incidence of the same Ray out of Air into Water, be to its Sine of Refraction as 4 to 3; the Sine of Incidence of that Ray out of Glass into Water will be to its Sine of Refraction as 20 to 31 and 4 to 3 jointly, that is, as the Factum of 20 and 4 to the Factum of 31 and 3, or as 80 to 93. And these Theorems being admitted into Opticks, there would be scope enough of handling that Science voluminously after a new manner,[K] not only by teaching those things which tend to the perfection of Vision, but also by determining mathematically all kinds of Phænomena of Colours which could be produced by Refractions. For to do this, there is nothing else requisite than to find out the Separations of heterogeneous Rays, and their various Mixtures and Proportions in every Mixture. By this way of arguing I invented almost all the Phænomena described in these Books, beside some others less necessary to the Argument; and by the successes I met with in the Trials, I dare promise, that to him who shall argue truly, and then try all things with good Glasses and sufficient Circumspection, the expected Event will not be wanting. But he is first to know what Colours will arise from any others mix'd in any assigned Proportion. _PROP._ IV. THEOR. III. _Colours may be produced by Composition which shall be like to the Colours of homogeneal Light as to the Appearance of Colour, but not as to the Immutability of Colour and Constitution of Light. And those Colours by how much they are more compounded by so much are they less full and intense, and by too much Composition they maybe diluted and weaken'd till they cease, and the Mixture becomes white or grey. There may be also Colours produced by Composition, which are not fully like any of the Colours of homogeneal Light._ For a Mixture of homogeneal red and yellow compounds an Orange, like in appearance of Colour to that orange which in the series of unmixed prismatick Colours lies between them; but the Light of one orange is homogeneal as to Refrangibility, and that of the other is heterogeneal, and the Colour of the one, if viewed through a Prism, remains unchanged, that of the other is changed and resolved into its component Colours red and yellow. And after the same manner other neighbouring homogeneal Colours may compound new Colours, like the intermediate homogeneal ones, as yellow and green, the Colour between them both, and afterwards, if blue be added, there will be made a green the middle Colour of the three which enter the Composition. For the yellow and blue on either hand, if they are equal in quantity they draw the intermediate green equally towards themselves in Composition, and so keep it as it were in Æquilibrion, that it verge not more to the yellow on the one hand, and to the blue on the other, but by their mix'd Actions remain still a middle Colour. To this mix'd green there may be farther added some red and violet, and yet the green will not presently cease, but only grow less full and vivid, and by increasing the red and violet, it will grow more and more dilute, until by the prevalence of the added Colours it be overcome and turned into whiteness, or some other Colour. So if to the Colour of any homogeneal Light, the Sun's white Light composed of all sorts of Rays be added, that Colour will not vanish or change its Species, but be diluted, and by adding more and more white it will be diluted more and more perpetually. Lastly, If red and violet be mingled, there will be generated according to their various Proportions various Purples, such as are not like in appearance to the Colour of any homogeneal Light, and of these Purples mix'd with yellow and blue may be made other new Colours. _PROP._ V. THEOR. IV. _Whiteness and all grey Colours between white and black, may be compounded of Colours, and the whiteness of the Sun's Light is compounded of all the primary Colours mix'd in a due Proportion._ The PROOF by Experiments. _Exper._ 9. The Sun shining into a dark Chamber through a little round hole in the Window-shut, and his Light being there refracted by a Prism to cast his coloured Image PT [in _Fig._ 5.] upon the opposite Wall: I held a white Paper V to that image in such manner that it might be illuminated by the colour'd Light reflected from thence, and yet not intercept any part of that Light in its passage from the Prism to the Spectrum. And I found that when the Paper was held nearer to any Colour than to the rest, it appeared of that Colour to which it approached nearest; but when it was equally or almost equally distant from all the Colours, so that it might be equally illuminated by them all it appeared white. And in this last situation of the Paper, if some Colours were intercepted, the Paper lost its white Colour, and appeared of the Colour of the rest of the Light which was not intercepted. So then the Paper was illuminated with Lights of various Colours, namely, red, yellow, green, blue and violet, and every part of the Light retained its proper Colour, until it was incident on the Paper, and became reflected thence to the Eye; so that if it had been either alone (the rest of the Light being intercepted) or if it had abounded most, and been predominant in the Light reflected from the Paper, it would have tinged the Paper with its own Colour; and yet being mixed with the rest of the Colours in a due proportion, it made the Paper look white, and therefore by a Composition with the rest produced that Colour. The several parts of the coloured Light reflected from the Spectrum, whilst they are propagated from thence through the Air, do perpetually retain their proper Colours, because wherever they fall upon the Eyes of any Spectator, they make the several parts of the Spectrum to appear under their proper Colours. They retain therefore their proper Colours when they fall upon the Paper V, and so by the confusion and perfect mixture of those Colours compound the whiteness of the Light reflected from thence. _Exper._ 10. Let that Spectrum or solar Image PT [in _Fig._ 6.] fall now upon the Lens MN above four Inches broad, and about six Feet distant from the Prism ABC and so figured that it may cause the coloured Light which divergeth from the Prism to converge and meet again at its Focus G, about six or eight Feet distant from the Lens, and there to fall perpendicularly upon a white Paper DE. And if you move this Paper to and fro, you will perceive that near the Lens, as at _de_, the whole solar Image (suppose at _pt_) will appear upon it intensely coloured after the manner above-explained, and that by receding from the Lens those Colours will perpetually come towards one another, and by mixing more and more dilute one another continually, until at length the Paper come to the Focus G, where by a perfect mixture they will wholly vanish and be converted into whiteness, the whole Light appearing now upon the Paper like a little white Circle. And afterwards by receding farther from the Lens, the Rays which before converged will now cross one another in the Focus G, and diverge from thence, and thereby make the Colours to appear again, but yet in a contrary order; suppose at [Greek: de], where the red _t_ is now above which before was below, and the violet _p_ is below which before was above. Let us now stop the Paper at the Focus G, where the Light appears totally white and circular, and let us consider its whiteness. I say, that this is composed of the converging Colours. For if any of those Colours be intercepted at the Lens, the whiteness will cease and degenerate into that Colour which ariseth from the composition of the other Colours which are not intercepted. And then if the intercepted Colours be let pass and fall upon that compound Colour, they mix with it, and by their mixture restore the whiteness. So if the violet, blue and green be intercepted, the remaining yellow, orange and red will compound upon the Paper an orange, and then if the intercepted Colours be let pass, they will fall upon this compounded orange, and together with it decompound a white. So also if the red and violet be intercepted, the remaining yellow, green and blue, will compound a green upon the Paper, and then the red and violet being let pass will fall upon this green, and together with it decompound a white. And that in this Composition of white the several Rays do not suffer any Change in their colorific Qualities by acting upon one another, but are only mixed, and by a mixture of their Colours produce white, may farther appear by these Arguments. [Illustration: FIG. 6.] If the Paper be placed beyond the Focus G, suppose at [Greek: de], and then the red Colour at the Lens be alternately intercepted, and let pass again, the violet Colour on the Paper will not suffer any Change thereby, as it ought to do if the several sorts of Rays acted upon one another in the Focus G, where they cross. Neither will the red upon the Paper be changed by any alternate stopping, and letting pass the violet which crosseth it. And if the Paper be placed at the Focus G, and the white round Image at G be viewed through the Prism HIK, and by the Refraction of that Prism be translated to the place _rv_, and there appear tinged with various Colours, namely, the violet at _v_ and red at _r_, and others between, and then the red Colours at the Lens be often stopp'd and let pass by turns, the red at _r_ will accordingly disappear, and return as often, but the violet at _v_ will not thereby suffer any Change. And so by stopping and letting pass alternately the blue at the Lens, the blue at _v_ will accordingly disappear and return, without any Change made in the red at _r_. The red therefore depends on one sort of Rays, and the blue on another sort, which in the Focus G where they are commix'd, do not act on one another. And there is the same Reason of the other Colours. I considered farther, that when the most refrangible Rays P_p_, and the least refrangible ones T_t_, are by converging inclined to one another, the Paper, if held very oblique to those Rays in the Focus G, might reflect one sort of them more copiously than the other sort, and by that Means the reflected Light would be tinged in that Focus with the Colour of the predominant Rays, provided those Rays severally retained their Colours, or colorific Qualities in the Composition of White made by them in that Focus. But if they did not retain them in that White, but became all of them severally endued there with a Disposition to strike the Sense with the Perception of White, then they could never lose their Whiteness by such Reflexions. I inclined therefore the Paper to the Rays very obliquely, as in the second Experiment of this second Part of the first Book, that the most refrangible Rays, might be more copiously reflected than the rest, and the Whiteness at Length changed successively into blue, indigo, and violet. Then I inclined it the contrary Way, that the least refrangible Rays might be more copious in the reflected Light than the rest, and the Whiteness turned successively to yellow, orange, and red. Lastly, I made an Instrument XY in fashion of a Comb, whose Teeth being in number sixteen, were about an Inch and a half broad, and the Intervals of the Teeth about two Inches wide. Then by interposing successively the Teeth of this Instrument near the Lens, I intercepted Part of the Colours by the interposed Tooth, whilst the rest of them went on through the Interval of the Teeth to the Paper DE, and there painted a round Solar Image. But the Paper I had first placed so, that the Image might appear white as often as the Comb was taken away; and then the Comb being as was said interposed, that Whiteness by reason of the intercepted Part of the Colours at the Lens did always change into the Colour compounded of those Colours which were not intercepted, and that Colour was by the Motion of the Comb perpetually varied so, that in the passing of every Tooth over the Lens all these Colours, red, yellow, green, blue, and purple, did always succeed one another. I caused therefore all the Teeth to pass successively over the Lens, and when the Motion was slow, there appeared a perpetual Succession of the Colours upon the Paper: But if I so much accelerated the Motion, that the Colours by reason of their quick Succession could not be distinguished from one another, the Appearance of the single Colours ceased. There was no red, no yellow, no green, no blue, nor purple to be seen any longer, but from a Confusion of them all there arose one uniform white Colour. Of the Light which now by the Mixture of all the Colours appeared white, there was no Part really white. One Part was red, another yellow, a third green, a fourth blue, a fifth purple, and every Part retains its proper Colour till it strike the Sensorium. If the Impressions follow one another slowly, so that they may be severally perceived, there is made a distinct Sensation of all the Colours one after another in a continual Succession. But if the Impressions follow one another so quickly, that they cannot be severally perceived, there ariseth out of them all one common Sensation, which is neither of this Colour alone nor of that alone, but hath it self indifferently to 'em all, and this is a Sensation of Whiteness. By the Quickness of the Successions, the Impressions of the several Colours are confounded in the Sensorium, and out of that Confusion ariseth a mix'd Sensation. If a burning Coal be nimbly moved round in a Circle with Gyrations continually repeated, the whole Circle will appear like Fire; the reason of which is, that the Sensation of the Coal in the several Places of that Circle remains impress'd on the Sensorium, until the Coal return again to the same Place. And so in a quick Consecution of the Colours the Impression of every Colour remains in the Sensorium, until a Revolution of all the Colours be compleated, and that first Colour return again. The Impressions therefore of all the successive Colours are at once in the Sensorium, and jointly stir up a Sensation of them all; and so it is manifest by this Experiment, that the commix'd Impressions of all the Colours do stir up and beget a Sensation of white, that is, that Whiteness is compounded of all the Colours. And if the Comb be now taken away, that all the Colours may at once pass from the Lens to the Paper, and be there intermixed, and together reflected thence to the Spectator's Eyes; their Impressions on the Sensorium being now more subtilly and perfectly commixed there, ought much more to stir up a Sensation of Whiteness. You may instead of the Lens use two Prisms HIK and LMN, which by refracting the coloured Light the contrary Way to that of the first Refraction, may make the diverging Rays converge and meet again in G, as you see represented in the seventh Figure. For where they meet and mix, they will compose a white Light, as when a Lens is used. _Exper._ 11. Let the Sun's coloured Image PT [in _Fig._ 8.] fall upon the Wall of a dark Chamber, as in the third Experiment of the first Book, and let the same be viewed through a Prism _abc_, held parallel to the Prism ABC, by whose Refraction that Image was made, and let it now appear lower than before, suppose in the Place S over-against the red Colour T. And if you go near to the Image PT, the Spectrum S will appear oblong and coloured like the Image PT; but if you recede from it, the Colours of the spectrum S will be contracted more and more, and at length vanish, that Spectrum S becoming perfectly round and white; and if you recede yet farther, the Colours will emerge again, but in a contrary Order. Now that Spectrum S appears white in that Case, when the Rays of several sorts which converge from the several Parts of the Image PT, to the Prism _abc_, are so refracted unequally by it, that in their Passage from the Prism to the Eye they may diverge from one and the same Point of the Spectrum S, and so fall afterwards upon one and the same Point in the bottom of the Eye, and there be mingled. [Illustration: FIG. 7.] [Illustration: FIG. 8.] And farther, if the Comb be here made use of, by whose Teeth the Colours at the Image PT may be successively intercepted; the Spectrum S, when the Comb is moved slowly, will be perpetually tinged with successive Colours: But when by accelerating the Motion of the Comb, the Succession of the Colours is so quick that they cannot be severally seen, that Spectrum S, by a confused and mix'd Sensation of them all, will appear white. _Exper._ 12. The Sun shining through a large Prism ABC [in _Fig._ 9.] upon a Comb XY, placed immediately behind the Prism, his Light which passed through the Interstices of the Teeth fell upon a white Paper DE. The Breadths of the Teeth were equal to their Interstices, and seven Teeth together with their Interstices took up an Inch in Breadth. Now, when the Paper was about two or three Inches distant from the Comb, the Light which passed through its several Interstices painted so many Ranges of Colours, _kl_, _mn_, _op_, _qr_, &c. which were parallel to one another, and contiguous, and without any Mixture of white. And these Ranges of Colours, if the Comb was moved continually up and down with a reciprocal Motion, ascended and descended in the Paper, and when the Motion of the Comb was so quick, that the Colours could not be distinguished from one another, the whole Paper by their Confusion and Mixture in the Sensorium appeared white. [Illustration: FIG. 9.] Let the Comb now rest, and let the Paper be removed farther from the Prism, and the several Ranges of Colours will be dilated and expanded into one another more and more, and by mixing their Colours will dilute one another, and at length, when the distance of the Paper from the Comb is about a Foot, or a little more (suppose in the Place 2D 2E) they will so far dilute one another, as to become white. With any Obstacle, let all the Light be now stopp'd which passes through any one Interval of the Teeth, so that the Range of Colours which comes from thence may be taken away, and you will see the Light of the rest of the Ranges to be expanded into the Place of the Range taken away, and there to be coloured. Let the intercepted Range pass on as before, and its Colours falling upon the Colours of the other Ranges, and mixing with them, will restore the Whiteness. Let the Paper 2D 2E be now very much inclined to the Rays, so that the most refrangible Rays may be more copiously reflected than the rest, and the white Colour of the Paper through the Excess of those Rays will be changed into blue and violet. Let the Paper be as much inclined the contrary way, that the least refrangible Rays may be now more copiously reflected than the rest, and by their Excess the Whiteness will be changed into yellow and red. The several Rays therefore in that white Light do retain their colorific Qualities, by which those of any sort, whenever they become more copious than the rest, do by their Excess and Predominance cause their proper Colour to appear. And by the same way of arguing, applied to the third Experiment of this second Part of the first Book, it may be concluded, that the white Colour of all refracted Light at its very first Emergence, where it appears as white as before its Incidence, is compounded of various Colours. [Illustration: FIG. 10.] _Exper._ 13. In the foregoing Experiment the several Intervals of the Teeth of the Comb do the Office of so many Prisms, every Interval producing the Phænomenon of one Prism. Whence instead of those Intervals using several Prisms, I try'd to compound Whiteness by mixing their Colours, and did it by using only three Prisms, as also by using only two as follows. Let two Prisms ABC and _abc_, [in _Fig._ 10.] whose refracting Angles B and _b_ are equal, be so placed parallel to one another, that the refracting Angle B of the one may touch the Angle _c_ at the Base of the other, and their Planes CB and _cb_, at which the Rays emerge, may lie in Directum. Then let the Light trajected through them fall upon the Paper MN, distant about 8 or 12 Inches from the Prisms. And the Colours generated by the interior Limits B and _c_ of the two Prisms, will be mingled at PT, and there compound white. For if either Prism be taken away, the Colours made by the other will appear in that Place PT, and when the Prism is restored to its Place again, so that its Colours may there fall upon the Colours of the other, the Mixture of them both will restore the Whiteness. This Experiment succeeds also, as I have tried, when the Angle _b_ of the lower Prism, is a little greater than the Angle B of the upper, and between the interior Angles B and _c_, there intercedes some Space B_c_, as is represented in the Figure, and the refracting Planes BC and _bc_, are neither in Directum, nor parallel to one another. For there is nothing more requisite to the Success of this Experiment, than that the Rays of all sorts may be uniformly mixed upon the Paper in the Place PT. If the most refrangible Rays coming from the superior Prism take up all the Space from M to P, the Rays of the same sort which come from the inferior Prism ought to begin at P, and take up all the rest of the Space from thence towards N. If the least refrangible Rays coming from the superior Prism take up the Space MT, the Rays of the same kind which come from the other Prism ought to begin at T, and take up the remaining Space TN. If one sort of the Rays which have intermediate Degrees of Refrangibility, and come from the superior Prism be extended through the Space MQ, and another sort of those Rays through the Space MR, and a third sort of them through the Space MS, the same sorts of Rays coming from the lower Prism, ought to illuminate the remaining Spaces QN, RN, SN, respectively. And the same is to be understood of all the other sorts of Rays. For thus the Rays of every sort will be scattered uniformly and evenly through the whole Space MN, and so being every where mix'd in the same Proportion, they must every where produce the same Colour. And therefore, since by this Mixture they produce white in the Exterior Spaces MP and TN, they must also produce white in the Interior Space PT. This is the reason of the Composition by which Whiteness was produced in this Experiment, and by what other way soever I made the like Composition, the Result was Whiteness. Lastly, If with the Teeth of a Comb of a due Size, the coloured Lights of the two Prisms which fall upon the Space PT be alternately intercepted, that Space PT, when the Motion of the Comb is slow, will always appear coloured, but by accelerating the Motion of the Comb so much that the successive Colours cannot be distinguished from one another, it will appear white. _Exper._ 14. Hitherto I have produced Whiteness by mixing the Colours of Prisms. If now the Colours of natural Bodies are to be mingled, let Water a little thicken'd with Soap be agitated to raise a Froth, and after that Froth has stood a little, there will appear to one that shall view it intently various Colours every where in the Surfaces of the several Bubbles; but to one that shall go so far off, that he cannot distinguish the Colours from one another, the whole Froth will grow white with a perfect Whiteness. _Exper._ 15. Lastly, In attempting to compound a white, by mixing the coloured Powders which Painters use, I consider'd that all colour'd Powders do suppress and stop in them a very considerable Part of the Light by which they are illuminated. For they become colour'd by reflecting the Light of their own Colours more copiously, and that of all other Colours more sparingly, and yet they do not reflect the Light of their own Colours so copiously as white Bodies do. If red Lead, for instance, and a white Paper, be placed in the red Light of the colour'd Spectrum made in a dark Chamber by the Refraction of a Prism, as is described in the third Experiment of the first Part of this Book; the Paper will appear more lucid than the red Lead, and therefore reflects the red-making Rays more copiously than red Lead doth. And if they be held in the Light of any other Colour, the Light reflected by the Paper will exceed the Light reflected by the red Lead in a much greater Proportion. And the like happens in Powders of other Colours. And therefore by mixing such Powders, we are not to expect a strong and full White, such as is that of Paper, but some dusky obscure one, such as might arise from a Mixture of Light and Darkness, or from white and black, that is, a grey, or dun, or russet brown, such as are the Colours of a Man's Nail, of a Mouse, of Ashes, of ordinary Stones, of Mortar, of Dust and Dirt in High-ways, and the like. And such a dark white I have often produced by mixing colour'd Powders. For thus one Part of red Lead, and five Parts of _Viride Æris_, composed a dun Colour like that of a Mouse. For these two Colours were severally so compounded of others, that in both together were a Mixture of all Colours; and there was less red Lead used than _Viride Æris_, because of the Fulness of its Colour. Again, one Part of red Lead, and four Parts of blue Bise, composed a dun Colour verging a little to purple, and by adding to this a certain Mixture of Orpiment and _Viride Æris_ in a due Proportion, the Mixture lost its purple Tincture, and became perfectly dun. But the Experiment succeeded best without Minium thus. To Orpiment I added by little and little a certain full bright purple, which Painters use, until the Orpiment ceased to be yellow, and became of a pale red. Then I diluted that red by adding a little _Viride Æris_, and a little more blue Bise than _Viride Æris_, until it became of such a grey or pale white, as verged to no one of the Colours more than to another. For thus it became of a Colour equal in Whiteness to that of Ashes, or of Wood newly cut, or of a Man's Skin. The Orpiment reflected more Light than did any other of the Powders, and therefore conduced more to the Whiteness of the compounded Colour than they. To assign the Proportions accurately may be difficult, by reason of the different Goodness of Powders of the same kind. Accordingly, as the Colour of any Powder is more or less full and luminous, it ought to be used in a less or greater Proportion. Now, considering that these grey and dun Colours may be also produced by mixing Whites and Blacks, and by consequence differ from perfect Whites, not in Species of Colours, but only in degree of Luminousness, it is manifest that there is nothing more requisite to make them perfectly white than to increase their Light sufficiently; and, on the contrary, if by increasing their Light they can be brought to perfect Whiteness, it will thence also follow, that they are of the same Species of Colour with the best Whites, and differ from them only in the Quantity of Light. And this I tried as follows. I took the third of the above-mention'd grey Mixtures, (that which was compounded of Orpiment, Purple, Bise, and _Viride Æris_) and rubbed it thickly upon the Floor of my Chamber, where the Sun shone upon it through the opened Casement; and by it, in the shadow, I laid a Piece of white Paper of the same Bigness. Then going from them to the distance of 12 or 18 Feet, so that I could not discern the Unevenness of the Surface of the Powder, nor the little Shadows let fall from the gritty Particles thereof; the Powder appeared intensely white, so as to transcend even the Paper it self in Whiteness, especially if the Paper were a little shaded from the Light of the Clouds, and then the Paper compared with the Powder appeared of such a grey Colour as the Powder had done before. But by laying the Paper where the Sun shines through the Glass of the Window, or by shutting the Window that the Sun might shine through the Glass upon the Powder, and by such other fit Means of increasing or decreasing the Lights wherewith the Powder and Paper were illuminated, the Light wherewith the Powder is illuminated may be made stronger in such a due Proportion than the Light wherewith the Paper is illuminated, that they shall both appear exactly alike in Whiteness. For when I was trying this, a Friend coming to visit me, I stopp'd him at the Door, and before I told him what the Colours were, or what I was doing; I asked him, Which of the two Whites were the best, and wherein they differed? And after he had at that distance viewed them well, he answer'd, that they were both good Whites, and that he could not say which was best, nor wherein their Colours differed. Now, if you consider, that this White of the Powder in the Sun-shine was compounded of the Colours which the component Powders (Orpiment, Purple, Bise, and _Viride Æris_) have in the same Sun-shine, you must acknowledge by this Experiment, as well as by the former, that perfect Whiteness may be compounded of Colours. From what has been said it is also evident, that the Whiteness of the Sun's Light is compounded of all the Colours wherewith the several sorts of Rays whereof that Light consists, when by their several Refrangibilities they are separated from one another, do tinge Paper or any other white Body whereon they fall. For those Colours (by _Prop._ II. _Part_ 2.) are unchangeable, and whenever all those Rays with those their Colours are mix'd again, they reproduce the same white Light as before. _PROP._ VI. PROB. II. _In a mixture of Primary Colours, the Quantity and Quality of each being given, to know the Colour of the Compound._ [Illustration: FIG. 11.] With the Center O [in _Fig._ 11.] and Radius OD describe a Circle ADF, and distinguish its Circumference into seven Parts DE, EF, FG, GA, AB, BC, CD, proportional to the seven Musical Tones or Intervals of the eight Sounds, _Sol_, _la_, _fa_, _sol_, _la_, _mi_, _fa_, _sol_, contained in an eight, that is, proportional to the Number 1/9, 1/16, 1/10, 1/9, 1/16, 1/16, 1/9. Let the first Part DE represent a red Colour, the second EF orange, the third FG yellow, the fourth CA green, the fifth AB blue, the sixth BC indigo, and the seventh CD violet. And conceive that these are all the Colours of uncompounded Light gradually passing into one another, as they do when made by Prisms; the Circumference DEFGABCD, representing the whole Series of Colours from one end of the Sun's colour'd Image to the other, so that from D to E be all degrees of red, at E the mean Colour between red and orange, from E to F all degrees of orange, at F the mean between orange and yellow, from F to G all degrees of yellow, and so on. Let _p_ be the Center of Gravity of the Arch DE, and _q_, _r_, _s_, _t_, _u_, _x_, the Centers of Gravity of the Arches EF, FG, GA, AB, BC, and CD respectively, and about those Centers of Gravity let Circles proportional to the Number of Rays of each Colour in the given Mixture be describ'd: that is, the Circle _p_ proportional to the Number of the red-making Rays in the Mixture, the Circle _q_ proportional to the Number of the orange-making Rays in the Mixture, and so of the rest. Find the common Center of Gravity of all those Circles, _p_, _q_, _r_, _s_, _t_, _u_, _x_. Let that Center be Z; and from the Center of the Circle ADF, through Z to the Circumference, drawing the Right Line OY, the Place of the Point Y in the Circumference shall shew the Colour arising from the Composition of all the Colours in the given Mixture, and the Line OZ shall be proportional to the Fulness or Intenseness of the Colour, that is, to its distance from Whiteness. As if Y fall in the middle between F and G, the compounded Colour shall be the best yellow; if Y verge from the middle towards F or G, the compound Colour shall accordingly be a yellow, verging towards orange or green. If Z fall upon the Circumference, the Colour shall be intense and florid in the highest Degree; if it fall in the mid-way between the Circumference and Center, it shall be but half so intense, that is, it shall be such a Colour as would be made by diluting the intensest yellow with an equal quantity of whiteness; and if it fall upon the center O, the Colour shall have lost all its intenseness, and become a white. But it is to be noted, That if the point Z fall in or near the line OD, the main ingredients being the red and violet, the Colour compounded shall not be any of the prismatick Colours, but a purple, inclining to red or violet, accordingly as the point Z lieth on the side of the line DO towards E or towards C, and in general the compounded violet is more bright and more fiery than the uncompounded. Also if only two of the primary Colours which in the circle are opposite to one another be mixed in an equal proportion, the point Z shall fall upon the center O, and yet the Colour compounded of those two shall not be perfectly white, but some faint anonymous Colour. For I could never yet by mixing only two primary Colours produce a perfect white. Whether it may be compounded of a mixture of three taken at equal distances in the circumference I do not know, but of four or five I do not much question but it may. But these are Curiosities of little or no moment to the understanding the Phænomena of Nature. For in all whites produced by Nature, there uses to be a mixture of all sorts of Rays, and by consequence a composition of all Colours. To give an instance of this Rule; suppose a Colour is compounded of these homogeneal Colours, of violet one part, of indigo one part, of blue two parts, of green three parts, of yellow five parts, of orange six parts, and of red ten parts. Proportional to these parts describe the Circles _x_, _v_, _t_, _s_, _r_, _q_, _p_, respectively, that is, so that if the Circle _x_ be one, the Circle _v_ may be one, the Circle _t_ two, the Circle _s_ three, and the Circles _r_, _q_ and _p_, five, six and ten. Then I find Z the common center of gravity of these Circles, and through Z drawing the Line OY, the Point Y falls upon the circumference between E and F, something nearer to E than to F, and thence I conclude, that the Colour compounded of these Ingredients will be an orange, verging a little more to red than to yellow. Also I find that OZ is a little less than one half of OY, and thence I conclude, that this orange hath a little less than half the fulness or intenseness of an uncompounded orange; that is to say, that it is such an orange as may be made by mixing an homogeneal orange with a good white in the proportion of the Line OZ to the Line ZY, this Proportion being not of the quantities of mixed orange and white Powders, but of the quantities of the Lights reflected from them. This Rule I conceive accurate enough for practice, though not mathematically accurate; and the truth of it may be sufficiently proved to Sense, by stopping any of the Colours at the Lens in the tenth Experiment of this Book. For the rest of the Colours which are not stopp'd, but pass on to the Focus of the Lens, will there compound either accurately or very nearly such a Colour, as by this Rule ought to result from their Mixture. _PROP._ VII. THEOR. V. _All the Colours in the Universe which are made by Light, and depend not on the Power of Imagination, are either the Colours of homogeneal Lights, or compounded of these, and that either accurately or very nearly, according to the Rule of the foregoing Problem._ For it has been proved (in _Prop. 1. Part 2._) that the changes of Colours made by Refractions do not arise from any new Modifications of the Rays impress'd by those Refractions, and by the various Terminations of Light and Shadow, as has been the constant and general Opinion of Philosophers. It has also been proved that the several Colours of the homogeneal Rays do constantly answer to their degrees of Refrangibility, (_Prop._ 1. _Part_ 1. and _Prop._ 2. _Part_ 2.) and that their degrees of Refrangibility cannot be changed by Refractions and Reflexions (_Prop._ 2. _Part_ 1.) and by consequence that those their Colours are likewise immutable. It has also been proved directly by refracting and reflecting homogeneal Lights apart, that their Colours cannot be changed, (_Prop._ 2. _Part_ 2.) It has been proved also, that when the several sorts of Rays are mixed, and in crossing pass through the same space, they do not act on one another so as to change each others colorific qualities. (_Exper._ 10. _Part_ 2.) but by mixing their Actions in the Sensorium beget a Sensation differing from what either would do apart, that is a Sensation of a mean Colour between their proper Colours; and particularly when by the concourse and mixtures of all sorts of Rays, a white Colour is produced, the white is a mixture of all the Colours which the Rays would have apart, (_Prop._ 5. _Part_ 2.) The Rays in that mixture do not lose or alter their several colorific qualities, but by all their various kinds of Actions mix'd in the Sensorium, beget a Sensation of a middling Colour between all their Colours, which is whiteness. For whiteness is a mean between all Colours, having it self indifferently to them all, so as with equal facility to be tinged with any of them. A red Powder mixed with a little blue, or a blue with a little red, doth not presently lose its Colour, but a white Powder mix'd with any Colour is presently tinged with that Colour, and is equally capable of being tinged with any Colour whatever. It has been shewed also, that as the Sun's Light is mix'd of all sorts of Rays, so its whiteness is a mixture of the Colours of all sorts of Rays; those Rays having from the beginning their several colorific qualities as well as their several Refrangibilities, and retaining them perpetually unchanged notwithstanding any Refractions or Reflexions they may at any time suffer, and that whenever any sort of the Sun's Rays is by any means (as by Reflexion in _Exper._ 9, and 10. _Part_ 1. or by Refraction as happens in all Refractions) separated from the rest, they then manifest their proper Colours. These things have been prov'd, and the sum of all this amounts to the Proposition here to be proved. For if the Sun's Light is mix'd of several sorts of Rays, each of which have originally their several Refrangibilities and colorific Qualities, and notwithstanding their Refractions and Reflexions, and their various Separations or Mixtures, keep those their original Properties perpetually the same without alteration; then all the Colours in the World must be such as constantly ought to arise from the original colorific qualities of the Rays whereof the Lights consist by which those Colours are seen. And therefore if the reason of any Colour whatever be required, we have nothing else to do than to consider how the Rays in the Sun's Light have by Reflexions or Refractions, or other causes, been parted from one another, or mixed together; or otherwise to find out what sorts of Rays are in the Light by which that Colour is made, and in what Proportion; and then by the last Problem to learn the Colour which ought to arise by mixing those Rays (or their Colours) in that proportion. I speak here of Colours so far as they arise from Light. For they appear sometimes by other Causes, as when by the power of Phantasy we see Colours in a Dream, or a Mad-man sees things before him which are not there; or when we see Fire by striking the Eye, or see Colours like the Eye of a Peacock's Feather, by pressing our Eyes in either corner whilst we look the other way. Where these and such like Causes interpose not, the Colour always answers to the sort or sorts of the Rays whereof the Light consists, as I have constantly found in whatever Phænomena of Colours I have hitherto been able to examine. I shall in the following Propositions give instances of this in the Phænomena of chiefest note. _PROP._ VIII. PROB. III. _By the discovered Properties of Light to explain the Colours made by Prisms._ Let ABC [in _Fig._ 12.] represent a Prism refracting the Light of the Sun, which comes into a dark Chamber through a hole F[Greek: ph] almost as broad as the Prism, and let MN represent a white Paper on which the refracted Light is cast, and suppose the most refrangible or deepest violet-making Rays fall upon the Space P[Greek: p], the least refrangible or deepest red-making Rays upon the Space T[Greek: t], the middle sort between the indigo-making and blue-making Rays upon the Space Q[Greek: ch], the middle sort of the green-making Rays upon the Space R, the middle sort between the yellow-making and orange-making Rays upon the Space S[Greek: s], and other intermediate sorts upon intermediate Spaces. For so the Spaces upon which the several sorts adequately fall will by reason of the different Refrangibility of those sorts be one lower than another. Now if the Paper MN be so near the Prism that the Spaces PT and [Greek: pt] do not interfere with one another, the distance between them T[Greek: p] will be illuminated by all the sorts of Rays in that proportion to one another which they have at their very first coming out of the Prism, and consequently be white. But the Spaces PT and [Greek: pt] on either hand, will not be illuminated by them all, and therefore will appear coloured. And particularly at P, where the outmost violet-making Rays fall alone, the Colour must be the deepest violet. At Q where the violet-making and indigo-making Rays are mixed, it must be a violet inclining much to indigo. At R where the violet-making, indigo-making, blue-making, and one half of the green-making Rays are mixed, their Colours must (by the construction of the second Problem) compound a middle Colour between indigo and blue. At S where all the Rays are mixed, except the red-making and orange-making, their Colours ought by the same Rule to compound a faint blue, verging more to green than indigo. And in the progress from S to T, this blue will grow more and more faint and dilute, till at T, where all the Colours begin to be mixed, it ends in whiteness. [Illustration: FIG. 12.] So again, on the other side of the white at [Greek: t], where the least refrangible or utmost red-making Rays are alone, the Colour must be the deepest red. At [Greek: s] the mixture of red and orange will compound a red inclining to orange. At [Greek: r] the mixture of red, orange, yellow, and one half of the green must compound a middle Colour between orange and yellow. At [Greek: ch] the mixture of all Colours but violet and indigo will compound a faint yellow, verging more to green than to orange. And this yellow will grow more faint and dilute continually in its progress from [Greek: ch] to [Greek: p], where by a mixture of all sorts of Rays it will become white. These Colours ought to appear were the Sun's Light perfectly white: But because it inclines to yellow, the Excess of the yellow-making Rays whereby 'tis tinged with that Colour, being mixed with the faint blue between S and T, will draw it to a faint green. And so the Colours in order from P to [Greek: t] ought to be violet, indigo, blue, very faint green, white, faint yellow, orange, red. Thus it is by the computation: And they that please to view the Colours made by a Prism will find it so in Nature. These are the Colours on both sides the white when the Paper is held between the Prism and the Point X where the Colours meet, and the interjacent white vanishes. For if the Paper be held still farther off from the Prism, the most refrangible and least refrangible Rays will be wanting in the middle of the Light, and the rest of the Rays which are found there, will by mixture produce a fuller green than before. Also the yellow and blue will now become less compounded, and by consequence more intense than before. And this also agrees with experience. And if one look through a Prism upon a white Object encompassed with blackness or darkness, the reason of the Colours arising on the edges is much the same, as will appear to one that shall a little consider it. If a black Object be encompassed with a white one, the Colours which appear through the Prism are to be derived from the Light of the white one, spreading into the Regions of the black, and therefore they appear in a contrary order to that, when a white Object is surrounded with black. And the same is to be understood when an Object is viewed, whose parts are some of them less luminous than others. For in the borders of the more and less luminous Parts, Colours ought always by the same Principles to arise from the Excess of the Light of the more luminous, and to be of the same kind as if the darker parts were black, but yet to be more faint and dilute. What is said of Colours made by Prisms may be easily applied to Colours made by the Glasses of Telescopes or Microscopes, or by the Humours of the Eye. For if the Object-glass of a Telescope be thicker on one side than on the other, or if one half of the Glass, or one half of the Pupil of the Eye be cover'd with any opake substance; the Object-glass, or that part of it or of the Eye which is not cover'd, may be consider'd as a Wedge with crooked Sides, and every Wedge of Glass or other pellucid Substance has the effect of a Prism in refracting the Light which passes through it.[L] How the Colours in the ninth and tenth Experiments of the first Part arise from the different Reflexibility of Light, is evident by what was there said. But it is observable in the ninth Experiment, that whilst the Sun's direct Light is yellow, the Excess of the blue-making Rays in the reflected beam of Light MN, suffices only to bring that yellow to a pale white inclining to blue, and not to tinge it with a manifestly blue Colour. To obtain therefore a better blue, I used instead of the yellow Light of the Sun the white Light of the Clouds, by varying a little the Experiment, as follows. [Illustration: FIG. 13.] _Exper._ 16 Let HFG [in _Fig._ 13.] represent a Prism in the open Air, and S the Eye of the Spectator, viewing the Clouds by their Light coming into the Prism at the Plane Side FIGK, and reflected in it by its Base HEIG, and thence going out through its Plane Side HEFK to the Eye. And when the Prism and Eye are conveniently placed, so that the Angles of Incidence and Reflexion at the Base may be about 40 Degrees, the Spectator will see a Bow MN of a blue Colour, running from one End of the Base to the other, with the Concave Side towards him, and the Part of the Base IMNG beyond this Bow will be brighter than the other Part EMNH on the other Side of it. This blue Colour MN being made by nothing else than by Reflexion of a specular Superficies, seems so odd a Phænomenon, and so difficult to be explained by the vulgar Hypothesis of Philosophers, that I could not but think it deserved to be taken Notice of. Now for understanding the Reason of it, suppose the Plane ABC to cut the Plane Sides and Base of the Prism perpendicularly. From the Eye to the Line BC, wherein that Plane cuts the Base, draw the Lines S_p_ and S_t_, in the Angles S_pc_ 50 degr. 1/9, and S_tc_ 49 degr. 1/28, and the Point _p_ will be the Limit beyond which none of the most refrangible Rays can pass through the Base of the Prism, and be refracted, whose Incidence is such that they may be reflected to the Eye; and the Point _t_ will be the like Limit for the least refrangible Rays, that is, beyond which none of them can pass through the Base, whose Incidence is such that by Reflexion they may come to the Eye. And the Point _r_ taken in the middle Way between _p_ and _t_, will be the like Limit for the meanly refrangible Rays. And therefore all the least refrangible Rays which fall upon the Base beyond _t_, that is, between _t_ and B, and can come from thence to the Eye, will be reflected thither: But on this side _t_, that is, between _t_ and _c_, many of these Rays will be transmitted through the Base. And all the most refrangible Rays which fall upon the Base beyond _p_, that is, between, _p_ and B, and can by Reflexion come from thence to the Eye, will be reflected thither, but every where between _p_ and _c_, many of these Rays will get through the Base, and be refracted; and the same is to be understood of the meanly refrangible Rays on either side of the Point _r_. Whence it follows, that the Base of the Prism must every where between _t_ and B, by a total Reflexion of all sorts of Rays to the Eye, look white and bright. And every where between _p_ and C, by reason of the Transmission of many Rays of every sort, look more pale, obscure, and dark. But at _r_, and in other Places between _p_ and _t_, where all the more refrangible Rays are reflected to the Eye, and many of the less refrangible are transmitted, the Excess of the most refrangible in the reflected Light will tinge that Light with their Colour, which is violet and blue. And this happens by taking the Line C _prt_ B any where between the Ends of the Prism HG and EI. _PROP._ IX. PROB. IV. _By the discovered Properties of Light to explain the Colours of the Rain-bow._ [Illustration: FIG. 14.] This Bow never appears, but where it rains in the Sun-shine, and may be made artificially by spouting up Water which may break aloft, and scatter into Drops, and fall down like Rain. For the Sun shining upon these Drops certainly causes the Bow to appear to a Spectator standing in a due Position to the Rain and Sun. And hence it is now agreed upon, that this Bow is made by Refraction of the Sun's Light in drops of falling Rain. This was understood by some of the Antients, and of late more fully discover'd and explain'd by the famous _Antonius de Dominis_ Archbishop of _Spalato_, in his book _De Radiis Visûs & Lucis_, published by his Friend _Bartolus_ at _Venice_, in the Year 1611, and written above 20 Years before. For he teaches there how the interior Bow is made in round Drops of Rain by two Refractions of the Sun's Light, and one Reflexion between them, and the exterior by two Refractions, and two sorts of Reflexions between them in each Drop of Water, and proves his Explications by Experiments made with a Phial full of Water, and with Globes of Glass filled with Water, and placed in the Sun to make the Colours of the two Bows appear in them. The same Explication _Des-Cartes_ hath pursued in his Meteors, and mended that of the exterior Bow. But whilst they understood not the true Origin of Colours, it's necessary to pursue it here a little farther. For understanding therefore how the Bow is made, let a Drop of Rain, or any other spherical transparent Body be represented by the Sphere BNFG, [in _Fig._ 14.] described with the Center C, and Semi-diameter CN. And let AN be one of the Sun's Rays incident upon it at N, and thence refracted to F, where let it either go out of the Sphere by Refraction towards V, or be reflected to G; and at G let it either go out by Refraction to R, or be reflected to H; and at H let it go out by Refraction towards S, cutting the incident Ray in Y. Produce AN and RG, till they meet in X, and upon AX and NF, let fall the Perpendiculars CD and CE, and produce CD till it fall upon the Circumference at L. Parallel to the incident Ray AN draw the Diameter BQ, and let the Sine of Incidence out of Air into Water be to the Sine of Refraction as I to R. Now, if you suppose the Point of Incidence N to move from the Point B, continually till it come to L, the Arch QF will first increase and then decrease, and so will the Angle AXR which the Rays AN and GR contain; and the Arch QF and Angle AXR will be biggest when ND is to CN as sqrt(II - RR) to sqrt(3)RR, in which case NE will be to ND as 2R to I. Also the Angle AYS, which the Rays AN and HS contain will first decrease, and then increase and grow least when ND is to CN as sqrt(II - RR) to sqrt(8)RR, in which case NE will be to ND, as 3R to I. And so the Angle which the next emergent Ray (that is, the emergent Ray after three Reflexions) contains with the incident Ray AN will come to its Limit when ND is to CN as sqrt(II - RR) to sqrt(15)RR, in which case NE will be to ND as 4R to I. And the Angle which the Ray next after that Emergent, that is, the Ray emergent after four Reflexions, contains with the Incident, will come to its Limit, when ND is to CN as sqrt(II - RR) to sqrt(24)RR, in which case NE will be to ND as 5R to I; and so on infinitely, the Numbers 3, 8, 15, 24, &c. being gather'd by continual Addition of the Terms of the arithmetical Progression 3, 5, 7, 9, &c. The Truth of all this Mathematicians will easily examine.[M] Now it is to be observed, that as when the Sun comes to his Tropicks, Days increase and decrease but a very little for a great while together; so when by increasing the distance CD, these Angles come to their Limits, they vary their quantity but very little for some time together, and therefore a far greater number of the Rays which fall upon all the Points N in the Quadrant BL, shall emerge in the Limits of these Angles, than in any other Inclinations. And farther it is to be observed, that the Rays which differ in Refrangibility will have different Limits of their Angles of Emergence, and by consequence according to their different Degrees of Refrangibility emerge most copiously in different Angles, and being separated from one another appear each in their proper Colours. And what those Angles are may be easily gather'd from the foregoing Theorem by Computation. For in the least refrangible Rays the Sines I and R (as was found above) are 108 and 81, and thence by Computation the greatest Angle AXR will be found 42 Degrees and 2 Minutes, and the least Angle AYS, 50 Degrees and 57 Minutes. And in the most refrangible Rays the Sines I and R are 109 and 81, and thence by Computation the greatest Angle AXR will be found 40 Degrees and 17 Minutes, and the least Angle AYS 54 Degrees and 7 Minutes. Suppose now that O [in _Fig._ 15.] is the Spectator's Eye, and OP a Line drawn parallel to the Sun's Rays and let POE, POF, POG, POH, be Angles of 40 Degr. 17 Min. 42 Degr. 2 Min. 50 Degr. 57 Min. and 54 Degr. 7 Min. respectively, and these Angles turned about their common Side OP, shall with their other Sides OE, OF; OG, OH, describe the Verges of two Rain-bows AF, BE and CHDG. For if E, F, G, H, be drops placed any where in the conical Superficies described by OE, OF, OG, OH, and be illuminated by the Sun's Rays SE, SF, SG, SH; the Angle SEO being equal to the Angle POE, or 40 Degr. 17 Min. shall be the greatest Angle in which the most refrangible Rays can after one Reflexion be refracted to the Eye, and therefore all the Drops in the Line OE shall send the most refrangible Rays most copiously to the Eye, and thereby strike the Senses with the deepest violet Colour in that Region. And in like manner the Angle SFO being equal to the Angle POF, or 42 Degr. 2 Min. shall be the greatest in which the least refrangible Rays after one Reflexion can emerge out of the Drops, and therefore those Rays shall come most copiously to the Eye from the Drops in the Line OF, and strike the Senses with the deepest red Colour in that Region. And by the same Argument, the Rays which have intermediate Degrees of Refrangibility shall come most copiously from Drops between E and F, and strike the Senses with the intermediate Colours, in the Order which their Degrees of Refrangibility require, that is in the Progress from E to F, or from the inside of the Bow to the outside in this order, violet, indigo, blue, green, yellow, orange, red. But the violet, by the mixture of the white Light of the Clouds, will appear faint and incline to purple. [Illustration: FIG. 15.] Again, the Angle SGO being equal to the Angle POG, or 50 Gr. 51 Min. shall be the least Angle in which the least refrangible Rays can after two Reflexions emerge out of the Drops, and therefore the least refrangible Rays shall come most copiously to the Eye from the Drops in the Line OG, and strike the Sense with the deepest red in that Region. And the Angle SHO being equal to the Angle POH, or 54 Gr. 7 Min. shall be the least Angle, in which the most refrangible Rays after two Reflexions can emerge out of the Drops; and therefore those Rays shall come most copiously to the Eye from the Drops in the Line OH, and strike the Senses with the deepest violet in that Region. And by the same Argument, the Drops in the Regions between G and H shall strike the Sense with the intermediate Colours in the Order which their Degrees of Refrangibility require, that is, in the Progress from G to H, or from the inside of the Bow to the outside in this order, red, orange, yellow, green, blue, indigo, violet. And since these four Lines OE, OF, OG, OH, may be situated any where in the above-mention'd conical Superficies; what is said of the Drops and Colours in these Lines is to be understood of the Drops and Colours every where in those Superficies. Thus shall there be made two Bows of Colours, an interior and stronger, by one Reflexion in the Drops, and an exterior and fainter by two; for the Light becomes fainter by every Reflexion. And their Colours shall lie in a contrary Order to one another, the red of both Bows bordering upon the Space GF, which is between the Bows. The Breadth of the interior Bow EOF measured cross the Colours shall be 1 Degr. 45 Min. and the Breadth of the exterior GOH shall be 3 Degr. 10 Min. and the distance between them GOF shall be 8 Gr. 15 Min. the greatest Semi-diameter of the innermost, that is, the Angle POF being 42 Gr. 2 Min. and the least Semi-diameter of the outermost POG, being 50 Gr. 57 Min. These are the Measures of the Bows, as they would be were the Sun but a Point; for by the Breadth of his Body, the Breadth of the Bows will be increased, and their Distance decreased by half a Degree, and so the breadth of the interior Iris will be 2 Degr. 15 Min. that of the exterior 3 Degr. 40 Min. their distance 8 Degr. 25 Min. the greatest Semi-diameter of the interior Bow 42 Degr. 17 Min. and the least of the exterior 50 Degr. 42 Min. And such are the Dimensions of the Bows in the Heavens found to be very nearly, when their Colours appear strong and perfect. For once, by such means as I then had, I measured the greatest Semi-diameter of the interior Iris about 42 Degrees, and the breadth of the red, yellow and green in that Iris 63 or 64 Minutes, besides the outmost faint red obscured by the brightness of the Clouds, for which we may allow 3 or 4 Minutes more. The breadth of the blue was about 40 Minutes more besides the violet, which was so much obscured by the brightness of the Clouds, that I could not measure its breadth. But supposing the breadth of the blue and violet together to equal that of the red, yellow and green together, the whole breadth of this Iris will be about 2-1/4 Degrees, as above. The least distance between this Iris and the exterior Iris was about 8 Degrees and 30 Minutes. The exterior Iris was broader than the interior, but so faint, especially on the blue side, that I could not measure its breadth distinctly. At another time when both Bows appeared more distinct, I measured the breadth of the interior Iris 2 Gr. 10´, and the breadth of the red, yellow and green in the exterior Iris, was to the breadth of the same Colours in the interior as 3 to 2. This Explication of the Rain-bow is yet farther confirmed by the known Experiment (made by _Antonius de Dominis_ and _Des-Cartes_) of hanging up any where in the Sun-shine a Glass Globe filled with Water, and viewing it in such a posture, that the Rays which come from the Globe to the Eye may contain with the Sun's Rays an Angle of either 42 or 50 Degrees. For if the Angle be about 42 or 43 Degrees, the Spectator (suppose at O) shall see a full red Colour in that side of the Globe opposed to the Sun as 'tis represented at F, and if that Angle become less (suppose by depressing the Globe to E) there will appear other Colours, yellow, green and blue successive in the same side of the Globe. But if the Angle be made about 50 Degrees (suppose by lifting up the Globe to G) there will appear a red Colour in that side of the Globe towards the Sun, and if the Angle be made greater (suppose by lifting up the Globe to H) the red will turn successively to the other Colours, yellow, green and blue. The same thing I have tried, by letting a Globe rest, and raising or depressing the Eye, or otherwise moving it to make the Angle of a just magnitude. I have heard it represented, that if the Light of a Candle be refracted by a Prism to the Eye; when the blue Colour falls upon the Eye, the Spectator shall see red in the Prism, and when the red falls upon the Eye he shall see blue; and if this were certain, the Colours of the Globe and Rain-bow ought to appear in a contrary order to what we find. But the Colours of the Candle being very faint, the mistake seems to arise from the difficulty of discerning what Colours fall on the Eye. For, on the contrary, I have sometimes had occasion to observe in the Sun's Light refracted by a Prism, that the Spectator always sees that Colour in the Prism which falls upon his Eye. And the same I have found true also in Candle-light. For when the Prism is moved slowly from the Line which is drawn directly from the Candle to the Eye, the red appears first in the Prism and then the blue, and therefore each of them is seen when it falls upon the Eye. For the red passes over the Eye first, and then the blue. The Light which comes through drops of Rain by two Refractions without any Reflexion, ought to appear strongest at the distance of about 26 Degrees from the Sun, and to decay gradually both ways as the distance from him increases and decreases. And the same is to be understood of Light transmitted through spherical Hail-stones. And if the Hail be a little flatted, as it often is, the Light transmitted may grow so strong at a little less distance than that of 26 Degrees, as to form a Halo about the Sun or Moon; which Halo, as often as the Hail-stones are duly figured may be colour'd, and then it must be red within by the least refrangible Rays, and blue without by the most refrangible ones, especially if the Hail-stones have opake Globules of Snow in their center to intercept the Light within the Halo (as _Hugenius_ has observ'd) and make the inside thereof more distinctly defined than it would otherwise be. For such Hail-stones, though spherical, by terminating the Light by the Snow, may make a Halo red within and colourless without, and darker in the red than without, as Halos used to be. For of those Rays which pass close by the Snow the Rubriform will be least refracted, and so come to the Eye in the directest Lines. The Light which passes through a drop of Rain after two Refractions, and three or more Reflexions, is scarce strong enough to cause a sensible Bow; but in those Cylinders of Ice by which _Hugenius_ explains the _Parhelia_, it may perhaps be sensible. _PROP._ X. PROB. V. _By the discovered Properties of Light to explain the permanent Colours of Natural Bodies._ These Colours arise from hence, that some natural Bodies reflect some sorts of Rays, others other sorts more copiously than the rest. Minium reflects the least refrangible or red-making Rays most copiously, and thence appears red. Violets reflect the most refrangible most copiously, and thence have their Colour, and so of other Bodies. Every Body reflects the Rays of its own Colour more copiously than the rest, and from their excess and predominance in the reflected Light has its Colour. _Exper._ 17. For if in the homogeneal Lights obtained by the solution of the Problem proposed in the fourth Proposition of the first Part of this Book, you place Bodies of several Colours, you will find, as I have done, that every Body looks most splendid and luminous in the Light of its own Colour. Cinnaber in the homogeneal red Light is most resplendent, in the green Light it is manifestly less resplendent, and in the blue Light still less. Indigo in the violet blue Light is most resplendent, and its splendor is gradually diminish'd, as it is removed thence by degrees through the green and yellow Light to the red. By a Leek the green Light, and next that the blue and yellow which compound green, are more strongly reflected than the other Colours red and violet, and so of the rest. But to make these Experiments the more manifest, such Bodies ought to be chosen as have the fullest and most vivid Colours, and two of those Bodies are to be compared together. Thus, for instance, if Cinnaber and _ultra_-marine blue, or some other full blue be held together in the red homogeneal Light, they will both appear red, but the Cinnaber will appear of a strongly luminous and resplendent red, and the _ultra_-marine blue of a faint obscure and dark red; and if they be held together in the blue homogeneal Light, they will both appear blue, but the _ultra_-marine will appear of a strongly luminous and resplendent blue, and the Cinnaber of a faint and dark blue. Which puts it out of dispute that the Cinnaber reflects the red Light much more copiously than the _ultra_-marine doth, and the _ultra_-marine reflects the blue Light much more copiously than the Cinnaber doth. The same Experiment may be tried successfully with red Lead and Indigo, or with any other two colour'd Bodies, if due allowance be made for the different strength or weakness of their Colour and Light. And as the reason of the Colours of natural Bodies is evident by these Experiments, so it is farther confirmed and put past dispute by the two first Experiments of the first Part, whereby 'twas proved in such Bodies that the reflected Lights which differ in Colours do differ also in degrees of Refrangibility. For thence it's certain, that some Bodies reflect the more refrangible, others the less refrangible Rays more copiously. And that this is not only a true reason of these Colours, but even the only reason, may appear farther from this Consideration, that the Colour of homogeneal Light cannot be changed by the Reflexion of natural Bodies. For if Bodies by Reflexion cannot in the least change the Colour of any one sort of Rays, they cannot appear colour'd by any other means than by reflecting those which either are of their own Colour, or which by mixture must produce it. But in trying Experiments of this kind care must be had that the Light be sufficiently homogeneal. For if Bodies be illuminated by the ordinary prismatick Colours, they will appear neither of their own Day-light Colours, nor of the Colour of the Light cast on them, but of some middle Colour between both, as I have found by Experience. Thus red Lead (for instance) illuminated with the ordinary prismatick green will not appear either red or green, but orange or yellow, or between yellow and green, accordingly as the green Light by which 'tis illuminated is more or less compounded. For because red Lead appears red when illuminated with white Light, wherein all sorts of Rays are equally mix'd, and in the green Light all sorts of Rays are not equally mix'd, the Excess of the yellow-making, green-making and blue-making Rays in the incident green Light, will cause those Rays to abound so much in the reflected Light, as to draw the Colour from red towards their Colour. And because the red Lead reflects the red-making Rays most copiously in proportion to their number, and next after them the orange-making and yellow-making Rays; these Rays in the reflected Light will be more in proportion to the Light than they were in the incident green Light, and thereby will draw the reflected Light from green towards their Colour. And therefore the red Lead will appear neither red nor green, but of a Colour between both. In transparently colour'd Liquors 'tis observable, that their Colour uses to vary with their thickness. Thus, for instance, a red Liquor in a conical Glass held between the Light and the Eye, looks of a pale and dilute yellow at the bottom where 'tis thin, and a little higher where 'tis thicker grows orange, and where 'tis still thicker becomes red, and where 'tis thickest the red is deepest and darkest. For it is to be conceiv'd that such a Liquor stops the indigo-making and violet-making Rays most easily, the blue-making Rays more difficultly, the green-making Rays still more difficultly, and the red-making most difficultly: And that if the thickness of the Liquor be only so much as suffices to stop a competent number of the violet-making and indigo-making Rays, without diminishing much the number of the rest, the rest must (by _Prop._ 6. _Part_ 2.) compound a pale yellow. But if the Liquor be so much thicker as to stop also a great number of the blue-making Rays, and some of the green-making, the rest must compound an orange; and where it is so thick as to stop also a great number of the green-making and a considerable number of the yellow-making, the rest must begin to compound a red, and this red must grow deeper and darker as the yellow-making and orange-making Rays are more and more stopp'd by increasing the thickness of the Liquor, so that few Rays besides the red-making can get through. Of this kind is an Experiment lately related to me by Mr. _Halley_, who, in diving deep into the Sea in a diving Vessel, found in a clear Sun-shine Day, that when he was sunk many Fathoms deep into the Water the upper part of his Hand on which the Sun shone directly through the Water and through a small Glass Window in the Vessel appeared of a red Colour, like that of a Damask Rose, and the Water below and the under part of his Hand illuminated by Light reflected from the Water below look'd green. For thence it may be gather'd, that the Sea-Water reflects back the violet and blue-making Rays most easily, and lets the red-making Rays pass most freely and copiously to great Depths. For thereby the Sun's direct Light at all great Depths, by reason of the predominating red-making Rays, must appear red; and the greater the Depth is, the fuller and intenser must that red be. And at such Depths as the violet-making Rays scarce penetrate unto, the blue-making, green-making, and yellow-making Rays being reflected from below more copiously than the red-making ones, must compound a green. Now, if there be two Liquors of full Colours, suppose a red and blue, and both of them so thick as suffices to make their Colours sufficiently full; though either Liquor be sufficiently transparent apart, yet will you not be able to see through both together. For, if only the red-making Rays pass through one Liquor, and only the blue-making through the other, no Rays can pass through both. This Mr. _Hook_ tried casually with Glass Wedges filled with red and blue Liquors, and was surprized at the unexpected Event, the reason of it being then unknown; which makes me trust the more to his Experiment, though I have not tried it my self. But he that would repeat it, must take care the Liquors be of very good and full Colours. Now, whilst Bodies become coloured by reflecting or transmitting this or that sort of Rays more copiously than the rest, it is to be conceived that they stop and stifle in themselves the Rays which they do not reflect or transmit. For, if Gold be foliated and held between your Eye and the Light, the Light looks of a greenish blue, and therefore massy Gold lets into its Body the blue-making Rays to be reflected to and fro within it till they be stopp'd and stifled, whilst it reflects the yellow-making outwards, and thereby looks yellow. And much after the same manner that Leaf Gold is yellow by reflected, and blue by transmitted Light, and massy Gold is yellow in all Positions of the Eye; there are some Liquors, as the Tincture of _Lignum Nephriticum_, and some sorts of Glass which transmit one sort of Light most copiously, and reflect another sort, and thereby look of several Colours, according to the Position of the Eye to the Light. But, if these Liquors or Glasses were so thick and massy that no Light could get through them, I question not but they would like all other opake Bodies appear of one and the same Colour in all Positions of the Eye, though this I cannot yet affirm by Experience. For all colour'd Bodies, so far as my Observation reaches, may be seen through if made sufficiently thin, and therefore are in some measure transparent, and differ only in degrees of Transparency from tinged transparent Liquors; these Liquors, as well as those Bodies, by a sufficient Thickness becoming opake. A transparent Body which looks of any Colour by transmitted Light, may also look of the same Colour by reflected Light, the Light of that Colour being reflected by the farther Surface of the Body, or by the Air beyond it. And then the reflected Colour will be diminished, and perhaps cease, by making the Body very thick, and pitching it on the backside to diminish the Reflexion of its farther Surface, so that the Light reflected from the tinging Particles may predominate. In such Cases, the Colour of the reflected Light will be apt to vary from that of the Light transmitted. But whence it is that tinged Bodies and Liquors reflect some sort of Rays, and intromit or transmit other sorts, shall be said in the next Book. In this Proposition I content my self to have put it past dispute, that Bodies have such Properties, and thence appear colour'd. _PROP._ XI. PROB. VI. _By mixing colour'd Lights to compound a beam of Light of the same Colour and Nature with a beam of the Sun's direct Light, and therein to experience the Truth of the foregoing Propositions._ [Illustration: FIG. 16.] Let ABC _abc_ [in _Fig._ 16.] represent a Prism, by which the Sun's Light let into a dark Chamber through the Hole F, may be refracted towards the Lens MN, and paint upon it at _p_, _q_, _r_, _s_, and _t_, the usual Colours violet, blue, green, yellow, and red, and let the diverging Rays by the Refraction of this Lens converge again towards X, and there, by the mixture of all those their Colours, compound a white according to what was shewn above. Then let another Prism DEG _deg_, parallel to the former, be placed at X, to refract that white Light upwards towards Y. Let the refracting Angles of the Prisms, and their distances from the Lens be equal, so that the Rays which converged from the Lens towards X, and without Refraction, would there have crossed and diverged again, may by the Refraction of the second Prism be reduced into Parallelism and diverge no more. For then those Rays will recompose a beam of white Light XY. If the refracting Angle of either Prism be the bigger, that Prism must be so much the nearer to the Lens. You will know when the Prisms and the Lens are well set together, by observing if the beam of Light XY, which comes out of the second Prism be perfectly white to the very edges of the Light, and at all distances from the Prism continue perfectly and totally white like a beam of the Sun's Light. For till this happens, the Position of the Prisms and Lens to one another must be corrected; and then if by the help of a long beam of Wood, as is represented in the Figure, or by a Tube, or some other such Instrument, made for that Purpose, they be made fast in that Situation, you may try all the same Experiments in this compounded beam of Light XY, which have been made in the Sun's direct Light. For this compounded beam of Light has the same appearance, and is endow'd with all the same Properties with a direct beam of the Sun's Light, so far as my Observation reaches. And in trying Experiments in this beam you may by stopping any of the Colours, _p_, _q_, _r_, _s_, and _t_, at the Lens, see how the Colours produced in the Experiments are no other than those which the Rays had at the Lens before they entered the Composition of this Beam: And by consequence, that they arise not from any new Modifications of the Light by Refractions and Reflexions, but from the various Separations and Mixtures of the Rays originally endow'd with their colour-making Qualities. So, for instance, having with a Lens 4-1/4 Inches broad, and two Prisms on either hand 6-1/4 Feet distant from the Lens, made such a beam of compounded Light; to examine the reason of the Colours made by Prisms, I refracted this compounded beam of Light XY with another Prism HIK _kh_, and thereby cast the usual Prismatick Colours PQRST upon the Paper LV placed behind. And then by stopping any of the Colours _p_, _q_, _r_, _s_, _t_, at the Lens, I found that the same Colour would vanish at the Paper. So if the Purple _p_ was stopp'd at the Lens, the Purple P upon the Paper would vanish, and the rest of the Colours would remain unalter'd, unless perhaps the blue, so far as some purple latent in it at the Lens might be separated from it by the following Refractions. And so by intercepting the green upon the Lens, the green R upon the Paper would vanish, and so of the rest; which plainly shews, that as the white beam of Light XY was compounded of several Lights variously colour'd at the Lens, so the Colours which afterwards emerge out of it by new Refractions are no other than those of which its Whiteness was compounded. The Refraction of the Prism HIK _kh_ generates the Colours PQRST upon the Paper, not by changing the colorific Qualities of the Rays, but by separating the Rays which had the very same colorific Qualities before they enter'd the Composition of the refracted beam of white Light XY. For otherwise the Rays which were of one Colour at the Lens might be of another upon the Paper, contrary to what we find. So again, to examine the reason of the Colours of natural Bodies, I placed such Bodies in the Beam of Light XY, and found that they all appeared there of those their own Colours which they have in Day-light, and that those Colours depend upon the Rays which had the same Colours at the Lens before they enter'd the Composition of that beam. Thus, for instance, Cinnaber illuminated by this beam appears of the same red Colour as in Day-light; and if at the Lens you intercept the green-making and blue-making Rays, its redness will become more full and lively: But if you there intercept the red-making Rays, it will not any longer appear red, but become yellow or green, or of some other Colour, according to the sorts of Rays which you do not intercept. So Gold in this Light XY appears of the same yellow Colour as in Day-light, but by intercepting at the Lens a due Quantity of the yellow-making Rays it will appear white like Silver (as I have tried) which shews that its yellowness arises from the Excess of the intercepted Rays tinging that Whiteness with their Colour when they are let pass. So the Infusion of _Lignum Nephriticum_ (as I have also tried) when held in this beam of Light XY, looks blue by the reflected Part of the Light, and red by the transmitted Part of it, as when 'tis view'd in Day-light; but if you intercept the blue at the Lens the Infusion will lose its reflected blue Colour, whilst its transmitted red remains perfect, and by the loss of some blue-making Rays, wherewith it was allay'd, becomes more intense and full. And, on the contrary, if the red and orange-making Rays be intercepted at the Lens, the Infusion will lose its transmitted red, whilst its blue will remain and become more full and perfect. Which shews, that the Infusion does not tinge the Rays with blue and red, but only transmits those most copiously which were red-making before, and reflects those most copiously which were blue-making before. And after the same manner may the Reasons of other Phænomena be examined, by trying them in this artificial beam of Light XY. FOOTNOTES: [I] See p. 59. [J] _See our_ Author's Lect. Optic. _Part_ II. _Sect._ II. _p._ 239. [K] _As is done in our_ Author's Lect. Optic. _Part_ I. _Sect._ III. _and_ IV. _and Part_ II. _Sect._ II. [L] _See our_ Author's Lect. Optic. _Part_ II. _Sect._ II. _pag._ 269, &c. [M] _This is demonstrated in our_ Author's Lect. Optic. _Part_ I. _Sect._ IV. _Prop._ 35 _and_ 36. THE SECOND BOOK OF OPTICKS _PART I._ _Observations concerning the Reflexions, Refractions, and Colours of thin transparent Bodies._ It has been observed by others, that transparent Substances, as Glass, Water, Air, &c. when made very thin by being blown into Bubbles, or otherwise formed into Plates, do exhibit various Colours according to their various thinness, altho' at a greater thickness they appear very clear and colourless. In the former Book I forbore to treat of these Colours, because they seemed of a more difficult Consideration, and were not necessary for establishing the Properties of Light there discoursed of. But because they may conduce to farther Discoveries for compleating the Theory of Light, especially as to the constitution of the parts of natural Bodies, on which their Colours or Transparency depend; I have here set down an account of them. To render this Discourse short and distinct, I have first described the principal of my Observations, and then consider'd and made use of them. The Observations are these. _Obs._ 1. Compressing two Prisms hard together that their sides (which by chance were a very little convex) might somewhere touch one another: I found the place in which they touched to become absolutely transparent, as if they had there been one continued piece of Glass. For when the Light fell so obliquely on the Air, which in other places was between them, as to be all reflected; it seemed in that place of contact to be wholly transmitted, insomuch that when look'd upon, it appeared like a black or dark spot, by reason that little or no sensible Light was reflected from thence, as from other places; and when looked through it seemed (as it were) a hole in that Air which was formed into a thin Plate, by being compress'd between the Glasses. And through this hole Objects that were beyond might be seen distinctly, which could not at all be seen through other parts of the Glasses where the Air was interjacent. Although the Glasses were a little convex, yet this transparent spot was of a considerable breadth, which breadth seemed principally to proceed from the yielding inwards of the parts of the Glasses, by reason of their mutual pressure. For by pressing them very hard together it would become much broader than otherwise. _Obs._ 2. When the Plate of Air, by turning the Prisms about their common Axis, became so little inclined to the incident Rays, that some of them began to be transmitted, there arose in it many slender Arcs of Colours which at first were shaped almost like the Conchoid, as you see them delineated in the first Figure. And by continuing the Motion of the Prisms, these Arcs increased and bended more and more about the said transparent spot, till they were compleated into Circles or Rings incompassing it, and afterwards continually grew more and more contracted. [Illustration: FIG. 1.] These Arcs at their first appearance were of a violet and blue Colour, and between them were white Arcs of Circles, which presently by continuing the Motion of the Prisms became a little tinged in their inward Limbs with red and yellow, and to their outward Limbs the blue was adjacent. So that the order of these Colours from the central dark spot, was at that time white, blue, violet; black, red, orange, yellow, white, blue, violet, &c. But the yellow and red were much fainter than the blue and violet. The Motion of the Prisms about their Axis being continued, these Colours contracted more and more, shrinking towards the whiteness on either side of it, until they totally vanished into it. And then the Circles in those parts appear'd black and white, without any other Colours intermix'd. But by farther moving the Prisms about, the Colours again emerged out of the whiteness, the violet and blue at its inward Limb, and at its outward Limb the red and yellow. So that now their order from the central Spot was white, yellow, red; black; violet, blue, white, yellow, red, &c. contrary to what it was before. _Obs._ 3. When the Rings or some parts of them appeared only black and white, they were very distinct and well defined, and the blackness seemed as intense as that of the central Spot. Also in the Borders of the Rings, where the Colours began to emerge out of the whiteness, they were pretty distinct, which made them visible to a very great multitude. I have sometimes number'd above thirty Successions (reckoning every black and white Ring for one Succession) and seen more of them, which by reason of their smalness I could not number. But in other Positions of the Prisms, at which the Rings appeared of many Colours, I could not distinguish above eight or nine of them, and the Exterior of those were very confused and dilute. In these two Observations to see the Rings distinct, and without any other Colour than Black and white, I found it necessary to hold my Eye at a good distance from them. For by approaching nearer, although in the same inclination of my Eye to the Plane of the Rings, there emerged a bluish Colour out of the white, which by dilating it self more and more into the black, render'd the Circles less distinct, and left the white a little tinged with red and yellow. I found also by looking through a slit or oblong hole, which was narrower than the pupil of my Eye, and held close to it parallel to the Prisms, I could see the Circles much distincter and visible to a far greater number than otherwise. _Obs._ 4. To observe more nicely the order of the Colours which arose out of the white Circles as the Rays became less and less inclined to the Plate of Air; I took two Object-glasses, the one a Plano-convex for a fourteen Foot Telescope, and the other a large double Convex for one of about fifty Foot; and upon this, laying the other with its plane side downwards, I pressed them slowly together, to make the Colours successively emerge in the middle of the Circles, and then slowly lifted the upper Glass from the lower to make them successively vanish again in the same place. The Colour, which by pressing the Glasses together, emerged last in the middle of the other Colours, would upon its first appearance look like a Circle of a Colour almost uniform from the circumference to the center and by compressing the Glasses still more, grow continually broader until a new Colour emerged in its center, and thereby it became a Ring encompassing that new Colour. And by compressing the Glasses still more, the diameter of this Ring would increase, and the breadth of its Orbit or Perimeter decrease until another new Colour emerged in the center of the last: And so on until a third, a fourth, a fifth, and other following new Colours successively emerged there, and became Rings encompassing the innermost Colour, the last of which was the black Spot. And, on the contrary, by lifting up the upper Glass from the lower, the diameter of the Rings would decrease, and the breadth of their Orbit increase, until their Colours reached successively to the center; and then they being of a considerable breadth, I could more easily discern and distinguish their Species than before. And by this means I observ'd their Succession and Quantity to be as followeth. Next to the pellucid central Spot made by the contact of the Glasses succeeded blue, white, yellow, and red. The blue was so little in quantity, that I could not discern it in the Circles made by the Prisms, nor could I well distinguish any violet in it, but the yellow and red were pretty copious, and seemed about as much in extent as the white, and four or five times more than the blue. The next Circuit in order of Colours immediately encompassing these were violet, blue, green, yellow, and red: and these were all of them copious and vivid, excepting the green, which was very little in quantity, and seemed much more faint and dilute than the other Colours. Of the other four, the violet was the least in extent, and the blue less than the yellow or red. The third Circuit or Order was purple, blue, green, yellow, and red; in which the purple seemed more reddish than the violet in the former Circuit, and the green was much more conspicuous, being as brisk and copious as any of the other Colours, except the yellow, but the red began to be a little faded, inclining very much to purple. After this succeeded the fourth Circuit of green and red. The green was very copious and lively, inclining on the one side to blue, and on the other side to yellow. But in this fourth Circuit there was neither violet, blue, nor yellow, and the red was very imperfect and dirty. Also the succeeding Colours became more and more imperfect and dilute, till after three or four revolutions they ended in perfect whiteness. Their form, when the Glasses were most compress'd so as to make the black Spot appear in the center, is delineated in the second Figure; where _a_, _b_, _c_, _d_, _e_: _f_, _g_, _h_, _i_, _k_: _l_, _m_, _n_, _o_, _p_: _q_, _r_: _s_, _t_: _v_, _x_: _y_, _z_, denote the Colours reckon'd in order from the center, black, blue, white, yellow, red: violet, blue, green, yellow, red: purple, blue, green, yellow, red: green, red: greenish blue, red: greenish blue, pale red: greenish blue, reddish white. [Illustration: FIG. 2.] _Obs._ 5. To determine the interval of the Glasses, or thickness of the interjacent Air, by which each Colour was produced, I measured the Diameters of the first six Rings at the most lucid part of their Orbits, and squaring them, I found their Squares to be in the arithmetical Progression of the odd Numbers, 1, 3, 5, 7, 9, 11. And since one of these Glasses was plane, and the other spherical, their Intervals at those Rings must be in the same Progression. I measured also the Diameters of the dark or faint Rings between the more lucid Colours, and found their Squares to be in the arithmetical Progression of the even Numbers, 2, 4, 6, 8, 10, 12. And it being very nice and difficult to take these measures exactly; I repeated them divers times at divers parts of the Glasses, that by their Agreement I might be confirmed in them. And the same method I used in determining some others of the following Observations. _Obs._ 6. The Diameter of the sixth Ring at the most lucid part of its Orbit was 58/100 parts of an Inch, and the Diameter of the Sphere on which the double convex Object-glass was ground was about 102 Feet, and hence I gathered the thickness of the Air or Aereal Interval of the Glasses at that Ring. But some time after, suspecting that in making this Observation I had not determined the Diameter of the Sphere with sufficient accurateness, and being uncertain whether the Plano-convex Glass was truly plane, and not something concave or convex on that side which I accounted plane; and whether I had not pressed the Glasses together, as I often did, to make them touch; (For by pressing such Glasses together their parts easily yield inwards, and the Rings thereby become sensibly broader than they would be, did the Glasses keep their Figures.) I repeated the Experiment, and found the Diameter of the sixth lucid Ring about 55/100 parts of an Inch. I repeated the Experiment also with such an Object-glass of another Telescope as I had at hand. This was a double Convex ground on both sides to one and the same Sphere, and its Focus was distant from it 83-2/5 Inches. And thence, if the Sines of Incidence and Refraction of the bright yellow Light be assumed in proportion as 11 to 17, the Diameter of the Sphere to which the Glass was figured will by computation be found 182 Inches. This Glass I laid upon a flat one, so that the black Spot appeared in the middle of the Rings of Colours without any other Pressure than that of the weight of the Glass. And now measuring the Diameter of the fifth dark Circle as accurately as I could, I found it the fifth part of an Inch precisely. This Measure was taken with the points of a pair of Compasses on the upper Surface on the upper Glass, and my Eye was about eight or nine Inches distance from the Glass, almost perpendicularly over it, and the Glass was 1/6 of an Inch thick, and thence it is easy to collect that the true Diameter of the Ring between the Glasses was greater than its measur'd Diameter above the Glasses in the Proportion of 80 to 79, or thereabouts, and by consequence equal to 16/79 parts of an Inch, and its true Semi-diameter equal to 8/79 parts. Now as the Diameter of the Sphere (182 Inches) is to the Semi-diameter of this fifth dark Ring (8/79 parts of an Inch) so is this Semi-diameter to the thickness of the Air at this fifth dark Ring; which is therefore 32/567931 or 100/1774784. Parts of an Inch; and the fifth Part thereof, _viz._ the 1/88739 Part of an Inch, is the Thickness of the Air at the first of these dark Rings. The same Experiment I repeated with another double convex Object-glass ground on both sides to one and the same Sphere. Its Focus was distant from it 168-1/2 Inches, and therefore the Diameter of that Sphere was 184 Inches. This Glass being laid upon the same plain Glass, the Diameter of the fifth of the dark Rings, when the black Spot in their Center appear'd plainly without pressing the Glasses, was by the measure of the Compasses upon the upper Glass 121/600 Parts of an Inch, and by consequence between the Glasses it was 1222/6000: For the upper Glass was 1/8 of an Inch thick, and my Eye was distant from it 8 Inches. And a third proportional to half this from the Diameter of the Sphere is 5/88850 Parts of an Inch. This is therefore the Thickness of the Air at this Ring, and a fifth Part thereof, _viz._ the 1/88850th Part of an Inch is the Thickness thereof at the first of the Rings, as above. I tried the same Thing, by laying these Object-glasses upon flat Pieces of a broken Looking-glass, and found the same Measures of the Rings: Which makes me rely upon them till they can be determin'd more accurately by Glasses ground to larger Spheres, though in such Glasses greater care must be taken of a true Plane. These Dimensions were taken, when my Eye was placed almost perpendicularly over the Glasses, being about an Inch, or an Inch and a quarter, distant from the incident Rays, and eight Inches distant from the Glass; so that the Rays were inclined to the Glass in an Angle of about four Degrees. Whence by the following Observation you will understand, that had the Rays been perpendicular to the Glasses, the Thickness of the Air at these Rings would have been less in the Proportion of the Radius to the Secant of four Degrees, that is, of 10000 to 10024. Let the Thicknesses found be therefore diminish'd in this Proportion, and they will become 1/88952 and 1/89063, or (to use the nearest round Number) the 1/89000th Part of an Inch. This is the Thickness of the Air at the darkest Part of the first dark Ring made by perpendicular Rays; and half this Thickness multiplied by the Progression, 1, 3, 5, 7, 9, 11, &c. gives the Thicknesses of the Air at the most luminous Parts of all the brightest Rings, _viz._ 1/178000, 3/178000, 5/178000, 7/178000, &c. their arithmetical Means 2/178000, 4/178000, 6/178000, &c. being its Thicknesses at the darkest Parts of all the dark ones. _Obs._ 7. The Rings were least, when my Eye was placed perpendicularly over the Glasses in the Axis of the Rings: And when I view'd them obliquely they became bigger, continually swelling as I removed my Eye farther from the Axis. And partly by measuring the Diameter of the same Circle at several Obliquities of my Eye, partly by other Means, as also by making use of the two Prisms for very great Obliquities, I found its Diameter, and consequently the Thickness of the Air at its Perimeter in all those Obliquities to be very nearly in the Proportions express'd in this Table. -------------------+--------------------+----------+---------- Angle of Incidence |Angle of Refraction |Diameter |Thickness on | into | of the | of the the Air. | the Air. | Ring. | Air. -------------------+--------------------+----------+---------- Deg. Min. | | | | | | 00 00 | 00 00 | 10 | 10 | | | 06 26 | 10 00 | 10-1/13 | 10-2/13 | | | 12 45 | 20 00 | 10-1/3 | 10-2/3 | | | 18 49 | 30 00 | 10-3/4 | 11-1/2 | | | 24 30 | 40 00 | 11-2/5 | 13 | | | 29 37 | 50 00 | 12-1/2 | 15-1/2 | | | 33 58 | 60 00 | 14 | 20 | | | 35 47 | 65 00 | 15-1/4 | 23-1/4 | | | 37 19 | 70 00 | 16-4/5 | 28-1/4 | | | 38 33 | 75 00 | 19-1/4 | 37 | | | 39 27 | 80 00 | 22-6/7 | 52-1/4 | | | 40 00 | 85 00 | 29 | 84-1/12 | | | 40 11 | 90 00 | 35 | 122-1/2 -------------------+--------------------+----------+---------- In the two first Columns are express'd the Obliquities of the incident and emergent Rays to the Plate of the Air, that is, their Angles of Incidence and Refraction. In the third Column the Diameter of any colour'd Ring at those Obliquities is expressed in Parts, of which ten constitute that Diameter when the Rays are perpendicular. And in the fourth Column the Thickness of the Air at the Circumference of that Ring is expressed in Parts, of which also ten constitute its Thickness when the Rays are perpendicular. And from these Measures I seem to gather this Rule: That the Thickness of the Air is proportional to the Secant of an Angle, whose Sine is a certain mean Proportional between the Sines of Incidence and Refraction. And that mean Proportional, so far as by these Measures I can determine it, is the first of an hundred and six arithmetical mean Proportionals between those Sines counted from the bigger Sine, that is, from the Sine of Refraction when the Refraction is made out of the Glass into the Plate of Air, or from the Sine of Incidence when the Refraction is made out of the Plate of Air into the Glass. _Obs._ 8. The dark Spot in the middle of the Rings increased also by the Obliquation of the Eye, although almost insensibly. But, if instead of the Object-glasses the Prisms were made use of, its Increase was more manifest when viewed so obliquely that no Colours appear'd about it. It was least when the Rays were incident most obliquely on the interjacent Air, and as the obliquity decreased it increased more and more until the colour'd Rings appear'd, and then decreased again, but not so much as it increased before. And hence it is evident, that the Transparency was not only at the absolute Contact of the Glasses, but also where they had some little Interval. I have sometimes observed the Diameter of that Spot to be between half and two fifth parts of the Diameter of the exterior Circumference of the red in the first Circuit or Revolution of Colours when view'd almost perpendicularly; whereas when view'd obliquely it hath wholly vanish'd and become opake and white like the other parts of the Glass; whence it may be collected that the Glasses did then scarcely, or not at all, touch one another, and that their Interval at the perimeter of that Spot when view'd perpendicularly was about a fifth or sixth part of their Interval at the circumference of the said red. _Obs._ 9. By looking through the two contiguous Object-glasses, I found that the interjacent Air exhibited Rings of Colours, as well by transmitting Light as by reflecting it. The central Spot was now white, and from it the order of the Colours were yellowish red; black, violet, blue, white, yellow, red; violet, blue, green, yellow, red, &c. But these Colours were very faint and dilute, unless when the Light was trajected very obliquely through the Glasses: For by that means they became pretty vivid. Only the first yellowish red, like the blue in the fourth Observation, was so little and faint as scarcely to be discern'd. Comparing the colour'd Rings made by Reflexion, with these made by transmission of the Light; I found that white was opposite to black, red to blue, yellow to violet, and green to a Compound of red and violet. That is, those parts of the Glass were black when looked through, which when looked upon appeared white, and on the contrary. And so those which in one case exhibited blue, did in the other case exhibit red. And the like of the other Colours. The manner you have represented in the third Figure, where AB, CD, are the Surfaces of the Glasses contiguous at E, and the black Lines between them are their Distances in arithmetical Progression, and the Colours written above are seen by reflected Light, and those below by Light transmitted (p. 209). _Obs._ 10. Wetting the Object-glasses a little at their edges, the Water crept in slowly between them, and the Circles thereby became less and the Colours more faint: Insomuch that as the Water crept along, one half of them at which it first arrived would appear broken off from the other half, and contracted into a less Room. By measuring them I found the Proportions of their Diameters to the Diameters of the like Circles made by Air to be about seven to eight, and consequently the Intervals of the Glasses at like Circles, caused by those two Mediums Water and Air, are as about three to four. Perhaps it may be a general Rule, That if any other Medium more or less dense than Water be compress'd between the Glasses, their Intervals at the Rings caused thereby will be to their Intervals caused by interjacent Air, as the Sines are which measure the Refraction made out of that Medium into Air. _Obs._ 11. When the Water was between the Glasses, if I pressed the upper Glass variously at its edges to make the Rings move nimbly from one place to another, a little white Spot would immediately follow the center of them, which upon creeping in of the ambient Water into that place would presently vanish. Its appearance was such as interjacent Air would have caused, and it exhibited the same Colours. But it was not air, for where any Bubbles of Air were in the Water they would not vanish. The Reflexion must have rather been caused by a subtiler Medium, which could recede through the Glasses at the creeping in of the Water. _Obs._ 12. These Observations were made in the open Air. But farther to examine the Effects of colour'd Light falling on the Glasses, I darken'd the Room, and view'd them by Reflexion of the Colours of a Prism cast on a Sheet of white Paper, my Eye being so placed that I could see the colour'd Paper by Reflexion in the Glasses, as in a Looking-glass. And by this means the Rings became distincter and visible to a far greater number than in the open Air. I have sometimes seen more than twenty of them, whereas in the open Air I could not discern above eight or nine. [Illustration: FIG. 3.] _Obs._ 13. Appointing an Assistant to move the Prism to and fro about its Axis, that all the Colours might successively fall on that part of the Paper which I saw by Reflexion from that part of the Glasses, where the Circles appear'd, so that all the Colours might be successively reflected from the Circles to my Eye, whilst I held it immovable, I found the Circles which the red Light made to be manifestly bigger than those which were made by the blue and violet. And it was very pleasant to see them gradually swell or contract accordingly as the Colour of the Light was changed. The Interval of the Glasses at any of the Rings when they were made by the utmost red Light, was to their Interval at the same Ring when made by the utmost violet, greater than as 3 to 2, and less than as 13 to 8. By the most of my Observations it was as 14 to 9. And this Proportion seem'd very nearly the same in all Obliquities of my Eye; unless when two Prisms were made use of instead of the Object-glasses. For then at a certain great obliquity of my Eye, the Rings made by the several Colours seem'd equal, and at a greater obliquity those made by the violet would be greater than the same Rings made by the red: the Refraction of the Prism in this case causing the most refrangible Rays to fall more obliquely on that plate of the Air than the least refrangible ones. Thus the Experiment succeeded in the colour'd Light, which was sufficiently strong and copious to make the Rings sensible. And thence it may be gather'd, that if the most refrangible and least refrangible Rays had been copious enough to make the Rings sensible without the mixture of other Rays, the Proportion which here was 14 to 9 would have been a little greater, suppose 14-1/4 or 14-1/3 to 9. _Obs._ 14. Whilst the Prism was turn'd about its Axis with an uniform Motion, to make all the several Colours fall successively upon the Object-glasses, and thereby to make the Rings contract and dilate: The Contraction or Dilatation of each Ring thus made by the variation of its Colour was swiftest in the red, and slowest in the violet, and in the intermediate Colours it had intermediate degrees of Celerity. Comparing the quantity of Contraction and Dilatation made by all the degrees of each Colour, I found that it was greatest in the red; less in the yellow, still less in the blue, and least in the violet. And to make as just an Estimation as I could of the Proportions of their Contractions or Dilatations, I observ'd that the whole Contraction or Dilatation of the Diameter of any Ring made by all the degrees of red, was to that of the Diameter of the same Ring made by all the degrees of violet, as about four to three, or five to four, and that when the Light was of the middle Colour between yellow and green, the Diameter of the Ring was very nearly an arithmetical Mean between the greatest Diameter of the same Ring made by the outmost red, and the least Diameter thereof made by the outmost violet: Contrary to what happens in the Colours of the oblong Spectrum made by the Refraction of a Prism, where the red is most contracted, the violet most expanded, and in the midst of all the Colours is the Confine of green and blue. And hence I seem to collect that the thicknesses of the Air between the Glasses there, where the Ring is successively made by the limits of the five principal Colours (red, yellow, green, blue, violet) in order (that is, by the extreme red, by the limit of red and yellow in the middle of the orange, by the limit of yellow and green, by the limit of green and blue, by the limit of blue and violet in the middle of the indigo, and by the extreme violet) are to one another very nearly as the sixth lengths of a Chord which found the Notes in a sixth Major, _sol_, _la_, _mi_, _fa_, _sol_, _la_. But it agrees something better with the Observation to say, that the thicknesses of the Air between the Glasses there, where the Rings are successively made by the limits of the seven Colours, red, orange, yellow, green, blue, indigo, violet in order, are to one another as the Cube Roots of the Squares of the eight lengths of a Chord, which found the Notes in an eighth, _sol_, _la_, _fa_, _sol_, _la_, _mi_, _fa_, _sol_; that is, as the Cube Roots of the Squares of the Numbers, 1, 8/9, 5/6, 3/4, 2/3, 3/5, 9/16, 1/2. _Obs._ 15. These Rings were not of various Colours like those made in the open Air, but appeared all over of that prismatick Colour only with which they were illuminated. And by projecting the prismatick Colours immediately upon the Glasses, I found that the Light which fell on the dark Spaces which were between the Colour'd Rings was transmitted through the Glasses without any variation of Colour. For on a white Paper placed behind, it would paint Rings of the same Colour with those which were reflected, and of the bigness of their immediate Spaces. And from thence the origin of these Rings is manifest; namely, that the Air between the Glasses, according to its various thickness, is disposed in some places to reflect, and in others to transmit the Light of any one Colour (as you may see represented in the fourth Figure) and in the same place to reflect that of one Colour where it transmits that of another. [Illustration: FIG. 4.] _Obs._ 16. The Squares of the Diameters of these Rings made by any prismatick Colour were in arithmetical Progression, as in the fifth Observation. And the Diameter of the sixth Circle, when made by the citrine yellow, and viewed almost perpendicularly was about 58/100 parts of an Inch, or a little less, agreeable to the sixth Observation. The precedent Observations were made with a rarer thin Medium, terminated by a denser, such as was Air or Water compress'd between two Glasses. In those that follow are set down the Appearances of a denser Medium thin'd within a rarer, such as are Plates of Muscovy Glass, Bubbles of Water, and some other thin Substances terminated on all sides with air. _Obs._ 17. If a Bubble be blown with Water first made tenacious by dissolving a little Soap in it, 'tis a common Observation, that after a while it will appear tinged with a great variety of Colours. To defend these Bubbles from being agitated by the external Air (whereby their Colours are irregularly moved one among another, so that no accurate Observation can be made of them,) as soon as I had blown any of them I cover'd it with a clear Glass, and by that means its Colours emerged in a very regular order, like so many concentrick Rings encompassing the top of the Bubble. And as the Bubble grew thinner by the continual subsiding of the Water, these Rings dilated slowly and overspread the whole Bubble, descending in order to the bottom of it, where they vanish'd successively. In the mean while, after all the Colours were emerged at the top, there grew in the center of the Rings a small round black Spot, like that in the first Observation, which continually dilated it self till it became sometimes more than 1/2 or 3/4 of an Inch in breadth before the Bubble broke. At first I thought there had been no Light reflected from the Water in that place, but observing it more curiously, I saw within it several smaller round Spots, which appeared much blacker and darker than the rest, whereby I knew that there was some Reflexion at the other places which were not so dark as those Spots. And by farther Tryal I found that I could see the Images of some things (as of a Candle or the Sun) very faintly reflected, not only from the great black Spot, but also from the little darker Spots which were within it. Besides the aforesaid colour'd Rings there would often appear small Spots of Colours, ascending and descending up and down the sides of the Bubble, by reason of some Inequalities in the subsiding of the Water. And sometimes small black Spots generated at the sides would ascend up to the larger black Spot at the top of the Bubble, and unite with it. _Obs._ 18. Because the Colours of these Bubbles were more extended and lively than those of the Air thinn'd between two Glasses, and so more easy to be distinguish'd, I shall here give you a farther description of their order, as they were observ'd in viewing them by Reflexion of the Skies when of a white Colour, whilst a black substance was placed behind the Bubble. And they were these, red, blue; red, blue; red, blue; red, green; red, yellow, green, blue, purple; red, yellow, green, blue, violet; red, yellow, white, blue, black. The three first Successions of red and blue were very dilute and dirty, especially the first, where the red seem'd in a manner to be white. Among these there was scarce any other Colour sensible besides red and blue, only the blues (and principally the second blue) inclined a little to green. The fourth red was also dilute and dirty, but not so much as the former three; after that succeeded little or no yellow, but a copious green, which at first inclined a little to yellow, and then became a pretty brisk and good willow green, and afterwards changed to a bluish Colour; but there succeeded neither blue nor violet. The fifth red at first inclined very much to purple, and afterwards became more bright and brisk, but yet not very pure. This was succeeded with a very bright and intense yellow, which was but little in quantity, and soon chang'd to green: But that green was copious and something more pure, deep and lively, than the former green. After that follow'd an excellent blue of a bright Sky-colour, and then a purple, which was less in quantity than the blue, and much inclined to red. The sixth red was at first of a very fair and lively scarlet, and soon after of a brighter Colour, being very pure and brisk, and the best of all the reds. Then after a lively orange follow'd an intense bright and copious yellow, which was also the best of all the yellows, and this changed first to a greenish yellow, and then to a greenish blue; but the green between the yellow and the blue, was very little and dilute, seeming rather a greenish white than a green. The blue which succeeded became very good, and of a very bright Sky-colour, but yet something inferior to the former blue; and the violet was intense and deep with little or no redness in it. And less in quantity than the blue. In the last red appeared a tincture of scarlet next to violet, which soon changed to a brighter Colour, inclining to an orange; and the yellow which follow'd was at first pretty good and lively, but afterwards it grew more dilute until by degrees it ended in perfect whiteness. And this whiteness, if the Water was very tenacious and well-temper'd, would slowly spread and dilate it self over the greater part of the Bubble; continually growing paler at the top, where at length it would crack in many places, and those cracks, as they dilated, would appear of a pretty good, but yet obscure and dark Sky-colour; the white between the blue Spots diminishing, until it resembled the Threds of an irregular Net-work, and soon after vanish'd, and left all the upper part of the Bubble of the said dark blue Colour. And this Colour, after the aforesaid manner, dilated it self downwards, until sometimes it hath overspread the whole Bubble. In the mean while at the top, which was of a darker blue than the bottom, and appear'd also full of many round blue Spots, something darker than the rest, there would emerge one or more very black Spots, and within those, other Spots of an intenser blackness, which I mention'd in the former Observation; and these continually dilated themselves until the Bubble broke. If the Water was not very tenacious, the black Spots would break forth in the white, without any sensible intervention of the blue. And sometimes they would break forth within the precedent yellow, or red, or perhaps within the blue of the second order, before the intermediate Colours had time to display themselves. By this description you may perceive how great an affinity these Colours have with those of Air described in the fourth Observation, although set down in a contrary order, by reason that they begin to appear when the Bubble is thickest, and are most conveniently reckon'd from the lowest and thickest part of the Bubble upwards. _Obs._ 19. Viewing in several oblique Positions of my Eye the Rings of Colours emerging on the top of the Bubble, I found that they were sensibly dilated by increasing the obliquity, but yet not so much by far as those made by thinn'd Air in the seventh Observation. For there they were dilated so much as, when view'd most obliquely, to arrive at a part of the Plate more than twelve times thicker than that where they appear'd when viewed perpendicularly; whereas in this case the thickness of the Water, at which they arrived when viewed most obliquely, was to that thickness which exhibited them by perpendicular Rays, something less than as 8 to 5. By the best of my Observations it was between 15 and 15-1/2 to 10; an increase about 24 times less than in the other case. Sometimes the Bubble would become of an uniform thickness all over, except at the top of it near the black Spot, as I knew, because it would exhibit the same appearance of Colours in all Positions of the Eye. And then the Colours which were seen at its apparent circumference by the obliquest Rays, would be different from those that were seen in other places, by Rays less oblique to it. And divers Spectators might see the same part of it of differing Colours, by viewing it at very differing Obliquities. Now observing how much the Colours at the same places of the Bubble, or at divers places of equal thickness, were varied by the several Obliquities of the Rays; by the assistance of the 4th, 14th, 16th and 18th Observations, as they are hereafter explain'd, I collect the thickness of the Water requisite to exhibit any one and the same Colour, at several Obliquities, to be very nearly in the Proportion expressed in this Table. -----------------+------------------+---------------- Incidence on | Refraction into | Thickness of the Water. | the Water. | the Water. -----------------+------------------+---------------- Deg. Min. | Deg. Min. | | | 00 00 | 00 00 | 10 | | 15 00 | 11 11 | 10-1/4 | | 30 00 | 22 1 | 10-4/5 | | 45 00 | 32 2 | 11-4/5 | | 60 00 | 40 30 | 13 | | 75 00 | 46 25 | 14-1/2 | | 90 00 | 48 35 | 15-1/5 -----------------+------------------+---------------- In the two first Columns are express'd the Obliquities of the Rays to the Superficies of the Water, that is, their Angles of Incidence and Refraction. Where I suppose, that the Sines which measure them are in round Numbers, as 3 to 4, though probably the Dissolution of Soap in the Water, may a little alter its refractive Virtue. In the third Column, the Thickness of the Bubble, at which any one Colour is exhibited in those several Obliquities, is express'd in Parts, of which ten constitute its Thickness when the Rays are perpendicular. And the Rule found by the seventh Observation agrees well with these Measures, if duly apply'd; namely, that the Thickness of a Plate of Water requisite to exhibit one and the same Colour at several Obliquities of the Eye, is proportional to the Secant of an Angle, whose Sine is the first of an hundred and six arithmetical mean Proportionals between the Sines of Incidence and Refraction counted from the lesser Sine, that is, from the Sine of Refraction when the Refraction is made out of Air into Water, otherwise from the Sine of Incidence. I have sometimes observ'd, that the Colours which arise on polish'd Steel by heating it, or on Bell-metal, and some other metalline Substances, when melted and pour'd on the Ground, where they may cool in the open Air, have, like the Colours of Water-bubbles, been a little changed by viewing them at divers Obliquities, and particularly that a deep blue, or violet, when view'd very obliquely, hath been changed to a deep red. But the Changes of these Colours are not so great and sensible as of those made by Water. For the Scoria, or vitrified Part of the Metal, which most Metals when heated or melted do continually protrude, and send out to their Surface, and which by covering the Metals in form of a thin glassy Skin, causes these Colours, is much denser than Water; and I find that the Change made by the Obliquation of the Eye is least in Colours of the densest thin Substances. _Obs._ 20. As in the ninth Observation, so here, the Bubble, by transmitted Light, appear'd of a contrary Colour to that, which it exhibited by Reflexion. Thus when the Bubble being look'd on by the Light of the Clouds reflected from it, seemed red at its apparent Circumference, if the Clouds at the same time, or immediately after, were view'd through it, the Colour at its Circumference would be blue. And, on the contrary, when by reflected Light it appeared blue, it would appear red by transmitted Light. _Obs._ 21. By wetting very thin Plates of _Muscovy_ Glass, whose thinness made the like Colours appear, the Colours became more faint and languid, especially by wetting the Plates on that side opposite to the Eye: But I could not perceive any variation of their Species. So then the thickness of a Plate requisite to produce any Colour, depends only on the density of the Plate, and not on that of the ambient Medium. And hence, by the 10th and 16th Observations, may be known the thickness which Bubbles of Water, or Plates of _Muscovy_ Glass, or other Substances, have at any Colour produced by them. _Obs._ 22. A thin transparent Body, which is denser than its ambient Medium, exhibits more brisk and vivid Colours than that which is so much rarer; as I have particularly observed in the Air and Glass. For blowing Glass very thin at a Lamp Furnace, those Plates encompassed with Air did exhibit Colours much more vivid than those of Air made thin between two Glasses. _Obs._ 23. Comparing the quantity of Light reflected from the several Rings, I found that it was most copious from the first or inmost, and in the exterior Rings became gradually less and less. Also the whiteness of the first Ring was stronger than that reflected from those parts of the thin Medium or Plate which were without the Rings; as I could manifestly perceive by viewing at a distance the Rings made by the two Object-glasses; or by comparing two Bubbles of Water blown at distant Times, in the first of which the Whiteness appear'd, which succeeded all the Colours, and in the other, the Whiteness which preceded them all. _Obs._ 24. When the two Object-glasses were lay'd upon one another, so as to make the Rings of the Colours appear, though with my naked Eye I could not discern above eight or nine of those Rings, yet by viewing them through a Prism I have seen a far greater Multitude, insomuch that I could number more than forty, besides many others, that were so very small and close together, that I could not keep my Eye steady on them severally so as to number them, but by their Extent I have sometimes estimated them to be more than an hundred. And I believe the Experiment may be improved to the Discovery of far greater Numbers. For they seem to be really unlimited, though visible only so far as they can be separated by the Refraction of the Prism, as I shall hereafter explain. [Illustration: FIG. 5.] But it was but one side of these Rings, namely, that towards which the Refraction was made, which by that Refraction was render'd distinct, and the other side became more confused than when view'd by the naked Eye, insomuch that there I could not discern above one or two, and sometimes none of those Rings, of which I could discern eight or nine with my naked Eye. And their Segments or Arcs, which on the other side appear'd so numerous, for the most part exceeded not the third Part of a Circle. If the Refraction was very great, or the Prism very distant from the Object-glasses, the middle Part of those Arcs became also confused, so as to disappear and constitute an even Whiteness, whilst on either side their Ends, as also the whole Arcs farthest from the Center, became distincter than before, appearing in the Form as you see them design'd in the fifth Figure. The Arcs, where they seem'd distinctest, were only white and black successively, without any other Colours intermix'd. But in other Places there appeared Colours, whose Order was inverted by the refraction in such manner, that if I first held the Prism very near the Object-glasses, and then gradually removed it farther off towards my Eye, the Colours of the 2d, 3d, 4th, and following Rings, shrunk towards the white that emerged between them, until they wholly vanish'd into it at the middle of the Arcs, and afterwards emerged again in a contrary Order. But at the Ends of the Arcs they retain'd their Order unchanged. I have sometimes so lay'd one Object-glass upon the other, that to the naked Eye they have all over seem'd uniformly white, without the least Appearance of any of the colour'd Rings; and yet by viewing them through a Prism, great Multitudes of those Rings have discover'd themselves. And in like manner Plates of _Muscovy_ Glass, and Bubbles of Glass blown at a Lamp-Furnace, which were not so thin as to exhibit any Colours to the naked Eye, have through the Prism exhibited a great Variety of them ranged irregularly up and down in the Form of Waves. And so Bubbles of Water, before they began to exhibit their Colours to the naked Eye of a Bystander, have appeared through a Prism, girded about with many parallel and horizontal Rings; to produce which Effect, it was necessary to hold the Prism parallel, or very nearly parallel to the Horizon, and to dispose it so that the Rays might be refracted upwards. THE SECOND BOOK OF OPTICKS _PART II._ _Remarks upon the foregoing Observations._ Having given my Observations of these Colours, before I make use of them to unfold the Causes of the Colours of natural Bodies, it is convenient that by the simplest of them, such as are the 2d, 3d, 4th, 9th, 12th, 18th, 20th, and 24th, I first explain the more compounded. And first to shew how the Colours in the fourth and eighteenth Observations are produced, let there be taken in any Right Line from the Point Y, [in _Fig._ 6.] the Lengths YA, YB, YC, YD, YE, YF, YG, YH, in proportion to one another, as the Cube-Roots of the Squares of the Numbers, 1/2, 9/16, 3/5, 2/3, 3/4, 5/6, 8/9, 1, whereby the Lengths of a Musical Chord to sound all the Notes in an eighth are represented; that is, in the Proportion of the Numbers 6300, 6814, 7114, 7631, 8255, 8855, 9243, 10000. And at the Points A, B, C, D, E, F, G, H, let Perpendiculars A[Greek: a], B[Greek: b], &c. be erected, by whose Intervals the Extent of the several Colours set underneath against them, is to be represented. Then divide the Line _A[Greek: a]_ in such Proportion as the Numbers 1, 2, 3, 5, 6, 7, 9, 10, 11, &c. set at the Points of Division denote. And through those Divisions from Y draw Lines 1I, 2K, 3L, 5M, 6N, 7O, &c. Now, if A2 be supposed to represent the Thickness of any thin transparent Body, at which the outmost Violet is most copiously reflected in the first Ring, or Series of Colours, then by the 13th Observation, HK will represent its Thickness, at which the utmost Red is most copiously reflected in the same Series. Also by the 5th and 16th Observations, A6 and HN will denote the Thicknesses at which those extreme Colours are most copiously reflected in the second Series, and A10 and HQ the Thicknesses at which they are most copiously reflected in the third Series, and so on. And the Thickness at which any of the intermediate Colours are reflected most copiously, will, according to the 14th Observation, be defined by the distance of the Line AH from the intermediate parts of the Lines 2K, 6N, 10Q, &c. against which the Names of those Colours are written below. [Illustration: FIG. 6.] But farther, to define the Latitude of these Colours in each Ring or Series, let A1 design the least thickness, and A3 the greatest thickness, at which the extreme violet in the first Series is reflected, and let HI, and HL, design the like limits for the extreme red, and let the intermediate Colours be limited by the intermediate parts of the Lines 1I, and 3L, against which the Names of those Colours are written, and so on: But yet with this caution, that the Reflexions be supposed strongest at the intermediate Spaces, 2K, 6N, 10Q, &c. and from thence to decrease gradually towards these limits, 1I, 3L, 5M, 7O, &c. on either side; where you must not conceive them to be precisely limited, but to decay indefinitely. And whereas I have assign'd the same Latitude to every Series, I did it, because although the Colours in the first Series seem to be a little broader than the rest, by reason of a stronger Reflexion there, yet that inequality is so insensible as scarcely to be determin'd by Observation. Now according to this Description, conceiving that the Rays originally of several Colours are by turns reflected at the Spaces 1I, L3, 5M, O7, 9PR11, &c. and transmitted at the Spaces AHI1, 3LM5, 7OP9, &c. it is easy to know what Colour must in the open Air be exhibited at any thickness of a transparent thin Body. For if a Ruler be applied parallel to AH, at that distance from it by which the thickness of the Body is represented, the alternate Spaces 1IL3, 5MO7, &c. which it crosseth will denote the reflected original Colours, of which the Colour exhibited in the open Air is compounded. Thus if the constitution of the green in the third Series of Colours be desired, apply the Ruler as you see at [Greek: prsph], and by its passing through some of the blue at [Greek: p] and yellow at [Greek: s], as well as through the green at [Greek: r], you may conclude that the green exhibited at that thickness of the Body is principally constituted of original green, but not without a mixture of some blue and yellow. By this means you may know how the Colours from the center of the Rings outward ought to succeed in order as they were described in the 4th and 18th Observations. For if you move the Ruler gradually from AH through all distances, having pass'd over the first Space which denotes little or no Reflexion to be made by thinnest Substances, it will first arrive at 1 the violet, and then very quickly at the blue and green, which together with that violet compound blue, and then at the yellow and red, by whose farther addition that blue is converted into whiteness, which whiteness continues during the transit of the edge of the Ruler from I to 3, and after that by the successive deficience of its component Colours, turns first to compound yellow, and then to red, and last of all the red ceaseth at L. Then begin the Colours of the second Series, which succeed in order during the transit of the edge of the Ruler from 5 to O, and are more lively than before, because more expanded and severed. And for the same reason instead of the former white there intercedes between the blue and yellow a mixture of orange, yellow, green, blue and indigo, all which together ought to exhibit a dilute and imperfect green. So the Colours of the third Series all succeed in order; first, the violet, which a little interferes with the red of the second order, and is thereby inclined to a reddish purple; then the blue and green, which are less mix'd with other Colours, and consequently more lively than before, especially the green: Then follows the yellow, some of which towards the green is distinct and good, but that part of it towards the succeeding red, as also that red is mix'd with the violet and blue of the fourth Series, whereby various degrees of red very much inclining to purple are compounded. This violet and blue, which should succeed this red, being mixed with, and hidden in it, there succeeds a green. And this at first is much inclined to blue, but soon becomes a good green, the only unmix'd and lively Colour in this fourth Series. For as it verges towards the yellow, it begins to interfere with the Colours of the fifth Series, by whose mixture the succeeding yellow and red are very much diluted and made dirty, especially the yellow, which being the weaker Colour is scarce able to shew it self. After this the several Series interfere more and more, and their Colours become more and more intermix'd, till after three or four more revolutions (in which the red and blue predominate by turns) all sorts of Colours are in all places pretty equally blended, and compound an even whiteness. And since by the 15th Observation the Rays endued with one Colour are transmitted, where those of another Colour are reflected, the reason of the Colours made by the transmitted Light in the 9th and 20th Observations is from hence evident. If not only the Order and Species of these Colours, but also the precise thickness of the Plate, or thin Body at which they are exhibited, be desired in parts of an Inch, that may be also obtained by assistance of the 6th or 16th Observations. For according to those Observations the thickness of the thinned Air, which between two Glasses exhibited the most luminous parts of the first six Rings were 1/178000, 3/178000, 5/178000, 7/178000, 9/178000, 11/178000 parts of an Inch. Suppose the Light reflected most copiously at these thicknesses be the bright citrine yellow, or confine of yellow and orange, and these thicknesses will be F[Greek: l], F[Greek: m], F[Greek: u], F[Greek: x], F[Greek: o], F[Greek: t]. And this being known, it is easy to determine what thickness of Air is represented by G[Greek: ph], or by any other distance of the Ruler from AH. But farther, since by the 10th Observation the thickness of Air was to the thickness of Water, which between the same Glasses exhibited the same Colour, as 4 to 3, and by the 21st Observation the Colours of thin Bodies are not varied by varying the ambient Medium; the thickness of a Bubble of Water, exhibiting any Colour, will be 3/4 of the thickness of Air producing the same Colour. And so according to the same 10th and 21st Observations, the thickness of a Plate of Glass, whose Refraction of the mean refrangible Ray, is measured by the proportion of the Sines 31 to 20, may be 20/31 of the thickness of Air producing the same Colours; and the like of other Mediums. I do not affirm, that this proportion of 20 to 31, holds in all the Rays; for the Sines of other sorts of Rays have other Proportions. But the differences of those Proportions are so little that I do not here consider them. On these Grounds I have composed the following Table, wherein the thickness of Air, Water, and Glass, at which each Colour is most intense and specifick, is expressed in parts of an Inch divided into ten hundred thousand equal parts. Now if this Table be compared with the 6th Scheme, you will there see the constitution of each Colour, as to its Ingredients, or the original Colours of which it is compounded, and thence be enabled to judge of its Intenseness or Imperfection; which may suffice in explication of the 4th and 18th Observations, unless it be farther desired to delineate the manner how the Colours appear, when the two Object-glasses are laid upon one another. To do which, let there be described a large Arc of a Circle, and a streight Line which may touch that Arc, and parallel to that Tangent several occult Lines, at such distances from it, as the Numbers set against the several Colours in the Table denote. For the Arc, and its Tangent, will represent the Superficies of the Glasses terminating the interjacent Air; and the places where the occult Lines cut the Arc will show at what distances from the center, or Point of contact, each Colour is reflected. _The thickness of colour'd Plates and Particles of_ _____________|_______________ / \ Air. Water. Glass. |---------+----------+----------+ {Very black | 1/2 | 3/8 | 10/31 | {Black | 1 | 3/4 | 20/31 | {Beginning of | | | | { Black | 2 | 1-1/2 | 1-2/7 | Their Colours of the {Blue | 2-2/5 | 1-4/5 | 1-11/22 | first Order, {White | 5-1/4 | 3-7/8 | 3-2/5 | {Yellow | 7-1/9 | 5-1/3 | 4-3/5 | {Orange | 8 | 6 | 5-1/6 | {Red | 9 | 6-3/4 | 5-4/5 | |---------+----------+----------| {Violet | 11-1/6 | 8-3/8 | 7-1/5 | {Indigo | 12-5/6 | 9-5/8 | 8-2/11 | {Blue | 14 | 10-1/2 | 9 | {Green | 15-1/8 | 11-2/3 | 9-5/7 | Of the second order, {Yellow | 16-2/7 | 12-1/5 | 10-2/5 | {Orange | 17-2/9 | 13 | 11-1/9 | {Bright red | 18-1/3 | 13-3/4 | 11-5/6 | {Scarlet | 19-2/3 | 14-3/4 | 12-2/3 | |---------+----------+----------| {Purple | 21 | 15-3/4 | 13-11/20 | {Indigo | 22-1/10 | 16-4/7 | 14-1/4 | {Blue | 23-2/5 | 17-11/20 | 15-1/10 | Of the third Order, {Green | 25-1/5 | 18-9/10 | 16-1/4 | {Yellow | 27-1/7 | 20-1/3 | 17-1/2 | {Red | 29 | 21-3/4 | 18-5/7 | {Bluish red | 32 | 24 | 20-2/3 | |---------+----------+----------| {Bluish green | 34 | 25-1/2 | 22 | {Green | 35-2/7 | 26-1/2 | 22-3/4 | Of the fourth Order, {Yellowish green | 36 | 27 | 23-2/9 | {Red | 40-1/3 | 30-1/4 | 26 | |---------+----------+----------| {Greenish blue | 46 | 34-1/2 | 29-2/3 | Of the fifth Order, {Red | 52-1/2 | 39-3/8 | 34 | |---------+----------+----------| {Greenish blue | 58-3/4 | 44 | 38 | Of the sixth Order, {Red | 65 | 48-3/4 | 42 | |---------+----------+----------| Of the seventh Order, {Greenish blue | 71 | 53-1/4 | 45-4/5 | {Ruddy White | 77 | 57-3/4 | 49-2/3 | |---------+----------+----------| There are also other Uses of this Table: For by its assistance the thickness of the Bubble in the 19th Observation was determin'd by the Colours which it exhibited. And so the bigness of the parts of natural Bodies may be conjectured by their Colours, as shall be hereafter shewn. Also, if two or more very thin Plates be laid one upon another, so as to compose one Plate equalling them all in thickness, the resulting Colour may be hereby determin'd. For instance, Mr. _Hook_ observed, as is mentioned in his _Micrographia_, that a faint yellow Plate of _Muscovy_ Glass laid upon a blue one, constituted a very deep purple. The yellow of the first Order is a faint one, and the thickness of the Plate exhibiting it, according to the Table is 4-3/5, to which add 9, the thickness exhibiting blue of the second Order, and the Sum will be 13-3/5, which is the thickness exhibiting the purple of the third Order. To explain, in the next place, the circumstances of the 2d and 3d Observations; that is, how the Rings of the Colours may (by turning the Prisms about their common Axis the contrary way to that expressed in those Observations) be converted into white and black Rings, and afterwards into Rings of Colours again, the Colours of each Ring lying now in an inverted order; it must be remember'd, that those Rings of Colours are dilated by the obliquation of the Rays to the Air which intercedes the Glasses, and that according to the Table in the 7th Observation, their Dilatation or Increase of their Diameter is most manifest and speedy when they are obliquest. Now the Rays of yellow being more refracted by the first Superficies of the said Air than those of red, are thereby made more oblique to the second Superficies, at which they are reflected to produce the colour'd Rings, and consequently the yellow Circle in each Ring will be more dilated than the red; and the Excess of its Dilatation will be so much the greater, by how much the greater is the obliquity of the Rays, until at last it become of equal extent with the red of the same Ring. And for the same reason the green, blue and violet, will be also so much dilated by the still greater obliquity of their Rays, as to become all very nearly of equal extent with the red, that is, equally distant from the center of the Rings. And then all the Colours of the same Ring must be co-incident, and by their mixture exhibit a white Ring. And these white Rings must have black and dark Rings between them, because they do not spread and interfere with one another, as before. And for that reason also they must become distincter, and visible to far greater numbers. But yet the violet being obliquest will be something more dilated, in proportion to its extent, than the other Colours, and so very apt to appear at the exterior Verges of the white. Afterwards, by a greater obliquity of the Rays, the violet and blue become more sensibly dilated than the red and yellow, and so being farther removed from the center of the Rings, the Colours must emerge out of the white in an order contrary to that which they had before; the violet and blue at the exterior Limbs of each Ring, and the red and yellow at the interior. And the violet, by reason of the greatest obliquity of its Rays, being in proportion most of all expanded, will soonest appear at the exterior Limb of each white Ring, and become more conspicuous than the rest. And the several Series of Colours belonging to the several Rings, will, by their unfolding and spreading, begin again to interfere, and thereby render the Rings less distinct, and not visible to so great numbers. If instead of the Prisms the Object-glasses be made use of, the Rings which they exhibit become not white and distinct by the obliquity of the Eye, by reason that the Rays in their passage through that Air which intercedes the Glasses are very nearly parallel to those Lines in which they were first incident on the Glasses, and consequently the Rays endued with several Colours are not inclined one more than another to that Air, as it happens in the Prisms. There is yet another circumstance of these Experiments to be consider'd, and that is why the black and white Rings which when view'd at a distance appear distinct, should not only become confused by viewing them near at hand, but also yield a violet Colour at both the edges of every white Ring. And the reason is, that the Rays which enter the Eye at several parts of the Pupil, have several Obliquities to the Glasses, and those which are most oblique, if consider'd apart, would represent the Rings bigger than those which are the least oblique. Whence the breadth of the Perimeter of every white Ring is expanded outwards by the obliquest Rays, and inwards by the least oblique. And this Expansion is so much the greater by how much the greater is the difference of the Obliquity; that is, by how much the Pupil is wider, or the Eye nearer to the Glasses. And the breadth of the violet must be most expanded, because the Rays apt to excite a Sensation of that Colour are most oblique to a second or farther Superficies of the thinn'd Air at which they are reflected, and have also the greatest variation of Obliquity, which makes that Colour soonest emerge out of the edges of the white. And as the breadth of every Ring is thus augmented, the dark Intervals must be diminish'd, until the neighbouring Rings become continuous, and are blended, the exterior first, and then those nearer the center; so that they can no longer be distinguish'd apart, but seem to constitute an even and uniform whiteness. Among all the Observations there is none accompanied with so odd circumstances as the twenty-fourth. Of those the principal are, that in thin Plates, which to the naked Eye seem of an even and uniform transparent whiteness, without any terminations of Shadows, the Refraction of a Prism should make Rings of Colours appear, whereas it usually makes Objects appear colour'd only there where they are terminated with Shadows, or have parts unequally luminous; and that it should make those Rings exceedingly distinct and white, although it usually renders Objects confused and coloured. The Cause of these things you will understand by considering, that all the Rings of Colours are really in the Plate, when view'd with the naked Eye, although by reason of the great breadth of their Circumferences they so much interfere and are blended together, that they seem to constitute an uniform whiteness. But when the Rays pass through the Prism to the Eye, the Orbits of the several Colours in every Ring are refracted, some more than others, according to their degrees of Refrangibility: By which means the Colours on one side of the Ring (that is in the circumference on one side of its center), become more unfolded and dilated, and those on the other side more complicated and contracted. And where by a due Refraction they are so much contracted, that the several Rings become narrower than to interfere with one another, they must appear distinct, and also white, if the constituent Colours be so much contracted as to be wholly co-incident. But on the other side, where the Orbit of every Ring is made broader by the farther unfolding of its Colours, it must interfere more with other Rings than before, and so become less distinct. [Illustration: FIG. 7.] To explain this a little farther, suppose the concentrick Circles AV, and BX, [in _Fig._ 7.] represent the red and violet of any Order, which, together with the intermediate Colours, constitute any one of these Rings. Now these being view'd through a Prism, the violet Circle BX, will, by a greater Refraction, be farther translated from its place than the red AV, and so approach nearer to it on that side of the Circles, towards which the Refractions are made. For instance, if the red be translated to _av_, the violet may be translated to _bx_, so as to approach nearer to it at _x_ than before; and if the red be farther translated to av, the violet may be so much farther translated to bx as to convene with it at x; and if the red be yet farther translated to [Greek: aY], the violet may be still so much farther translated to [Greek: bx] as to pass beyond it at [Greek: x], and convene with it at _e_ and _f_. And this being understood not only of the red and violet, but of all the other intermediate Colours, and also of every revolution of those Colours, you will easily perceive how those of the same revolution or order, by their nearness at _xv_ and [Greek: Yx], and their coincidence at xv, _e_ and _f_, ought to constitute pretty distinct Arcs of Circles, especially at xv, or at _e_ and _f_; and that they will appear severally at _x_[Greek: u] and at xv exhibit whiteness by their coincidence, and again appear severally at [Greek: Yx], but yet in a contrary order to that which they had before, and still retain beyond _e_ and _f_. But on the other side, at _ab_, ab, or [Greek: ab], these Colours must become much more confused by being dilated and spread so as to interfere with those of other Orders. And the same confusion will happen at [Greek: Ux] between _e_ and _f_, if the Refraction be very great, or the Prism very distant from the Object-glasses: In which case no parts of the Rings will be seen, save only two little Arcs at _e_ and _f_, whose distance from one another will be augmented by removing the Prism still farther from the Object-glasses: And these little Arcs must be distinctest and whitest at their middle, and at their ends, where they begin to grow confused, they must be colour'd. And the Colours at one end of every Arc must be in a contrary order to those at the other end, by reason that they cross in the intermediate white; namely, their ends, which verge towards [Greek: Ux], will be red and yellow on that side next the center, and blue and violet on the other side. But their other ends which verge from [Greek: Ux], will on the contrary be blue and violet on that side towards the center, and on the other side red and yellow. Now as all these things follow from the properties of Light by a mathematical way of reasoning, so the truth of them may be manifested by Experiments. For in a dark Room, by viewing these Rings through a Prism, by reflexion of the several prismatick Colours, which an assistant causes to move to and fro upon a Wall or Paper from whence they are reflected, whilst the Spectator's Eye, the Prism, and the Object-glasses, (as in the 13th Observation,) are placed steady; the Position of the Circles made successively by the several Colours, will be found such, in respect of one another, as I have described in the Figures _abxv_, or abxv, or _[Greek: abxU]_. And by the same method the truth of the Explications of other Observations may be examined. By what hath been said, the like Phænomena of Water and thin Plates of Glass may be understood. But in small fragments of those Plates there is this farther observable, that where they lie flat upon a Table, and are turned about their centers whilst they are view'd through a Prism, they will in some postures exhibit Waves of various Colours; and some of them exhibit these Waves in one or two Positions only, but the most of them do in all Positions exhibit them, and make them for the most part appear almost all over the Plates. The reason is, that the Superficies of such Plates are not even, but have many Cavities and Swellings, which, how shallow soever, do a little vary the thickness of the Plate. For at the several sides of those Cavities, for the Reasons newly described, there ought to be produced Waves in several postures of the Prism. Now though it be but some very small and narrower parts of the Glass, by which these Waves for the most part are caused, yet they may seem to extend themselves over the whole Glass, because from the narrowest of those parts there are Colours of several Orders, that is, of several Rings, confusedly reflected, which by Refraction of the Prism are unfolded, separated, and, according to their degrees of Refraction, dispersed to several places, so as to constitute so many several Waves, as there were divers orders of Colours promiscuously reflected from that part of the Glass. These are the principal Phænomena of thin Plates or Bubbles, whose Explications depend on the properties of Light, which I have heretofore deliver'd. And these you see do necessarily follow from them, and agree with them, even to their very least circumstances; and not only so, but do very much tend to their proof. Thus, by the 24th Observation it appears, that the Rays of several Colours, made as well by thin Plates or Bubbles, as by Refractions of a Prism, have several degrees of Refrangibility; whereby those of each order, which at the reflexion from the Plate or Bubble are intermix'd with those of other orders, are separated from them by Refraction, and associated together so as to become visible by themselves like Arcs of Circles. For if the Rays were all alike refrangible, 'tis impossible that the whiteness, which to the naked Sense appears uniform, should by Refraction have its parts transposed and ranged into those black and white Arcs. It appears also that the unequal Refractions of difform Rays proceed not from any contingent irregularities; such as are Veins, an uneven Polish, or fortuitous Position of the Pores of Glass; unequal and casual Motions in the Air or Æther, the spreading, breaking, or dividing the same Ray into many diverging parts; or the like. For, admitting any such irregularities, it would be impossible for Refractions to render those Rings so very distinct, and well defined, as they do in the 24th Observation. It is necessary therefore that every Ray have its proper and constant degree of Refrangibility connate with it, according to which its refraction is ever justly and regularly perform'd; and that several Rays have several of those degrees. And what is said of their Refrangibility may be also understood of their Reflexibility, that is, of their Dispositions to be reflected, some at a greater, and others at a less thickness of thin Plates or Bubbles; namely, that those Dispositions are also connate with the Rays, and immutable; as may appear by the 13th, 14th, and 15th Observations, compared with the fourth and eighteenth. By the Precedent Observations it appears also, that whiteness is a dissimilar mixture of all Colours, and that Light is a mixture of Rays endued with all those Colours. For, considering the multitude of the Rings of Colours in the 3d, 12th, and 24th Observations, it is manifest, that although in the 4th and 18th Observations there appear no more than eight or nine of those Rings, yet there are really a far greater number, which so much interfere and mingle with one another, as after those eight or nine revolutions to dilute one another wholly, and constitute an even and sensibly uniform whiteness. And consequently that whiteness must be allow'd a mixture of all Colours, and the Light which conveys it to the Eye must be a mixture of Rays endued with all those Colours. But farther; by the 24th Observation it appears, that there is a constant relation between Colours and Refrangibility; the most refrangible Rays being violet, the least refrangible red, and those of intermediate Colours having proportionably intermediate degrees of Refrangibility. And by the 13th, 14th, and 15th Observations, compared with the 4th or 18th there appears to be the same constant relation between Colour and Reflexibility; the violet being in like circumstances reflected at least thicknesses of any thin Plate or Bubble, the red at greatest thicknesses, and the intermediate Colours at intermediate thicknesses. Whence it follows, that the colorifick Dispositions of Rays are also connate with them, and immutable; and by consequence, that all the Productions and Appearances of Colours in the World are derived, not from any physical Change caused in Light by Refraction or Reflexion, but only from the various Mixtures or Separations of Rays, by virtue of their different Refrangibility or Reflexibility. And in this respect the Science of Colours becomes a Speculation as truly mathematical as any other part of Opticks. I mean, so far as they depend on the Nature of Light, and are not produced or alter'd by the Power of Imagination, or by striking or pressing the Eye. THE SECOND BOOK OF OPTICKS _PART III._ _Of the permanent Colours of natural Bodies, and the Analogy between them and the Colours of thin transparent Plates._ I am now come to another part of this Design, which is to consider how the Phænomena of thin transparent Plates stand related to those of all other natural Bodies. Of these Bodies I have already told you that they appear of divers Colours, accordingly as they are disposed to reflect most copiously the Rays originally endued with those Colours. But their Constitutions, whereby they reflect some Rays more copiously than others, remain to be discover'd; and these I shall endeavour to manifest in the following Propositions. PROP. I. _Those Superficies of transparent Bodies reflect the greatest quantity of Light, which have the greatest refracting Power; that is, which intercede Mediums that differ most in their refractive Densities. And in the Confines of equally refracting Mediums there is no Reflexion._ The Analogy between Reflexion and Refraction will appear by considering, that when Light passeth obliquely out of one Medium into another which refracts from the perpendicular, the greater is the difference of their refractive Density, the less Obliquity of Incidence is requisite to cause a total Reflexion. For as the Sines are which measure the Refraction, so is the Sine of Incidence at which the total Reflexion begins, to the Radius of the Circle; and consequently that Angle of Incidence is least where there is the greatest difference of the Sines. Thus in the passing of Light out of Water into Air, where the Refraction is measured by the Ratio of the Sines 3 to 4, the total Reflexion begins when the Angle of Incidence is about 48 Degrees 35 Minutes. In passing out of Glass into Air, where the Refraction is measured by the Ratio of the Sines 20 to 31, the total Reflexion begins when the Angle of Incidence is 40 Degrees 10 Minutes; and so in passing out of Crystal, or more strongly refracting Mediums into Air, there is still a less obliquity requisite to cause a total reflexion. Superficies therefore which refract most do soonest reflect all the Light which is incident on them, and so must be allowed most strongly reflexive. But the truth of this Proposition will farther appear by observing, that in the Superficies interceding two transparent Mediums, (such as are Air, Water, Oil, common Glass, Crystal, metalline Glasses, Island Glasses, white transparent Arsenick, Diamonds, &c.) the Reflexion is stronger or weaker accordingly, as the Superficies hath a greater or less refracting Power. For in the Confine of Air and Sal-gem 'tis stronger than in the Confine of Air and Water, and still stronger in the Confine of Air and common Glass or Crystal, and stronger in the Confine of Air and a Diamond. If any of these, and such like transparent Solids, be immerged in Water, its Reflexion becomes, much weaker than before; and still weaker if they be immerged in the more strongly refracting Liquors of well rectified Oil of Vitriol or Spirit of Turpentine. If Water be distinguish'd into two parts by any imaginary Surface, the Reflexion in the Confine of those two parts is none at all. In the Confine of Water and Ice 'tis very little; in that of Water and Oil 'tis something greater; in that of Water and Sal-gem still greater; and in that of Water and Glass, or Crystal or other denser Substances still greater, accordingly as those Mediums differ more or less in their refracting Powers. Hence in the Confine of common Glass and Crystal, there ought to be a weak Reflexion, and a stronger Reflexion in the Confine of common and metalline Glass; though I have not yet tried this. But in the Confine of two Glasses of equal density, there is not any sensible Reflexion; as was shewn in the first Observation. And the same may be understood of the Superficies interceding two Crystals, or two Liquors, or any other Substances in which no Refraction is caused. So then the reason why uniform pellucid Mediums (such as Water, Glass, or Crystal,) have no sensible Reflexion but in their external Superficies, where they are adjacent to other Mediums of a different density, is because all their contiguous parts have one and the same degree of density. PROP. II. _The least parts of almost all natural Bodies are in some measure transparent: And the Opacity of those Bodies ariseth from the multitude of Reflexions caused in their internal Parts._ That this is so has been observed by others, and will easily be granted by them that have been conversant with Microscopes. And it may be also tried by applying any substance to a hole through which some Light is immitted into a dark Room. For how opake soever that Substance may seem in the open Air, it will by that means appear very manifestly transparent, if it be of a sufficient thinness. Only white metalline Bodies must be excepted, which by reason of their excessive density seem to reflect almost all the Light incident on their first Superficies; unless by solution in Menstruums they be reduced into very small Particles, and then they become transparent. PROP. III. _Between the parts of opake and colour'd Bodies are many Spaces, either empty, or replenish'd with Mediums of other Densities; as Water between the tinging Corpuscles wherewith any Liquor is impregnated, Air between the aqueous Globules that constitute Clouds or Mists; and for the most part Spaces void of both Air and Water, but yet perhaps not wholly void of all Substance, between the parts of hard Bodies._ The truth of this is evinced by the two precedent Propositions: For by the second Proposition there are many Reflexions made by the internal parts of Bodies, which, by the first Proposition, would not happen if the parts of those Bodies were continued without any such Interstices between them; because Reflexions are caused only in Superficies, which intercede Mediums of a differing density, by _Prop._ 1. But farther, that this discontinuity of parts is the principal Cause of the opacity of Bodies, will appear by considering, that opake Substances become transparent by filling their Pores with any Substance of equal or almost equal density with their parts. Thus Paper dipped in Water or Oil, the _Oculus Mundi_ Stone steep'd in Water, Linnen Cloth oiled or varnish'd, and many other Substances soaked in such Liquors as will intimately pervade their little Pores, become by that means more transparent than otherwise; so, on the contrary, the most transparent Substances, may, by evacuating their Pores, or separating their parts, be render'd sufficiently opake; as Salts or wet Paper, or the _Oculus Mundi_ Stone by being dried, Horn by being scraped, Glass by being reduced to Powder, or otherwise flawed; Turpentine by being stirred about with Water till they mix imperfectly, and Water by being form'd into many small Bubbles, either alone in the form of Froth, or by shaking it together with Oil of Turpentine, or Oil Olive, or with some other convenient Liquor, with which it will not perfectly incorporate. And to the increase of the opacity of these Bodies, it conduces something, that by the 23d Observation the Reflexions of very thin transparent Substances are considerably stronger than those made by the same Substances of a greater thickness. PROP. IV. _The Parts of Bodies and their Interstices must not be less than of some definite bigness, to render them opake and colour'd._ For the opakest Bodies, if their parts be subtilly divided, (as Metals, by being dissolved in acid Menstruums, &c.) become perfectly transparent. And you may also remember, that in the eighth Observation there was no sensible reflexion at the Superficies of the Object-glasses, where they were very near one another, though they did not absolutely touch. And in the 17th Observation the Reflexion of the Water-bubble where it became thinnest was almost insensible, so as to cause very black Spots to appear on the top of the Bubble, by the want of reflected Light. On these grounds I perceive it is that Water, Salt, Glass, Stones, and such like Substances, are transparent. For, upon divers Considerations, they seem to be as full of Pores or Interstices between their parts as other Bodies are, but yet their Parts and Interstices to be too small to cause Reflexions in their common Surfaces. PROP. V. _The transparent parts of Bodies, according to their several sizes, reflect Rays of one Colour, and transmit those of another, on the same grounds that thin Plates or Bubbles do reflect or transmit those Rays. And this I take to be the ground of all their Colours._ For if a thinn'd or plated Body, which being of an even thickness, appears all over of one uniform Colour, should be slit into Threads, or broken into Fragments, of the same thickness with the Plate; I see no reason why every Thread or Fragment should not keep its Colour, and by consequence why a heap of those Threads or Fragments should not constitute a Mass or Powder of the same Colour, which the Plate exhibited before it was broken. And the parts of all natural Bodies being like so many Fragments of a Plate, must on the same grounds exhibit the same Colours. Now, that they do so will appear by the affinity of their Properties. The finely colour'd Feathers of some Birds, and particularly those of Peacocks Tails, do, in the very same part of the Feather, appear of several Colours in several Positions of the Eye, after the very same manner that thin Plates were found to do in the 7th and 19th Observations, and therefore their Colours arise from the thinness of the transparent parts of the Feathers; that is, from the slenderness of the very fine Hairs, or _Capillamenta_, which grow out of the sides of the grosser lateral Branches or Fibres of those Feathers. And to the same purpose it is, that the Webs of some Spiders, by being spun very fine, have appeared colour'd, as some have observ'd, and that the colour'd Fibres of some Silks, by varying the Position of the Eye, do vary their Colour. Also the Colours of Silks, Cloths, and other Substances, which Water or Oil can intimately penetrate, become more faint and obscure by being immerged in those Liquors, and recover their Vigor again by being dried; much after the manner declared of thin Bodies in the 10th and 21st Observations. Leaf-Gold, some sorts of painted Glass, the Infusion of _Lignum Nephriticum_, and some other Substances, reflect one Colour, and transmit another; like thin Bodies in the 9th and 20th Observations. And some of those colour'd Powders which Painters use, may have their Colours a little changed, by being very elaborately and finely ground. Where I see not what can be justly pretended for those changes, besides the breaking of their parts into less parts by that contrition, after the same manner that the Colour of a thin Plate is changed by varying its thickness. For which reason also it is that the colour'd Flowers of Plants and Vegetables, by being bruised, usually become more transparent than before, or at least in some degree or other change their Colours. Nor is it much less to my purpose, that, by mixing divers Liquors, very odd and remarkable Productions and Changes of Colours may be effected, of which no cause can be more obvious and rational than that the saline Corpuscles of one Liquor do variously act upon or unite with the tinging Corpuscles of another, so as to make them swell, or shrink, (whereby not only their bulk but their density also may be changed,) or to divide them into smaller Corpuscles, (whereby a colour'd Liquor may become transparent,) or to make many of them associate into one cluster, whereby two transparent Liquors may compose a colour'd one. For we see how apt those saline Menstruums are to penetrate and dissolve Substances to which they are applied, and some of them to precipitate what others dissolve. In like manner, if we consider the various Phænomena of the Atmosphere, we may observe, that when Vapours are first raised, they hinder not the transparency of the Air, being divided into parts too small to cause any Reflexion in their Superficies. But when in order to compose drops of Rain they begin to coalesce and constitute Globules of all intermediate sizes, those Globules, when they become of convenient size to reflect some Colours and transmit others, may constitute Clouds of various Colours according to their sizes. And I see not what can be rationally conceived in so transparent a Substance as Water for the production of these Colours, besides the various sizes of its fluid and globular Parcels. PROP. VI. _The parts of Bodies on which their Colours depend, are denser than the Medium which pervades their Interstices._ This will appear by considering, that the Colour of a Body depends not only on the Rays which are incident perpendicularly on its parts, but on those also which are incident at all other Angles. And that according to the 7th Observation, a very little variation of obliquity will change the reflected Colour, where the thin Body or small Particles is rarer than the ambient Medium, insomuch that such a small Particle will at diversly oblique Incidences reflect all sorts of Colours, in so great a variety that the Colour resulting from them all, confusedly reflected from a heap of such Particles, must rather be a white or grey than any other Colour, or at best it must be but a very imperfect and dirty Colour. Whereas if the thin Body or small Particle be much denser than the ambient Medium, the Colours, according to the 19th Observation, are so little changed by the variation of obliquity, that the Rays which are reflected least obliquely may predominate over the rest, so much as to cause a heap of such Particles to appear very intensely of their Colour. It conduces also something to the confirmation of this Proposition, that, according to the 22d Observation, the Colours exhibited by the denser thin Body within the rarer, are more brisk than those exhibited by the rarer within the denser. PROP. VII. _The bigness of the component parts of natural Bodies may be conjectured by their Colours._ For since the parts of these Bodies, by _Prop._ 5. do most probably exhibit the same Colours with a Plate of equal thickness, provided they have the same refractive density; and since their parts seem for the most part to have much the same density with Water or Glass, as by many circumstances is obvious to collect; to determine the sizes of those parts, you need only have recourse to the precedent Tables, in which the thickness of Water or Glass exhibiting any Colour is expressed. Thus if it be desired to know the diameter of a Corpuscle, which being of equal density with Glass shall reflect green of the third Order; the Number 16-1/4 shews it to be (16-1/4)/10000 parts of an Inch. The greatest difficulty is here to know of what Order the Colour of any Body is. And for this end we must have recourse to the 4th and 18th Observations; from whence may be collected these particulars. _Scarlets_, and other _reds_, _oranges_, and _yellows_, if they be pure and intense, are most probably of the second order. Those of the first and third order also may be pretty good; only the yellow of the first order is faint, and the orange and red of the third Order have a great Mixture of violet and blue. There may be good _Greens_ of the fourth Order, but the purest are of the third. And of this Order the green of all Vegetables seems to be, partly by reason of the Intenseness of their Colours, and partly because when they wither some of them turn to a greenish yellow, and others to a more perfect yellow or orange, or perhaps to red, passing first through all the aforesaid intermediate Colours. Which Changes seem to be effected by the exhaling of the Moisture which may leave the tinging Corpuscles more dense, and something augmented by the Accretion of the oily and earthy Part of that Moisture. Now the green, without doubt, is of the same Order with those Colours into which it changeth, because the Changes are gradual, and those Colours, though usually not very full, yet are often too full and lively to be of the fourth Order. _Blues_ and _Purples_ may be either of the second or third Order, but the best are of the third. Thus the Colour of Violets seems to be of that Order, because their Syrup by acid Liquors turns red, and by urinous and alcalizate turns green. For since it is of the Nature of Acids to dissolve or attenuate, and of Alcalies to precipitate or incrassate, if the Purple Colour of the Syrup was of the second Order, an acid Liquor by attenuating its tinging Corpuscles would change it to a red of the first Order, and an Alcali by incrassating them would change it to a green of the second Order; which red and green, especially the green, seem too imperfect to be the Colours produced by these Changes. But if the said Purple be supposed of the third Order, its Change to red of the second, and green of the third, may without any Inconvenience be allow'd. If there be found any Body of a deeper and less reddish Purple than that of the Violets, its Colour most probably is of the second Order. But yet there being no Body commonly known whose Colour is constantly more deep than theirs, I have made use of their Name to denote the deepest and least reddish Purples, such as manifestly transcend their Colour in purity. The _blue_ of the first Order, though very faint and little, may possibly be the Colour of some Substances; and particularly the azure Colour of the Skies seems to be of this Order. For all Vapours when they begin to condense and coalesce into small Parcels, become first of that Bigness, whereby such an Azure must be reflected before they can constitute Clouds of other Colours. And so this being the first Colour which Vapours begin to reflect, it ought to be the Colour of the finest and most transparent Skies, in which Vapours are not arrived to that Grossness requisite to reflect other Colours, as we find it is by Experience. _Whiteness_, if most intense and luminous, is that of the first Order, if less strong and luminous, a Mixture of the Colours of several Orders. Of this last kind is the Whiteness of Froth, Paper, Linnen, and most white Substances; of the former I reckon that of white Metals to be. For whilst the densest of Metals, Gold, if foliated, is transparent, and all Metals become transparent if dissolved in Menstruums or vitrified, the Opacity of white Metals ariseth not from their Density alone. They being less dense than Gold would be more transparent than it, did not some other Cause concur with their Density to make them opake. And this Cause I take to be such a Bigness of their Particles as fits them to reflect the white of the first order. For, if they be of other Thicknesses they may reflect other Colours, as is manifest by the Colours which appear upon hot Steel in tempering it, and sometimes upon the Surface of melted Metals in the Skin or Scoria which arises upon them in their cooling. And as the white of the first order is the strongest which can be made by Plates of transparent Substances, so it ought to be stronger in the denser Substances of Metals than in the rarer of Air, Water, and Glass. Nor do I see but that metallick Substances of such a Thickness as may fit them to reflect the white of the first order, may, by reason of their great Density (according to the Tenor of the first of these Propositions) reflect all the Light incident upon them, and so be as opake and splendent as it's possible for any Body to be. Gold, or Copper mix'd with less than half their Weight of Silver, or Tin, or Regulus of Antimony, in fusion, or amalgamed with a very little Mercury, become white; which shews both that the Particles of white Metals have much more Superficies, and so are smaller, than those of Gold and Copper, and also that they are so opake as not to suffer the Particles of Gold or Copper to shine through them. Now it is scarce to be doubted but that the Colours of Gold and Copper are of the second and third order, and therefore the Particles of white Metals cannot be much bigger than is requisite to make them reflect the white of the first order. The Volatility of Mercury argues that they are not much bigger, nor may they be much less, lest they lose their Opacity, and become either transparent as they do when attenuated by Vitrification, or by Solution in Menstruums, or black as they do when ground smaller, by rubbing Silver, or Tin, or Lead, upon other Substances to draw black Lines. The first and only Colour which white Metals take by grinding their Particles smaller, is black, and therefore their white ought to be that which borders upon the black Spot in the Center of the Rings of Colours, that is, the white of the first order. But, if you would hence gather the Bigness of metallick Particles, you must allow for their Density. For were Mercury transparent, its Density is such that the Sine of Incidence upon it (by my Computation) would be to the Sine of its Refraction, as 71 to 20, or 7 to 2. And therefore the Thickness of its Particles, that they may exhibit the same Colours with those of Bubbles of Water, ought to be less than the Thickness of the Skin of those Bubbles in the Proportion of 2 to 7. Whence it's possible, that the Particles of Mercury may be as little as the Particles of some transparent and volatile Fluids, and yet reflect the white of the first order. Lastly, for the production of _black_, the Corpuscles must be less than any of those which exhibit Colours. For at all greater sizes there is too much Light reflected to constitute this Colour. But if they be supposed a little less than is requisite to reflect the white and very faint blue of the first order, they will, according to the 4th, 8th, 17th and 18th Observations, reflect so very little Light as to appear intensely black, and yet may perhaps variously refract it to and fro within themselves so long, until it happen to be stifled and lost, by which means they will appear black in all positions of the Eye without any transparency. And from hence may be understood why Fire, and the more subtile dissolver Putrefaction, by dividing the Particles of Substances, turn them to black, why small quantities of black Substances impart their Colour very freely and intensely to other Substances to which they are applied; the minute Particles of these, by reason of their very great number, easily overspreading the gross Particles of others; why Glass ground very elaborately with Sand on a Copper Plate, 'till it be well polish'd, makes the Sand, together with what is worn off from the Glass and Copper, become very black: why black Substances do soonest of all others become hot in the Sun's Light and burn, (which Effect may proceed partly from the multitude of Refractions in a little room, and partly from the easy Commotion of so very small Corpuscles;) and why blacks are usually a little inclined to a bluish Colour. For that they are so may be seen by illuminating white Paper by Light reflected from black Substances. For the Paper will usually appear of a bluish white; and the reason is, that black borders in the obscure blue of the order described in the 18th Observation, and therefore reflects more Rays of that Colour than of any other. In these Descriptions I have been the more particular, because it is not impossible but that Microscopes may at length be improved to the discovery of the Particles of Bodies on which their Colours depend, if they are not already in some measure arrived to that degree of perfection. For if those Instruments are or can be so far improved as with sufficient distinctness to represent Objects five or six hundred times bigger than at a Foot distance they appear to our naked Eyes, I should hope that we might be able to discover some of the greatest of those Corpuscles. And by one that would magnify three or four thousand times perhaps they might all be discover'd, but those which produce blackness. In the mean while I see nothing material in this Discourse that may rationally be doubted of, excepting this Position: That transparent Corpuscles of the same thickness and density with a Plate, do exhibit the same Colour. And this I would have understood not without some Latitude, as well because those Corpuscles may be of irregular Figures, and many Rays must be obliquely incident on them, and so have a shorter way through them than the length of their Diameters, as because the straitness of the Medium put in on all sides within such Corpuscles may a little alter its Motions or other qualities on which the Reflexion depends. But yet I cannot much suspect the last, because I have observed of some small Plates of Muscovy Glass which were of an even thickness, that through a Microscope they have appeared of the same Colour at their edges and corners where the included Medium was terminated, which they appeared of in other places. However it will add much to our Satisfaction, if those Corpuscles can be discover'd with Microscopes; which if we shall at length attain to, I fear it will be the utmost improvement of this Sense. For it seems impossible to see the more secret and noble Works of Nature within the Corpuscles by reason of their transparency. PROP. VIII. _The Cause of Reflexion is not the impinging of Light on the solid or impervious parts of Bodies, as is commonly believed._ This will appear by the following Considerations. First, That in the passage of Light out of Glass into Air there is a Reflexion as strong as in its passage out of Air into Glass, or rather a little stronger, and by many degrees stronger than in its passage out of Glass into Water. And it seems not probable that Air should have more strongly reflecting parts than Water or Glass. But if that should possibly be supposed, yet it will avail nothing; for the Reflexion is as strong or stronger when the Air is drawn away from the Glass, (suppose by the Air-Pump invented by _Otto Gueriet_, and improved and made useful by Mr. _Boyle_) as when it is adjacent to it. Secondly, If Light in its passage out of Glass into Air be incident more obliquely than at an Angle of 40 or 41 Degrees it is wholly reflected, if less obliquely it is in great measure transmitted. Now it is not to be imagined that Light at one degree of obliquity should meet with Pores enough in the Air to transmit the greater part of it, and at another degree of obliquity should meet with nothing but parts to reflect it wholly, especially considering that in its passage out of Air into Glass, how oblique soever be its Incidence, it finds Pores enough in the Glass to transmit a great part of it. If any Man suppose that it is not reflected by the Air, but by the outmost superficial parts of the Glass, there is still the same difficulty: Besides, that such a Supposition is unintelligible, and will also appear to be false by applying Water behind some part of the Glass instead of Air. For so in a convenient obliquity of the Rays, suppose of 45 or 46 Degrees, at which they are all reflected where the Air is adjacent to the Glass, they shall be in great measure transmitted where the Water is adjacent to it; which argues, that their Reflexion or Transmission depends on the constitution of the Air and Water behind the Glass, and not on the striking of the Rays upon the parts of the Glass. Thirdly, If the Colours made by a Prism placed at the entrance of a Beam of Light into a darken'd Room be successively cast on a second Prism placed at a greater distance from the former, in such manner that they are all alike incident upon it, the second Prism may be so inclined to the incident Rays, that those which are of a blue Colour shall be all reflected by it, and yet those of a red Colour pretty copiously transmitted. Now if the Reflexion be caused by the parts of Air or Glass, I would ask, why at the same Obliquity of Incidence the blue should wholly impinge on those parts, so as to be all reflected, and yet the red find Pores enough to be in a great measure transmitted. Fourthly, Where two Glasses touch one another, there is no sensible Reflexion, as was declared in the first Observation; and yet I see no reason why the Rays should not impinge on the parts of Glass, as much when contiguous to other Glass as when contiguous to Air. Fifthly, When the top of a Water-Bubble (in the 17th Observation,) by the continual subsiding and exhaling of the Water grew very thin, there was such a little and almost insensible quantity of Light reflected from it, that it appeared intensely black; whereas round about that black Spot, where the Water was thicker, the Reflexion was so strong as to make the Water seem very white. Nor is it only at the least thickness of thin Plates or Bubbles, that there is no manifest Reflexion, but at many other thicknesses continually greater and greater. For in the 15th Observation the Rays of the same Colour were by turns transmitted at one thickness, and reflected at another thickness, for an indeterminate number of Successions. And yet in the Superficies of the thinned Body, where it is of any one thickness, there are as many parts for the Rays to impinge on, as where it is of any other thickness. Sixthly, If Reflexion were caused by the parts of reflecting Bodies, it would be impossible for thin Plates or Bubbles, at one and the same place, to reflect the Rays of one Colour, and transmit those of another, as they do according to the 13th and 15th Observations. For it is not to be imagined that at one place the Rays which, for instance, exhibit a blue Colour, should have the fortune to dash upon the parts, and those which exhibit a red to hit upon the Pores of the Body; and then at another place, where the Body is either a little thicker or a little thinner, that on the contrary the blue should hit upon its pores, and the red upon its parts. Lastly, Were the Rays of Light reflected by impinging on the solid parts of Bodies, their Reflexions from polish'd Bodies could not be so regular as they are. For in polishing Glass with Sand, Putty, or Tripoly, it is not to be imagined that those Substances can, by grating and fretting the Glass, bring all its least Particles to an accurate Polish; so that all their Surfaces shall be truly plain or truly spherical, and look all the same way, so as together to compose one even Surface. The smaller the Particles of those Substances are, the smaller will be the Scratches by which they continually fret and wear away the Glass until it be polish'd; but be they never so small they can wear away the Glass no otherwise than by grating and scratching it, and breaking the Protuberances; and therefore polish it no otherwise than by bringing its roughness to a very fine Grain, so that the Scratches and Frettings of the Surface become too small to be visible. And therefore if Light were reflected by impinging upon the solid parts of the Glass, it would be scatter'd as much by the most polish'd Glass as by the roughest. So then it remains a Problem, how Glass polish'd by fretting Substances can reflect Light so regularly as it does. And this Problem is scarce otherwise to be solved, than by saying, that the Reflexion of a Ray is effected, not by a single point of the reflecting Body, but by some power of the Body which is evenly diffused all over its Surface, and by which it acts upon the Ray without immediate Contact. For that the parts of Bodies do act upon Light at a distance shall be shewn hereafter. Now if Light be reflected, not by impinging on the solid parts of Bodies, but by some other principle; it's probable that as many of its Rays as impinge on the solid parts of Bodies are not reflected but stifled and lost in the Bodies. For otherwise we must allow two sorts of Reflexions. Should all the Rays be reflected which impinge on the internal parts of clear Water or Crystal, those Substances would rather have a cloudy Colour than a clear Transparency. To make Bodies look black, it's necessary that many Rays be stopp'd, retained, and lost in them; and it seems not probable that any Rays can be stopp'd and stifled in them which do not impinge on their parts. And hence we may understand that Bodies are much more rare and porous than is commonly believed. Water is nineteen times lighter, and by consequence nineteen times rarer than Gold; and Gold is so rare as very readily and without the least opposition to transmit the magnetick Effluvia, and easily to admit Quicksilver into its Pores, and to let Water pass through it. For a concave Sphere of Gold filled with Water, and solder'd up, has, upon pressing the Sphere with great force, let the Water squeeze through it, and stand all over its outside in multitudes of small Drops, like Dew, without bursting or cracking the Body of the Gold, as I have been inform'd by an Eye witness. From all which we may conclude, that Gold has more Pores than solid parts, and by consequence that Water has above forty times more Pores than Parts. And he that shall find out an Hypothesis, by which Water may be so rare, and yet not be capable of compression by force, may doubtless by the same Hypothesis make Gold, and Water, and all other Bodies, as much rarer as he pleases; so that Light may find a ready passage through transparent Substances. The Magnet acts upon Iron through all dense Bodies not magnetick nor red hot, without any diminution of its Virtue; as for instance, through Gold, Silver, Lead, Glass, Water. The gravitating Power of the Sun is transmitted through the vast Bodies of the Planets without any diminution, so as to act upon all their parts to their very centers with the same Force and according to the same Laws, as if the part upon which it acts were not surrounded with the Body of the Planet, The Rays of Light, whether they be very small Bodies projected, or only Motion or Force propagated, are moved in right Lines; and whenever a Ray of Light is by any Obstacle turned out of its rectilinear way, it will never return into the same rectilinear way, unless perhaps by very great accident. And yet Light is transmitted through pellucid solid Bodies in right Lines to very great distances. How Bodies can have a sufficient quantity of Pores for producing these Effects is very difficult to conceive, but perhaps not altogether impossible. For the Colours of Bodies arise from the Magnitudes of the Particles which reflect them, as was explained above. Now if we conceive these Particles of Bodies to be so disposed amongst themselves, that the Intervals or empty Spaces between them may be equal in magnitude to them all; and that these Particles may be composed of other Particles much smaller, which have as much empty Space between them as equals all the Magnitudes of these smaller Particles: And that in like manner these smaller Particles are again composed of others much smaller, all which together are equal to all the Pores or empty Spaces between them; and so on perpetually till you come to solid Particles, such as have no Pores or empty Spaces within them: And if in any gross Body there be, for instance, three such degrees of Particles, the least of which are solid; this Body will have seven times more Pores than solid Parts. But if there be four such degrees of Particles, the least of which are solid, the Body will have fifteen times more Pores than solid Parts. If there be five degrees, the Body will have one and thirty times more Pores than solid Parts. If six degrees, the Body will have sixty and three times more Pores than solid Parts. And so on perpetually. And there are other ways of conceiving how Bodies may be exceeding porous. But what is really their inward Frame is not yet known to us. PROP. IX. _Bodies reflect and refract Light by one and the same power, variously exercised in various Circumstances._ This appears by several Considerations. First, Because when Light goes out of Glass into Air, as obliquely as it can possibly do. If its Incidence be made still more oblique, it becomes totally reflected. For the power of the Glass after it has refracted the Light as obliquely as is possible, if the Incidence be still made more oblique, becomes too strong to let any of its Rays go through, and by consequence causes total Reflexions. Secondly, Because Light is alternately reflected and transmitted by thin Plates of Glass for many Successions, accordingly as the thickness of the Plate increases in an arithmetical Progression. For here the thickness of the Glass determines whether that Power by which Glass acts upon Light shall cause it to be reflected, or suffer it to be transmitted. And, Thirdly, because those Surfaces of transparent Bodies which have the greatest refracting power, reflect the greatest quantity of Light, as was shewn in the first Proposition. PROP. X. _If Light be swifter in Bodies than in Vacuo, in the proportion of the Sines which measure the Refraction of the Bodies, the Forces of the Bodies to reflect and refract Light, are very nearly proportional to the densities of the same Bodies; excepting that unctuous and sulphureous Bodies refract more than others of this same density._ [Illustration: FIG. 8.] Let AB represent the refracting plane Surface of any Body, and IC a Ray incident very obliquely upon the Body in C, so that the Angle ACI may be infinitely little, and let CR be the refracted Ray. From a given Point B perpendicular to the refracting Surface erect BR meeting with the refracting Ray CR in R, and if CR represent the Motion of the refracted Ray, and this Motion be distinguish'd into two Motions CB and BR, whereof CB is parallel to the refracting Plane, and BR perpendicular to it: CB shall represent the Motion of the incident Ray, and BR the Motion generated by the Refraction, as Opticians have of late explain'd. Now if any Body or Thing, in moving through any Space of a given breadth terminated on both sides by two parallel Planes, be urged forward in all parts of that Space by Forces tending directly forwards towards the last Plane, and before its Incidence on the first Plane, had no Motion towards it, or but an infinitely little one; and if the Forces in all parts of that Space, between the Planes, be at equal distances from the Planes equal to one another, but at several distances be bigger or less in any given Proportion, the Motion generated by the Forces in the whole passage of the Body or thing through that Space shall be in a subduplicate Proportion of the Forces, as Mathematicians will easily understand. And therefore, if the Space of activity of the refracting Superficies of the Body be consider'd as such a Space, the Motion of the Ray generated by the refracting Force of the Body, during its passage through that Space, that is, the Motion BR, must be in subduplicate Proportion of that refracting Force. I say therefore, that the Square of the Line BR, and by consequence the refracting Force of the Body, is very nearly as the density of the same Body. For this will appear by the following Table, wherein the Proportion of the Sines which measure the Refractions of several Bodies, the Square of BR, supposing CB an unite, the Densities of the Bodies estimated by their Specifick Gravities, and their Refractive Power in respect of their Densities are set down in several Columns. ---------------------+----------------+----------------+----------+----------- | | | | | | The Square | The | The | | of BR, to | density | refractive | The Proportion | which the | and | Power of | of the Sines of| refracting | specifick| the Body | Incidence and | force of the | gravity | in respect The refracting | Refraction of | Body is | of the | of its Bodies. | yellow Light. | proportionate. | Body. | density. ---------------------+----------------+----------------+----------+----------- A Pseudo-Topazius, | | | | being a natural, | | | | pellucid, brittle, | 23 to 14 | 1'699 | 4'27 | 3979 hairy Stone, of a | | | | yellow Colour. | | | | Air. | 3201 to 3200 | 0'000625 | 0'0012 | 5208 Glass of Antimony. | 17 to 9 | 2'568 | 5'28 | 4864 A Selenitis. | 61 to 41 | 1'213 | 2'252 | 5386 Glass vulgar. | 31 to 20 | 1'4025 | 2'58 | 5436 Crystal of the Rock. | 25 to 16 | 1'445 | 2'65 | 5450 Island Crystal. | 5 to 3 | 1'778 | 2'72 | 6536 Sal Gemmæ. | 17 to 11 | 1'388 | 2'143 | 6477 Alume. | 35 to 24 | 1'1267 | 1'714 | 6570 Borax. | 22 to 15 | 1'1511 | 1'714 | 6716 Niter. | 32 to 21 | 1'345 | 1'9 | 7079 Dantzick Vitriol. | 303 to 200 | 1'295 | 1'715 | 7551 Oil of Vitriol. | 10 to 7 | 1'041 | 1'7 | 6124 Rain Water. | 529 to 396 | 0'7845 | 1' | 7845 Gum Arabick. | 31 to 21 | 1'179 | 1'375 | 8574 Spirit of Wine well | | | | rectified. | 100 to 73 | 0'8765 | 0'866 | 10121 Camphire. | 3 to 2 | 1'25 | 0'996 | 12551 Oil Olive. | 22 to 15 | 1'1511 | 0'913 | 12607 Linseed Oil. | 40 to 27 | 1'1948 | 0'932 | 12819 Spirit of Turpentine.| 25 to 17 | 1'1626 | 0'874 | 13222 Amber. | 14 to 9 | 1'42 | 1'04 | 13654 A Diamond. | 100 to 41 | 4'949 | 3'4 | 14556 ---------------------+----------------+----------------+----------+----------- The Refraction of the Air in this Table is determin'd by that of the Atmosphere observed by Astronomers. For, if Light pass through many refracting Substances or Mediums gradually denser and denser, and terminated with parallel Surfaces, the Sum of all the Refractions will be equal to the single Refraction which it would have suffer'd in passing immediately out of the first Medium into the last. And this holds true, though the Number of the refracting Substances be increased to Infinity, and the Distances from one another as much decreased, so that the Light may be refracted in every Point of its Passage, and by continual Refractions bent into a Curve-Line. And therefore the whole Refraction of Light in passing through the Atmosphere from the highest and rarest Part thereof down to the lowest and densest Part, must be equal to the Refraction which it would suffer in passing at like Obliquity out of a Vacuum immediately into Air of equal Density with that in the lowest Part of the Atmosphere. Now, although a Pseudo-Topaz, a Selenitis, Rock Crystal, Island Crystal, Vulgar Glass (that is, Sand melted together) and Glass of Antimony, which are terrestrial stony alcalizate Concretes, and Air which probably arises from such Substances by Fermentation, be Substances very differing from one another in Density, yet by this Table, they have their refractive Powers almost in the same Proportion to one another as their Densities are, excepting that the Refraction of that strange Substance, Island Crystal is a little bigger than the rest. And particularly Air, which is 3500 Times rarer than the Pseudo-Topaz, and 4400 Times rarer than Glass of Antimony, and 2000 Times rarer than the Selenitis, Glass vulgar, or Crystal of the Rock, has notwithstanding its rarity the same refractive Power in respect of its Density which those very dense Substances have in respect of theirs, excepting so far as those differ from one another. Again, the Refraction of Camphire, Oil Olive, Linseed Oil, Spirit of Turpentine and Amber, which are fat sulphureous unctuous Bodies, and a Diamond, which probably is an unctuous Substance coagulated, have their refractive Powers in Proportion to one another as their Densities without any considerable Variation. But the refractive Powers of these unctuous Substances are two or three Times greater in respect of their Densities than the refractive Powers of the former Substances in respect of theirs. Water has a refractive Power in a middle degree between those two sorts of Substances, and probably is of a middle nature. For out of it grow all vegetable and animal Substances, which consist as well of sulphureous fat and inflamable Parts, as of earthy lean and alcalizate ones. Salts and Vitriols have refractive Powers in a middle degree between those of earthy Substances and Water, and accordingly are composed of those two sorts of Substances. For by distillation and rectification of their Spirits a great Part of them goes into Water, and a great Part remains behind in the form of a dry fix'd Earth capable of Vitrification. Spirit of Wine has a refractive Power in a middle degree between those of Water and oily Substances, and accordingly seems to be composed of both, united by Fermentation; the Water, by means of some saline Spirits with which 'tis impregnated, dissolving the Oil, and volatizing it by the Action. For Spirit of Wine is inflamable by means of its oily Parts, and being distilled often from Salt of Tartar, grow by every distillation more and more aqueous and phlegmatick. And Chymists observe, that Vegetables (as Lavender, Rue, Marjoram, &c.) distilled _per se_, before fermentation yield Oils without any burning Spirits, but after fermentation yield ardent Spirits without Oils: Which shews, that their Oil is by fermentation converted into Spirit. They find also, that if Oils be poured in a small quantity upon fermentating Vegetables, they distil over after fermentation in the form of Spirits. So then, by the foregoing Table, all Bodies seem to have their refractive Powers proportional to their Densities, (or very nearly;) excepting so far as they partake more or less of sulphureous oily Particles, and thereby have their refractive Power made greater or less. Whence it seems rational to attribute the refractive Power of all Bodies chiefly, if not wholly, to the sulphureous Parts with which they abound. For it's probable that all Bodies abound more or less with Sulphurs. And as Light congregated by a Burning-glass acts most upon sulphureous Bodies, to turn them into Fire and Flame; so, since all Action is mutual, Sulphurs ought to act most upon Light. For that the action between Light and Bodies is mutual, may appear from this Consideration; That the densest Bodies which refract and reflect Light most strongly, grow hottest in the Summer Sun, by the action of the refracted or reflected Light. I have hitherto explain'd the power of Bodies to reflect and refract, and shew'd, that thin transparent Plates, Fibres, and Particles, do, according to their several thicknesses and densities, reflect several sorts of Rays, and thereby appear of several Colours; and by consequence that nothing more is requisite for producing all the Colours of natural Bodies, than the several sizes and densities of their transparent Particles. But whence it is that these Plates, Fibres, and Particles, do, according to their several thicknesses and densities, reflect several sorts of Rays, I have not yet explain'd. To give some insight into this matter, and make way for understanding the next part of this Book, I shall conclude this part with a few more Propositions. Those which preceded respect the nature of Bodies, these the nature of Light: For both must be understood, before the reason of their Actions upon one another can be known. And because the last Proposition depended upon the velocity of Light, I will begin with a Proposition of that kind. PROP. XI. _Light is propagated from luminous Bodies in time, and spends about seven or eight Minutes of an Hour in passing from the Sun to the Earth._ This was observed first by _Roemer_, and then by others, by means of the Eclipses of the Satellites of _Jupiter_. For these Eclipses, when the Earth is between the Sun and _Jupiter_, happen about seven or eight Minutes sooner than they ought to do by the Tables, and when the Earth is beyond the Sun they happen about seven or eight Minutes later than they ought to do; the reason being, that the Light of the Satellites has farther to go in the latter case than in the former by the Diameter of the Earth's Orbit. Some inequalities of time may arise from the Excentricities of the Orbs of the Satellites; but those cannot answer in all the Satellites, and at all times to the Position and Distance of the Earth from the Sun. The mean motions of _Jupiter_'s Satellites is also swifter in his descent from his Aphelium to his Perihelium, than in his ascent in the other half of his Orb. But this inequality has no respect to the position of the Earth, and in the three interior Satellites is insensible, as I find by computation from the Theory of their Gravity. PROP. XII. _Every Ray of Light in its passage through any refracting Surface is put into a certain transient Constitution or State, which in the progress of the Ray returns at equal Intervals, and disposes the Ray at every return to be easily transmitted through the next refracting Surface, and between the returns to be easily reflected by it._ This is manifest by the 5th, 9th, 12th, and 15th Observations. For by those Observations it appears, that one and the same sort of Rays at equal Angles of Incidence on any thin transparent Plate, is alternately reflected and transmitted for many Successions accordingly as the thickness of the Plate increases in arithmetical Progression of the Numbers, 0, 1, 2, 3, 4, 5, 6, 7, 8, &c. so that if the first Reflexion (that which makes the first or innermost of the Rings of Colours there described) be made at the thickness 1, the Rays shall be transmitted at the thicknesses 0, 2, 4, 6, 8, 10, 12, &c. and thereby make the central Spot and Rings of Light, which appear by transmission, and be reflected at the thickness 1, 3, 5, 7, 9, 11, &c. and thereby make the Rings which appear by Reflexion. And this alternate Reflexion and Transmission, as I gather by the 24th Observation, continues for above an hundred vicissitudes, and by the Observations in the next part of this Book, for many thousands, being propagated from one Surface of a Glass Plate to the other, though the thickness of the Plate be a quarter of an Inch or above: So that this alternation seems to be propagated from every refracting Surface to all distances without end or limitation. This alternate Reflexion and Refraction depends on both the Surfaces of every thin Plate, because it depends on their distance. By the 21st Observation, if either Surface of a thin Plate of _Muscovy_ Glass be wetted, the Colours caused by the alternate Reflexion and Refraction grow faint, and therefore it depends on them both. It is therefore perform'd at the second Surface; for if it were perform'd at the first, before the Rays arrive at the second, it would not depend on the second. It is also influenced by some action or disposition, propagated from the first to the second, because otherwise at the second it would not depend on the first. And this action or disposition, in its propagation, intermits and returns by equal Intervals, because in all its progress it inclines the Ray at one distance from the first Surface to be reflected by the second, at another to be transmitted by it, and that by equal Intervals for innumerable vicissitudes. And because the Ray is disposed to Reflexion at the distances 1, 3, 5, 7, 9, &c. and to Transmission at the distances 0, 2, 4, 6, 8, 10, &c. (for its transmission through the first Surface, is at the distance 0, and it is transmitted through both together, if their distance be infinitely little or much less than 1) the disposition to be transmitted at the distances 2, 4, 6, 8, 10, &c. is to be accounted a return of the same disposition which the Ray first had at the distance 0, that is at its transmission through the first refracting Surface. All which is the thing I would prove. What kind of action or disposition this is; Whether it consists in a circulating or a vibrating motion of the Ray, or of the Medium, or something else, I do not here enquire. Those that are averse from assenting to any new Discoveries, but such as they can explain by an Hypothesis, may for the present suppose, that as Stones by falling upon Water put the Water into an undulating Motion, and all Bodies by percussion excite vibrations in the Air; so the Rays of Light, by impinging on any refracting or reflecting Surface, excite vibrations in the refracting or reflecting Medium or Substance, and by exciting them agitate the solid parts of the refracting or reflecting Body, and by agitating them cause the Body to grow warm or hot; that the vibrations thus excited are propagated in the refracting or reflecting Medium or Substance, much after the manner that vibrations are propagated in the Air for causing Sound, and move faster than the Rays so as to overtake them; and that when any Ray is in that part of the vibration which conspires with its Motion, it easily breaks through a refracting Surface, but when it is in the contrary part of the vibration which impedes its Motion, it is easily reflected; and, by consequence, that every Ray is successively disposed to be easily reflected, or easily transmitted, by every vibration which overtakes it. But whether this Hypothesis be true or false I do not here consider. I content my self with the bare Discovery, that the Rays of Light are by some cause or other alternately disposed to be reflected or refracted for many vicissitudes. DEFINITION. _The returns of the disposition of any Ray to be reflected I will call its_ Fits of easy Reflexion, _and those of its disposition to be transmitted its_ Fits of easy Transmission, _and the space it passes between every return and the next return, the_ Interval of its Fits. PROP. XIII. _The reason why the Surfaces of all thick transparent Bodies reflect part of the Light incident on them, and refract the rest, is, that some Rays at their Incidence are in Fits of easy Reflexion, and others in Fits of easy Transmission._ This may be gather'd from the 24th Observation, where the Light reflected by thin Plates of Air and Glass, which to the naked Eye appear'd evenly white all over the Plate, did through a Prism appear waved with many Successions of Light and Darkness made by alternate Fits of easy Reflexion and easy Transmission, the Prism severing and distinguishing the Waves of which the white reflected Light was composed, as was explain'd above. And hence Light is in Fits of easy Reflexion and easy Transmission, before its Incidence on transparent Bodies. And probably it is put into such fits at its first emission from luminous Bodies, and continues in them during all its progress. For these Fits are of a lasting nature, as will appear by the next part of this Book. In this Proposition I suppose the transparent Bodies to be thick; because if the thickness of the Body be much less than the Interval of the Fits of easy Reflexion and Transmission of the Rays, the Body loseth its reflecting power. For if the Rays, which at their entering into the Body are put into Fits of easy Transmission, arrive at the farthest Surface of the Body before they be out of those Fits, they must be transmitted. And this is the reason why Bubbles of Water lose their reflecting power when they grow very thin; and why all opake Bodies, when reduced into very small parts, become transparent. PROP. XIV. _Those Surfaces of transparent Bodies, which if the Ray be in a Fit of Refraction do refract it most strongly, if the Ray be in a Fit of Reflexion do reflect it most easily._ For we shewed above, in _Prop._ 8. that the cause of Reflexion is not the impinging of Light on the solid impervious parts of Bodies, but some other power by which those solid parts act on Light at a distance. We shewed also in _Prop._ 9. that Bodies reflect and refract Light by one and the same power, variously exercised in various circumstances; and in _Prop._ 1. that the most strongly refracting Surfaces reflect the most Light: All which compared together evince and rarify both this and the last Proposition. PROP. XV. _In any one and the same sort of Rays, emerging in any Angle out of any refracting Surface into one and the same Medium, the Interval of the following Fits of easy Reflexion and Transmission are either accurately or very nearly, as the Rectangle of the Secant of the Angle of Refraction, and of the Secant of another Angle, whose Sine is the first of 106 arithmetical mean Proportionals, between the Sines of Incidence and Refraction, counted from the Sine of Refraction._ This is manifest by the 7th and 19th Observations. PROP. XVI. _In several sorts of Rays emerging in equal Angles out of any refracting Surface into the same Medium, the Intervals of the following Fits of easy Reflexion and easy Transmission are either accurately, or very nearly, as the Cube-Roots of the Squares of the lengths of a Chord, which found the Notes in an Eight_, sol, la, fa, sol, la, mi, fa, sol, _with all their intermediate degrees answering to the Colours of those Rays, according to the Analogy described in the seventh Experiment of the second Part of the first Book._ This is manifest by the 13th and 14th Observations. PROP. XVII. _If Rays of any sort pass perpendicularly into several Mediums, the Intervals of the Fits of easy Reflexion and Transmission in any one Medium, are to those Intervals in any other, as the Sine of Incidence to the Sine of Refraction, when the Rays pass out of the first of those two Mediums into the second._ This is manifest by the 10th Observation. PROP. XVIII. _If the Rays which paint the Colour in the Confine of yellow and orange pass perpendicularly out of any Medium into Air, the Intervals of their Fits of easy Reflexion are the 1/89000th part of an Inch. And of the same length are the Intervals of their Fits of easy Transmission._ This is manifest by the 6th Observation. From these Propositions it is easy to collect the Intervals of the Fits of easy Reflexion and easy Transmission of any sort of Rays refracted in any angle into any Medium; and thence to know, whether the Rays shall be reflected or transmitted at their subsequent Incidence upon any other pellucid Medium. Which thing, being useful for understanding the next part of this Book, was here to be set down. And for the same reason I add the two following Propositions. PROP. XIX. _If any sort of Rays falling on the polite Surface of any pellucid Medium be reflected back, the Fits of easy Reflexion, which they have at the point of Reflexion, shall still continue to return; and the Returns shall be at distances from the point of Reflexion in the arithmetical progression of the Numbers 2, 4, 6, 8, 10, 12, &c. and between these Fits the Rays shall be in Fits of easy Transmission._ For since the Fits of easy Reflexion and easy Transmission are of a returning nature, there is no reason why these Fits, which continued till the Ray arrived at the reflecting Medium, and there inclined the Ray to Reflexion, should there cease. And if the Ray at the point of Reflexion was in a Fit of easy Reflexion, the progression of the distances of these Fits from that point must begin from 0, and so be of the Numbers 0, 2, 4, 6, 8, &c. And therefore the progression of the distances of the intermediate Fits of easy Transmission, reckon'd from the same point, must be in the progression of the odd Numbers 1, 3, 5, 7, 9, &c. contrary to what happens when the Fits are propagated from points of Refraction. PROP. XX. _The Intervals of the Fits of easy Reflexion and easy Transmission, propagated from points of Reflexion into any Medium, are equal to the Intervals of the like Fits, which the same Rays would have, if refracted into the same Medium in Angles of Refraction equal to their Angles of Reflexion._ For when Light is reflected by the second Surface of thin Plates, it goes out afterwards freely at the first Surface to make the Rings of Colours which appear by Reflexion; and, by the freedom of its egress, makes the Colours of these Rings more vivid and strong than those which appear on the other side of the Plates by the transmitted Light. The reflected Rays are therefore in Fits of easy Transmission at their egress; which would not always happen, if the Intervals of the Fits within the Plate after Reflexion were not equal, both in length and number, to their Intervals before it. And this confirms also the proportions set down in the former Proposition. For if the Rays both in going in and out at the first Surface be in Fits of easy Transmission, and the Intervals and Numbers of those Fits between the first and second Surface, before and after Reflexion, be equal, the distances of the Fits of easy Transmission from either Surface, must be in the same progression after Reflexion as before; that is, from the first Surface which transmitted them in the progression of the even Numbers 0, 2, 4, 6, 8, &c. and from the second which reflected them, in that of the odd Numbers 1, 3, 5, 7, &c. But these two Propositions will become much more evident by the Observations in the following part of this Book. THE SECOND BOOK OF OPTICKS _PART IV._ _Observations concerning the Reflexions and Colours of thick transparent polish'd Plates._ There is no Glass or Speculum how well soever polished, but, besides the Light which it refracts or reflects regularly, scatters every way irregularly a faint Light, by means of which the polish'd Surface, when illuminated in a dark room by a beam of the Sun's Light, may be easily seen in all positions of the Eye. There are certain Phænomena of this scatter'd Light, which when I first observed them, seem'd very strange and surprizing to me. My Observations were as follows. _Obs._ 1. The Sun shining into my darken'd Chamber through a hole one third of an Inch wide, I let the intromitted beam of Light fall perpendicularly upon a Glass Speculum ground concave on one side and convex on the other, to a Sphere of five Feet and eleven Inches Radius, and Quick-silver'd over on the convex side. And holding a white opake Chart, or a Quire of Paper at the center of the Spheres to which the Speculum was ground, that is, at the distance of about five Feet and eleven Inches from the Speculum, in such manner, that the beam of Light might pass through a little hole made in the middle of the Chart to the Speculum, and thence be reflected back to the same hole: I observed upon the Chart four or five concentric Irises or Rings of Colours, like Rain-bows, encompassing the hole much after the manner that those, which in the fourth and following Observations of the first part of this Book appear'd between the Object-glasses, encompassed the black Spot, but yet larger and fainter than those. These Rings as they grew larger and larger became diluter and fainter, so that the fifth was scarce visible. Yet sometimes, when the Sun shone very clear, there appear'd faint Lineaments of a sixth and seventh. If the distance of the Chart from the Speculum was much greater or much less than that of six Feet, the Rings became dilute and vanish'd. And if the distance of the Speculum from the Window was much greater than that of six Feet, the reflected beam of Light would be so broad at the distance of six Feet from the Speculum where the Rings appear'd, as to obscure one or two of the innermost Rings. And therefore I usually placed the Speculum at about six Feet from the Window; so that its Focus might there fall in with the center of its concavity at the Rings upon the Chart. And this Posture is always to be understood in the following Observations where no other is express'd. _Obs._ 2. The Colours of these Rain-bows succeeded one another from the center outwards, in the same form and order with those which were made in the ninth Observation of the first Part of this Book by Light not reflected, but transmitted through the two Object-glasses. For, first, there was in their common center a white round Spot of faint Light, something broader than the reflected beam of Light, which beam sometimes fell upon the middle of the Spot, and sometimes by a little inclination of the Speculum receded from the middle, and left the Spot white to the center. This white Spot was immediately encompassed with a dark grey or russet, and that dark grey with the Colours of the first Iris; which Colours on the inside next the dark grey were a little violet and indigo, and next to that a blue, which on the outside grew pale, and then succeeded a little greenish yellow, and after that a brighter yellow, and then on the outward edge of the Iris a red which on the outside inclined to purple. This Iris was immediately encompassed with a second, whose Colours were in order from the inside outwards, purple, blue, green, yellow, light red, a red mix'd with purple. Then immediately follow'd the Colours of the third Iris, which were in order outwards a green inclining to purple, a good green, and a red more bright than that of the former Iris. The fourth and fifth Iris seem'd of a bluish green within, and red without, but so faintly that it was difficult to discern the Colours. _Obs._ 3. Measuring the Diameters of these Rings upon the Chart as accurately as I could, I found them also in the same proportion to one another with the Rings made by Light transmitted through the two Object-glasses. For the Diameters of the four first of the bright Rings measured between the brightest parts of their Orbits, at the distance of six Feet from the Speculum were 1-11/16, 2-3/8, 2-11/12, 3-3/8 Inches, whose Squares are in arithmetical progression of the numbers 1, 2, 3, 4. If the white circular Spot in the middle be reckon'd amongst the Rings, and its central Light, where it seems to be most luminous, be put equipollent to an infinitely little Ring; the Squares of the Diameters of the Rings will be in the progression 0, 1, 2, 3, 4, &c. I measured also the Diameters of the dark Circles between these luminous ones, and found their Squares in the progression of the numbers 1/2, 1-1/2, 2-1/2, 3-1/2, &c. the Diameters of the first four at the distance of six Feet from the Speculum, being 1-3/16, 2-1/16, 2-2/3, 3-3/20 Inches. If the distance of the Chart from the Speculum was increased or diminished, the Diameters of the Circles were increased or diminished proportionally. _Obs._ 4. By the analogy between these Rings and those described in the Observations of the first Part of this Book, I suspected that there were many more of them which spread into one another, and by interfering mix'd their Colours, and diluted one another so that they could not be seen apart. I viewed them therefore through a Prism, as I did those in the 24th Observation of the first Part of this Book. And when the Prism was so placed as by refracting the Light of their mix'd Colours to separate them, and distinguish the Rings from one another, as it did those in that Observation, I could then see them distincter than before, and easily number eight or nine of them, and sometimes twelve or thirteen. And had not their Light been so very faint, I question not but that I might have seen many more. _Obs._ 5. Placing a Prism at the Window to refract the intromitted beam of Light, and cast the oblong Spectrum of Colours on the Speculum: I covered the Speculum with a black Paper which had in the middle of it a hole to let any one of the Colours pass through to the Speculum, whilst the rest were intercepted by the Paper. And now I found Rings of that Colour only which fell upon the Speculum. If the Speculum was illuminated with red, the Rings were totally red with dark Intervals, if with blue they were totally blue, and so of the other Colours. And when they were illuminated with any one Colour, the Squares of their Diameters measured between their most luminous Parts, were in the arithmetical Progression of the Numbers, 0, 1, 2, 3, 4 and the Squares of the Diameters of their dark Intervals in the Progression of the intermediate Numbers 1/2, 1-1/2, 2-1/2, 3-1/2. But if the Colour was varied, they varied their Magnitude. In the red they were largest, in the indigo and violet least, and in the intermediate Colours yellow, green, and blue, they were of several intermediate Bignesses answering to the Colour, that is, greater in yellow than in green, and greater in green than in blue. And hence I knew, that when the Speculum was illuminated with white Light, the red and yellow on the outside of the Rings were produced by the least refrangible Rays, and the blue and violet by the most refrangible, and that the Colours of each Ring spread into the Colours of the neighbouring Rings on either side, after the manner explain'd in the first and second Part of this Book, and by mixing diluted one another so that they could not be distinguish'd, unless near the Center where they were least mix'd. For in this Observation I could see the Rings more distinctly, and to a greater Number than before, being able in the yellow Light to number eight or nine of them, besides a faint shadow of a tenth. To satisfy my self how much the Colours of the several Rings spread into one another, I measured the Diameters of the second and third Rings, and found them when made by the Confine of the red and orange to be to the same Diameters when made by the Confine of blue and indigo, as 9 to 8, or thereabouts. For it was hard to determine this Proportion accurately. Also the Circles made successively by the red, yellow, and green, differ'd more from one another than those made successively by the green, blue, and indigo. For the Circle made by the violet was too dark to be seen. To carry on the Computation, let us therefore suppose that the Differences of the Diameters of the Circles made by the outmost red, the Confine of red and orange, the Confine of orange and yellow, the Confine of yellow and green, the Confine of green and blue, the Confine of blue and indigo, the Confine of indigo and violet, and outmost violet, are in proportion as the Differences of the Lengths of a Monochord which sound the Tones in an Eight; _sol_, _la_, _fa_, _sol_, _la_, _mi_, _fa_, _sol_, that is, as the Numbers 1/9, 1/18, 1/12, 1/12, 2/27, 1/27, 1/18. And if the Diameter of the Circle made by the Confine of red and orange be 9A, and that of the Circle made by the Confine of blue and indigo be 8A as above; their difference 9A-8A will be to the difference of the Diameters of the Circles made by the outmost red, and by the Confine of red and orange, as 1/18 + 1/12 + 1/12 + 2/27 to 1/9, that is as 8/27 to 1/9, or 8 to 3, and to the difference of the Circles made by the outmost violet, and by the Confine of blue and indigo, as 1/18 + 1/12 + 1/12 + 2/27 to 1/27 + 1/18, that is, as 8/27 to 5/54, or as 16 to 5. And therefore these differences will be 3/8A and 5/16A. Add the first to 9A and subduct the last from 8A, and you will have the Diameters of the Circles made by the least and most refrangible Rays 75/8A and ((61-1/2)/8)A. These diameters are therefore to one another as 75 to 61-1/2 or 50 to 41, and their Squares as 2500 to 1681, that is, as 3 to 2 very nearly. Which proportion differs not much from the proportion of the Diameters of the Circles made by the outmost red and outmost violet, in the 13th Observation of the first part of this Book. _Obs._ 6. Placing my Eye where these Rings appear'd plainest, I saw the Speculum tinged all over with Waves of Colours, (red, yellow, green, blue;) like those which in the Observations of the first part of this Book appeared between the Object-glasses, and upon Bubbles of Water, but much larger. And after the manner of those, they were of various magnitudes in various Positions of the Eye, swelling and shrinking as I moved my Eye this way and that way. They were formed like Arcs of concentrick Circles, as those were; and when my Eye was over against the center of the concavity of the Speculum, (that is, 5 Feet and 10 Inches distant from the Speculum,) their common center was in a right Line with that center of concavity, and with the hole in the Window. But in other postures of my Eye their center had other positions. They appear'd by the Light of the Clouds propagated to the Speculum through the hole in the Window; and when the Sun shone through that hole upon the Speculum, his Light upon it was of the Colour of the Ring whereon it fell, but by its splendor obscured the Rings made by the Light of the Clouds, unless when the Speculum was removed to a great distance from the Window, so that his Light upon it might be broad and faint. By varying the position of my Eye, and moving it nearer to or farther from the direct beam of the Sun's Light, the Colour of the Sun's reflected Light constantly varied upon the Speculum, as it did upon my Eye, the same Colour always appearing to a Bystander upon my Eye which to me appear'd upon the Speculum. And thence I knew that the Rings of Colours upon the Chart were made by these reflected Colours, propagated thither from the Speculum in several Angles, and that their production depended not upon the termination of Light and Shadow. _Obs._ 7. By the Analogy of all these Phænomena with those of the like Rings of Colours described in the first part of this Book, it seemed to me that these Colours were produced by this thick Plate of Glass, much after the manner that those were produced by very thin Plates. For, upon trial, I found that if the Quick-silver were rubb'd off from the backside of the Speculum, the Glass alone would cause the same Rings of Colours, but much more faint than before; and therefore the Phænomenon depends not upon the Quick-silver, unless so far as the Quick-silver by increasing the Reflexion of the backside of the Glass increases the Light of the Rings of Colours. I found also that a Speculum of Metal without Glass made some Years since for optical uses, and very well wrought, produced none of those Rings; and thence I understood that these Rings arise not from one specular Surface alone, but depend upon the two Surfaces of the Plate of Glass whereof the Speculum was made, and upon the thickness of the Glass between them. For as in the 7th and 19th Observations of the first part of this Book a thin Plate of Air, Water, or Glass of an even thickness appeared of one Colour when the Rays were perpendicular to it, of another when they were a little oblique, of another when more oblique, of another when still more oblique, and so on; so here, in the sixth Observation, the Light which emerged out of the Glass in several Obliquities, made the Glass appear of several Colours, and being propagated in those Obliquities to the Chart, there painted Rings of those Colours. And as the reason why a thin Plate appeared of several Colours in several Obliquities of the Rays, was, that the Rays of one and the same sort are reflected by the thin Plate at one obliquity and transmitted at another, and those of other sorts transmitted where these are reflected, and reflected where these are transmitted: So the reason why the thick Plate of Glass whereof the Speculum was made did appear of various Colours in various Obliquities, and in those Obliquities propagated those Colours to the Chart, was, that the Rays of one and the same sort did at one Obliquity emerge out of the Glass, at another did not emerge, but were reflected back towards the Quick-silver by the hither Surface of the Glass, and accordingly as the Obliquity became greater and greater, emerged and were reflected alternately for many Successions; and that in one and the same Obliquity the Rays of one sort were reflected, and those of another transmitted. This is manifest by the fifth Observation of this part of this Book. For in that Observation, when the Speculum was illuminated by any one of the prismatick Colours, that Light made many Rings of the same Colour upon the Chart with dark Intervals, and therefore at its emergence out of the Speculum was alternately transmitted and not transmitted from the Speculum to the Chart for many Successions, according to the various Obliquities of its Emergence. And when the Colour cast on the Speculum by the Prism was varied, the Rings became of the Colour cast on it, and varied their bigness with their Colour, and therefore the Light was now alternately transmitted and not transmitted from the Speculum to the Chart at other Obliquities than before. It seemed to me therefore that these Rings were of one and the same original with those of thin Plates, but yet with this difference, that those of thin Plates are made by the alternate Reflexions and Transmissions of the Rays at the second Surface of the Plate, after one passage through it; but here the Rays go twice through the Plate before they are alternately reflected and transmitted. First, they go through it from the first Surface to the Quick-silver, and then return through it from the Quick-silver to the first Surface, and there are either transmitted to the Chart or reflected back to the Quick-silver, accordingly as they are in their Fits of easy Reflexion or Transmission when they arrive at that Surface. For the Intervals of the Fits of the Rays which fall perpendicularly on the Speculum, and are reflected back in the same perpendicular Lines, by reason of the equality of these Angles and Lines, are of the same length and number within the Glass after Reflexion as before, by the 19th Proposition of the third part of this Book. And therefore since all the Rays that enter through the first Surface are in their Fits of easy Transmission at their entrance, and as many of these as are reflected by the second are in their Fits of easy Reflexion there, all these must be again in their Fits of easy Transmission at their return to the first, and by consequence there go out of the Glass to the Chart, and form upon it the white Spot of Light in the center of the Rings. For the reason holds good in all sorts of Rays, and therefore all sorts must go out promiscuously to that Spot, and by their mixture cause it to be white. But the Intervals of the Fits of those Rays which are reflected more obliquely than they enter, must be greater after Reflexion than before, by the 15th and 20th Propositions. And thence it may happen that the Rays at their return to the first Surface, may in certain Obliquities be in Fits of easy Reflexion, and return back to the Quick-silver, and in other intermediate Obliquities be again in Fits of easy Transmission, and so go out to the Chart, and paint on it the Rings of Colours about the white Spot. And because the Intervals of the Fits at equal obliquities are greater and fewer in the less refrangible Rays, and less and more numerous in the more refrangible, therefore the less refrangible at equal obliquities shall make fewer Rings than the more refrangible, and the Rings made by those shall be larger than the like number of Rings made by these; that is, the red Rings shall be larger than the yellow, the yellow than the green, the green than the blue, and the blue than the violet, as they were really found to be in the fifth Observation. And therefore the first Ring of all Colours encompassing the white Spot of Light shall be red without any violet within, and yellow, and green, and blue in the middle, as it was found in the second Observation; and these Colours in the second Ring, and those that follow, shall be more expanded, till they spread into one another, and blend one another by interfering. These seem to be the reasons of these Rings in general; and this put me upon observing the thickness of the Glass, and considering whether the dimensions and proportions of the Rings may be truly derived from it by computation. _Obs._ 8. I measured therefore the thickness of this concavo-convex Plate of Glass, and found it every where 1/4 of an Inch precisely. Now, by the sixth Observation of the first Part of this Book, a thin Plate of Air transmits the brightest Light of the first Ring, that is, the bright yellow, when its thickness is the 1/89000th part of an Inch; and by the tenth Observation of the same Part, a thin Plate of Glass transmits the same Light of the same Ring, when its thickness is less in proportion of the Sine of Refraction to the Sine of Incidence, that is, when its thickness is the 11/1513000th or 1/137545th part of an Inch, supposing the Sines are as 11 to 17. And if this thickness be doubled, it transmits the same bright Light of the second Ring; if tripled, it transmits that of the third, and so on; the bright yellow Light in all these cases being in its Fits of Transmission. And therefore if its thickness be multiplied 34386 times, so as to become 1/4 of an Inch, it transmits the same bright Light of the 34386th Ring. Suppose this be the bright yellow Light transmitted perpendicularly from the reflecting convex side of the Glass through the concave side to the white Spot in the center of the Rings of Colours on the Chart: And by a Rule in the 7th and 19th Observations in the first Part of this Book, and by the 15th and 20th Propositions of the third Part of this Book, if the Rays be made oblique to the Glass, the thickness of the Glass requisite to transmit the same bright Light of the same Ring in any obliquity, is to this thickness of 1/4 of an Inch, as the Secant of a certain Angle to the Radius, the Sine of which Angle is the first of an hundred and six arithmetical Means between the Sines of Incidence and Refraction, counted from the Sine of Incidence when the Refraction is made out of any plated Body into any Medium encompassing it; that is, in this case, out of Glass into Air. Now if the thickness of the Glass be increased by degrees, so as to bear to its first thickness, (_viz._ that of a quarter of an Inch,) the Proportions which 34386 (the number of Fits of the perpendicular Rays in going through the Glass towards the white Spot in the center of the Rings,) hath to 34385, 34384, 34383, and 34382, (the numbers of the Fits of the oblique Rays in going through the Glass towards the first, second, third, and fourth Rings of Colours,) and if the first thickness be divided into 100000000 equal parts, the increased thicknesses will be 100002908, 100005816, 100008725, and 100011633, and the Angles of which these thicknesses are Secants will be 26´ 13´´, 37´ 5´´, 45´ 6´´, and 52´ 26´´, the Radius being 100000000; and the Sines of these Angles are 762, 1079, 1321, and 1525, and the proportional Sines of Refraction 1172, 1659, 2031, and 2345, the Radius being 100000. For since the Sines of Incidence out of Glass into Air are to the Sines of Refraction as 11 to 17, and to the above-mentioned Secants as 11 to the first of 106 arithmetical Means between 11 and 17, that is, as 11 to 11-6/106, those Secants will be to the Sines of Refraction as 11-6/106, to 17, and by this Analogy will give these Sines. So then, if the obliquities of the Rays to the concave Surface of the Glass be such that the Sines of their Refraction in passing out of the Glass through that Surface into the Air be 1172, 1659, 2031, 2345, the bright Light of the 34386th Ring shall emerge at the thicknesses of the Glass, which are to 1/4 of an Inch as 34386 to 34385, 34384, 34383, 34382, respectively. And therefore, if the thickness in all these Cases be 1/4 of an Inch (as it is in the Glass of which the Speculum was made) the bright Light of the 34385th Ring shall emerge where the Sine of Refraction is 1172, and that of the 34384th, 34383th, and 34382th Ring where the Sine is 1659, 2031, and 2345 respectively. And in these Angles of Refraction the Light of these Rings shall be propagated from the Speculum to the Chart, and there paint Rings about the white central round Spot of Light which we said was the Light of the 34386th Ring. And the Semidiameters of these Rings shall subtend the Angles of Refraction made at the Concave-Surface of the Speculum, and by consequence their Diameters shall be to the distance of the Chart from the Speculum as those Sines of Refraction doubled are to the Radius, that is, as 1172, 1659, 2031, and 2345, doubled are to 100000. And therefore, if the distance of the Chart from the Concave-Surface of the Speculum be six Feet (as it was in the third of these Observations) the Diameters of the Rings of this bright yellow Light upon the Chart shall be 1'688, 2'389, 2'925, 3'375 Inches: For these Diameters are to six Feet, as the above-mention'd Sines doubled are to the Radius. Now, these Diameters of the bright yellow Rings, thus found by Computation are the very same with those found in the third of these Observations by measuring them, _viz._ with 1-11/16, 2-3/8, 2-11/12, and 3-3/8 Inches, and therefore the Theory of deriving these Rings from the thickness of the Plate of Glass of which the Speculum was made, and from the Obliquity of the emerging Rays agrees with the Observation. In this Computation I have equalled the Diameters of the bright Rings made by Light of all Colours, to the Diameters of the Rings made by the bright yellow. For this yellow makes the brightest Part of the Rings of all Colours. If you desire the Diameters of the Rings made by the Light of any other unmix'd Colour, you may find them readily by putting them to the Diameters of the bright yellow ones in a subduplicate Proportion of the Intervals of the Fits of the Rays of those Colours when equally inclined to the refracting or reflecting Surface which caused those Fits, that is, by putting the Diameters of the Rings made by the Rays in the Extremities and Limits of the seven Colours, red, orange, yellow, green, blue, indigo, violet, proportional to the Cube-roots of the Numbers, 1, 8/9, 5/6, 3/4, 2/3, 3/5, 9/16, 1/2, which express the Lengths of a Monochord sounding the Notes in an Eighth: For by this means the Diameters of the Rings of these Colours will be found pretty nearly in the same Proportion to one another, which they ought to have by the fifth of these Observations. And thus I satisfy'd my self, that these Rings were of the same kind and Original with those of thin Plates, and by consequence that the Fits or alternate Dispositions of the Rays to be reflected and transmitted are propagated to great distances from every reflecting and refracting Surface. But yet to put the matter out of doubt, I added the following Observation. _Obs._ 9. If these Rings thus depend on the thickness of the Plate of Glass, their Diameters at equal distances from several Speculums made of such concavo-convex Plates of Glass as are ground on the same Sphere, ought to be reciprocally in a subduplicate Proportion of the thicknesses of the Plates of Glass. And if this Proportion be found true by experience it will amount to a demonstration that these Rings (like those formed in thin Plates) do depend on the thickness of the Glass. I procured therefore another concavo-convex Plate of Glass ground on both sides to the same Sphere with the former Plate. Its thickness was 5/62 Parts of an Inch; and the Diameters of the three first bright Rings measured between the brightest Parts of their Orbits at the distance of six Feet from the Glass were 3·4-1/6·5-1/8· Inches. Now, the thickness of the other Glass being 1/4 of an Inch was to the thickness of this Glass as 1/4 to 5/62, that is as 31 to 10, or 310000000 to 100000000, and the Roots of these Numbers are 17607 and 10000, and in the Proportion of the first of these Roots to the second are the Diameters of the bright Rings made in this Observation by the thinner Glass, 3·4-1/6·5-1/8, to the Diameters of the same Rings made in the third of these Observations by the thicker Glass 1-11/16, 2-3/8. 2-11/12, that is, the Diameters of the Rings are reciprocally in a subduplicate Proportion of the thicknesses of the Plates of Glass. So then in Plates of Glass which are alike concave on one side, and alike convex on the other side, and alike quick-silver'd on the convex sides, and differ in nothing but their thickness, the Diameters of the Rings are reciprocally in a subduplicate Proportion of the thicknesses of the Plates. And this shews sufficiently that the Rings depend on both the Surfaces of the Glass. They depend on the convex Surface, because they are more luminous when that Surface is quick-silver'd over than when it is without Quick-silver. They depend also upon the concave Surface, because without that Surface a Speculum makes them not. They depend on both Surfaces, and on the distances between them, because their bigness is varied by varying only that distance. And this dependence is of the same kind with that which the Colours of thin Plates have on the distance of the Surfaces of those Plates, because the bigness of the Rings, and their Proportion to one another, and the variation of their bigness arising from the variation of the thickness of the Glass, and the Orders of their Colours, is such as ought to result from the Propositions in the end of the third Part of this Book, derived from the Phænomena of the Colours of thin Plates set down in the first Part. There are yet other Phænomena of these Rings of Colours, but such as follow from the same Propositions, and therefore confirm both the Truth of those Propositions, and the Analogy between these Rings and the Rings of Colours made by very thin Plates. I shall subjoin some of them. _Obs._ 10. When the beam of the Sun's Light was reflected back from the Speculum not directly to the hole in the Window, but to a place a little distant from it, the common center of that Spot, and of all the Rings of Colours fell in the middle way between the beam of the incident Light, and the beam of the reflected Light, and by consequence in the center of the spherical concavity of the Speculum, whenever the Chart on which the Rings of Colours fell was placed at that center. And as the beam of reflected Light by inclining the Speculum receded more and more from the beam of incident Light and from the common center of the colour'd Rings between them, those Rings grew bigger and bigger, and so also did the white round Spot, and new Rings of Colours emerged successively out of their common center, and the white Spot became a white Ring encompassing them; and the incident and reflected beams of Light always fell upon the opposite parts of this white Ring, illuminating its Perimeter like two mock Suns in the opposite parts of an Iris. So then the Diameter of this Ring, measured from the middle of its Light on one side to the middle of its Light on the other side, was always equal to the distance between the middle of the incident beam of Light, and the middle of the reflected beam measured at the Chart on which the Rings appeared: And the Rays which form'd this Ring were reflected by the Speculum in Angles equal to their Angles of Incidence, and by consequence to their Angles of Refraction at their entrance into the Glass, but yet their Angles of Reflexion were not in the same Planes with their Angles of Incidence. _Obs._ 11. The Colours of the new Rings were in a contrary order to those of the former, and arose after this manner. The white round Spot of Light in the middle of the Rings continued white to the center till the distance of the incident and reflected beams at the Chart was about 7/8 parts of an Inch, and then it began to grow dark in the middle. And when that distance was about 1-3/16 of an Inch, the white Spot was become a Ring encompassing a dark round Spot which in the middle inclined to violet and indigo. And the luminous Rings encompassing it were grown equal to those dark ones which in the four first Observations encompassed them, that is to say, the white Spot was grown a white Ring equal to the first of those dark Rings, and the first of those luminous Rings was now grown equal to the second of those dark ones, and the second of those luminous ones to the third of those dark ones, and so on. For the Diameters of the luminous Rings were now 1-3/16, 2-1/16, 2-2/3, 3-3/20, &c. Inches. When the distance between the incident and reflected beams of Light became a little bigger, there emerged out of the middle of the dark Spot after the indigo a blue, and then out of that blue a pale green, and soon after a yellow and red. And when the Colour at the center was brightest, being between yellow and red, the bright Rings were grown equal to those Rings which in the four first Observations next encompassed them; that is to say, the white Spot in the middle of those Rings was now become a white Ring equal to the first of those bright Rings, and the first of those bright ones was now become equal to the second of those, and so on. For the Diameters of the white Ring, and of the other luminous Rings encompassing it, were now 1-11/16, 2-3/8, 2-11/12, 3-3/8, &c. or thereabouts. When the distance of the two beams of Light at the Chart was a little more increased, there emerged out of the middle in order after the red, a purple, a blue, a green, a yellow, and a red inclining much to purple, and when the Colour was brightest being between yellow and red, the former indigo, blue, green, yellow and red, were become an Iris or Ring of Colours equal to the first of those luminous Rings which appeared in the four first Observations, and the white Ring which was now become the second of the luminous Rings was grown equal to the second of those, and the first of those which was now become the third Ring was become equal to the third of those, and so on. For their Diameters were 1-11/16, 2-3/8, 2-11/12, 3-3/8 Inches, the distance of the two beams of Light, and the Diameter of the white Ring being 2-3/8 Inches. When these two beams became more distant there emerged out of the middle of the purplish red, first a darker round Spot, and then out of the middle of that Spot a brighter. And now the former Colours (purple, blue, green, yellow, and purplish red) were become a Ring equal to the first of the bright Rings mentioned in the four first Observations, and the Rings about this Ring were grown equal to the Rings about that respectively; the distance between the two beams of Light and the Diameter of the white Ring (which was now become the third Ring) being about 3 Inches. The Colours of the Rings in the middle began now to grow very dilute, and if the distance between the two Beams was increased half an Inch, or an Inch more, they vanish'd whilst the white Ring, with one or two of the Rings next it on either side, continued still visible. But if the distance of the two beams of Light was still more increased, these also vanished: For the Light which coming from several parts of the hole in the Window fell upon the Speculum in several Angles of Incidence, made Rings of several bignesses, which diluted and blotted out one another, as I knew by intercepting some part of that Light. For if I intercepted that part which was nearest to the Axis of the Speculum the Rings would be less, if the other part which was remotest from it they would be bigger. _Obs._ 12. When the Colours of the Prism were cast successively on the Speculum, that Ring which in the two last Observations was white, was of the same bigness in all the Colours, but the Rings without it were greater in the green than in the blue, and still greater in the yellow, and greatest in the red. And, on the contrary, the Rings within that white Circle were less in the green than in the blue, and still less in the yellow, and least in the red. For the Angles of Reflexion of those Rays which made this Ring, being equal to their Angles of Incidence, the Fits of every reflected Ray within the Glass after Reflexion are equal in length and number to the Fits of the same Ray within the Glass before its Incidence on the reflecting Surface. And therefore since all the Rays of all sorts at their entrance into the Glass were in a Fit of Transmission, they were also in a Fit of Transmission at their returning to the same Surface after Reflexion; and by consequence were transmitted, and went out to the white Ring on the Chart. This is the reason why that Ring was of the same bigness in all the Colours, and why in a mixture of all it appears white. But in Rays which are reflected in other Angles, the Intervals of the Fits of the least refrangible being greatest, make the Rings of their Colour in their progress from this white Ring, either outwards or inwards, increase or decrease by the greatest steps; so that the Rings of this Colour without are greatest, and within least. And this is the reason why in the last Observation, when the Speculum was illuminated with white Light, the exterior Rings made by all Colours appeared red without and blue within, and the interior blue without and red within. These are the Phænomena of thick convexo-concave Plates of Glass, which are every where of the same thickness. There are yet other Phænomena when these Plates are a little thicker on one side than on the other, and others when the Plates are more or less concave than convex, or plano-convex, or double-convex. For in all these cases the Plates make Rings of Colours, but after various manners; all which, so far as I have yet observed, follow from the Propositions in the end of the third part of this Book, and so conspire to confirm the truth of those Propositions. But the Phænomena are too various, and the Calculations whereby they follow from those Propositions too intricate to be here prosecuted. I content my self with having prosecuted this kind of Phænomena so far as to discover their Cause, and by discovering it to ratify the Propositions in the third Part of this Book. _Obs._ 13. As Light reflected by a Lens quick-silver'd on the backside makes the Rings of Colours above described, so it ought to make the like Rings of Colours in passing through a drop of Water. At the first Reflexion of the Rays within the drop, some Colours ought to be transmitted, as in the case of a Lens, and others to be reflected back to the Eye. For instance, if the Diameter of a small drop or globule of Water be about the 500th part of an Inch, so that a red-making Ray in passing through the middle of this globule has 250 Fits of easy Transmission within the globule, and that all the red-making Rays which are at a certain distance from this middle Ray round about it have 249 Fits within the globule, and all the like Rays at a certain farther distance round about it have 248 Fits, and all those at a certain farther distance 247 Fits, and so on; these concentrick Circles of Rays after their transmission, falling on a white Paper, will make concentrick Rings of red upon the Paper, supposing the Light which passes through one single globule, strong enough to be sensible. And, in like manner, the Rays of other Colours will make Rings of other Colours. Suppose now that in a fair Day the Sun shines through a thin Cloud of such globules of Water or Hail, and that the globules are all of the same bigness; and the Sun seen through this Cloud shall appear encompassed with the like concentrick Rings of Colours, and the Diameter of the first Ring of red shall be 7-1/4 Degrees, that of the second 10-1/4 Degrees, that of the third 12 Degrees 33 Minutes. And accordingly as the Globules of Water are bigger or less, the Rings shall be less or bigger. This is the Theory, and Experience answers it. For in _June_ 1692, I saw by reflexion in a Vessel of stagnating Water three Halos, Crowns, or Rings of Colours about the Sun, like three little Rain-bows, concentrick to his Body. The Colours of the first or innermost Crown were blue next the Sun, red without, and white in the middle between the blue and red. Those of the second Crown were purple and blue within, and pale red without, and green in the middle. And those of the third were pale blue within, and pale red without; these Crowns enclosed one another immediately, so that their Colours proceeded in this continual order from the Sun outward: blue, white, red; purple, blue, green, pale yellow and red; pale blue, pale red. The Diameter of the second Crown measured from the middle of the yellow and red on one side of the Sun, to the middle of the same Colour on the other side was 9-1/3 Degrees, or thereabouts. The Diameters of the first and third I had not time to measure, but that of the first seemed to be about five or six Degrees, and that of the third about twelve. The like Crowns appear sometimes about the Moon; for in the beginning of the Year 1664, _Febr._ 19th at Night, I saw two such Crowns about her. The Diameter of the first or innermost was about three Degrees, and that of the second about five Degrees and an half. Next about the Moon was a Circle of white, and next about that the inner Crown, which was of a bluish green within next the white, and of a yellow and red without, and next about these Colours were blue and green on the inside of the outward Crown, and red on the outside of it. At the same time there appear'd a Halo about 22 Degrees 35´ distant from the center of the Moon. It was elliptical, and its long Diameter was perpendicular to the Horizon, verging below farthest from the Moon. I am told that the Moon has sometimes three or more concentrick Crowns of Colours encompassing one another next about her Body. The more equal the globules of Water or Ice are to one another, the more Crowns of Colours will appear, and the Colours will be the more lively. The Halo at the distance of 22-1/2 Degrees from the Moon is of another sort. By its being oval and remoter from the Moon below than above, I conclude, that it was made by Refraction in some sort of Hail or Snow floating in the Air in an horizontal posture, the refracting Angle being about 58 or 60 Degrees. THE THIRD BOOK OF OPTICKS _PART I._ _Observations concerning the Inflexions of the Rays of Light, and the Colours made thereby._ Grimaldo has inform'd us, that if a beam of the Sun's Light be let into a dark Room through a very small hole, the Shadows of things in this Light will be larger than they ought to be if the Rays went on by the Bodies in straight Lines, and that these Shadows have three parallel Fringes, Bands or Ranks of colour'd Light adjacent to them. But if the Hole be enlarged the Fringes grow broad and run into one another, so that they cannot be distinguish'd. These broad Shadows and Fringes have been reckon'd by some to proceed from the ordinary refraction of the Air, but without due examination of the Matter. For the circumstances of the Phænomenon, so far as I have observed them, are as follows. _Obs._ 1. I made in a piece of Lead a small Hole with a Pin, whose breadth was the 42d part of an Inch. For 21 of those Pins laid together took up the breadth of half an Inch. Through this Hole I let into my darken'd Chamber a beam of the Sun's Light, and found that the Shadows of Hairs, Thred, Pins, Straws, and such like slender Substances placed in this beam of Light, were considerably broader than they ought to be, if the Rays of Light passed on by these Bodies in right Lines. And particularly a Hair of a Man's Head, whose breadth was but the 280th part of an Inch, being held in this Light, at the distance of about twelve Feet from the Hole, did cast a Shadow which at the distance of four Inches from the Hair was the sixtieth part of an Inch broad, that is, above four times broader than the Hair, and at the distance of two Feet from the Hair was about the eight and twentieth part of an Inch broad, that is, ten times broader than the Hair, and at the distance of ten Feet was the eighth part of an Inch broad, that is 35 times broader. Nor is it material whether the Hair be encompassed with Air, or with any other pellucid Substance. For I wetted a polish'd Plate of Glass, and laid the Hair in the Water upon the Glass, and then laying another polish'd Plate of Glass upon it, so that the Water might fill up the space between the Glasses, I held them in the aforesaid beam of Light, so that the Light might pass through them perpendicularly, and the Shadow of the Hair was at the same distances as big as before. The Shadows of Scratches made in polish'd Plates of Glass were also much broader than they ought to be, and the Veins in polish'd Plates of Glass did also cast the like broad Shadows. And therefore the great breadth of these Shadows proceeds from some other cause than the Refraction of the Air. Let the Circle X [in _Fig._ 1.] represent the middle of the Hair; ADG, BEH, CFI, three Rays passing by one side of the Hair at several distances; KNQ, LOR, MPS, three other Rays passing by the other side of the Hair at the like distances; D, E, F, and N, O, P, the places where the Rays are bent in their passage by the Hair; G, H, I, and Q, R, S, the places where the Rays fall on a Paper GQ; IS the breadth of the Shadow of the Hair cast on the Paper, and TI, VS, two Rays passing to the Points I and S without bending when the Hair is taken away. And it's manifest that all the Light between these two Rays TI and VS is bent in passing by the Hair, and turned aside from the Shadow IS, because if any part of this Light were not bent it would fall on the Paper within the Shadow, and there illuminate the Paper, contrary to experience. And because when the Paper is at a great distance from the Hair, the Shadow is broad, and therefore the Rays TI and VS are at a great distance from one another, it follows that the Hair acts upon the Rays of Light at a good distance in their passing by it. But the Action is strongest on the Rays which pass by at least distances, and grows weaker and weaker accordingly as the Rays pass by at distances greater and greater, as is represented in the Scheme: For thence it comes to pass, that the Shadow of the Hair is much broader in proportion to the distance of the Paper from the Hair, when the Paper is nearer the Hair, than when it is at a great distance from it. _Obs._ 2. The Shadows of all Bodies (Metals, Stones, Glass, Wood, Horn, Ice, &c.) in this Light were border'd with three Parallel Fringes or Bands of colour'd Light, whereof that which was contiguous to the Shadow was broadest and most luminous, and that which was remotest from it was narrowest, and so faint, as not easily to be visible. It was difficult to distinguish the Colours, unless when the Light fell very obliquely upon a smooth Paper, or some other smooth white Body, so as to make them appear much broader than they would otherwise do. And then the Colours were plainly visible in this Order: The first or innermost Fringe was violet and deep blue next the Shadow, and then light blue, green, and yellow in the middle, and red without. The second Fringe was almost contiguous to the first, and the third to the second, and both were blue within, and yellow and red without, but their Colours were very faint, especially those of the third. The Colours therefore proceeded in this order from the Shadow; violet, indigo, pale blue, green, yellow, red; blue, yellow, red; pale blue, pale yellow and red. The Shadows made by Scratches and Bubbles in polish'd Plates of Glass were border'd with the like Fringes of colour'd Light. And if Plates of Looking-glass sloop'd off near the edges with a Diamond-cut, be held in the same beam of Light, the Light which passes through the parallel Planes of the Glass will be border'd with the like Fringes of Colours where those Planes meet with the Diamond-cut, and by this means there will sometimes appear four or five Fringes of Colours. Let AB, CD [in _Fig._ 2.] represent the parallel Planes of a Looking-glass, and BD the Plane of the Diamond-cut, making at B a very obtuse Angle with the Plane AB. And let all the Light between the Rays ENI and FBM pass directly through the parallel Planes of the Glass, and fall upon the Paper between I and M, and all the Light between the Rays GO and HD be refracted by the oblique Plane of the Diamond-cut BD, and fall upon the Paper between K and L; and the Light which passes directly through the parallel Planes of the Glass, and falls upon the Paper between I and M, will be border'd with three or more Fringes at M. [Illustration: FIG. 1.] [Illustration: FIG. 2.] So by looking on the Sun through a Feather or black Ribband held close to the Eye, several Rain-bows will appear; the Shadows which the Fibres or Threds cast on the _Tunica Retina_, being border'd with the like Fringes of Colours. _Obs._ 3. When the Hair was twelve Feet distant from this Hole, and its Shadow fell obliquely upon a flat white Scale of Inches and Parts of an Inch placed half a Foot beyond it, and also when the Shadow fell perpendicularly upon the same Scale placed nine Feet beyond it; I measured the breadth of the Shadow and Fringes as accurately as I could, and found them in Parts of an Inch as follows. -------------------------------------------+-----------+-------- | half a | Nine At the Distance of | Foot | Feet -------------------------------------------+-----------+-------- The breadth of the Shadow | 1/54 | 1/9 -------------------------------------------+-----------+-------- The breadth between the Middles of the | 1/38 | brightest Light of the innermost Fringes | or | on either side the Shadow | 1/39 | 7/50 -------------------------------------------+-----------+-------- The breadth between the Middles of the | | brightest Light of the middlemost Fringes| | on either side the Shadow | 1/23-1/2 | 4/17 -------------------------------------------+-----------+-------- The breadth between the Middles of the | 1/18 | brightest Light of the outmost Fringes | or | on either side the Shadow | 1/18-1/2 | 3/10 -------------------------------------------+-----------+-------- The distance between the Middles of the | | brightest Light of the first and second | | Fringes | 1/120 | 1/21 -------------------------------------------+-----------+-------- The distance between the Middles of the | | brightest Light of the second and third | | Fringes | 1/170 | 1/31 -------------------------------------------+-----------+-------- The breadth of the luminous Part (green, | | white, yellow, and red) of the first | | Fringe | 1/170 | 1/32 -------------------------------------------+-----------+-------- The breadth of the darker Space between | | the first and second Fringes | 1/240 | 1/45 -------------------------------------------+-----------+-------- The breadth of the luminous Part of the | | second Fringe | 1/290 | 1/55 -------------------------------------------+-----------+-------- The breadth of the darker Space between | | the second and third Fringes | 1/340 | 1/63 -------------------------------------------+-----------+-------- These Measures I took by letting the Shadow of the Hair, at half a Foot distance, fall so obliquely on the Scale, as to appear twelve times broader than when it fell perpendicularly on it at the same distance, and setting down in this Table the twelfth part of the Measures I then took. _Obs._ 4. When the Shadow and Fringes were cast obliquely upon a smooth white Body, and that Body was removed farther and farther from the Hair, the first Fringe began to appear and look brighter than the rest of the Light at the distance of less than a quarter of an Inch from the Hair, and the dark Line or Shadow between that and the second Fringe began to appear at a less distance from the Hair than that of the third part of an Inch. The second Fringe began to appear at a distance from the Hair of less than half an Inch, and the Shadow between that and the third Fringe at a distance less than an inch, and the third Fringe at a distance less than three Inches. At greater distances they became much more sensible, but kept very nearly the same proportion of their breadths and intervals which they had at their first appearing. For the distance between the middle of the first, and middle of the second Fringe, was to the distance between the middle of the second and middle of the third Fringe, as three to two, or ten to seven. And the last of these two distances was equal to the breadth of the bright Light or luminous part of the first Fringe. And this breadth was to the breadth of the bright Light of the second Fringe as seven to four, and to the dark Interval of the first and second Fringe as three to two, and to the like dark Interval between the second and third as two to one. For the breadths of the Fringes seem'd to be in the progression of the Numbers 1, sqrt(1/3), sqrt(1/5), and their Intervals to be in the same progression with them; that is, the Fringes and their Intervals together to be in the continual progression of the Numbers 1, sqrt(1/2), sqrt(1/3), sqrt(1/4), sqrt(1/5), or thereabouts. And these Proportions held the same very nearly at all distances from the Hair; the dark Intervals of the Fringes being as broad in proportion to the breadth of the Fringes at their first appearance as afterwards at great distances from the Hair, though not so dark and distinct. _Obs._ 5. The Sun shining into my darken'd Chamber through a hole a quarter of an Inch broad, I placed at the distance of two or three Feet from the Hole a Sheet of Pasteboard, which was black'd all over on both sides, and in the middle of it had a hole about three quarters of an Inch square for the Light to pass through. And behind the hole I fasten'd to the Pasteboard with Pitch the blade of a sharp Knife, to intercept some part of the Light which passed through the hole. The Planes of the Pasteboard and blade of the Knife were parallel to one another, and perpendicular to the Rays. And when they were so placed that none of the Sun's Light fell on the Pasteboard, but all of it passed through the hole to the Knife, and there part of it fell upon the blade of the Knife, and part of it passed by its edge; I let this part of the Light which passed by, fall on a white Paper two or three Feet beyond the Knife, and there saw two streams of faint Light shoot out both ways from the beam of Light into the shadow, like the Tails of Comets. But because the Sun's direct Light by its brightness upon the Paper obscured these faint streams, so that I could scarce see them, I made a little hole in the midst of the Paper for that Light to pass through and fall on a black Cloth behind it; and then I saw the two streams plainly. They were like one another, and pretty nearly equal in length, and breadth, and quantity of Light. Their Light at that end next the Sun's direct Light was pretty strong for the space of about a quarter of an Inch, or half an Inch, and in all its progress from that direct Light decreased gradually till it became insensible. The whole length of either of these streams measured upon the paper at the distance of three Feet from the Knife was about six or eight Inches; so that it subtended an Angle at the edge of the Knife of about 10 or 12, or at most 14 Degrees. Yet sometimes I thought I saw it shoot three or four Degrees farther, but with a Light so very faint that I could scarce perceive it, and suspected it might (in some measure at least) arise from some other cause than the two streams did. For placing my Eye in that Light beyond the end of that stream which was behind the Knife, and looking towards the Knife, I could see a line of Light upon its edge, and that not only when my Eye was in the line of the Streams, but also when it was without that line either towards the point of the Knife, or towards the handle. This line of Light appear'd contiguous to the edge of the Knife, and was narrower than the Light of the innermost Fringe, and narrowest when my Eye was farthest from the direct Light, and therefore seem'd to pass between the Light of that Fringe and the edge of the Knife, and that which passed nearest the edge to be most bent, though not all of it. _Obs._ 6. I placed another Knife by this, so that their edges might be parallel, and look towards one another, and that the beam of Light might fall upon both the Knives, and some part of it pass between their edges. And when the distance of their edges was about the 400th part of an Inch, the stream parted in the middle, and left a Shadow between the two parts. This Shadow was so black and dark that all the Light which passed between the Knives seem'd to be bent, and turn'd aside to the one hand or to the other. And as the Knives still approach'd one another the Shadow grew broader, and the streams shorter at their inward ends which were next the Shadow, until upon the contact of the Knives the whole Light vanish'd, leaving its place to the Shadow. And hence I gather that the Light which is least bent, and goes to the inward ends of the streams, passes by the edges of the Knives at the greatest distance, and this distance when the Shadow begins to appear between the streams, is about the 800th part of an Inch. And the Light which passes by the edges of the Knives at distances still less and less, is more and more bent, and goes to those parts of the streams which are farther and farther from the direct Light; because when the Knives approach one another till they touch, those parts of the streams vanish last which are farthest from the direct Light. _Obs._ 7. In the fifth Observation the Fringes did not appear, but by reason of the breadth of the hole in the Window became so broad as to run into one another, and by joining, to make one continued Light in the beginning of the streams. But in the sixth, as the Knives approached one another, a little before the Shadow appeared between the two streams, the Fringes began to appear on the inner ends of the Streams on either side of the direct Light; three on one side made by the edge of one Knife, and three on the other side made by the edge of the other Knife. They were distinctest when the Knives were placed at the greatest distance from the hole in the Window, and still became more distinct by making the hole less, insomuch that I could sometimes see a faint lineament of a fourth Fringe beyond the three above mention'd. And as the Knives continually approach'd one another, the Fringes grew distincter and larger, until they vanish'd. The outmost Fringe vanish'd first, and the middlemost next, and the innermost last. And after they were all vanish'd, and the line of Light which was in the middle between them was grown very broad, enlarging it self on both sides into the streams of Light described in the fifth Observation, the above-mention'd Shadow began to appear in the middle of this line, and divide it along the middle into two lines of Light, and increased until the whole Light vanish'd. This enlargement of the Fringes was so great that the Rays which go to the innermost Fringe seem'd to be bent above twenty times more when this Fringe was ready to vanish, than when one of the Knives was taken away. And from this and the former Observation compared, I gather, that the Light of the first Fringe passed by the edge of the Knife at a distance greater than the 800th part of an Inch, and the Light of the second Fringe passed by the edge of the Knife at a greater distance than the Light of the first Fringe did, and that of the third at a greater distance than that of the second, and that of the streams of Light described in the fifth and sixth Observations passed by the edges of the Knives at less distances than that of any of the Fringes. _Obs._ 8. I caused the edges of two Knives to be ground truly strait, and pricking their points into a Board so that their edges might look towards one another, and meeting near their points contain a rectilinear Angle, I fasten'd their Handles together with Pitch to make this Angle invariable. The distance of the edges of the Knives from one another at the distance of four Inches from the angular Point, where the edges of the Knives met, was the eighth part of an Inch; and therefore the Angle contain'd by the edges was about one Degree 54: The Knives thus fix'd together I placed in a beam of the Sun's Light, let into my darken'd Chamber through a Hole the 42d Part of an Inch wide, at the distance of 10 or 15 Feet from the Hole, and let the Light which passed between their edges fall very obliquely upon a smooth white Ruler at the distance of half an Inch, or an Inch from the Knives, and there saw the Fringes by the two edges of the Knives run along the edges of the Shadows of the Knives in Lines parallel to those edges without growing sensibly broader, till they met in Angles equal to the Angle contained by the edges of the Knives, and where they met and joined they ended without crossing one another. But if the Ruler was held at a much greater distance from the Knives, the Fringes where they were farther from the Place of their Meeting, were a little narrower, and became something broader and broader as they approach'd nearer and nearer to one another, and after they met they cross'd one another, and then became much broader than before. Whence I gather that the distances at which the Fringes pass by the Knives are not increased nor alter'd by the approach of the Knives, but the Angles in which the Rays are there bent are much increased by that approach; and that the Knife which is nearest any Ray determines which way the Ray shall be bent, and the other Knife increases the bent. _Obs._ 9. When the Rays fell very obliquely upon the Ruler at the distance of the third Part of an Inch from the Knives, the dark Line between the first and second Fringe of the Shadow of one Knife, and the dark Line between the first and second Fringe of the Shadow of the other knife met with one another, at the distance of the fifth Part of an Inch from the end of the Light which passed between the Knives at the concourse of their edges. And therefore the distance of the edges of the Knives at the meeting of these dark Lines was the 160th Part of an Inch. For as four Inches to the eighth Part of an Inch, so is any Length of the edges of the Knives measured from the point of their concourse to the distance of the edges of the Knives at the end of that Length, and so is the fifth Part of an Inch to the 160th Part. So then the dark Lines above-mention'd meet in the middle of the Light which passes between the Knives where they are distant the 160th Part of an Inch, and the one half of that Light passes by the edge of one Knife at a distance not greater than the 320th Part of an Inch, and falling upon the Paper makes the Fringes of the Shadow of that Knife, and the other half passes by the edge of the other Knife, at a distance not greater than the 320th Part of an Inch, and falling upon the Paper makes the Fringes of the Shadow of the other Knife. But if the Paper be held at a distance from the Knives greater than the third Part of an Inch, the dark Lines above-mention'd meet at a greater distance than the fifth Part of an Inch from the end of the Light which passed between the Knives at the concourse of their edges; and therefore the Light which falls upon the Paper where those dark Lines meet passes between the Knives where the edges are distant above the 160th part of an Inch. For at another time, when the two Knives were distant eight Feet and five Inches from the little hole in the Window, made with a small Pin as above, the Light which fell upon the Paper where the aforesaid dark lines met, passed between the Knives, where the distance between their edges was as in the following Table, when the distance of the Paper from the Knives was also as follows. -----------------------------+------------------------------ | Distances between the edges Distances of the Paper | of the Knives in millesimal from the Knives in Inches. | parts of an Inch. -----------------------------+------------------------------ 1-1/2. | 0'012 3-1/3. | 0'020 8-3/5. | 0'034 32. | 0'057 96. | 0'081 131. | 0'087 _____________________________|______________________________ And hence I gather, that the Light which makes the Fringes upon the Paper is not the same Light at all distances of the Paper from the Knives, but when the Paper is held near the Knives, the Fringes are made by Light which passes by the edges of the Knives at a less distance, and is more bent than when the Paper is held at a greater distance from the Knives. [Illustration: FIG. 3.] _Obs._ 10. When the Fringes of the Shadows of the Knives fell perpendicularly upon a Paper at a great distance from the Knives, they were in the form of Hyperbola's, and their Dimensions were as follows. Let CA, CB [in _Fig._ 3.] represent Lines drawn upon the Paper parallel to the edges of the Knives, and between which all the Light would fall, if it passed between the edges of the Knives without inflexion; DE a Right Line drawn through C making the Angles ACD, BCE, equal to one another, and terminating all the Light which falls upon the Paper from the point where the edges of the Knives meet; _eis_, _fkt_, and _glv_, three hyperbolical Lines representing the Terminus of the Shadow of one of the Knives, the dark Line between the first and second Fringes of that Shadow, and the dark Line between the second and third Fringes of the same Shadow; _xip_, _ykq_, and _zlr_, three other hyperbolical Lines representing the Terminus of the Shadow of the other Knife, the dark Line between the first and second Fringes of that Shadow, and the dark line between the second and third Fringes of the same Shadow. And conceive that these three Hyperbola's are like and equal to the former three, and cross them in the points _i_, _k_, and _l_, and that the Shadows of the Knives are terminated and distinguish'd from the first luminous Fringes by the lines _eis_ and _xip_, until the meeting and crossing of the Fringes, and then those lines cross the Fringes in the form of dark lines, terminating the first luminous Fringes within side, and distinguishing them from another Light which begins to appear at _i_, and illuminates all the triangular space _ip_DE_s_ comprehended by these dark lines, and the right line DE. Of these Hyperbola's one Asymptote is the line DE, and their other Asymptotes are parallel to the lines CA and CB. Let _rv_ represent a line drawn any where upon the Paper parallel to the Asymptote DE, and let this line cross the right lines AC in _m_, and BC in _n_, and the six dark hyperbolical lines in _p_, _q_, _r_; _s_, _t_, _v_; and by measuring the distances _ps_, _qt_, _rv_, and thence collecting the lengths of the Ordinates _np_, _nq_, _nr_ or _ms_, _mt_, _mv_, and doing this at several distances of the line _rv_ from the Asymptote DD, you may find as many points of these Hyperbola's as you please, and thereby know that these curve lines are Hyperbola's differing little from the conical Hyperbola. And by measuring the lines C_i_, C_k_, C_l_, you may find other points of these Curves. For instance; when the Knives were distant from the hole in the Window ten Feet, and the Paper from the Knives nine Feet, and the Angle contained by the edges of the Knives to which the Angle ACB is equal, was subtended by a Chord which was to the Radius as 1 to 32, and the distance of the line _rv_ from the Asymptote DE was half an Inch: I measured the lines _ps_, _qt_, _rv_, and found them 0'35, 0'65, 0'98 Inches respectively; and by adding to their halfs the line 1/2 _mn_, (which here was the 128th part of an Inch, or 0'0078 Inches,) the Sums _np_, _nq_, _nr_, were 0'1828, 0'3328, 0'4978 Inches. I measured also the distances of the brightest parts of the Fringes which run between _pq_ and _st_, _qr_ and _tv_, and next beyond _r_ and _v_, and found them 0'5, 0'8, and 1'17 Inches. _Obs._ 11. The Sun shining into my darken'd Room through a small round hole made in a Plate of Lead with a slender Pin, as above; I placed at the hole a Prism to refract the Light, and form on the opposite Wall the Spectrum of Colours, described in the third Experiment of the first Book. And then I found that the Shadows of all Bodies held in the colour'd Light between the Prism and the Wall, were border'd with Fringes of the Colour of that Light in which they were held. In the full red Light they were totally red without any sensible blue or violet, and in the deep blue Light they were totally blue without any sensible red or yellow; and so in the green Light they were totally green, excepting a little yellow and blue, which were mixed in the green Light of the Prism. And comparing the Fringes made in the several colour'd Lights, I found that those made in the red Light were largest, those made in the violet were least, and those made in the green were of a middle bigness. For the Fringes with which the Shadow of a Man's Hair were bordered, being measured cross the Shadow at the distance of six Inches from the Hair, the distance between the middle and most luminous part of the first or innermost Fringe on one side of the Shadow, and that of the like Fringe on the other side of the Shadow, was in the full red Light 1/37-1/4 of an Inch, and in the full violet 7/46. And the like distance between the middle and most luminous parts of the second Fringes on either side the Shadow was in the full red Light 1/22, and in the violet 1/27 of an Inch. And these distances of the Fringes held the same proportion at all distances from the Hair without any sensible variation. So then the Rays which made these Fringes in the red Light passed by the Hair at a greater distance than those did which made the like Fringes in the violet; and therefore the Hair in causing these Fringes acted alike upon the red Light or least refrangible Rays at a greater distance, and upon the violet or most refrangible Rays at a less distance, and by those actions disposed the red Light into Larger Fringes, and the violet into smaller, and the Lights of intermediate Colours into Fringes of intermediate bignesses without changing the Colour of any sort of Light. When therefore the Hair in the first and second of these Observations was held in the white beam of the Sun's Light, and cast a Shadow which was border'd with three Fringes of coloured Light, those Colours arose not from any new modifications impress'd upon the Rays of Light by the Hair, but only from the various inflexions whereby the several Sorts of Rays were separated from one another, which before separation, by the mixture of all their Colours, composed the white beam of the Sun's Light, but whenever separated compose Lights of the several Colours which they are originally disposed to exhibit. In this 11th Observation, where the Colours are separated before the Light passes by the Hair, the least refrangible Rays, which when separated from the rest make red, were inflected at a greater distance from the Hair, so as to make three red Fringes at a greater distance from the middle of the Shadow of the Hair; and the most refrangible Rays which when separated make violet, were inflected at a less distance from the Hair, so as to make three violet Fringes at a less distance from the middle of the Shadow of the Hair. And other Rays of intermediate degrees of Refrangibility were inflected at intermediate distances from the Hair, so as to make Fringes of intermediate Colours at intermediate distances from the middle of the Shadow of the Hair. And in the second Observation, where all the Colours are mix'd in the white Light which passes by the Hair, these Colours are separated by the various inflexions of the Rays, and the Fringes which they make appear all together, and the innermost Fringes being contiguous make one broad Fringe composed of all the Colours in due order, the violet lying on the inside of the Fringe next the Shadow, the red on the outside farthest from the Shadow, and the blue, green, and yellow, in the middle. And, in like manner, the middlemost Fringes of all the Colours lying in order, and being contiguous, make another broad Fringe composed of all the Colours; and the outmost Fringes of all the Colours lying in order, and being contiguous, make a third broad Fringe composed of all the Colours. These are the three Fringes of colour'd Light with which the Shadows of all Bodies are border'd in the second Observation. When I made the foregoing Observations, I design'd to repeat most of them with more care and exactness, and to make some new ones for determining the manner how the Rays of Light are bent in their passage by Bodies, for making the Fringes of Colours with the dark lines between them. But I was then interrupted, and cannot now think of taking these things into farther Consideration. And since I have not finish'd this part of my Design, I shall conclude with proposing only some Queries, in order to a farther search to be made by others. _Query_ 1. Do not Bodies act upon Light at a distance, and by their action bend its Rays; and is not this action (_cæteris paribus_) strongest at the least distance? _Qu._ 2. Do not the Rays which differ in Refrangibility differ also in Flexibity; and are they not by their different Inflexions separated from one another, so as after separation to make the Colours in the three Fringes above described? And after what manner are they inflected to make those Fringes? _Qu._ 3. Are not the Rays of Light in passing by the edges and sides of Bodies, bent several times backwards and forwards, with a motion like that of an Eel? And do not the three Fringes of colour'd Light above-mention'd arise from three such bendings? _Qu._ 4. Do not the Rays of Light which fall upon Bodies, and are reflected or refracted, begin to bend before they arrive at the Bodies; and are they not reflected, refracted, and inflected, by one and the same Principle, acting variously in various Circumstances? _Qu._ 5. Do not Bodies and Light act mutually upon one another; that is to say, Bodies upon Light in emitting, reflecting, refracting and inflecting it, and Light upon Bodies for heating them, and putting their parts into a vibrating motion wherein heat consists? _Qu._ 6. Do not black Bodies conceive heat more easily from Light than those of other Colours do, by reason that the Light falling on them is not reflected outwards, but enters the Bodies, and is often reflected and refracted within them, until it be stifled and lost? _Qu._ 7. Is not the strength and vigor of the action between Light and sulphureous Bodies observed above, one reason why sulphureous Bodies take fire more readily, and burn more vehemently than other Bodies do? _Qu._ 8. Do not all fix'd Bodies, when heated beyond a certain degree, emit Light and shine; and is not this Emission perform'd by the vibrating motions of their parts? And do not all Bodies which abound with terrestrial parts, and especially with sulphureous ones, emit Light as often as those parts are sufficiently agitated; whether that agitation be made by Heat, or by Friction, or Percussion, or Putrefaction, or by any vital Motion, or any other Cause? As for instance; Sea-Water in a raging Storm; Quick-silver agitated in _vacuo_; the Back of a Cat, or Neck of a Horse, obliquely struck or rubbed in a dark place; Wood, Flesh and Fish while they putrefy; Vapours arising from putrefy'd Waters, usually call'd _Ignes Fatui_; Stacks of moist Hay or Corn growing hot by fermentation; Glow-worms and the Eyes of some Animals by vital Motions; the vulgar _Phosphorus_ agitated by the attrition of any Body, or by the acid Particles of the Air; Amber and some Diamonds by striking, pressing or rubbing them; Scrapings of Steel struck off with a Flint; Iron hammer'd very nimbly till it become so hot as to kindle Sulphur thrown upon it; the Axletrees of Chariots taking fire by the rapid rotation of the Wheels; and some Liquors mix'd with one another whose Particles come together with an Impetus, as Oil of Vitriol distilled from its weight of Nitre, and then mix'd with twice its weight of Oil of Anniseeds. So also a Globe of Glass about 8 or 10 Inches in diameter, being put into a Frame where it may be swiftly turn'd round its Axis, will in turning shine where it rubs against the palm of ones Hand apply'd to it: And if at the same time a piece of white Paper or white Cloth, or the end of ones Finger be held at the distance of about a quarter of an Inch or half an Inch from that part of the Glass where it is most in motion, the electrick Vapour which is excited by the friction of the Glass against the Hand, will by dashing against the white Paper, Cloth or Finger, be put into such an agitation as to emit Light, and make the white Paper, Cloth or Finger, appear lucid like a Glowworm; and in rushing out of the Glass will sometimes push against the finger so as to be felt. And the same things have been found by rubbing a long and large Cylinder or Glass or Amber with a Paper held in ones hand, and continuing the friction till the Glass grew warm. _Qu._ 9. Is not Fire a Body heated so hot as to emit Light copiously? For what else is a red hot Iron than Fire? And what else is a burning Coal than red hot Wood? _Qu._ 10. Is not Flame a Vapour, Fume or Exhalation heated red hot, that is, so hot as to shine? For Bodies do not flame without emitting a copious Fume, and this Fume burns in the Flame. The _Ignis Fatuus_ is a Vapour shining without heat, and is there not the same difference between this Vapour and Flame, as between rotten Wood shining without heat and burning Coals of Fire? In distilling hot Spirits, if the Head of the Still be taken off, the Vapour which ascends out of the Still will take fire at the Flame of a Candle, and turn into Flame, and the Flame will run along the Vapour from the Candle to the Still. Some Bodies heated by Motion, or Fermentation, if the heat grow intense, fume copiously, and if the heat be great enough the Fumes will shine and become Flame. Metals in fusion do not flame for want of a copious Fume, except Spelter, which fumes copiously, and thereby flames. All flaming Bodies, as Oil, Tallow, Wax, Wood, fossil Coals, Pitch, Sulphur, by flaming waste and vanish into burning Smoke, which Smoke, if the Flame be put out, is very thick and visible, and sometimes smells strongly, but in the Flame loses its smell by burning, and according to the nature of the Smoke the Flame is of several Colours, as that of Sulphur blue, that of Copper open'd with sublimate green, that of Tallow yellow, that of Camphire white. Smoke passing through Flame cannot but grow red hot, and red hot Smoke can have no other appearance than that of Flame. When Gun-powder takes fire, it goes away into Flaming Smoke. For the Charcoal and Sulphur easily take fire, and set fire to the Nitre, and the Spirit of the Nitre being thereby rarified into Vapour, rushes out with Explosion much after the manner that the Vapour of Water rushes out of an Æolipile; the Sulphur also being volatile is converted into Vapour, and augments the Explosion. And the acid Vapour of the Sulphur (namely that which distils under a Bell into Oil of Sulphur,) entring violently into the fix'd Body of the Nitre, sets loose the Spirit of the Nitre, and excites a great Fermentation, whereby the Heat is farther augmented, and the fix'd Body of the Nitre is also rarified into Fume, and the Explosion is thereby made more vehement and quick. For if Salt of Tartar be mix'd with Gun-powder, and that Mixture be warm'd till it takes fire, the Explosion will be more violent and quick than that of Gun-powder alone; which cannot proceed from any other cause than the action of the Vapour of the Gun-powder upon the Salt of Tartar, whereby that Salt is rarified. The Explosion of Gun-powder arises therefore from the violent action whereby all the Mixture being quickly and vehemently heated, is rarified and converted into Fume and Vapour: which Vapour, by the violence of that action, becoming so hot as to shine, appears in the form of Flame. _Qu._ 11. Do not great Bodies conserve their heat the longest, their parts heating one another, and may not great dense and fix'd Bodies, when heated beyond a certain degree, emit Light so copiously, as by the Emission and Re-action of its Light, and the Reflexions and Refractions of its Rays within its Pores to grow still hotter, till it comes to a certain period of heat, such as is that of the Sun? And are not the Sun and fix'd Stars great Earths vehemently hot, whose heat is conserved by the greatness of the Bodies, and the mutual Action and Reaction between them, and the Light which they emit, and whose parts are kept from fuming away, not only by their fixity, but also by the vast weight and density of the Atmospheres incumbent upon them; and very strongly compressing them, and condensing the Vapours and Exhalations which arise from them? For if Water be made warm in any pellucid Vessel emptied of Air, that Water in the _Vacuum_ will bubble and boil as vehemently as it would in the open Air in a Vessel set upon the Fire till it conceives a much greater heat. For the weight of the incumbent Atmosphere keeps down the Vapours, and hinders the Water from boiling, until it grow much hotter than is requisite to make it boil _in vacuo_. Also a mixture of Tin and Lead being put upon a red hot Iron _in vacuo_ emits a Fume and Flame, but the same Mixture in the open Air, by reason of the incumbent Atmosphere, does not so much as emit any Fume which can be perceived by Sight. In like manner the great weight of the Atmosphere which lies upon the Globe of the Sun may hinder Bodies there from rising up and going away from the Sun in the form of Vapours and Fumes, unless by means of a far greater heat than that which on the Surface of our Earth would very easily turn them into Vapours and Fumes. And the same great weight may condense those Vapours and Exhalations as soon as they shall at any time begin to ascend from the Sun, and make them presently fall back again into him, and by that action increase his Heat much after the manner that in our Earth the Air increases the Heat of a culinary Fire. And the same weight may hinder the Globe of the Sun from being diminish'd, unless by the Emission of Light, and a very small quantity of Vapours and Exhalations. _Qu._ 12. Do not the Rays of Light in falling upon the bottom of the Eye excite Vibrations in the _Tunica Retina_? Which Vibrations, being propagated along the solid Fibres of the optick Nerves into the Brain, cause the Sense of seeing. For because dense Bodies conserve their Heat a long time, and the densest Bodies conserve their Heat the longest, the Vibrations of their parts are of a lasting nature, and therefore may be propagated along solid Fibres of uniform dense Matter to a great distance, for conveying into the Brain the impressions made upon all the Organs of Sense. For that Motion which can continue long in one and the same part of a Body, can be propagated a long way from one part to another, supposing the Body homogeneal, so that the Motion may not be reflected, refracted, interrupted or disorder'd by any unevenness of the Body. _Qu._ 13. Do not several sorts of Rays make Vibrations of several bignesses, which according to their bignesses excite Sensations of several Colours, much after the manner that the Vibrations of the Air, according to their several bignesses excite Sensations of several Sounds? And particularly do not the most refrangible Rays excite the shortest Vibrations for making a Sensation of deep violet, the least refrangible the largest for making a Sensation of deep red, and the several intermediate sorts of Rays, Vibrations of several intermediate bignesses to make Sensations of the several intermediate Colours? _Qu._ 14. May not the harmony and discord of Colours arise from the proportions of the Vibrations propagated through the Fibres of the optick Nerves into the Brain, as the harmony and discord of Sounds arise from the proportions of the Vibrations of the Air? For some Colours, if they be view'd together, are agreeable to one another, as those of Gold and Indigo, and others disagree. _Qu._ 15. Are not the Species of Objects seen with both Eyes united where the optick Nerves meet before they come into the Brain, the Fibres on the right side of both Nerves uniting there, and after union going thence into the Brain in the Nerve which is on the right side of the Head, and the Fibres on the left side of both Nerves uniting in the same place, and after union going into the Brain in the Nerve which is on the left side of the Head, and these two Nerves meeting in the Brain in such a manner that their Fibres make but one entire Species or Picture, half of which on the right side of the Sensorium comes from the right side of both Eyes through the right side of both optick Nerves to the place where the Nerves meet, and from thence on the right side of the Head into the Brain, and the other half on the left side of the Sensorium comes in like manner from the left side of both Eyes. For the optick Nerves of such Animals as look the same way with both Eyes (as of Men, Dogs, Sheep, Oxen, &c.) meet before they come into the Brain, but the optick Nerves of such Animals as do not look the same way with both Eyes (as of Fishes, and of the Chameleon,) do not meet, if I am rightly inform'd. _Qu._ 16. When a Man in the dark presses either corner of his Eye with his Finger, and turns his Eye away from his Finger, he will see a Circle of Colours like those in the Feather of a Peacock's Tail. If the Eye and the Finger remain quiet these Colours vanish in a second Minute of Time, but if the Finger be moved with a quavering Motion they appear again. Do not these Colours arise from such Motions excited in the bottom of the Eye by the Pressure and Motion of the Finger, as, at other times are excited there by Light for causing Vision? And do not the Motions once excited continue about a Second of Time before they cease? And when a Man by a stroke upon his Eye sees a flash of Light, are not the like Motions excited in the _Retina_ by the stroke? And when a Coal of Fire moved nimbly in the circumference of a Circle, makes the whole circumference appear like a Circle of Fire; is it not because the Motions excited in the bottom of the Eye by the Rays of Light are of a lasting nature, and continue till the Coal of Fire in going round returns to its former place? And considering the lastingness of the Motions excited in the bottom of the Eye by Light, are they not of a vibrating nature? _Qu._ 17. If a stone be thrown into stagnating Water, the Waves excited thereby continue some time to arise in the place where the Stone fell into the Water, and are propagated from thence in concentrick Circles upon the Surface of the Water to great distances. And the Vibrations or Tremors excited in the Air by percussion, continue a little time to move from the place of percussion in concentrick Spheres to great distances. And in like manner, when a Ray of Light falls upon the Surface of any pellucid Body, and is there refracted or reflected, may not Waves of Vibrations, or Tremors, be thereby excited in the refracting or reflecting Medium at the point of Incidence, and continue to arise there, and to be propagated from thence as long as they continue to arise and be propagated, when they are excited in the bottom of the Eye by the Pressure or Motion of the Finger, or by the Light which comes from the Coal of Fire in the Experiments above-mention'd? and are not these Vibrations propagated from the point of Incidence to great distances? And do they not overtake the Rays of Light, and by overtaking them successively, do they not put them into the Fits of easy Reflexion and easy Transmission described above? For if the Rays endeavour to recede from the densest part of the Vibration, they may be alternately accelerated and retarded by the Vibrations overtaking them. _Qu._ 18. If in two large tall cylindrical Vessels of Glass inverted, two little Thermometers be suspended so as not to touch the Vessels, and the Air be drawn out of one of these Vessels, and these Vessels thus prepared be carried out of a cold place into a warm one; the Thermometer _in vacuo_ will grow warm as much, and almost as soon as the Thermometer which is not _in vacuo_. And when the Vessels are carried back into the cold place, the Thermometer _in vacuo_ will grow cold almost as soon as the other Thermometer. Is not the Heat of the warm Room convey'd through the _Vacuum_ by the Vibrations of a much subtiler Medium than Air, which after the Air was drawn out remained in the _Vacuum_? And is not this Medium the same with that Medium by which Light is refracted and reflected, and by whose Vibrations Light communicates Heat to Bodies, and is put into Fits of easy Reflexion and easy Transmission? And do not the Vibrations of this Medium in hot Bodies contribute to the intenseness and duration of their Heat? And do not hot Bodies communicate their Heat to contiguous cold ones, by the Vibrations of this Medium propagated from them into the cold ones? And is not this Medium exceedingly more rare and subtile than the Air, and exceedingly more elastick and active? And doth it not readily pervade all Bodies? And is it not (by its elastick force) expanded through all the Heavens? _Qu._ 19. Doth not the Refraction of Light proceed from the different density of this Æthereal Medium in different places, the Light receding always from the denser parts of the Medium? And is not the density thereof greater in free and open Spaces void of Air and other grosser Bodies, than within the Pores of Water, Glass, Crystal, Gems, and other compact Bodies? For when Light passes through Glass or Crystal, and falling very obliquely upon the farther Surface thereof is totally reflected, the total Reflexion ought to proceed rather from the density and vigour of the Medium without and beyond the Glass, than from the rarity and weakness thereof. _Qu._ 20. Doth not this Æthereal Medium in passing out of Water, Glass, Crystal, and other compact and dense Bodies into empty Spaces, grow denser and denser by degrees, and by that means refract the Rays of Light not in a point, but by bending them gradually in curve Lines? And doth not the gradual condensation of this Medium extend to some distance from the Bodies, and thereby cause the Inflexions of the Rays of Light, which pass by the edges of dense Bodies, at some distance from the Bodies? _Qu._ 21. Is not this Medium much rarer within the dense Bodies of the Sun, Stars, Planets and Comets, than in the empty celestial Spaces between them? And in passing from them to great distances, doth it not grow denser and denser perpetually, and thereby cause the gravity of those great Bodies towards one another, and of their parts towards the Bodies; every Body endeavouring to go from the denser parts of the Medium towards the rarer? For if this Medium be rarer within the Sun's Body than at its Surface, and rarer there than at the hundredth part of an Inch from its Body, and rarer there than at the fiftieth part of an Inch from its Body, and rarer there than at the Orb of _Saturn_; I see no reason why the Increase of density should stop any where, and not rather be continued through all distances from the Sun to _Saturn_, and beyond. And though this Increase of density may at great distances be exceeding slow, yet if the elastick force of this Medium be exceeding great, it may suffice to impel Bodies from the denser parts of the Medium towards the rarer, with all that power which we call Gravity. And that the elastick force of this Medium is exceeding great, may be gather'd from the swiftness of its Vibrations. Sounds move about 1140 _English_ Feet in a second Minute of Time, and in seven or eight Minutes of Time they move about one hundred _English_ Miles. Light moves from the Sun to us in about seven or eight Minutes of Time, which distance is about 70,000,000 _English_ Miles, supposing the horizontal Parallax of the Sun to be about 12´´. And the Vibrations or Pulses of this Medium, that they may cause the alternate Fits of easy Transmission and easy Reflexion, must be swifter than Light, and by consequence above 700,000 times swifter than Sounds. And therefore the elastick force of this Medium, in proportion to its density, must be above 700000 x 700000 (that is, above 490,000,000,000) times greater than the elastick force of the Air is in proportion to its density. For the Velocities of the Pulses of elastick Mediums are in a subduplicate _Ratio_ of the Elasticities and the Rarities of the Mediums taken together. As Attraction is stronger in small Magnets than in great ones in proportion to their Bulk, and Gravity is greater in the Surfaces of small Planets than in those of great ones in proportion to their bulk, and small Bodies are agitated much more by electric attraction than great ones; so the smallness of the Rays of Light may contribute very much to the power of the Agent by which they are refracted. And so if any one should suppose that _Æther_ (like our Air) may contain Particles which endeavour to recede from one another (for I do not know what this _Æther_ is) and that its Particles are exceedingly smaller than those of Air, or even than those of Light: The exceeding smallness of its Particles may contribute to the greatness of the force by which those Particles may recede from one another, and thereby make that Medium exceedingly more rare and elastick than Air, and by consequence exceedingly less able to resist the motions of Projectiles, and exceedingly more able to press upon gross Bodies, by endeavouring to expand it self. _Qu._ 22. May not Planets and Comets, and all gross Bodies, perform their Motions more freely, and with less resistance in this Æthereal Medium than in any Fluid, which fills all Space adequately without leaving any Pores, and by consequence is much denser than Quick-silver or Gold? And may not its resistance be so small, as to be inconsiderable? For instance; If this _Æther_ (for so I will call it) should be supposed 700000 times more elastick than our Air, and above 700000 times more rare; its resistance would be above 600,000,000 times less than that of Water. And so small a resistance would scarce make any sensible alteration in the Motions of the Planets in ten thousand Years. If any one would ask how a Medium can be so rare, let him tell me how the Air, in the upper parts of the Atmosphere, can be above an hundred thousand thousand times rarer than Gold. Let him also tell me, how an electrick Body can by Friction emit an Exhalation so rare and subtile, and yet so potent, as by its Emission to cause no sensible Diminution of the weight of the electrick Body, and to be expanded through a Sphere, whose Diameter is above two Feet, and yet to be able to agitate and carry up Leaf Copper, or Leaf Gold, at the distance of above a Foot from the electrick Body? And how the Effluvia of a Magnet can be so rare and subtile, as to pass through a Plate of Glass without any Resistance or Diminution of their Force, and yet so potent as to turn a magnetick Needle beyond the Glass? _Qu._ 23. Is not Vision perform'd chiefly by the Vibrations of this Medium, excited in the bottom of the Eye by the Rays of Light, and propagated through the solid, pellucid and uniform Capillamenta of the optick Nerves into the place of Sensation? And is not Hearing perform'd by the Vibrations either of this or some other Medium, excited in the auditory Nerves by the Tremors of the Air, and propagated through the solid, pellucid and uniform Capillamenta of those Nerves into the place of Sensation? And so of the other Senses. _Qu._ 24. Is not Animal Motion perform'd by the Vibrations of this Medium, excited in the Brain by the power of the Will, and propagated from thence through the solid, pellucid and uniform Capillamenta of the Nerves into the Muscles, for contracting and dilating them? I suppose that the Capillamenta of the Nerves are each of them solid and uniform, that the vibrating Motion of the Æthereal Medium may be propagated along them from one end to the other uniformly, and without interruption: For Obstructions in the Nerves create Palsies. And that they may be sufficiently uniform, I suppose them to be pellucid when view'd singly, tho' the Reflexions in their cylindrical Surfaces may make the whole Nerve (composed of many Capillamenta) appear opake and white. For opacity arises from reflecting Surfaces, such as may disturb and interrupt the Motions of this Medium. [Sidenote: _See the following Scheme, p. 356._] _Qu._ 25. Are there not other original Properties of the Rays of Light, besides those already described? An instance of another original Property we have in the Refraction of Island Crystal, described first by _Erasmus Bartholine_, and afterwards more exactly by _Hugenius_, in his Book _De la Lumiere_. This Crystal is a pellucid fissile Stone, clear as Water or Crystal of the Rock, and without Colour; enduring a red Heat without losing its transparency, and in a very strong Heat calcining without Fusion. Steep'd a Day or two in Water, it loses its natural Polish. Being rubb'd on Cloth, it attracts pieces of Straws and other light things, like Ambar or Glass; and with _Aqua fortis_ it makes an Ebullition. It seems to be a sort of Talk, and is found in form of an oblique Parallelopiped, with six parallelogram Sides and eight solid Angles. The obtuse Angles of the Parallelograms are each of them 101 Degrees and 52 Minutes; the acute ones 78 Degrees and 8 Minutes. Two of the solid Angles opposite to one another, as C and E, are compassed each of them with three of these obtuse Angles, and each of the other six with one obtuse and two acute ones. It cleaves easily in planes parallel to any of its Sides, and not in any other Planes. It cleaves with a glossy polite Surface not perfectly plane, but with some little unevenness. It is easily scratch'd, and by reason of its softness it takes a Polish very difficultly. It polishes better upon polish'd Looking-glass than upon Metal, and perhaps better upon Pitch, Leather or Parchment. Afterwards it must be rubb'd with a little Oil or white of an Egg, to fill up its Scratches; whereby it will become very transparent and polite. But for several Experiments, it is not necessary to polish it. If a piece of this crystalline Stone be laid upon a Book, every Letter of the Book seen through it will appear double, by means of a double Refraction. And if any beam of Light falls either perpendicularly, or in any oblique Angle upon any Surface of this Crystal, it becomes divided into two beams by means of the same double Refraction. Which beams are of the same Colour with the incident beam of Light, and seem equal to one another in the quantity of their Light, or very nearly equal. One of these Refractions is perform'd by the usual Rule of Opticks, the Sine of Incidence out of Air into this Crystal being to the Sine of Refraction, as five to three. The other Refraction, which may be called the unusual Refraction, is perform'd by the following Rule. [Illustration: FIG. 4.] Let ADBC represent the refracting Surface of the Crystal, C the biggest solid Angle at that Surface, GEHF the opposite Surface, and CK a perpendicular on that Surface. This perpendicular makes with the edge of the Crystal CF, an Angle of 19 Degr. 3'. Join KF, and in it take KL, so that the Angle KCL be 6 Degr. 40'. and the Angle LCF 12 Degr. 23'. And if ST represent any beam of Light incident at T in any Angle upon the refracting Surface ADBC, let TV be the refracted beam determin'd by the given Portion of the Sines 5 to 3, according to the usual Rule of Opticks. Draw VX parallel and equal to KL. Draw it the same way from V in which L lieth from K; and joining TX, this line TX shall be the other refracted beam carried from T to X, by the unusual Refraction. If therefore the incident beam ST be perpendicular to the refracting Surface, the two beams TV and TX, into which it shall become divided, shall be parallel to the lines CK and CL; one of those beams going through the Crystal perpendicularly, as it ought to do by the usual Laws of Opticks, and the other TX by an unusual Refraction diverging from the perpendicular, and making with it an Angle VTX of about 6-2/3 Degrees, as is found by Experience. And hence, the Plane VTX, and such like Planes which are parallel to the Plane CFK, may be called the Planes of perpendicular Refraction. And the Coast towards which the lines KL and VX are drawn, may be call'd the Coast of unusual Refraction. In like manner Crystal of the Rock has a double Refraction: But the difference of the two Refractions is not so great and manifest as in Island Crystal. When the beam ST incident on Island Crystal is divided into two beams TV and TX, and these two beams arrive at the farther Surface of the Glass; the beam TV, which was refracted at the first Surface after the usual manner, shall be again refracted entirely after the usual manner at the second Surface; and the beam TX, which was refracted after the unusual manner in the first Surface, shall be again refracted entirely after the unusual manner in the second Surface; so that both these beams shall emerge out of the second Surface in lines parallel to the first incident beam ST. And if two pieces of Island Crystal be placed one after another, in such manner that all the Surfaces of the latter be parallel to all the corresponding Surfaces of the former: The Rays which are refracted after the usual manner in the first Surface of the first Crystal, shall be refracted after the usual manner in all the following Surfaces; and the Rays which are refracted after the unusual manner in the first Surface, shall be refracted after the unusual manner in all the following Surfaces. And the same thing happens, though the Surfaces of the Crystals be any ways inclined to one another, provided that their Planes of perpendicular Refraction be parallel to one another. And therefore there is an original difference in the Rays of Light, by means of which some Rays are in this Experiment constantly refracted after the usual manner, and others constantly after the unusual manner: For if the difference be not original, but arises from new Modifications impress'd on the Rays at their first Refraction, it would be alter'd by new Modifications in the three following Refractions; whereas it suffers no alteration, but is constant, and has the same effect upon the Rays in all the Refractions. The unusual Refraction is therefore perform'd by an original property of the Rays. And it remains to be enquired, whether the Rays have not more original Properties than are yet discover'd. _Qu._ 26. Have not the Rays of Light several sides, endued with several original Properties? For if the Planes of perpendicular Refraction of the second Crystal be at right Angles with the Planes of perpendicular Refraction of the first Crystal, the Rays which are refracted after the usual manner in passing through the first Crystal, will be all of them refracted after the unusual manner in passing through the second Crystal; and the Rays which are refracted after the unusual manner in passing through the first Crystal, will be all of them refracted after the usual manner in passing through the second Crystal. And therefore there are not two sorts of Rays differing in their nature from one another, one of which is constantly and in all Positions refracted after the usual manner, and the other constantly and in all Positions after the unusual manner. The difference between the two sorts of Rays in the Experiment mention'd in the 25th Question, was only in the Positions of the Sides of the Rays to the Planes of perpendicular Refraction. For one and the same Ray is here refracted sometimes after the usual, and sometimes after the unusual manner, according to the Position which its Sides have to the Crystals. If the Sides of the Ray are posited the same way to both Crystals, it is refracted after the same manner in them both: But if that side of the Ray which looks towards the Coast of the unusual Refraction of the first Crystal, be 90 Degrees from that side of the same Ray which looks toward the Coast of the unusual Refraction of the second Crystal, (which may be effected by varying the Position of the second Crystal to the first, and by consequence to the Rays of Light,) the Ray shall be refracted after several manners in the several Crystals. There is nothing more required to determine whether the Rays of Light which fall upon the second Crystal shall be refracted after the usual or after the unusual manner, but to turn about this Crystal, so that the Coast of this Crystal's unusual Refraction may be on this or on that side of the Ray. And therefore every Ray may be consider'd as having four Sides or Quarters, two of which opposite to one another incline the Ray to be refracted after the unusual manner, as often as either of them are turn'd towards the Coast of unusual Refraction; and the other two, whenever either of them are turn'd towards the Coast of unusual Refraction, do not incline it to be otherwise refracted than after the usual manner. The two first may therefore be call'd the Sides of unusual Refraction. And since these Dispositions were in the Rays before their Incidence on the second, third, and fourth Surfaces of the two Crystals, and suffered no alteration (so far as appears,) by the Refraction of the Rays in their passage through those Surfaces, and the Rays were refracted by the same Laws in all the four Surfaces; it appears that those Dispositions were in the Rays originally, and suffer'd no alteration by the first Refraction, and that by means of those Dispositions the Rays were refracted at their Incidence on the first Surface of the first Crystal, some of them after the usual, and some of them after the unusual manner, accordingly as their Sides of unusual Refraction were then turn'd towards the Coast of the unusual Refraction of that Crystal, or sideways from it. Every Ray of Light has therefore two opposite Sides, originally endued with a Property on which the unusual Refraction depends, and the other two opposite Sides not endued with that Property. And it remains to be enquired, whether there are not more Properties of Light by which the Sides of the Rays differ, and are distinguished from one another. In explaining the difference of the Sides of the Rays above mention'd, I have supposed that the Rays fall perpendicularly on the first Crystal. But if they fall obliquely on it, the Success is the same. Those Rays which are refracted after the usual manner in the first Crystal, will be refracted after the unusual manner in the second Crystal, supposing the Planes of perpendicular Refraction to be at right Angles with one another, as above; and on the contrary. If the Planes of the perpendicular Refraction of the two Crystals be neither parallel nor perpendicular to one another, but contain an acute Angle: The two beams of Light which emerge out of the first Crystal, will be each of them divided into two more at their Incidence on the second Crystal. For in this case the Rays in each of the two beams will some of them have their Sides of unusual Refraction, and some of them their other Sides turn'd towards the Coast of the unusual Refraction of the second Crystal. _Qu._ 27. Are not all Hypotheses erroneous which have hitherto been invented for explaining the Phænomena of Light, by new Modifications of the Rays? For those Phænomena depend not upon new Modifications, as has been supposed, but upon the original and unchangeable Properties of the Rays. _Qu._ 28. Are not all Hypotheses erroneous, in which Light is supposed to consist in Pression or Motion, propagated through a fluid Medium? For in all these Hypotheses the Phænomena of Light have been hitherto explain'd by supposing that they arise from new Modifications of the Rays; which is an erroneous Supposition. If Light consisted only in Pression propagated without actual Motion, it would not be able to agitate and heat the Bodies which refract and reflect it. If it consisted in Motion propagated to all distances in an instant, it would require an infinite force every moment, in every shining Particle, to generate that Motion. And if it consisted in Pression or Motion, propagated either in an instant or in time, it would bend into the Shadow. For Pression or Motion cannot be propagated in a Fluid in right Lines, beyond an Obstacle which stops part of the Motion, but will bend and spread every way into the quiescent Medium which lies beyond the Obstacle. Gravity tends downwards, but the Pressure of Water arising from Gravity tends every way with equal Force, and is propagated as readily, and with as much force sideways as downwards, and through crooked passages as through strait ones. The Waves on the Surface of stagnating Water, passing by the sides of a broad Obstacle which stops part of them, bend afterwards and dilate themselves gradually into the quiet Water behind the Obstacle. The Waves, Pulses or Vibrations of the Air, wherein Sounds consist, bend manifestly, though not so much as the Waves of Water. For a Bell or a Cannon may be heard beyond a Hill which intercepts the sight of the sounding Body, and Sounds are propagated as readily through crooked Pipes as through streight ones. But Light is never known to follow crooked Passages nor to bend into the Shadow. For the fix'd Stars by the Interposition of any of the Planets cease to be seen. And so do the Parts of the Sun by the Interposition of the Moon, _Mercury_ or _Venus_. The Rays which pass very near to the edges of any Body, are bent a little by the action of the Body, as we shew'd above; but this bending is not towards but from the Shadow, and is perform'd only in the passage of the Ray by the Body, and at a very small distance from it. So soon as the Ray is past the Body, it goes right on. [Sidenote: _Mais pour dire comment cela se fait, je n'ay rien trove jusqu' ici qui me satisfasse._ C. H. de la lumiere, c. 5, p. 91.] To explain the unusual Refraction of Island Crystal by Pression or Motion propagated, has not hitherto been attempted (to my knowledge) except by _Huygens_, who for that end supposed two several vibrating Mediums within that Crystal. But when he tried the Refractions in two successive pieces of that Crystal, and found them such as is mention'd above; he confessed himself at a loss for explaining them. For Pressions or Motions, propagated from a shining Body through an uniform Medium, must be on all sides alike; whereas by those Experiments it appears, that the Rays of Light have different Properties in their different Sides. He suspected that the Pulses of _Æther_ in passing through the first Crystal might receive certain new Modifications, which might determine them to be propagated in this or that Medium within the second Crystal, according to the Position of that Crystal. But what Modifications those might be he could not say, nor think of any thing satisfactory in that Point. And if he had known that the unusual Refraction depends not on new Modifications, but on the original and unchangeable Dispositions of the Rays, he would have found it as difficult to explain how those Dispositions which he supposed to be impress'd on the Rays by the first Crystal, could be in them before their Incidence on that Crystal, and in general, how all Rays emitted by shining Bodies, can have those Dispositions in them from the beginning. To me, at least, this seems inexplicable, if Light be nothing else than Pression or Motion propagated through _Æther_. And it is as difficult to explain by these Hypotheses, how Rays can be alternately in Fits of easy Reflexion and easy Transmission; unless perhaps one might suppose that there are in all Space two Æthereal vibrating Mediums, and that the Vibrations of one of them constitute Light, and the Vibrations of the other are swifter, and as often as they overtake the Vibrations of the first, put them into those Fits. But how two _Æthers_ can be diffused through all Space, one of which acts upon the other, and by consequence is re-acted upon, without retarding, shattering, dispersing and confounding one anothers Motions, is inconceivable. And against filling the Heavens with fluid Mediums, unless they be exceeding rare, a great Objection arises from the regular and very lasting Motions of the Planets and Comets in all manner of Courses through the Heavens. For thence it is manifest, that the Heavens are void of all sensible Resistance, and by consequence of all sensible Matter. For the resisting Power of fluid Mediums arises partly from the Attrition of the Parts of the Medium, and partly from the _Vis inertiæ_ of the Matter. That part of the Resistance of a spherical Body which arises from the Attrition of the Parts of the Medium is very nearly as the Diameter, or, at the most, as the _Factum_ of the Diameter, and the Velocity of the spherical Body together. And that part of the Resistance which arises from the _Vis inertiæ_ of the Matter, is as the Square of that _Factum_. And by this difference the two sorts of Resistance may be distinguish'd from one another in any Medium; and these being distinguish'd, it will be found that almost all the Resistance of Bodies of a competent Magnitude moving in Air, Water, Quick-silver, and such like Fluids with a competent Velocity, arises from the _Vis inertiæ_ of the Parts of the Fluid. Now that part of the resisting Power of any Medium which arises from the Tenacity, Friction or Attrition of the Parts of the Medium, may be diminish'd by dividing the Matter into smaller Parts, and making the Parts more smooth and slippery: But that part of the Resistance which arises from the _Vis inertiæ_, is proportional to the Density of the Matter, and cannot be diminish'd by dividing the Matter into smaller Parts, nor by any other means than by decreasing the Density of the Medium. And for these Reasons the Density of fluid Mediums is very nearly proportional to their Resistance. Liquors which differ not much in Density, as Water, Spirit of Wine, Spirit of Turpentine, hot Oil, differ not much in Resistance. Water is thirteen or fourteen times lighter than Quick-silver and by consequence thirteen or fourteen times rarer, and its Resistance is less than that of Quick-silver in the same Proportion, or thereabouts, as I have found by Experiments made with Pendulums. The open Air in which we breathe is eight or nine hundred times lighter than Water, and by consequence eight or nine hundred times rarer, and accordingly its Resistance is less than that of Water in the same Proportion, or thereabouts; as I have also found by Experiments made with Pendulums. And in thinner Air the Resistance is still less, and at length, by ratifying the Air, becomes insensible. For small Feathers falling in the open Air meet with great Resistance, but in a tall Glass well emptied of Air, they fall as fast as Lead or Gold, as I have seen tried several times. Whence the Resistance seems still to decrease in proportion to the Density of the Fluid. For I do not find by any Experiments, that Bodies moving in Quick-silver, Water or Air, meet with any other sensible Resistance than what arises from the Density and Tenacity of those sensible Fluids, as they would do if the Pores of those Fluids, and all other Spaces, were filled with a dense and subtile Fluid. Now if the Resistance in a Vessel well emptied of Air, was but an hundred times less than in the open Air, it would be about a million of times less than in Quick-silver. But it seems to be much less in such a Vessel, and still much less in the Heavens, at the height of three or four hundred Miles from the Earth, or above. For Mr. _Boyle_ has shew'd that Air may be rarified above ten thousand times in Vessels of Glass; and the Heavens are much emptier of Air than any _Vacuum_ we can make below. For since the Air is compress'd by the Weight of the incumbent Atmosphere, and the Density of Air is proportional to the Force compressing it, it follows by Computation, that at the height of about seven and a half _English_ Miles from the Earth, the Air is four times rarer than at the Surface of the Earth; and at the height of 15 Miles it is sixteen times rarer than that at the Surface of the Earth; and at the height of 22-1/2, 30, or 38 Miles, it is respectively 64, 256, or 1024 times rarer, or thereabouts; and at the height of 76, 152, 228 Miles, it is about 1000000, 1000000000000, or 1000000000000000000 times rarer; and so on. Heat promotes Fluidity very much by diminishing the Tenacity of Bodies. It makes many Bodies fluid which are not fluid in cold, and increases the Fluidity of tenacious Liquids, as of Oil, Balsam, and Honey, and thereby decreases their Resistance. But it decreases not the Resistance of Water considerably, as it would do if any considerable part of the Resistance of Water arose from the Attrition or Tenacity of its Parts. And therefore the Resistance of Water arises principally and almost entirely from the _Vis inertiæ_ of its Matter; and by consequence, if the Heavens were as dense as Water, they would not have much less Resistance than Water; if as dense as Quick-silver, they would not have much less Resistance than Quick-silver; if absolutely dense, or full of Matter without any _Vacuum_, let the Matter be never so subtil and fluid, they would have a greater Resistance than Quick-silver. A solid Globe in such a Medium would lose above half its Motion in moving three times the length of its Diameter, and a Globe not solid (such as are the Planets,) would be retarded sooner. And therefore to make way for the regular and lasting Motions of the Planets and Comets, it's necessary to empty the Heavens of all Matter, except perhaps some very thin Vapours, Steams, or Effluvia, arising from the Atmospheres of the Earth, Planets, and Comets, and from such an exceedingly rare Æthereal Medium as we described above. A dense Fluid can be of no use for explaining the Phænomena of Nature, the Motions of the Planets and Comets being better explain'd without it. It serves only to disturb and retard the Motions of those great Bodies, and make the Frame of Nature languish: And in the Pores of Bodies, it serves only to stop the vibrating Motions of their Parts, wherein their Heat and Activity consists. And as it is of no use, and hinders the Operations of Nature, and makes her languish, so there is no evidence for its Existence, and therefore it ought to be rejected. And if it be rejected, the Hypotheses that Light consists in Pression or Motion, propagated through such a Medium, are rejected with it. And for rejecting such a Medium, we have the Authority of those the oldest and most celebrated Philosophers of _Greece_ and _Phoenicia_, who made a _Vacuum_, and Atoms, and the Gravity of Atoms, the first Principles of their Philosophy; tacitly attributing Gravity to some other Cause than dense Matter. Later Philosophers banish the Consideration of such a Cause out of natural Philosophy, feigning Hypotheses for explaining all things mechanically, and referring other Causes to Metaphysicks: Whereas the main Business of natural Philosophy is to argue from Phænomena without feigning Hypotheses, and to deduce Causes from Effects, till we come to the very first Cause, which certainly is not mechanical; and not only to unfold the Mechanism of the World, but chiefly to resolve these and such like Questions. What is there in places almost empty of Matter, and whence is it that the Sun and Planets gravitate towards one another, without dense Matter between them? Whence is it that Nature doth nothing in vain; and whence arises all that Order and Beauty which we see in the World? To what end are Comets, and whence is it that Planets move all one and the same way in Orbs concentrick, while Comets move all manner of ways in Orbs very excentrick; and what hinders the fix'd Stars from falling upon one another? How came the Bodies of Animals to be contrived with so much Art, and for what ends were their several Parts? Was the Eye contrived without Skill in Opticks, and the Ear without Knowledge of Sounds? How do the Motions of the Body follow from the Will, and whence is the Instinct in Animals? Is not the Sensory of Animals that place to which the sensitive Substance is present, and into which the sensible Species of Things are carried through the Nerves and Brain, that there they may be perceived by their immediate presence to that Substance? And these things being rightly dispatch'd, does it not appear from Phænomena that there is a Being incorporeal, living, intelligent, omnipresent, who in infinite Space, as it were in his Sensory, sees the things themselves intimately, and throughly perceives them, and comprehends them wholly by their immediate presence to himself: Of which things the Images only carried through the Organs of Sense into our little Sensoriums, are there seen and beheld by that which in us perceives and thinks. And though every true Step made in this Philosophy brings us not immediately to the Knowledge of the first Cause, yet it brings us nearer to it, and on that account is to be highly valued. _Qu._ 29. Are not the Rays of Light very small Bodies emitted from shining Substances? For such Bodies will pass through uniform Mediums in right Lines without bending into the Shadow, which is the Nature of the Rays of Light. They will also be capable of several Properties, and be able to conserve their Properties unchanged in passing through several Mediums, which is another Condition of the Rays of Light. Pellucid Substances act upon the Rays of Light at a distance in refracting, reflecting, and inflecting them, and the Rays mutually agitate the Parts of those Substances at a distance for heating them; and this Action and Re-action at a distance very much resembles an attractive Force between Bodies. If Refraction be perform'd by Attraction of the Rays, the Sines of Incidence must be to the Sines of Refraction in a given Proportion, as we shew'd in our Principles of Philosophy: And this Rule is true by Experience. The Rays of Light in going out of Glass into a _Vacuum_, are bent towards the Glass; and if they fall too obliquely on the _Vacuum_, they are bent backwards into the Glass, and totally reflected; and this Reflexion cannot be ascribed to the Resistance of an absolute _Vacuum_, but must be caused by the Power of the Glass attracting the Rays at their going out of it into the _Vacuum_, and bringing them back. For if the farther Surface of the Glass be moisten'd with Water or clear Oil, or liquid and clear Honey, the Rays which would otherwise be reflected will go into the Water, Oil, or Honey; and therefore are not reflected before they arrive at the farther Surface of the Glass, and begin to go out of it. If they go out of it into the Water, Oil, or Honey, they go on, because the Attraction of the Glass is almost balanced and rendered ineffectual by the contrary Attraction of the Liquor. But if they go out of it into a _Vacuum_ which has no Attraction to balance that of the Glass, the Attraction of the Glass either bends and refracts them, or brings them back and reflects them. And this is still more evident by laying together two Prisms of Glass, or two Object-glasses of very long Telescopes, the one plane, the other a little convex, and so compressing them that they do not fully touch, nor are too far asunder. For the Light which falls upon the farther Surface of the first Glass where the Interval between the Glasses is not above the ten hundred thousandth Part of an Inch, will go through that Surface, and through the Air or _Vacuum_ between the Glasses, and enter into the second Glass, as was explain'd in the first, fourth, and eighth Observations of the first Part of the second Book. But, if the second Glass be taken away, the Light which goes out of the second Surface of the first Glass into the Air or _Vacuum_, will not go on forwards, but turns back into the first Glass, and is reflected; and therefore it is drawn back by the Power of the first Glass, there being nothing else to turn it back. Nothing more is requisite for producing all the variety of Colours, and degrees of Refrangibility, than that the Rays of Light be Bodies of different Sizes, the least of which may take violet the weakest and darkest of the Colours, and be more easily diverted by refracting Surfaces from the right Course; and the rest as they are bigger and bigger, may make the stronger and more lucid Colours, blue, green, yellow, and red, and be more and more difficultly diverted. Nothing more is requisite for putting the Rays of Light into Fits of easy Reflexion and easy Transmission, than that they be small Bodies which by their attractive Powers, or some other Force, stir up Vibrations in what they act upon, which Vibrations being swifter than the Rays, overtake them successively, and agitate them so as by turns to increase and decrease their Velocities, and thereby put them into those Fits. And lastly, the unusual Refraction of Island-Crystal looks very much as if it were perform'd by some kind of attractive virtue lodged in certain Sides both of the Rays, and of the Particles of the Crystal. For were it not for some kind of Disposition or Virtue lodged in some Sides of the Particles of the Crystal, and not in their other Sides, and which inclines and bends the Rays towards the Coast of unusual Refraction, the Rays which fall perpendicularly on the Crystal, would not be refracted towards that Coast rather than towards any other Coast, both at their Incidence and at their Emergence, so as to emerge perpendicularly by a contrary Situation of the Coast of unusual Refraction at the second Surface; the Crystal acting upon the Rays after they have pass'd through it, and are emerging into the Air; or, if you please, into a _Vacuum_. And since the Crystal by this Disposition or Virtue does not act upon the Rays, unless when one of their Sides of unusual Refraction looks towards that Coast, this argues a Virtue or Disposition in those Sides of the Rays, which answers to, and sympathizes with that Virtue or Disposition of the Crystal, as the Poles of two Magnets answer to one another. And as Magnetism may be intended and remitted, and is found only in the Magnet and in Iron: So this Virtue of refracting the perpendicular Rays is greater in Island-Crystal, less in Crystal of the Rock, and is not yet found in other Bodies. I do not say that this Virtue is magnetical: It seems to be of another kind. I only say, that whatever it be, it's difficult to conceive how the Rays of Light, unless they be Bodies, can have a permanent Virtue in two of their Sides which is not in their other Sides, and this without any regard to their Position to the Space or Medium through which they pass. What I mean in this Question by a _Vacuum_, and by the Attractions of the Rays of Light towards Glass or Crystal, may be understood by what was said in the 18th, 19th, and 20th Questions. _Quest._ 30. Are not gross Bodies and Light convertible into one another, and may not Bodies receive much of their Activity from the Particles of Light which enter their Composition? For all fix'd Bodies being heated emit Light so long as they continue sufficiently hot, and Light mutually stops in Bodies as often as its Rays strike upon their Parts, as we shew'd above. I know no Body less apt to shine than Water; and yet Water by frequent Distillations changes into fix'd Earth, as Mr. _Boyle_ has try'd; and then this Earth being enabled to endure a sufficient Heat, shines by Heat like other Bodies. The changing of Bodies into Light, and Light into Bodies, is very conformable to the Course of Nature, which seems delighted with Transmutations. Water, which is a very fluid tasteless Salt, she changes by Heat into Vapour, which is a sort of Air, and by Cold into Ice, which is a hard, pellucid, brittle, fusible Stone; and this Stone returns into Water by Heat, and Vapour returns into Water by Cold. Earth by Heat becomes Fire, and by Cold returns into Earth. Dense Bodies by Fermentation rarify into several sorts of Air, and this Air by Fermentation, and sometimes without it, returns into dense Bodies. Mercury appears sometimes in the form of a fluid Metal, sometimes in the form of a hard brittle Metal, sometimes in the form of a corrosive pellucid Salt call'd Sublimate, sometimes in the form of a tasteless, pellucid, volatile white Earth, call'd _Mercurius Dulcis_; or in that of a red opake volatile Earth, call'd Cinnaber; or in that of a red or white Precipitate, or in that of a fluid Salt; and in Distillation it turns into Vapour, and being agitated _in Vacuo_, it shines like Fire. And after all these Changes it returns again into its first form of Mercury. Eggs grow from insensible Magnitudes, and change into Animals; Tadpoles into Frogs; and Worms into Flies. All Birds, Beasts and Fishes, Insects, Trees, and other Vegetables, with their several Parts, grow out of Water and watry Tinctures and Salts, and by Putrefaction return again into watry Substances. And Water standing a few Days in the open Air, yields a Tincture, which (like that of Malt) by standing longer yields a Sediment and a Spirit, but before Putrefaction is fit Nourishment for Animals and Vegetables. And among such various and strange Transmutations, why may not Nature change Bodies into Light, and Light into Bodies? _Quest._ 31. Have not the small Particles of Bodies certain Powers, Virtues, or Forces, by which they act at a distance, not only upon the Rays of Light for reflecting, refracting, and inflecting them, but also upon one another for producing a great Part of the Phænomena of Nature? For it's well known, that Bodies act one upon another by the Attractions of Gravity, Magnetism, and Electricity; and these Instances shew the Tenor and Course of Nature, and make it not improbable but that there may be more attractive Powers than these. For Nature is very consonant and conformable to her self. How these Attractions may be perform'd, I do not here consider. What I call Attraction may be perform'd by impulse, or by some other means unknown to me. I use that Word here to signify only in general any Force by which Bodies tend towards one another, whatsoever be the Cause. For we must learn from the Phænomena of Nature what Bodies attract one another, and what are the Laws and Properties of the Attraction, before we enquire the Cause by which the Attraction is perform'd. The Attractions of Gravity, Magnetism, and Electricity, reach to very sensible distances, and so have been observed by vulgar Eyes, and there may be others which reach to so small distances as hitherto escape Observation; and perhaps electrical Attraction may reach to such small distances, even without being excited by Friction. For when Salt of Tartar runs _per Deliquium_, is not this done by an Attraction between the Particles of the Salt of Tartar, and the Particles of the Water which float in the Air in the form of Vapours? And why does not common Salt, or Salt-petre, or Vitriol, run _per Deliquium_, but for want of such an Attraction? Or why does not Salt of Tartar draw more Water out of the Air than in a certain Proportion to its quantity, but for want of an attractive Force after it is satiated with Water? And whence is it but from this attractive Power that Water which alone distils with a gentle luke-warm Heat, will not distil from Salt of Tartar without a great Heat? And is it not from the like attractive Power between the Particles of Oil of Vitriol and the Particles of Water, that Oil of Vitriol draws to it a good quantity of Water out of the Air, and after it is satiated draws no more, and in Distillation lets go the Water very difficultly? And when Water and Oil of Vitriol poured successively into the same Vessel grow very hot in the mixing, does not this Heat argue a great Motion in the Parts of the Liquors? And does not this Motion argue, that the Parts of the two Liquors in mixing coalesce with Violence, and by consequence rush towards one another with an accelerated Motion? And when _Aqua fortis_, or Spirit of Vitriol poured upon Filings of Iron dissolves the Filings with a great Heat and Ebullition, is not this Heat and Ebullition effected by a violent Motion of the Parts, and does not that Motion argue that the acid Parts of the Liquor rush towards the Parts of the Metal with violence, and run forcibly into its Pores till they get between its outmost Particles, and the main Mass of the Metal, and surrounding those Particles loosen them from the main Mass, and set them at liberty to float off into the Water? And when the acid Particles, which alone would distil with an easy Heat, will not separate from the Particles of the Metal without a very violent Heat, does not this confirm the Attraction between them? When Spirit of Vitriol poured upon common Salt or Salt-petre makes an Ebullition with the Salt, and unites with it, and in Distillation the Spirit of the common Salt or Salt-petre comes over much easier than it would do before, and the acid part of the Spirit of Vitriol stays behind; does not this argue that the fix'd Alcaly of the Salt attracts the acid Spirit of the Vitriol more strongly than its own Spirit, and not being able to hold them both, lets go its own? And when Oil of Vitriol is drawn off from its weight of Nitre, and from both the Ingredients a compound Spirit of Nitre is distilled, and two parts of this Spirit are poured on one part of Oil of Cloves or Carraway Seeds, or of any ponderous Oil of vegetable or animal Substances, or Oil of Turpentine thicken'd with a little Balsam of Sulphur, and the Liquors grow so very hot in mixing, as presently to send up a burning Flame; does not this very great and sudden Heat argue that the two Liquors mix with violence, and that their Parts in mixing run towards one another with an accelerated Motion, and clash with the greatest Force? And is it not for the same reason that well rectified Spirit of Wine poured on the same compound Spirit flashes; and that the _Pulvis fulminans_, composed of Sulphur, Nitre, and Salt of Tartar, goes off with a more sudden and violent Explosion than Gun-powder, the acid Spirits of the Sulphur and Nitre rushing towards one another, and towards the Salt of Tartar, with so great a violence, as by the shock to turn the whole at once into Vapour and Flame? Where the Dissolution is slow, it makes a slow Ebullition and a gentle Heat; and where it is quicker, it makes a greater Ebullition with more heat; and where it is done at once, the Ebullition is contracted into a sudden Blast or violent Explosion, with a heat equal to that of Fire and Flame. So when a Drachm of the above-mention'd compound Spirit of Nitre was poured upon half a Drachm of Oil of Carraway Seeds _in vacuo_, the Mixture immediately made a flash like Gun-powder, and burst the exhausted Receiver, which was a Glass six Inches wide, and eight Inches deep. And even the gross Body of Sulphur powder'd, and with an equal weight of Iron Filings and a little Water made into Paste, acts upon the Iron, and in five or six hours grows too hot to be touch'd, and emits a Flame. And by these Experiments compared with the great quantity of Sulphur with which the Earth abounds, and the warmth of the interior Parts of the Earth, and hot Springs, and burning Mountains, and with Damps, mineral Coruscations, Earthquakes, hot suffocating Exhalations, Hurricanes, and Spouts; we may learn that sulphureous Steams abound in the Bowels of the Earth and ferment with Minerals, and sometimes take fire with a sudden Coruscation and Explosion; and if pent up in subterraneous Caverns, burst the Caverns with a great shaking of the Earth, as in springing of a Mine. And then the Vapour generated by the Explosion, expiring through the Pores of the Earth, feels hot and suffocates, and makes Tempests and Hurricanes, and sometimes causes the Land to slide, or the Sea to boil, and carries up the Water thereof in Drops, which by their weight fall down again in Spouts. Also some sulphureous Steams, at all times when the Earth is dry, ascending into the Air, ferment there with nitrous Acids, and sometimes taking fire cause Lightning and Thunder, and fiery Meteors. For the Air abounds with acid Vapours fit to promote Fermentations, as appears by the rusting of Iron and Copper in it, the kindling of Fire by blowing, and the beating of the Heart by means of Respiration. Now the above-mention'd Motions are so great and violent as to shew that in Fermentations the Particles of Bodies which almost rest, are put into new Motions by a very potent Principle, which acts upon them only when they approach one another, and causes them to meet and clash with great violence, and grow hot with the motion, and dash one another into pieces, and vanish into Air, and Vapour, and Flame. When Salt of Tartar _per deliquium_, being poured into the Solution of any Metal, precipitates the Metal and makes it fall down to the bottom of the Liquor in the form of Mud: Does not this argue that the acid Particles are attracted more strongly by the Salt of Tartar than by the Metal, and by the stronger Attraction go from the Metal to the Salt of Tartar? And so when a Solution of Iron in _Aqua fortis_ dissolves the _Lapis Calaminaris_, and lets go the Iron, or a Solution of Copper dissolves Iron immersed in it and lets go the Copper, or a Solution of Silver dissolves Copper and lets go the Silver, or a Solution of Mercury in _Aqua fortis_ being poured upon Iron, Copper, Tin, or Lead, dissolves the Metal and lets go the Mercury; does not this argue that the acid Particles of the _Aqua fortis_ are attracted more strongly by the _Lapis Calaminaris_ than by Iron, and more strongly by Iron than by Copper, and more strongly by Copper than by Silver, and more strongly by Iron, Copper, Tin, and Lead, than by Mercury? And is it not for the same reason that Iron requires more _Aqua fortis_ to dissolve it than Copper, and Copper more than the other Metals; and that of all Metals, Iron is dissolved most easily, and is most apt to rust; and next after Iron, Copper? When Oil of Vitriol is mix'd with a little Water, or is run _per deliquium_, and in Distillation the Water ascends difficultly, and brings over with it some part of the Oil of Vitriol in the form of Spirit of Vitriol, and this Spirit being poured upon Iron, Copper, or Salt of Tartar, unites with the Body and lets go the Water; doth not this shew that the acid Spirit is attracted by the Water, and more attracted by the fix'd Body than by the Water, and therefore lets go the Water to close with the fix'd Body? And is it not for the same reason that the Water and acid Spirits which are mix'd together in Vinegar, _Aqua fortis_, and Spirit of Salt, cohere and rise together in Distillation; but if the _Menstruum_ be poured on Salt of Tartar, or on Lead, or Iron, or any fix'd Body which it can dissolve, the Acid by a stronger Attraction adheres to the Body, and lets go the Water? And is it not also from a mutual Attraction that the Spirits of Soot and Sea-Salt unite and compose the Particles of Sal-armoniac, which are less volatile than before, because grosser and freer from Water; and that the Particles of Sal-armoniac in Sublimation carry up the Particles of Antimony, which will not sublime alone; and that the Particles of Mercury uniting with the acid Particles of Spirit of Salt compose Mercury sublimate, and with the Particles of Sulphur, compose Cinnaber; and that the Particles of Spirit of Wine and Spirit of Urine well rectified unite, and letting go the Water which dissolved them, compose a consistent Body; and that in subliming Cinnaber from Salt of Tartar, or from quick Lime, the Sulphur by a stronger Attraction of the Salt or Lime lets go the Mercury, and stays with the fix'd Body; and that when Mercury sublimate is sublimed from Antimony, or from Regulus of Antimony, the Spirit of Salt lets go the Mercury, and unites with the antimonial metal which attracts it more strongly, and stays with it till the Heat be great enough to make them both ascend together, and then carries up the Metal with it in the form of a very fusible Salt, called Butter of Antimony, although the Spirit of Salt alone be almost as volatile as Water, and the Antimony alone as fix'd as Lead? When _Aqua fortis_ dissolves Silver and not Gold, and _Aqua regia_ dissolves Gold and not Silver, may it not be said that _Aqua fortis_ is subtil enough to penetrate Gold as well as Silver, but wants the attractive Force to give it Entrance; and that _Aqua regia_ is subtil enough to penetrate Silver as well as Gold, but wants the attractive Force to give it Entrance? For _Aqua regia_ is nothing else than _Aqua fortis_ mix'd with some Spirit of Salt, or with Sal-armoniac; and even common Salt dissolved in _Aqua fortis_, enables the _Menstruum_ to dissolve Gold, though the Salt be a gross Body. When therefore Spirit of Salt precipitates Silver out of _Aqua fortis_, is it not done by attracting and mixing with the _Aqua fortis_, and not attracting, or perhaps repelling Silver? And when Water precipitates Antimony out of the Sublimate of Antimony and Sal-armoniac, or out of Butter of Antimony, is it not done by its dissolving, mixing with, and weakening the Sal-armoniac or Spirit of Salt, and its not attracting, or perhaps repelling the Antimony? And is it not for want of an attractive virtue between the Parts of Water and Oil, of Quick-silver and Antimony, of Lead and Iron, that these Substances do not mix; and by a weak Attraction, that Quick-silver and Copper mix difficultly; and from a strong one, that Quick-silver and Tin, Antimony and Iron, Water and Salts, mix readily? And in general, is it not from the same Principle that Heat congregates homogeneal Bodies, and separates heterogeneal ones? When Arsenick with Soap gives a Regulus, and with Mercury sublimate a volatile fusible Salt, like Butter of Antimony, doth not this shew that Arsenick, which is a Substance totally volatile, is compounded of fix'd and volatile Parts, strongly cohering by a mutual Attraction, so that the volatile will not ascend without carrying up the fixed? And so, when an equal weight of Spirit of Wine and Oil of Vitriol are digested together, and in Distillation yield two fragrant and volatile Spirits which will not mix with one another, and a fix'd black Earth remains behind; doth not this shew that Oil of Vitriol is composed of volatile and fix'd Parts strongly united by Attraction, so as to ascend together in form of a volatile, acid, fluid Salt, until the Spirit of Wine attracts and separates the volatile Parts from the fixed? And therefore, since Oil of Sulphur _per Campanam_ is of the same Nature with Oil of Vitriol, may it not be inferred, that Sulphur is also a mixture of volatile and fix'd Parts so strongly cohering by Attraction, as to ascend together in Sublimation. By dissolving Flowers of Sulphur in Oil of Turpentine, and distilling the Solution, it is found that Sulphur is composed of an inflamable thick Oil or fat Bitumen, an acid Salt, a very fix'd Earth, and a little Metal. The three first were found not much unequal to one another, the fourth in so small a quantity as scarce to be worth considering. The acid Salt dissolved in Water, is the same with Oil of Sulphur _per Campanam_, and abounding much in the Bowels of the Earth, and particularly in Markasites, unites it self to the other Ingredients of the Markasite, which are, Bitumen, Iron, Copper, and Earth, and with them compounds Allum, Vitriol, and Sulphur. With the Earth alone it compounds Allum; with the Metal alone, or Metal and Earth together, it compounds Vitriol; and with the Bitumen and Earth it compounds Sulphur. Whence it comes to pass that Markasites abound with those three Minerals. And is it not from the mutual Attraction of the Ingredients that they stick together for compounding these Minerals, and that the Bitumen carries up the other Ingredients of the Sulphur, which without it would not sublime? And the same Question may be put concerning all, or almost all the gross Bodies in Nature. For all the Parts of Animals and Vegetables are composed of Substances volatile and fix'd, fluid and solid, as appears by their Analysis; and so are Salts and Minerals, so far as Chymists have been hitherto able to examine their Composition. When Mercury sublimate is re-sublimed with fresh Mercury, and becomes _Mercurius Dulcis_, which is a white tasteless Earth scarce dissolvable in Water, and _Mercurius Dulcis_ re-sublimed with Spirit of Salt returns into Mercury sublimate; and when Metals corroded with a little acid turn into rust, which is an Earth tasteless and indissolvable in Water, and this Earth imbibed with more acid becomes a metallick Salt; and when some Stones, as Spar of Lead, dissolved in proper _Menstruums_ become Salts; do not these things shew that Salts are dry Earth and watry Acid united by Attraction, and that the Earth will not become a Salt without so much acid as makes it dissolvable in Water? Do not the sharp and pungent Tastes of Acids arise from the strong Attraction whereby the acid Particles rush upon and agitate the Particles of the Tongue? And when Metals are dissolved in acid _Menstruums_, and the Acids in conjunction with the Metal act after a different manner, so that the Compound has a different Taste much milder than before, and sometimes a sweet one; is it not because the Acids adhere to the metallick Particles, and thereby lose much of their Activity? And if the Acid be in too small a Proportion to make the Compound dissolvable in Water, will it not by adhering strongly to the Metal become unactive and lose its Taste, and the Compound be a tasteless Earth? For such things as are not dissolvable by the Moisture of the Tongue, act not upon the Taste. As Gravity makes the Sea flow round the denser and weightier Parts of the Globe of the Earth, so the Attraction may make the watry Acid flow round the denser and compacter Particles of Earth for composing the Particles of Salt. For otherwise the Acid would not do the Office of a Medium between the Earth and common Water, for making Salts dissolvable in the Water; nor would Salt of Tartar readily draw off the Acid from dissolved Metals, nor Metals the Acid from Mercury. Now, as in the great Globe of the Earth and Sea, the densest Bodies by their Gravity sink down in Water, and always endeavour to go towards the Center of the Globe; so in Particles of Salt, the densest Matter may always endeavour to approach the Center of the Particle: So that a Particle of Salt may be compared to a Chaos; being dense, hard, dry, and earthy in the Center; and rare, soft, moist, and watry in the Circumference. And hence it seems to be that Salts are of a lasting Nature, being scarce destroy'd, unless by drawing away their watry Parts by violence, or by letting them soak into the Pores of the central Earth by a gentle Heat in Putrefaction, until the Earth be dissolved by the Water, and separated into smaller Particles, which by reason of their Smallness make the rotten Compound appear of a black Colour. Hence also it may be, that the Parts of Animals and Vegetables preserve their several Forms, and assimilate their Nourishment; the soft and moist Nourishment easily changing its Texture by a gentle Heat and Motion, till it becomes like the dense, hard, dry, and durable Earth in the Center of each Particle. But when the Nourishment grows unfit to be assimilated, or the central Earth grows too feeble to assimilate it, the Motion ends in Confusion, Putrefaction, and Death. If a very small quantity of any Salt or Vitriol be dissolved in a great quantity of Water, the Particles of the Salt or Vitriol will not sink to the bottom, though they be heavier in Specie than the Water, but will evenly diffuse themselves into all the Water, so as to make it as saline at the top as at the bottom. And does not this imply that the Parts of the Salt or Vitriol recede from one another, and endeavour to expand themselves, and get as far asunder as the quantity of Water in which they float, will allow? And does not this Endeavour imply that they have a repulsive Force by which they fly from one another, or at least, that they attract the Water more strongly than they do one another? For as all things ascend in Water which are less attracted than Water, by the gravitating Power of the Earth; so all the Particles of Salt which float in Water, and are less attracted than Water by any one Particle of Salt, must recede from that Particle, and give way to the more attracted Water. When any saline Liquor is evaporated to a Cuticle and let cool, the Salt concretes in regular Figures; which argues, that the Particles of the Salt before they concreted, floated in the Liquor at equal distances in rank and file, and by consequence that they acted upon one another by some Power which at equal distances is equal, at unequal distances unequal. For by such a Power they will range themselves uniformly, and without it they will float irregularly, and come together as irregularly. And since the Particles of Island-Crystal act all the same way upon the Rays of Light for causing the unusual Refraction, may it not be supposed that in the Formation of this Crystal, the Particles not only ranged themselves in rank and file for concreting in regular Figures, but also by some kind of polar Virtue turned their homogeneal Sides the same way. The Parts of all homogeneal hard Bodies which fully touch one another, stick together very strongly. And for explaining how this may be, some have invented hooked Atoms, which is begging the Question; and others tell us that Bodies are glued together by rest, that is, by an occult Quality, or rather by nothing; and others, that they stick together by conspiring Motions, that is, by relative rest amongst themselves. I had rather infer from their Cohesion, that their Particles attract one another by some Force, which in immediate Contact is exceeding strong, at small distances performs the chymical Operations above-mention'd, and reaches not far from the Particles with any sensible Effect. All Bodies seem to be composed of hard Particles: For otherwise Fluids would not congeal; as Water, Oils, Vinegar, and Spirit or Oil of Vitriol do by freezing; Mercury by Fumes of Lead; Spirit of Nitre and Mercury, by dissolving the Mercury and evaporating the Flegm; Spirit of Wine and Spirit of Urine, by deflegming and mixing them; and Spirit of Urine and Spirit of Salt, by subliming them together to make Sal-armoniac. Even the Rays of Light seem to be hard Bodies; for otherwise they would not retain different Properties in their different Sides. And therefore Hardness may be reckon'd the Property of all uncompounded Matter. At least, this seems to be as evident as the universal Impenetrability of Matter. For all Bodies, so far as Experience reaches, are either hard, or may be harden'd; and we have no other Evidence of universal Impenetrability, besides a large Experience without an experimental Exception. Now if compound Bodies are so very hard as we find some of them to be, and yet are very porous, and consist of Parts which are only laid together; the simple Particles which are void of Pores, and were never yet divided, must be much harder. For such hard Particles being heaped up together, can scarce touch one another in more than a few Points, and therefore must be separable by much less Force than is requisite to break a solid Particle, whose Parts touch in all the Space between them, without any Pores or Interstices to weaken their Cohesion. And how such very hard Particles which are only laid together and touch only in a few Points, can stick together, and that so firmly as they do, without the assistance of something which causes them to be attracted or press'd towards one another, is very difficult to conceive. The same thing I infer also from the cohering of two polish'd Marbles _in vacuo_, and from the standing of Quick-silver in the Barometer at the height of 50, 60 or 70 Inches, or above, when ever it is well-purged of Air and carefully poured in, so that its Parts be every where contiguous both to one another and to the Glass. The Atmosphere by its weight presses the Quick-silver into the Glass, to the height of 29 or 30 Inches. And some other Agent raises it higher, not by pressing it into the Glass, but by making its Parts stick to the Glass, and to one another. For upon any discontinuation of Parts, made either by Bubbles or by shaking the Glass, the whole Mercury falls down to the height of 29 or 30 Inches. And of the same kind with these Experiments are those that follow. If two plane polish'd Plates of Glass (suppose two pieces of a polish'd Looking-glass) be laid together, so that their sides be parallel and at a very small distance from one another, and then their lower edges be dipped into Water, the Water will rise up between them. And the less the distance of the Glasses is, the greater will be the height to which the Water will rise. If the distance be about the hundredth part of an Inch, the Water will rise to the height of about an Inch; and if the distance be greater or less in any Proportion, the height will be reciprocally proportional to the distance very nearly. For the attractive Force of the Glasses is the same, whether the distance between them be greater or less; and the weight of the Water drawn up is the same, if the height of it be reciprocally proportional to the distance of the Glasses. And in like manner, Water ascends between two Marbles polish'd plane, when their polish'd sides are parallel, and at a very little distance from one another, And if slender Pipes of Glass be dipped at one end into stagnating Water, the Water will rise up within the Pipe, and the height to which it rises will be reciprocally proportional to the Diameter of the Cavity of the Pipe, and will equal the height to which it rises between two Planes of Glass, if the Semi-diameter of the Cavity of the Pipe be equal to the distance between the Planes, or thereabouts. And these Experiments succeed after the same manner _in vacuo_ as in the open Air, (as hath been tried before the Royal Society,) and therefore are not influenced by the Weight or Pressure of the Atmosphere. And if a large Pipe of Glass be filled with sifted Ashes well pressed together in the Glass, and one end of the Pipe be dipped into stagnating Water, the Water will rise up slowly in the Ashes, so as in the space of a Week or Fortnight to reach up within the Glass, to the height of 30 or 40 Inches above the stagnating Water. And the Water rises up to this height by the Action only of those Particles of the Ashes which are upon the Surface of the elevated Water; the Particles which are within the Water, attracting or repelling it as much downwards as upwards. And therefore the Action of the Particles is very strong. But the Particles of the Ashes being not so dense and close together as those of Glass, their Action is not so strong as that of Glass, which keeps Quick-silver suspended to the height of 60 or 70 Inches, and therefore acts with a Force which would keep Water suspended to the height of above 60 Feet. By the same Principle, a Sponge sucks in Water, and the Glands in the Bodies of Animals, according to their several Natures and Dispositions, suck in various Juices from the Blood. If two plane polish'd Plates of Glass three or four Inches broad, and twenty or twenty five long, be laid one of them parallel to the Horizon, the other upon the first, so as at one of their ends to touch one another, and contain an Angle of about 10 or 15 Minutes, and the same be first moisten'd on their inward sides with a clean Cloth dipp'd into Oil of Oranges or Spirit of Turpentine, and a Drop or two of the Oil or Spirit be let fall upon the lower Glass at the other; so soon as the upper Glass is laid down upon the lower, so as to touch it at one end as above, and to touch the Drop at the other end, making with the lower Glass an Angle of about 10 or 15 Minutes; the Drop will begin to move towards the Concourse of the Glasses, and will continue to move with an accelerated Motion, till it arrives at that Concourse of the Glasses. For the two Glasses attract the Drop, and make it run that way towards which the Attractions incline. And if when the Drop is in motion you lift up that end of the Glasses where they meet, and towards which the Drop moves, the Drop will ascend between the Glasses, and therefore is attracted. And as you lift up the Glasses more and more, the Drop will ascend slower and slower, and at length rest, being then carried downward by its Weight, as much as upwards by the Attraction. And by this means you may know the Force by which the Drop is attracted at all distances from the Concourse of the Glasses. Now by some Experiments of this kind, (made by Mr. _Hauksbee_) it has been found that the Attraction is almost reciprocally in a duplicate Proportion of the distance of the middle of the Drop from the Concourse of the Glasses, _viz._ reciprocally in a simple Proportion, by reason of the spreading of the Drop, and its touching each Glass in a larger Surface; and again reciprocally in a simple Proportion, by reason of the Attractions growing stronger within the same quantity of attracting Surface. The Attraction therefore within the same quantity of attracting Surface, is reciprocally as the distance between the Glasses. And therefore where the distance is exceeding small, the Attraction must be exceeding great. By the Table in the second Part of the second Book, wherein the thicknesses of colour'd Plates of Water between two Glasses are set down, the thickness of the Plate where it appears very black, is three eighths of the ten hundred thousandth part of an Inch. And where the Oil of Oranges between the Glasses is of this thickness, the Attraction collected by the foregoing Rule, seems to be so strong, as within a Circle of an Inch in diameter, to suffice to hold up a Weight equal to that of a Cylinder of Water of an Inch in diameter, and two or three Furlongs in length. And where it is of a less thickness the Attraction may be proportionally greater, and continue to increase, until the thickness do not exceed that of a single Particle of the Oil. There are therefore Agents in Nature able to make the Particles of Bodies stick together by very strong Attractions. And it is the Business of experimental Philosophy to find them out. Now the smallest Particles of Matter may cohere by the strongest Attractions, and compose bigger Particles of weaker Virtue; and many of these may cohere and compose bigger Particles whose Virtue is still weaker, and so on for divers Successions, until the Progression end in the biggest Particles on which the Operations in Chymistry, and the Colours of natural Bodies depend, and which by cohering compose Bodies of a sensible Magnitude. If the Body is compact, and bends or yields inward to Pression without any sliding of its Parts, it is hard and elastick, returning to its Figure with a Force rising from the mutual Attraction of its Parts. If the Parts slide upon one another, the Body is malleable or soft. If they slip easily, and are of a fit Size to be agitated by Heat, and the Heat is big enough to keep them in Agitation, the Body is fluid; and if it be apt to stick to things, it is humid; and the Drops of every fluid affect a round Figure by the mutual Attraction of their Parts, as the Globe of the Earth and Sea affects a round Figure by the mutual Attraction of its Parts by Gravity. Since Metals dissolved in Acids attract but a small quantity of the Acid, their attractive Force can reach but to a small distance from them. And as in Algebra, where affirmative Quantities vanish and cease, there negative ones begin; so in Mechanicks, where Attraction ceases, there a repulsive Virtue ought to succeed. And that there is such a Virtue, seems to follow from the Reflexions and Inflexions of the Rays of Light. For the Rays are repelled by Bodies in both these Cases, without the immediate Contact of the reflecting or inflecting Body. It seems also to follow from the Emission of Light; the Ray so soon as it is shaken off from a shining Body by the vibrating Motion of the Parts of the Body, and gets beyond the reach of Attraction, being driven away with exceeding great Velocity. For that Force which is sufficient to turn it back in Reflexion, may be sufficient to emit it. It seems also to follow from the Production of Air and Vapour. The Particles when they are shaken off from Bodies by Heat or Fermentation, so soon as they are beyond the reach of the Attraction of the Body, receding from it, and also from one another with great Strength, and keeping at a distance, so as sometimes to take up above a Million of Times more space than they did before in the form of a dense Body. Which vast Contraction and Expansion seems unintelligible, by feigning the Particles of Air to be springy and ramous, or rolled up like Hoops, or by any other means than a repulsive Power. The Particles of Fluids which do not cohere too strongly, and are of such a Smallness as renders them most susceptible of those Agitations which keep Liquors in a Fluor, are most easily separated and rarified into Vapour, and in the Language of the Chymists, they are volatile, rarifying with an easy Heat, and condensing with Cold. But those which are grosser, and so less susceptible of Agitation, or cohere by a stronger Attraction, are not separated without a stronger Heat, or perhaps not without Fermentation. And these last are the Bodies which Chymists call fix'd, and being rarified by Fermentation, become true permanent Air; those Particles receding from one another with the greatest Force, and being most difficultly brought together, which upon Contact cohere most strongly. And because the Particles of permanent Air are grosser, and arise from denser Substances than those of Vapours, thence it is that true Air is more ponderous than Vapour, and that a moist Atmosphere is lighter than a dry one, quantity for quantity. From the same repelling Power it seems to be that Flies walk upon the Water without wetting their Feet; and that the Object-glasses of long Telescopes lie upon one another without touching; and that dry Powders are difficultly made to touch one another so as to stick together, unless by melting them, or wetting them with Water, which by exhaling may bring them together; and that two polish'd Marbles, which by immediate Contact stick together, are difficultly brought so close together as to stick. And thus Nature will be very conformable to her self and very simple, performing all the great Motions of the heavenly Bodies by the Attraction of Gravity which intercedes those Bodies, and almost all the small ones of their Particles by some other attractive and repelling Powers which intercede the Particles. The _Vis inertiæ_ is a passive Principle by which Bodies persist in their Motion or Rest, receive Motion in proportion to the Force impressing it, and resist as much as they are resisted. By this Principle alone there never could have been any Motion in the World. Some other Principle was necessary for putting Bodies into Motion; and now they are in Motion, some other Principle is necessary for conserving the Motion. For from the various Composition of two Motions, 'tis very certain that there is not always the same quantity of Motion in the World. For if two Globes joined by a slender Rod, revolve about their common Center of Gravity with an uniform Motion, while that Center moves on uniformly in a right Line drawn in the Plane of their circular Motion; the Sum of the Motions of the two Globes, as often as the Globes are in the right Line described by their common Center of Gravity, will be bigger than the Sum of their Motions, when they are in a Line perpendicular to that right Line. By this Instance it appears that Motion may be got or lost. But by reason of the Tenacity of Fluids, and Attrition of their Parts, and the Weakness of Elasticity in Solids, Motion is much more apt to be lost than got, and is always upon the Decay. For Bodies which are either absolutely hard, or so soft as to be void of Elasticity, will not rebound from one another. Impenetrability makes them only stop. If two equal Bodies meet directly _in vacuo_, they will by the Laws of Motion stop where they meet, and lose all their Motion, and remain in rest, unless they be elastick, and receive new Motion from their Spring. If they have so much Elasticity as suffices to make them re-bound with a quarter, or half, or three quarters of the Force with which they come together, they will lose three quarters, or half, or a quarter of their Motion. And this may be try'd, by letting two equal Pendulums fall against one another from equal heights. If the Pendulums be of Lead or soft Clay, they will lose all or almost all their Motions: If of elastick Bodies they will lose all but what they recover from their Elasticity. If it be said, that they can lose no Motion but what they communicate to other Bodies, the consequence is, that _in vacuo_ they can lose no Motion, but when they meet they must go on and penetrate one another's Dimensions. If three equal round Vessels be filled, the one with Water, the other with Oil, the third with molten Pitch, and the Liquors be stirred about alike to give them a vortical Motion; the Pitch by its Tenacity will lose its Motion quickly, the Oil being less tenacious will keep it longer, and the Water being less tenacious will keep it longest, but yet will lose it in a short time. Whence it is easy to understand, that if many contiguous Vortices of molten Pitch were each of them as large as those which some suppose to revolve about the Sun and fix'd Stars, yet these and all their Parts would, by their Tenacity and Stiffness, communicate their Motion to one another till they all rested among themselves. Vortices of Oil or Water, or some fluider Matter, might continue longer in Motion; but unless the Matter were void of all Tenacity and Attrition of Parts, and Communication of Motion, (which is not to be supposed,) the Motion would constantly decay. Seeing therefore the variety of Motion which we find in the World is always decreasing, there is a necessity of conserving and recruiting it by active Principles, such as are the cause of Gravity, by which Planets and Comets keep their Motions in their Orbs, and Bodies acquire great Motion in falling; and the cause of Fermentation, by which the Heart and Blood of Animals are kept in perpetual Motion and Heat; the inward Parts of the Earth are constantly warm'd, and in some places grow very hot; Bodies burn and shine, Mountains take fire, the Caverns of the Earth are blown up, and the Sun continues violently hot and lucid, and warms all things by his Light. For we meet with very little Motion in the World, besides what is owing to these active Principles. And if it were not for these Principles, the Bodies of the Earth, Planets, Comets, Sun, and all things in them, would grow cold and freeze, and become inactive Masses; and all Putrefaction, Generation, Vegetation and Life would cease, and the Planets and Comets would not remain in their Orbs. All these things being consider'd, it seems probable to me, that God in the Beginning form'd Matter in solid, massy, hard, impenetrable, moveable Particles, of such Sizes and Figures, and with such other Properties, and in such Proportion to Space, as most conduced to the End for which he form'd them; and that these primitive Particles being Solids, are incomparably harder than any porous Bodies compounded of them; even so very hard, as never to wear or break in pieces; no ordinary Power being able to divide what God himself made one in the first Creation. While the Particles continue entire, they may compose Bodies of one and the same Nature and Texture in all Ages: But should they wear away, or break in pieces, the Nature of Things depending on them, would be changed. Water and Earth, composed of old worn Particles and Fragments of Particles, would not be of the same Nature and Texture now, with Water and Earth composed of entire Particles in the Beginning. And therefore, that Nature may be lasting, the Changes of corporeal Things are to be placed only in the various Separations and new Associations and Motions of these permanent Particles; compound Bodies being apt to break, not in the midst of solid Particles, but where those Particles are laid together, and only touch in a few Points. It seems to me farther, that these Particles have not only a _Vis inertiæ_, accompanied with such passive Laws of Motion as naturally result from that Force, but also that they are moved by certain active Principles, such as is that of Gravity, and that which causes Fermentation, and the Cohesion of Bodies. These Principles I consider, not as occult Qualities, supposed to result from the specifick Forms of Things, but as general Laws of Nature, by which the Things themselves are form'd; their Truth appearing to us by Phænomena, though their Causes be not yet discover'd. For these are manifest Qualities, and their Causes only are occult. And the _Aristotelians_ gave the Name of occult Qualities, not to manifest Qualities, but to such Qualities only as they supposed to lie hid in Bodies, and to be the unknown Causes of manifest Effects: Such as would be the Causes of Gravity, and of magnetick and electrick Attractions, and of Fermentations, if we should suppose that these Forces or Actions arose from Qualities unknown to us, and uncapable of being discovered and made manifest. Such occult Qualities put a stop to the Improvement of natural Philosophy, and therefore of late Years have been rejected. To tell us that every Species of Things is endow'd with an occult specifick Quality by which it acts and produces manifest Effects, is to tell us nothing: But to derive two or three general Principles of Motion from Phænomena, and afterwards to tell us how the Properties and Actions of all corporeal Things follow from those manifest Principles, would be a very great step in Philosophy, though the Causes of those Principles were not yet discover'd: And therefore I scruple not to propose the Principles of Motion above-mention'd, they being of very general Extent, and leave their Causes to be found out. Now by the help of these Principles, all material Things seem to have been composed of the hard and solid Particles above-mention'd, variously associated in the first Creation by the Counsel of an intelligent Agent. For it became him who created them to set them in order. And if he did so, it's unphilosophical to seek for any other Origin of the World, or to pretend that it might arise out of a Chaos by the mere Laws of Nature; though being once form'd, it may continue by those Laws for many Ages. For while Comets move in very excentrick Orbs in all manner of Positions, blind Fate could never make all the Planets move one and the same way in Orbs concentrick, some inconsiderable Irregularities excepted, which may have risen from the mutual Actions of Comets and Planets upon one another, and which will be apt to increase, till this System wants a Reformation. Such a wonderful Uniformity in the Planetary System must be allowed the Effect of Choice. And so must the Uniformity in the Bodies of Animals, they having generally a right and a left side shaped alike, and on either side of their Bodies two Legs behind, and either two Arms, or two Legs, or two Wings before upon their Shoulders, and between their Shoulders a Neck running down into a Back-bone, and a Head upon it; and in the Head two Ears, two Eyes, a Nose, a Mouth, and a Tongue, alike situated. Also the first Contrivance of those very artificial Parts of Animals, the Eyes, Ears, Brain, Muscles, Heart, Lungs, Midriff, Glands, Larynx, Hands, Wings, swimming Bladders, natural Spectacles, and other Organs of Sense and Motion; and the Instinct of Brutes and Insects, can be the effect of nothing else than the Wisdom and Skill of a powerful ever-living Agent, who being in all Places, is more able by his Will to move the Bodies within his boundless uniform Sensorium, and thereby to form and reform the Parts of the Universe, than we are by our Will to move the Parts of our own Bodies. And yet we are not to consider the World as the Body of God, or the several Parts thereof, as the Parts of God. He is an uniform Being, void of Organs, Members or Parts, and they are his Creatures subordinate to him, and subservient to his Will; and he is no more the Soul of them, than the Soul of Man is the Soul of the Species of Things carried through the Organs of Sense into the place of its Sensation, where it perceives them by means of its immediate Presence, without the Intervention of any third thing. The Organs of Sense are not for enabling the Soul to perceive the Species of Things in its Sensorium, but only for conveying them thither; and God has no need of such Organs, he being every where present to the Things themselves. And since Space is divisible _in infinitum_, and Matter is not necessarily in all places, it may be also allow'd that God is able to create Particles of Matter of several Sizes and Figures, and in several Proportions to Space, and perhaps of different Densities and Forces, and thereby to vary the Laws of Nature, and make Worlds of several sorts in several Parts of the Universe. At least, I see nothing of Contradiction in all this. As in Mathematicks, so in Natural Philosophy, the Investigation of difficult Things by the Method of Analysis, ought ever to precede the Method of Composition. This Analysis consists in making Experiments and Observations, and in drawing general Conclusions from them by Induction, and admitting of no Objections against the Conclusions, but such as are taken from Experiments, or other certain Truths. For Hypotheses are not to be regarded in experimental Philosophy. And although the arguing from Experiments and Observations by Induction be no Demonstration of general Conclusions; yet it is the best way of arguing which the Nature of Things admits of, and may be looked upon as so much the stronger, by how much the Induction is more general. And if no Exception occur from Phænomena, the Conclusion may be pronounced generally. But if at any time afterwards any Exception shall occur from Experiments, it may then begin to be pronounced with such Exceptions as occur. By this way of Analysis we may proceed from Compounds to Ingredients, and from Motions to the Forces producing them; and in general, from Effects to their Causes, and from particular Causes to more general ones, till the Argument end in the most general. This is the Method of Analysis: And the Synthesis consists in assuming the Causes discover'd, and establish'd as Principles, and by them explaining the Phænomena proceeding from them, and proving the Explanations. In the two first Books of these Opticks, I proceeded by this Analysis to discover and prove the original Differences of the Rays of Light in respect of Refrangibility, Reflexibility, and Colour, and their alternate Fits of easy Reflexion and easy Transmission, and the Properties of Bodies, both opake and pellucid, on which their Reflexions and Colours depend. And these Discoveries being proved, may be assumed in the Method of Composition for explaining the Phænomena arising from them: An Instance of which Method I gave in the End of the first Book. In this third Book I have only begun the Analysis of what remains to be discover'd about Light and its Effects upon the Frame of Nature, hinting several things about it, and leaving the Hints to be examin'd and improv'd by the farther Experiments and Observations of such as are inquisitive. And if natural Philosophy in all its Parts, by pursuing this Method, shall at length be perfected, the Bounds of Moral Philosophy will be also enlarged. For so far as we can know by natural Philosophy what is the first Cause, what Power he has over us, and what Benefits we receive from him, so far our Duty towards him, as well as that towards one another, will appear to us by the Light of Nature. And no doubt, if the Worship of false Gods had not blinded the Heathen, their moral Philosophy would have gone farther than to the four Cardinal Virtues; and instead of teaching the Transmigration of Souls, and to worship the Sun and Moon, and dead Heroes, they would have taught us to worship our true Author and Benefactor, as their Ancestors did under the Government of _Noah_ and his Sons before they corrupted themselves.brotli-1.0.4/testdata/issue22.gz000066400000000000000000045332061412267201500164730ustar00rootroot00000000000000`repro.data U>Nw;ŗ X*!(tt3#Ouίj9AEdՠl" KppDžqa@EAT{}UIܜC]WV|nK<\_aiyr9bK*.×=շmQ_`m^Mԫ*h9xܘʩsVmSk6@szVu˯Y4Gf+3j{xӢ}ǝ9T8[mf+˭ZiijG0)\[pn*ΨHGb3ױJE7Ƞ,˖Nkv[E!l4;dW~iތ ]ŠDSrjzzCaE-uuˍ*Tq0ҪfJ'7M͝m;lq\#ӮM7Nj3gefsjuF||6x:]T۝j͞Dwjws`;yM v3Y $Y#;xZ4WC~6nҒJ͢:FC8Z.PkO:T륓˭3e Vgʵz7ǵJ>SLr; pt tC?AwX'p #h'D?38'SKPr]n:vM6CXM;n:mSF"O} ~QLzU?50YLԢtH@ѽà7C~*tMG u6&|k_傾 CzUX}eg|pc՜n1kw3l4->Gc[D] K 0yxO@zp0YRwv$ vx5?*V"ƥ&񑷚[D7T9aT)Ë`/D#ͬNmq4hD%3i?_E{6EomvwDY\/myjmvצgkMvpXVqM_FVqlؚ Iok3b+&}pq Co\T?Ⱦ(Ao쇋t qФKfq5wsw wqG$!L⎠zqG;  ;-j]t q'@;s*q6qGP Oyī2 {1 ;OВD%gFeߜ}|V*#FmNS90>gu"a##Ht4ȃcC> P 8+!s&8o`lts*m,IdTrM)PZL5I2i0L4z} 7d,$pT SVjim(..7j38n&,X ,><*csx`.6kW˭e@g~Z ?NÅ 44R/OT녁W3Lq`ltl~.Իg# ˋ]2SoܶzcX czi7ة7Fڨ@Po||εe)/Z|ʘҥs O?ֳgMϚ5o]png͓T֔m1ש*~@C' cQϜ9=szoB3磃.̹ _.+b_S fY)O..?rG VʝIFj @'D_u!Z7_%˚‹PO'[ e,6UVsrⲤvQ*ȧ2V1-gInuMtCjzpdt/5/}lQ)䣷uj8*Vq(,,(WWi5g+-{U"9/gcXP;7vjEUJ!o(z*ҩfkF,bH_xK3Kk_4:Z:#z]SKr^Wwk7מ#u) DEalZn2"I6-/aPm> g'˂&)ՙ25G2咲2׼⳪'O\ٮY-xEkE2Q^J꾢*uTi˦jZoέdRlKjLysJaDZ=sR ͬ7R{S)M[t\{QiO֛ ۘ.=mon{o:κ:8yl9b^Ty٨3)5[3jm/sR14Y:,N󇕒j۬FL*㼙E7' Q+&MUc?û>9z s4mql l$-Ms(< vjpV$\TKsOD8XXONlw6ݹTJ+̟4FSNjrc׫ jޜB*qdb9שaZ*6W;-w634:5W1AAQr)^k >H _[s<_ZeohEw\t2hx 7<,C;xoQ`(|4x(%QV;ja.<(bOөKrNuנ#P~KRQȟ ,C7DaPM<`n[> %4P< o(N>Wčlz I Nd#.d#&iB6 . DJ6Id d@mdg  U&8M6Q03ܢldlntM6 ZIl*4d#nd@]&gSPOA?Sd!5ZJ3E6lXLj_xqFY~;u YФKfYd5usu wYG$d!LzYG: d :-jd]et Y'@:s*Y6YGP ̲~C;3E8;Y;֯]p D  `fJPB@Q$P@-%;%PCJNP $h$ h#];"  %PWJ.0]+󊳖Bj!QOq_:6OC^|[XTGZ#e˖UIO^{7k i9^ӬYOf nYhڑ)Վ\б[fxg>kYA,,-I,-34j^ ,H4BXA,MǏdi*48fiL'V[԰ Գ4F,M`it@U(,-l,vFY;[c-|F61čl8D6܉l80;&e"0&lbP+٠AU!0YFjL6J6a7'9 zl*tddC&L6n[Zcsc֯u:vʁ%܅sc(gZYGKhR֥rK :¹:&YGP#eJeI5хa d9PqK#]fY?w±[,W7ҧč8D@܉80;(e"0 (bP+AU!0YHjL@J@a7' 9 z*tC (L@_얍jݲÏᒎr^ Fmd^Dm2Qr̔PO1cQL*%Pr,,hd hS=%wII:JGJΔ_`[_ݲqqq̖zH1ϦM=z6ձec=-Occѥfrt9Dk+OK;O*5&jMxv-iƺ;;mixu&.ʽNڦDոzb‹G5l|٧79jxK-%sl`9GӬYOf sl4kGQU.>t)F~2|g7iAF KKhr3KK ,ײ4¹4;K,&FP=K#YJ,YӉ5,, Ka X9q KKK#f~8Gͅl~}oMq"6(w!L6IIpY&DVI%a'j#?`B6ild#mdukaВMrPdV!p#J6f>;_稽Pj`5`RΗ_S Oܼ4 (qIe0PTW*/$9(iǰ11̵N#<,pV1rD#jyp,xGeAT}"Ds\׏NฬG:MՏNs0Iӕ BI/Œ.E_#IA_ :ƛs]q?7CEY*P!Fga :Dw<Wu(lg"CtRLY. v򧚈Y ko}'vqbm6(wamINpYX;DVNeagjcm?kci֎-mukaвvrPVampcfKG鿺QH>e^ٞaòa^x Ò鰕^yz%^X{v{&L31?[L|9v肟UO~vѱXW}%$Go{?0ۻ )ܻn {7aڽwSM9b&nB~&8r&n!㽛rn*in*8M]T@݄7 ܻ*Pn嶽i߻ fϏ_ЖHW:`hbb(7a7:\A,B{u.ʪZy|a]Zg<|AէxHH)(^`f;\de&+fbeJhr)g0,5e",D}H24DP,9ˤ, 2A0fjY 2A7ea f΁L\2˔Y&g7?qDpѲܢ.~oO|=,PEo/*EgQ>m$mEQ"Y-ಈbP+ . &8~QPEӢ3(-EQD1Fע ΡD1B#& U ̢LW/>WJ]Yi qriV˝f}V7oƸL0gq0+Y)iV4fV3ˬTj<+Yi؍gr!gIY)8Jc4,f[v\1͎l5g}LX w|TKXb!, MTn&, PZB87p',@DX',:~$aP1a`:ڢT@7 ," a;B!, `#,LX#ZOz+n8 &I7 OVDvuN+xtTzF\̿j4gˍj?bͼ `AA\\@E.l |~GGBL ?[zQVq7)L9ԫlocN63㉶{DD۪*X89&XdSB)eSfMԼV6M6A$eM0&e)4TM4p, NMMЍ.d!΁PdSdA.0^Ϸ^NxɅItjxTXzx&>Eugoxv7~dKP(}"Y~zgI+Hb$ M Tn$ APZAB87Ap$@B$H$:~ PI `: ڢFT^@7$" ; B$ `$ ,HO2~6qfA>͜͜_W]("z< A,R%IR%3Hj^+U&U RHHB AREǏ**I8*L'R[H KFRE*t@U(R%lRvBVg\>cܕ9F\P`Q|F1'.aiesڝ`ZC:ՙ‰@{H^wFps/ow|^6;A\Ў^)}"sW?!DyC? XdPB2(ePfAԼVMA$eA0 e)4TA4p, N2AAЍ.d!΁2PdPdA2.VVsBCBk/npZ8+8q@8Kpf欤y g%,E"+g%rVsVq0Td4gEYrFΒ6Ί5g0h9+s(JpqVu3g}+nyҩ(fo3v@AX-mckyX)oG aڣs10Ro4b?[3~zt_eT'Oʓ=_{XTOB'UOfP=ԼVM@$UP=0Uz4TR=4pz NQ=W=Ѝ.Tz΁PTOTA.0nZ|`^ sпgu֓։, E.Qlbjm[?-ږ@M &]M3k[ҼE\m"Uےj-Aص-ڴ Ϡmh[2pZۢ`f6E@EZ@ږ9UhMܴ-j[rYжm^@m+9hCwojXMB&Mf6ԼVM@$ܵ 60i굍m4T64pm Nڦ66Ѝ.m΁چPMش Aچ.0kۏo_ߋymi誱u߲[ q76/w7.oq6yq-Dfy o1*o(~&yCPUk- fyZ4˛[؍M^; qPgy/,}je^\}˛}6|p0v_T̝ݟw|&z I zE0%[D/e(YE/ V]Mp %E/ fѓ[4 ^ԍEA+zɝC^ZFM%EO9=U؜nFySx[ yФIfy 57s7 wyC$ !LzyG -jM t y#@s*y6yCP ;۞*oќ-] %'hr̢4oEHd$ZKvK63* (DOn(z2&zQ7=%w%zi7K\`t.[,~$~jCIhRޤrI ¹&yCP#卆J I5хa 9PpI!]fy+~NmOhNy󢷗f΋*zTyx漯kEIhRۤrI چj¹iچ&mCP#Jچ I5ڦхa 9PpI!] :m{[ ?([Ͼ&z I zE0%[D/e(YE/ V]Mp %E/ fѓ[4 ^ԍEA+zɝC^ZFM%E'E:/z{ Z/Gkܬ݃ yФIfy 57s7 wyC$ !LzyG -jM t y#@s*y6yCP 9=Uޢ9Ӆ_M AD `fK^"zQ$^@%%PDCKN^ 'h=h]V; %PWK.0޿3r/%^vTVFW&{7"U^)':ʭrN-6z\ bP,FO˭y7 ߪMoǿQ%ƣ/y|bat{TNNG8ߥ}b@\@n>? dO[DIhRȤrI B ¹ B&!CP#JB I5BBхa 9PpI!]2JgXߚSIa%gBi?80(7`έ$̴Ra&'}Z6np0ĺ` 9s+=$P&pGAQ`:Zg#08NFd`#0Q`T@Ef9Lb"J1倇bH֧4foG#O~p6Msq1vv|Ⴢ!G 5Rz PO! 0pѵGky^Iw9Ef<>GmsnTZ${Ԙ0N^V-Wv kv'ʟϿ}QŨh[om ",IEK͊2(l[hhr  FP40)D h$RR48dhrMiNh NhrP45*@QܦhiW47+ڣ_qYn`7J^%,MJDwJo'Q&8ՙ2#O`?A..%r[ 3{|Dy)$JiE|ĒҒdJK*7$`j^B8{J Hi!)?2EC8Ni`:5)-Oint"@НSZ %%l)-~rep:{|K޿Rޛi ml{o[%IڠɢE0&'[49e(Y59 V]Mq &'59 fM[4j irԍ5AɝCirZFM&'5'tk7qOiA,+I+3H/j^+& ҋHH/BAKǏ^*I/8^L'U[H K/FK^t@U(+lҋvEmp:"/;]zc!/`3;0,j1-ڪMr9[6:b4|`0)]a0\Ł/ހ|n",˗)\L˗).%l[| an˗r ܗ/aK0-_B~ |I"K8d|)iRiN|˗rXT@,_›._ ˴ܶ| KG6xhOwh$ZX:P%v#(=""bR9;! g.htLo-g: Ŷt|+e?t:IΤfIqts9:#G t":C) 29N:4]BguULZn ěu[6^.'fҙw+5D*l ^B*T-òJGNK*1N*1F*(pRAHT!Ӥ1HIEH%Cפ"@K*BJRTxHWRfR-{A_o"ӨC=8$D?y̋5˭JlyRR8<9ѫb.0`;6B'DUɟS%S#TawiVG}b /ܘm5[F&ڝ Mh%/3c9Qn`9x @zp0YR7r$ "Jc5y?*V5~tTZ\.ۮ֫aք >VsƖju3t11L]Ҥ {!*iofur mq4hD%3i?_˟._@Ҧ\|3{#K4o̎צgkMv5^C\'濌>vuei~W|*ށ 'T"RNUlZU^թ6DXT;U;ePmضV!M6`Rmԫ68RIpX :ҜF^>tjՆ7 TmTiM!ҮoVKye ۔SBkfSwϛ&F8  e&m İ,D +đM M hR!x4фA@4RsFp6 5M|PDT!^F41ҕhbh>w+æg- .,IepT SVj OsO62*(~T\{<}0NgӉi6{kW˭eyZCiFj0j)/^jJ$\QܼGEfأQA8=* {TP=*aڣ=*t=*4Tڣ`:QQ[QQ=*]Q!@QAwܣPHQA)2;XhospܖeҗL*]9gӗ1LgSϦM= Φlzʦ5:UO|:t@GG=zFUǨ.[hFM/?qݚ&q ۤ6Üץs iai*P/5/}lQ!6YrruVs.ٰB%:Mi=8hfkjRmMF].g[ǚ`jm%lY_Gt)b}7A Hs&cO x=(:}G<dhu>lsf^r4ZׯIaELZ4g=h IۑM3E7P]_,0O43 kՉ\9,^,)|RkwJ&õNT Mlt5i1*OkYQk;]Z}-UVyLTg!V3?jf n+Xj^̋yk䭑FF.[iւd`qG{mEbxQP<|3xZc`[u>L]<{M*`>[uUFZ*e^S~$N}ϖxK-fKoJ{hoJY]0>F\<]hE=jaWmPžf=z4/-ZXi=pͼC5KRQ5(C_[ roO|di0K,pn, "(K#TtHKctbiE K@=KntDFwdi\jgitvg.dϵMq"6(w!L6IIpY&DVI%a'j#?`B6ild#mdukaВMrPdV!p#J6f;oggG^4"LъK/Mć :(%YImFƗڝyvHcʭy6jV';0ΧO+JF['nNn+#3sNVs4ph߬AIFPx]_vyk˥џԩ΀ҹtl_#ʍJރ\Zܿ :mo"WQmB|:O,EA kP}k A,&Iq&3j^+n&n HB AFǏ7*87L'qS[Ԉ ԋFF7t@qU(&l↠vqCXgW˜z!k68k'y'Gȇ;f'yĸLF"3ԓOp j%? J>53 H-GZ'F#AO>COR|8|b3w+Ws E9-o~1̦V D}?~DW#>΅wك/C Jh}r3J 싚ײ/¹/;&EP=#ٗJӉ}5 a 9}q J"}f Du"oU/(TgG5΃%N[!Vm=-LS" w|BH*X&Tnv.0sAk ¹9 wH809;:~ssAɹ-j ;Ѝ. ¹;:\\$͹ ݹ 姿MвH$|'ު=yoU_a'շY> Eg%4RYg%`EkutD]gQ E"^g:KC%E: 餳jUzBg0: Eg%MgԮY[u^g:ܝCy̿8;/_p^xv N+.+7i" .F*I @mg_ U78-Q03ȯܢQ~eM~nt- ZMJ~*4+n@]7,7[4gN!FO sVlq_˫Sxxf^yi=hA,T,I*T,3P1j^KF THP1BATLǏb*Q18bL'*V[P S1FTLbt@*U(T,lTv*F-6zĪ+X|ƽCga0c}_~ę~eDmhQB-PtPK N F8~P3E-)Z(:F  Ρ(:BCF ԕ }c-,{[^@ =ޢ *$Kf*5bsb w*F$!LTz*GR1  S1-jXt *&@P1s **6*FP; T?6qWvtC3)/"]D GIhr3GI r¹q;G&BP=G#9J9 Ӊ5Ga 8 9p GIG!fzⳣFY>o;>5 E 5 `fjNPsBQ$Rs@-5';5'P5CjNNSs ,hfh]S3; 5 5'PWjN.|35ωڸ?'LLqZ>߽qMcsIys`v9q$a$2q@9V9F31r\#a0ȱԢY%Unt/rr9'U8:q|Ygr8&{9@hZ* GA ҉k>J7hr'7oIHd8zCg`U8F`f`EK@^08sHN 08 p uoG6>{|x`(P C+}|?j&mj^$]mB2 uBP/1AcUQLBPu,B-hj h Pw)I:GB_`kPߵ+NT v@OTr?Q02iT`5]m*6^()&gInW =Fe82 pT DhmN sp70GaoGj Fh&pGF<85xG[!lj4fi s4,IF 3άv#I7>u3o{:x3.:?M-gw2#% ɬTn:H YԼ6pnY  u@SAY:~dցJY4put:-j*Pu"@:;fpJAزj: Bo^:|gPBuȜuqy/Âe._:u^8cţi A, MfrsAf>s>HgPB>#4T>SAmQ}PF" D90P}@P{]`6;|h<2  қWsHxӚzam0О-7+E5fZ3:硷pyu#4|T~i){PJ`EŁ?CO>Rw{?0K$@%DBZlN$ ض6an99"DD dD p8 )4I$(8}"AC5D",0*P i-DěG7gBfE[ boV/u6s\TEܾ`q$)Β0щf7'O>!ܳ^?œE=7,C@;@HHgZS80蟫7ڝzpP_p2p,xUEeƃ]N ;@eJ)AZl SضvJanS9S9bJ)Dd)pxJ iJ4(8@CS5Ĕ,pJ*PimJ)[_6X+#N-*&Z-0NuLڜbYU*RjJjM1RmOj?WXi]Pb |r c\ļO g,T!((P ?|7~.f"Nyޗh.L? mN.m5)XlvZ&/à;N_;SodEtu` Y3::~݆hjdw7O맫 >]]aJjί[r]<`EՄbfv+f$l<׸zihaaۯ}P!F880G.s3%%Sr"cϥKX7zRK$4. !]צK-]".A$%aJ >]BǏLP)]% NEMD%]K0tt BIH[Atٗ}(ޗy_+,ڊlE2_jA,B.I!B.39j^+& BH9BABNǏr* 98rL'!W[ 9FBNrt@!U(B.lBv!G3.^Hx!B`3,u6ȣTnސZ;mIߔ]t 7?[$4r˓\j^H<@!!#] \8vy N.OmQTnt0.9*'l.A.]`vy .ϻ^qyQS-}%]0W{{ 9X\BB.\frԼVMA$܅r0 9ꅜ)4Tr4p, NBrrЍ.!΁BP\؄AB.0 MB >] yvً5]l8ɻk$4rϓ|j^H<@!!#} |8y N>OmQTnt0>9*'l>A>]`y6y3>/JlM&o}i6$mrQ"Yȓ-ByBP+ . &8~!PEȓB3-\ڄa yqO 5E~ןuvA,vOBvO*7= vC$B?Pcd5vOFvaНB{fnfw'oy,v۽JAIWb{§ыKBJ})[mduTORW][s;_︝…  #I #-`aPZ pnD !LAiahdat0j t C0΁WX `0j0Y>-0ba\'E![; "r,0BpnB".(#IT/tH!c!trE@nt!D!Gwr\"&jrtYxd"{!/^jE}2BpKu ²" bal[6@1p#Glo Gn 8dB9! j f Pܶ" Unt2O:xJox{ؒ`~?N!"),).`ö an-]a`C^M"%CƂ-I4- V@6Y` Nm vx`I ^K}n!mIJ>"ܼ>"3#>">H i}A#t*LE ԯnt>BXAw\U(#>te}*[oazD9;g.~?sڍbr M Tnr AQZ!G87!pr@B$r:~PI`: ڢFU^A7r" ; 9Br `r 9,俾i2\/"/^ȋs>s0 ?}Bm*A,FBF*7;  A$ B  ?Pc`5F F`Н Bq0``fOTw0􌃉Ro{7oo^#E%4)RY%`!Gk܄D]Q !G#^BNC%!GB$j!Wz!Bȉ0B( E%M.^HEg.{!\C'KFg[gX!HhHf#3xԼ p0(AAPGz*y4pa@0<ڢè@a < sU(F< = awOFx=Lx(q@M$#N`[Z!GKhRȥrK B 9¹ 9B&!GP#JBI5BBхa 9PqK#]f!J/^{Moȿ&C.[MP%DXLCiJضJs{RC0rC`z"U#$CpJ9NU*iTp*>tPJx*QCiJ?T fC'zabz vx_1  }A, M&rsAfH4浉sK4H'PDB O4# 4TJ4DSAmQhPDF" D90рP h@P{]`-_1-Qub_wަ]1@KhRȥrK B 9¹ 9B&!GP#JBI5BBхa 9PqK#]f!~ ^[frC٢[1ˊA &W bA˰b֮@ۊ9bL+_1 GHiAtZ1PӬ(8܇.V +f+e -@}͂}%?ǺyGkڙ7XfyK晷0Fkg6py3o0ͼT?Gμi4F3oLڢf3oЍ.fD7sW̼%m捠7,߻ܾ_n` / M5M;,D V Mu:і L՛Nſ%n)kNnI }~/PBq?ڝ ӿҚ)&ثAEV0tiĢ].ܬ]0vڅpn"](v!IT]tHvct.Ev@vnt]DBw.\]]j.tY|{k]С<=r̿{8{w_~][2q56/w5.jq6QqD-DfQ j1*j(~&QCPUkD- fQZ4Z؍EM^; qPgQ/0{?X 셽?{iQP,jf]=jȤ3< $Pks%a:ol$lW=ҝw>W!²ؼ2, ö 涀,}FX@2D $RZ@C r4 N,d52Y2@Y@Nm i_@xy*c`s6g9kL5/Yg9Kj4M;<y{y=Ox=J^Xx8# ~ {!&L+v^V-WX̟F]zyZ//WTN\:L/K_D x}of`HWm7=Ul(&[*7+̠بyb#bH+6 aRl+6?RihXA0[mQ*Pؠ](6BѝW()6]`VX o^rq#26/w"2Ndq6"q,Df"'@d1Jd(~&"CPk, f"Z4Y؍L;$ q#Pg"/0 _ٿ/S?pzS lx1¡o { IkٹŃNW©|p-bN`Pmu1/%;ÓaUeZjaX+9lUz m8UU ",[R0U)-6oUJq*[ mJ0rV%0mUHV%2pV%)mUC[ :mURlURpJrتتoU UlUJm[ ҾU ~*zair~`wqd/DK|1s(lyQNF Fl-F!e1 a 8rZF!Fڌ ( b!F! b 5g4 f>tmhB|PF!@cxQF!ƛoQ+z7 (rj?wsUBHhrB*7BH y*¹BHBaZ@P*?rJhxiBmQ ]Ba V!НW!p*B }]`6F%6@}ofL6@ VPwp3 MNJ/z-NG9֐p"`s}a}5}(*?!\. @ &3i92d` eg` 2#3$R! D Ҝ&]dx @ D3oU 흳k9>eq7b:-Ę@kFG֯P2&0֧ 3/Cޚww>..~7XK90gGk6gpsv0T?gGi4gGsvL9ڢfήsvЍ.D9;sW%mΎ9;,7\ ;~˿1`|v/|A qmp`v_7o1./# b|  ;@Z}A؍}/$U|8 ̾q \|Z tSB/e!’Od?-6gS\?l[0?S"2pdDJ8dWd>/"oG(ܖH{2Tza-!٢ZCVs҈zyy)ϲ,RY|q9F^g52Ϛ׊ULCpBؕU&Pc/0[Tv]<$@l;U?Op`RyR5A, Mrs:AfH'sK'HPtB O'# 4TJ'tS:AmQNPtF" D:90P N@P{:]`z|~ѧϠ}d(uz{dKυ=AHXFq ā"qo8@(ܖ8H{͂‰CWā$G 2?l܍-{Bka(pnxpxy0`SX nE` +0+b'pٽBԶ+DL^A W" +DHW3yTB4dWA^!YC^A +D7  t^;z"+ʼ7zᐁ{N k ^|NZ|8؊b갚0˿=A, \Mͫ 0jj^pn  (jBVT@Ǐ\Mj8^MtZMP[Ԭ&@jF Dt\ l j_M@ wV ɇyC 7o(D'~i>+; OHhOHf?!3 ԼO p(@@PG * 4p'@0ڢO@Oa sU(~B'< ~]8tZXL[lYE1z=|ǜQcb`@I/ Ml@$`s3 0 a2 7 tHBC% Q[7 ]" Aw4 ŀHAPA W/ȽҀEzuSS_)*c%A@ kQ1: 84!¨0å`(m r,L8Y_Ɓ#Fe a琂}iyC˰ans#9@iD9#9Hi2 iҜfs>5>x}eCZn}oV\g&~W=Xۋiÿ]Fl!>M5&jMu2kVkG7H8}kKHbKhr.'0d5#dD}HL4YGPd9Yd OA0&jɺ OA7a &΁u\2Y:'Wǽ3~Nf4}Q ֙*HGߖx\p\KO.$mS@ywEE]&V=x2{\p8 M: 0$`: ss parwtHAC%P[8 w]8 " @wt aH@P@>V 2}; 038׃oD/~~U_Xd=`=D#ib=\E"H n=z*#8m=`frF!m#FAk=;i!n#Zw{`+zxnL^d6G>i_oA7K]oʝ,IԼ͒d[olI -`I-tLDނ$[͖it{KbYoAwiI-ђ ̖ÏWmwmޒAd5궊8UkX͜\T TtbxYgM$Q3+3+@Uh^[~o5Xڭ>mY[/ʰ"3҈* UȌR(X  Z8 -6(*ι}ι**8Ifalj}{}obrry`mhtSUcfbayMnfyX,#K<2 abyY4TaypN,ȰYLf X 3O~8O*Q%̀vAm> 0TQiRG4(hQ4J(`Ge;Qyn>*SKbc@U_2O}r19kN՗ 2\OR1FE|/{Yb<њJ?zew^Y,˚wT^hJhFg|wGY[]'qfo+VU(\ G9TN *L{xcߦXR 䇦:&!͉*͍{&iɧ ?JG7`􂍍봧:d F=zƺ?6fDܧs=Y}-?<~!\æc+4$?;,?lBٔ?@KcS=Rq }j̴&,ը G,8*sV+ 91 {8cӦ=ES}6kԪr)kZè=OZ(*q]-Fi϶ m}K[z"zvV,_ 7&M˹{|฽n_+kOgo n페i]Nފ@uٺ%fPq~g&0m adS#Ctx[ 0% 0&E80) BCtLHha5Q>Q0!C .&:0N1\O<ϾK9/}R)}/V E(hR(f} 4%Sj G>g>W. LO\O^="@W8]0TD}܇X IŊ, VXA87,.V &XGp,V1Ċ>"#Vt /V4J XA;܅&VM ] b妫!qbŋgXz0\ڝygJ"thtNMKtxtKq[l-5 /RtKVgnKttYD)#Jx奛j^;nYtGB[z䕛Wn^=i[ס&V=)rp?HʣP`MREKG*9*/ՄS Nc-S0lJ6xqD ܋FYcBa w.P>K~9'Ј:yN8y 'Nj# m`&/҄2P&/oau0%j;%,HR7'E%^xQmk̢$E8 6"J$(IǶVD6(*JR˱$EId8(AHMKEIlD(JMs(-JT$,(:`Dlw%)Ux(9SVE%^W?"θ(vr9I7Z+جB07]A L "yFTh$RQhpXFtRhpBpBSPB ,P4DěoiмB m'nRdqYfKRx\x ޠs+p/A$ oTx| m?*7hөF)с| F D 9w([ ofr=ˋ/VXOBePN+ . J&3(y9 dPl2( 3(rDL3( T2(p8) dP4AQP"Ƞ3(-2(iϠ@Y|GS-p>E%QrW>;lkG.&tzv\bI*)h2J @R &-,TB$JaJ*!(TG&hTB I%`L>"Tҁ|R LDR0TB;&pZRIؒJjO* N뇤>o6.y~02zpKyRiD&pV+n8mP+QZJ6Ed"j%DQU+®V2M` jj%[8VcP+Fmj%FilPj%Q+MdPW]`V+[O\\ՊW+^xҏj:;#py ",g`9<˛g`9=030g`r ?# GH .Ft:ӆc4Ρn nx:vD ެJ>pҺpv?īg*i%δg)XW:3ΜټXJ +)漒,WBóy%s+K畐BJhy%q^ )t W(W"@΁y%܅WRJu+8༂{JM})9q~XԊ&ՊnV+ ZAój ZA$ B jVhV±ZtR+ZсZ(V3jVpZQ6v.0?_M^x.o"t 4J(8 C;*8܅M!] n5+8༂ WLӹqz:&1`)o61uLpl T1AuL`cH4YD":&d\ǤѩIcp|:uL:&Y`@cmuLicx*.UrۈW%^lGUJ/1@ʊpHQG>_2tqꓓc,E޷W_7&J8u^;00wd$ ~LiÕ{n#yLO!qA7٣$$"4P͉X g疈pOD 0%"OD#4TIDD0S"BID@>Q"AHD -l'"f?낯WFv:_S*%1s󽣢WV[EUƼR+]%מ'5H,ƅ̈__bdKt&3蒽ަFuHWt?vH!nZBMZB;i ,%mZ"% kԀHZ"ZIK %҅3Z"6f-h Ъ%ix-RKd]pZBD uC %nAYʕ^Kx-DObV{ g2hAI\.7X% %I%,$@87%,$ %&%G* ( p$1>"$t $4J( @;* ܅$MI ]I J R郃ǼJbwPMQs6Ud{lm}lcc&o%@׽ڠ%_~{N̫qئ`լDȕfm&>H3՗fgrH>Ӝm_uP٦p1=&aʧaɻ*%w VwEW:LA:WA@[j:h9LuA# HR T#:Ah1uPPB7Q7 @huy"uog<.^?A|Ax!G/՘՞H RJo M 5v{tvF)¤2KBA__PG*7>To62ʽ,%IƱ:DXX=7Y=`u86 YZ`u0:DNdu:\2fuՈN ǰY]C V @:,Q6VH;CI\g!zXV;m?. ab9P䑄n>P$¹IKI Ga:@PHy$AC# p|$t$I@HLđaHx$Ў$HAG˽O n#O=DG 7 UG [*G ,AJ>7cι\",ɇL&fs!H>%T''HÑ$qA5SAI>h8>ΡDA7|&PZ!o% Ҟ|x|xXȇ{僗^>ʝ@e%O-bJ(h2+ @V f%-+,ផ@$aJ (Gf%h@ Y `L>"Ё|VLDV0@;f%pZVBزjJ ̲'O_[. /+햋E '}|%%"%4)%vP&%%ܥ2 !%$%H)AC)0GdF )Ah@)ФI K tӧ ᑔ /%v ) 8w䞋{.(YrY~[YY YIYe, K,A87Y,.K Y&Y,Gp,K1d>"#Kt /K4J ,A;܅&KM ] ,b\2|WmzYep<*xq+ R^\^ W s+Pm^^-GW@" pdyT+qyjD m8BJW +f"oW@*ឭӾ«J`TB|<\DyE쉶=|lA,M&vsAH>¹%%ܓȀD!L Uh8|Gd:O>iH>f hBK>([AtYV|~(Oˊ4>ђJD\4gr$"r0ț͉W f斈Pm#`JD@$ G&"HKƉՈNm8&D:D"n@hݖH{"͊ɕx<^d̮Z͹n[7cu bTyχ*'UGF/~Amh}%>9>y @KBA ݜPhx6apn ` 2 @SAm?2aACZ8NXc:%,`%90a @P{]`~Ho6~ +¹Q>;#&GPiOCG ǔD @4JP>a΁(_(A픏.0S_ $)O(i}*;#k{=ArE{"oFj{ k["fZA?ۅn! D@Q G o! WK%̀,g;gPcC5Nb䯎h$h#d%lPwp# JfB)p'OqC}grI8}(N,qөMHIv' u@:MB: Da)AP@3u@pF,:@Zu@<:@5ҝCꀬ NHH: ntp^}t b__mcŤ2C zcůA&^ulwěF3|G)e3f="cylL+=KSKK͙u}jr6oIEw+~nFF_xe Rǖ:\ǖ Ա:6scSm^-GԱA ":6pdTqjD:6m8MulJԱ ful-oձA ̈́rŝPRP^W99;Ny#E80 P̷gN=ƶ|3r݀v)v+کτmP;|ݱJy/|A|"G\; +Cp|]f6BKpJi7W @pg+s %܃+d@"BSp|pEۏ h\ )Gd+W`%+ Dpv pZplڃ+t og:f>8aBe厣j߳tY<4w۳P5ߟB7n9 fs npl6t0M{-Gn` HÑTB7dFt ݴM:n"tn-tmDC77}NM<]* [X]c*ñ 8=#HlOdk^)h2S,p 1` p !(#1ch8t pLFp01܅)[8p ]`2||>x(U<mxCSUXqR.$KHɐ,o6d9@HfC2s TdrDH "4H%$K!jDL 4s( B2Y`H:BA=$x3e} ݾ"/@>^(/f %s`%`/  !ߞ|vKx^X|e#?֯uXOT~s18R6RJ0+e[X)aEY)3 JJJ~VPӬ+#YIX)FiVf`Y)9+]0X)Rv>K+x;^gWx]oyjf!K:fn٪EOu[$mo641mZ#ךLmqt aYI7ɝjkg&Mj+pɠ'1m]XyTa@mh:=A,䧠IS %?s#?` wC$!L䇠<#ɏ*ӉӁ"C4:'0DC s .4Q6AP;Ѡ DO_.Wa+u>,!4IcJ`Có4pn4,NcȀ!1~$P1c:ј>"Cc:104F1s .4S6CP; 4տvOcEaڏF*?.QҞ|&+mBMM&۝M[:R\!~-QR"-Z o[pbc7eD3)@+(ox~KwoYI#Pg~K/0YON7CI <Cuq-WLVWVC[ujvh9LW#IRU#:Uk1nWP]7Q7 nGhy"o)帠<YY;bax鬅3F*%?XXd~ꔋAK vs Khx6^B8x X=^B$%0KKx*Z81%}D&^ҁ|Q"^"@Khx wK /!=^Bڋ~g-lb>W}m OdXg> >p&H}%3Ù'Y'CyQ OYHI;G;Otfof\ ~!w=Xy~0H@r>9J\xn~95d4YS͙5X g3kYpϬ!50eϬ#3k4Tɬ0SfMɬ@>Q"FȬ3k -l5gfyrk38*~ig7pGwc7>hv'>|oWbKԀ<>JV>B3|.ؘEHG G4jҝCQGG)ԙ |˛JA?_pL+L/8/46tИC◨*)xNxz]}Ez[1-/,T<ۚz&21~[ȁF`TEdXY[6`xֲoa 'MM^<FsȮ]"EaKHm_  I %, @87 ,. & GJHp,1$>"#t /4JH @;J܅&M ] ;I>I%^ Ws~o:2Gk#\:pءP`84o6ǡpl8܎CUBǡ`:H84yJ"Pd|8T9pq:ǡPYq(@;mǡi?xNj/"*]w[" E8 6"$HǶVD6(*R˱" E@d8@HMKE@l"@(Ms(-T" ,:`Dlw)Uxj&Q/"`G 6ӛB,©v'X4:d}S7ccsa{'4õ·o ۳J!ohvٱni=MMٰ=ט fob:lH_~P؛nvùfC$QL,̆nX'duqp_B1ve ! ɉGdKoj h?T=/'!PDA"JPD8Aó"v(,~( H PAC~ UE0ӡ>"s(C0"CsB;QC R?n]uw|.,V~fЁ)3~S?NO=p ba}Mnf}X,#K>2 ab}Y4Ta}pNȰYLf X 3~8g} +,>~|RhNz@txHq@lz 5 RHV=gtYD(#xj^;YG=B@zYzJ|+ٻ%MHIv'= @:MBz Da=)AP@3@pF,z@Z@(/z_j"nQ?~ѧEĢ~4~vQU?~%2 ~¤~W?HCC0GdԏF CP?h@ԏtYpۂe׷(.'y^Q~a7QTճ-jD^,9:ғaGifǽ ʧ--#!rC&o`ț7070 70@70@o` G@" n`Іcn`p Jnx@!o Pۂzy *z@ +?;}a;W׺R/2eD]l.B]Wұ-ԕŠPWlԕZ`i.d8u!F]iꊍXԥlϡ4u`+,ue0%ݨ+ERW7Su=^tz5,/– %nN) 4<B8{H!)|J-'1@LH 0 D]h `K!=.0?%wyCHk盭Fg|'^ +/rdi'ҒGY}V';v:x5ߕ2ڲAf\MvYsvߋ~M[F1 yd$B1j( 9yTN *ͮPkcǥÎHw«Rj\9鰉C'9l՞βF`y 2y#[#O]rMoaZNmsQՇZy|92՗fnkG'->UrQr 9o7[h {H7A͋d8ҫxc􂍍^K6}=2{Pܸ="UTخL2AT}^P؜:>($>{nǓq W-_C\I|nmhM}c׿/نE$ }3Ko"q̃u2-o:p9| a;_uBf"O.v(!XGe[|T+KQY!>*|Ga棲>*1fhQ*棒iQ v.|TuQfuuo[r`dcrLHٵXKk2)1vM&IIf$lT Kjg۳Bz=fy|tOsK$(#]Exk~v+_~aV^eH<#8M0cu$|!pC?lƄMM6W贺27.>O݃#_} Veӳ,J,[SH=vxM7 & ۝d6 ɀe@j@^B2$T PF4h4 Hw).8 2 :ˀ uo;w= xt=ϏL9jllmޙLSY0k]Ss+W2f:Kf飼ڞScbGO7fzdNO_py<=!dV{FF {X&DğmƭՅpO:jEBKu(3_&9),$,Z+D֩=W1Y4ӜZ]Ch݆hb\y1Fc=1tmTbLVkIV4u׋>{bdK[,-YU% | ԣ5DZ ^N~M~jӋ,^N}:9lm(_<>.$P1m|iZ.5$8?tŪ,;Ͷ9N*?yѫX>~ֆF_y~_FZ?(k]f B uL YZG87Zpud@D:m?iBhց1h]u:F Z'@:9q+#fZ=D e3w{56BDlwr@XP+bKv@y"P : d?BP gPl"H(T3(9ʺ8: +gq\q➣;4k[Ud9X9'}IK5S\{SM7ޔpoM_{SU 7g{ ͟"˽G{TQ9E;ڣf#"+~x*"frDML7&V.?byDM&Fy47~;곓JOxeS=:y%cMvs퍳KBd瘼\\YQ}Lϗ7h~.^*:T[x%{%;*XrW,_=z|h}lη#V@<6nt/oz㿆N_ jydWgֶ+;^xljS#<b iMuCQͮM#;뺍^(CLm:(Ԟi664 =9^}}#ݵ="ϴg;>k98;Zsg{96,h{Vwl#..L^fS&2c 7P}!Xݩ.KRbQ~TjJT0qw’#x.;/d[9>i%!yXu֒͝]X+$Dclӊ-IiӼyOᇣG{ķ^.}UMFX/836xmנx7ݬw=s;^TU FSP4%&A=֨QޏW FF<>P}Nmd$闑JRyay*}&J7J <>ܞJrS!TzJO|*=TJJpS5Tzu%Jx*=,yi*=ěmv88g٩'""]v*Š8EJj9֩SI6 gp*9tɴSX(9xj֩r*YSnN%E:ov*Fy_zG"@>,(f Rs`XR` K >닷h>=S㷃mo&onvtۮ^ Nn;Bv#`a oqN,Qmgdv js~NĘܶ:m@NQm3n;9λ`vpsmgy  O>X=zzEn3&o+f콮zK{?.{g?ߊby)XnE^x+Ӿ}W+Vfw{S/MQtػb+vWoU t;5>yf b!}H-o[!|B}١|t셎Voz=/||>\#_|uc2FCć1>z|JD-u槦Znܽz/Sõ©peA NK>AN E(hR(fe (4< MK+d@B I ( hʀ*-+`L'e(+0ʀ0 ΁w)`SjW2WgwlepW2GGN/mr`6 ljE~ckLiwj<¥d;/Lt|pԫWM~ݪo+a_- g+o}]mQeQVՙ/:đY3rHuj~G(Xܪ&ݪnv [Eón*[E$*B*nViV±[tr[Ձ[(V 3nVq[U6v.0G |?^X-?3p_sCL7qcC= #=OD*%{U#: {9^7q<,xԁv|n"C~8|g??'D. ǣعl3`.+h2tW͡,Bw` #(#Cwh8tt ];FН0Cw܅+[莠]`V ݽRJݿ Op ϊBw9 fs pl6t0]{-G` !IÑ;TBwdFt ݵ]:n"t-tm;DCw7m n"{B~ǜC#gF+.0bSͱű;b+h2Wͱ,ˣXby` X#(#cyh8tX^v& G$Rq)vֆcbg Jκn;9oi!f=wl _9gW7Άk7Gnqr#lFk747 c^#_aMe˔gtaI×-<"Jx=I~ys\",IL&fs<Hñ$9%U'ɡ$9'IÑIr$q\5S\Ik8>IΡD\7$&QZ@fiw`Ү {ppq0$lM5Zh$xS\yyDryu<Ϩ-[(m6[>{3F_;xh[";m!g?bKDhWDvry^,xy8/ڬE;-Exx7F?#g$އh[k/ƿ$cD{hsGht9D|({|?S *?*^`AфAoCĒRdJi7`4MS![ X=M H”BP>MEۏLSP%MTNi*}D&M4F4a"MvLS.4ԞB>0<'s_'s^4Uܮw*@/^M,w`g¹` w H0m?RPEc$wyQBf 9P.4lrAr]`;\pk?"#rt /r4J A;܅&rM ] ";"b/rg.")d.sEa)"dql."ql16p/"#!TD |1i8D*EpɸX5S6SD"bu%uEp"bԁVDۊ!^D f^/we˵vÚWyƣW)\׿7z1}9v'T6+ &J9+ d%lVܲY d@"+Y ~dV*Y ptJ#2Y g%4Jd%3Y s`Vwe%-+~.{«~E$EW(,L~K?‹Y&G +hɕv3+LgܘXɑ &G#(H& c&tbr}Du `%0h@&]hLlLv&G?=8y_|q>6p?|# ti8D*pA56su%tpԁv ~'\<=cMɇ;b{+h2Vͱ,{bo` {#({#coh8t[7F؛0{co܅{+[썠]`fw3groԷ-LA":gr0LN`rs .4&W6&GP; L~{zXx'<{& Hf89` =I=,GA87=,G =&=GpG1>"Gt G4J A;܅GM ] z{k/z_^{ssɛfM9Mpls)@MrM`)"HÑ7Hd|SjDᘛ4S:7 n :n m7@76o E?cO9;>OpTm̵aw9 [[B1j464L}}#~'>/5;pަpn~j1) ZMLI+G('7o4[pBXiӈ0n'){"/^ǖh"%s̅n\( 4<@8{\ )s|悶J-g.12LB 0 D]h `\ =s.0+'ok"B _RRqHR7[lã{[ &W$+f&W 29¹19;#L&&GPiLNC&G L @4J09a΁LИ\ؘAL.03׿1t>u"#t /4J! B;!܅&M !] b|IC^ J?|ݻ-/R9` o6%plJ T@%`*)H4YR@"d\Rѩ@))p|I:%Y`I@+)m%i/)x3cuq 3gcX>A,&co{+7-p!L77m?2Jco`L[u {i 3790]hjf&B=p㥘w29X\AL\`r4<L H09BAy&G29 U-390#2Ly&(&G;29Bcr`cr39{q>3T+qB?~.,z&y9 dlܲ ܳrDLYt,:Tp8) d5EWP"Ȣ-۲iϢC8_3v0nQ( ~5y>1BbI_(h2} @ Ϧ/-},ើ@$aJ_ (G/h@ `L>"Ё|LD0@;/pZBjO_ bkAC^ JW+uqk =xAX\AL\`r4<L H09BAy&G29 U-390#2Ly&(&G;29Bcr`cr39Rコ!Okx&L^$kf6o|7bC CJY)z !sCzCaC!~B zI#2zHzL"@!s]hzH_C}]Õ[Kf|=_6WŒLfŒW0f@[aj h90Lf# 3HR 3T#:fh1/PP0C7Q7 ,@hy0"of?JE$ν=@K쭠[i7 @썆gcos%cod@"FS썠|Mۏi{)Gdbo`%bo DvqZl7cot?e{{&LoL~p囥boş~?{C%d7cW c7ު coh9"S |MI{%[5S 9u7,0Fhwn!{C%ޞ=cM7+7XboMJ9Vbo4<{#[ ,{#7Bboco~dMC-N>"{@>({f bos`썻bo`{ Lるw3gCX(fv{Zg"8,3S (#M*#ݬ`eg¹)#` we H(#0)#m?RPEce餌eyeQBf 9P.4elA]`VFGv2zpWF;\ }(fU<7n_S-Cuy0vL.fmO(|OrNm$~wڰV0>a&^%>6/2#7'l 2R$)f2R ϒ¹;!d&2BPhdDC2B dDF @4Ja΁dHAd.0=O|h>Hod, %#-|Yݣ/4T`eIzOX*DXJ;gtxKB,[0KY*E8T Tgt K,RʈfRVQT3,.8GJ,^`f7<!ݞhzvT82yjL@(#ʲ4›ߏ?kgU7› M̛ oYD87pMd@7ě&m?7i›h71xSM&F $@&97qo*o"7f?5:_Dۍ] ^?h<> "yuݱI$~|66'[G:p2c3Wo ’cd)o6r\1A[I{ Z1A)|4c"J .T#:嘴sLJt9&Y` uv[ "9&73ϖˎ>whOxٝ'# ԏW7P_9Xrs%{۶kFIb4%)(IlpnQ{ HDIahQ U$p%c:EIL( LDD΁QB-JBP{.0s}w\uO'v\U4Ng' vi2wh2WTSf A,ԥIRԥ P.s.` wB$ !LԅwuݏGQ@7eF*SrH0)\"",L&fs"0H±D %U'D 'IÑ@$q"P5S"PIj8>ΡD"P7&QZ"0o%!Ҟxs&o:>8~8ߩ#,sEņMb 46)Il؄pna{؄ HMa ha U&p6c:MLؤ LDD΁aB -lBP{؄.0ҧ~z|pJæg38X0[P.Uj k7FOx5>5fk\}6{%(kɛ-ƛ>y; )StA7y! D8Pu@aGU^ƒ?STybAMnAX,"K 2 aAyɃ4TAp̃N<yLf xȃ ΃3/;N<{(^R NN+BV"`a oqZJ,QiedV; jsZ~N;Ę:i@JQi3N+9ʻ`VpsZieX2Jn:Ij~a{9_Xί^OCr>__ˆ5* %@rJ+B3',&nx}lX8QA9QD4<ˉƉ Hp"B8AyNGr" U8-s"0'#2yN(ND;r"BD`Ds"̉{_owX܉l Arf2ZbZZTL\`lXʕ4Y˕`r%4<[pnJJȀDBʕ/WG+P\ -+c:+#2J:/W(QD(WB;+.r%`+WBP{L]g^{B^*΂W\ς<@[_Kb!GMn&GX,9"9K#2 Aa"GɑI4T!GpLN䨏ȐL9f H N39>6b'o8 "iE.N+vZ8EVf@ieʠ6gpZ9lJYi# 9d0봲C9 iE7A]Vvi= -u}xv|5*XD]S-ލZ%$~z@b_Y ; k ȿH ȿ|NzgSji^~w3$&<| {;RQE~G+ 5$JU]l&_ ~caF )hؔv3)Ćg ܈ Xؐ bC!(OlHb cbt"6}Dt Ol`%0Alh@b]hĦlĆvbCo|Lv!=];Yݍ nIMI;' ,m)rO% Ԁ{J)Z=!҅3)6fhvO iwOx=e]pIS uvOft75}ޣC;[*凫rPt;7>J<7KhVcp~h&G 2GE~T02j \w#Hd󤬞oUc|Vt]J={ߚn=< A.\8/J R\ (%s+QRm^-G(AD "%pdTJqjD%m8DI%JJ( Jf%JD)o(AD NiGG{:tKFFo\X*s?g6,ʒN0{#TњoRS"gitټ@tD5;ge[ߍT  '#]+wd0A7;zgflӍN{m#MG4'VW\(Hg"|tcŔLBDIŚvU ۳-AVanhv;1B:'ַf76gZp٘h9T؝it6Bp}1וS[zXT볓DZ]ov5DkohwF)hFQouߧõĴaUv2g N^$YҵZmåQ5s:ƟX LP+,Fó jsKPK'5B'i j$q)A$u (&@$΁ j܅V5˓)9!ϝ+.,0!iggv:,:,:kUWxcY^gyuY^ga;#^g:?*\iYA$NS h 5 GB"5 AO=4n6Z}.jP''皳lwhBc-P$=)<dҞ#/ɇ, ZZȽ} t>P@ 9܆Dܶ-z@U&zْlϙ[$˖lYeKvq 0!@3TP١IzB )B&!e{?,Y7uO[>}GWG| WW[<v?zp"9{D+?{{xT%x<81h:'/Ǔ{<x#<[LC`:GO0CfNUǠyF,Suۧv/mtAȓ51"z)Կ5};I>< Nד%o*H~P~&_#Ϧkw֖g2/^BS,NIqjL '{ĸ^qXq~cL1hz\?~qd^\?6x\?b̳-qH7O0CB\?6sqxq=~ z:{8oz^B3S;gn3&{󡿺}g$AùEoO\f'wζ; &.S`cy@JCo>? @m/_gt/>}xYH-=]ôHAq"RpN))΋HAr (X L$.1R܋DHAs)\z` !R,HAH]HAy:R {_o\"pcuRgGv/ҿFQ b']qb݃أm{v|bZ.أcE{=G!lj}߈gAs)~K'>< @%X~W~أ'o<7b?vľ}?|twŧ/~sRW[Ҷb[{-[{{l ĚOX-bc[1h@{[Ƿ"Y @11A:~d #d1Yd}b Y:ҍu:6sd‬:=Mֱz'!rq…&d',̬Ϻ:X2_p >'ݻ.I+#f{lY<}ܡJa^^Ԙpv2I"oJDC'Jaxk>U"pI%Η1&HDA%B%B2tO"c%[Lt$B$BlD%B8%b!q?x{pS"l/T:- >z|s7}L;lM ^ag{kkzR;wL;Ġf)aghk=IõþҵIUi Lp=[;~7 -޺w]pm[[i]p = ; ]p;d]pm{})]pݍ낈RuIwU-<]p =W>p\|O^tE\tE?sߑ 6c`S~. n? np;K[0] 7Г fc =7O;cGx\O]7 ͐ nfN."Mlgٺo_z(?r9y!1\@Xd q-S_3.s˜b(7@0U3*vs&tׇ9~)4;>[a_/{/z@5bYٯ)]?8Ɉyz Ȉ?ztU/Q{t`"CfL r"NN'5'΋D,q~ f8A q,N 'H b "<+NpbJ'tq3$ b3''Wq'Ġˋ78AOȋm#O6I*o'nr'v!|$w^xk pi~\lc?d23 d4%/z`Jۮ}V3fOrk8_\ n@%8>}w /xnoHGo{~7j[ӳw V&?O|;-z:;0:[~|s77:ūgi}ÌANP:ʏSk>c(;b);fʎ!Qv NKde1ϢS(Nّn<̐@ٱx8E1iʎ=p_[sO8wy~N,O--?gy<6bygy}[.O-ߑ)=Xn<]~G}^"fH]ngNtWEQ60o&̞bY"ow,w ] P@Nstski(vD6C|6@m^}=<69XF?px뻕iMBoyiyu'XWv 73Ѹo<レۑlV8-٤掲8oo4{BNLY53}2vz(d0'C|iL7_)5k_ꏻ__SqSgY"YOYwO&Lu&Ak*o%%ؤ_ӛxv 9Bvs1dn^#u4>͙Ifn>{-uvI7]0L&M;7 CvNJgO-7ܖ ۲)?m4mmYnˍݖn 1%=t[nyen۲ݖ}3-73'm"mt[ng-7w[_Fȏ\6B.yz&xsk>ÄI˜uw @11zA=~ ݣ1Y~b =ҍ{=6s==M/~]_yI"2}I^ܗ`'_B5H¸ qLI-/>WU;0v"8qx;=UDN=Wwb矫Z.\Ep\E~"p*{*C7Y*K9WqK?W߇84@¹dUppԹ(( |U|E\E|AOʃkGW(أ|G+ p8O)1R wp)p RJrJpRFT QS QRrR>J᮹JwR)lpgtp=YMiJg+kqk@)|}]E)\|2Xmhtιo(+u!9߰No+?߰~C%o0a!87$/q!x|!b̳[Lo87D3$7fNt!^~~C zz!s?%h7hw}涢M?^Z 5!X7d}C?M^s y}|YK9bdKʏ==tIT]ÝK"8_ Kbc$M%K%=]x\Dy.9l1EuI% fH%%*t.AO'^_>4rIs?i]lddy!N^X߱+z xs>..?ul2] U&m["8-qNܖ+>-qǶDm(m}-\¶Dpl["LߖH4\D"ro[":ľږ8h.e[-߇lK a[":Y %OmKD%L%f4~a0#̿O_yumE|e옾斨kX5LÝ&X0À aX M$/1L DyVŔ0!0=L fHfN4L L8&AO bGǿ|#...88cݝУ]fwC/^e7 q 9KvlGdǶٱ[v6Bv#;-q_qkTq8-;ndG~GdGz ;n,;yٱQٱ<%;`1C츝9I㮊ٱ';nʎˎȎkqf j|͢V>T<3޽~ȒyP/5i"9!KЉd,CĚO%1y$beÌ $8&KbtYlDY ݓ%eIĘgɒSd!0]DY`Y9QY@Nɒ,=p\|Y#7k.YUʒgl,}q@]-~_7E_qBѪw8|1C{^cH/c/][핿_W W{!{Fv/'%KD'%wǓ%pH,,o%KH%KDKLHD%KDO7Yͥ$Kғ%dC$$KD'K4Y"VA]d(tDe~a7/81{|*0|Mvb͇+obnb{tM_z9N}OcN:+?ddǚOuc%wcLpccNv d'/N9ٱǝ1r[LqNvp̐dfNɎWqdN91i';q/MhKBωSNLksyp?L nyq(ua0DHk 9[sgN[Ya>-wpm[[ip =;p;dpm{})pݍ뇈RIwU-p\?=M?yfx3(;JC'JRcxk>UjpI%Η1&HԈAӥFF2tOjc%5[LtFFlDF8%5bR#˝%"5Ը<{v<g_?h>t^>V]%- 8pN+>pG>@|(|}\B>@p, LH4\b>@"r/ :x>8h.%߇ ! :Y OD 0|sl. q` oa[v )l"\U+}=~}X ?h>m'~64DeU^y/_˻_z{z{xRopot}3smiz{8So@7_> |o+䓶1>gO_ѐ_0D3gZ_&~~3(E+-j M8Y>?(PXQ> Q`3Ja*hV`DFSVkTڪ6uzQt(\Pg@pbA)'}j5:Tq7,k}RRҪ(g٭ `{xr3!E׸ܶo99N8 4, AeW`ާkY+4Em 3tFbqfBGpS\V3bʮސE(T4M(F1)V,[Ns|w%zsY^˽w ly'%FP+aKAy7 +92#\"A9K$2E)﷭!Fv Fp ۱sFKs m ]ϡ)0rZ=ՃzTSlL偟t:A3]M p Ut@8KE0k-螯s\nB~ڌY`zph6zu<_fKRJKfɴe,dz=tKEPŪ8P]!z)u}_sF*N>ڲG)F2el2pekväْ~]F1!`\[u; ٛk=Ρe˱Ԋ%Ƿg $z D gԂ-xx^1;`e<2y*08Elz ЬY4*D,]@ St(&blE05z)e" Zy\i`X<ΈrEk+Qs88efJ띺+?k]Z>ړ*SFLY,xL !D[w*fIrkF'm[mD]CȪg\S>n, Rn KLdp^I5ڌZ\[IF1n!ETvwz- H-ryi8UjU窐gVv!heux3T/[CXALOPl?0(*RBV%v?FTZ.̃O}LTP&!Ϩְc(LX8 zh/3)A R`% -˜B] MSЅlA:3w Cc6CoMN1l0"aMRHuh=A\ vʯJ -WХǞTPzx߳@ʋP\wT9SC`^UcroM@`QW%YP>c \ w 䢺!cPȔ4Ny^b8IXk Y[tG}l&#KwcX,`vua**L̷,TC2]]04B+8%ɸf[ҺuuHYQڜ9S<ZC/, Wp8 l٦ijݲ*Typ% y7Y0ղ,MZnȺhsx=],ްJXţ0q-Yϙ{2^c^TMkutEW_ŹS<">3. ʮ Ŷli!&exϗ)ٜpAa_t<z7 }m L% &șJBe:,JDbHG \of.<\j%oO{aFu{嵜1̶ b#D=6ׂȚRa6sUIdCV`kfr ̠ƬA50SN)XH%mYֆ٪11.BJI f qhc8hp_`Vâ3BBZN޲VZͲT-M>k47!Hs7Q–B%^ۥ*GOՖn6dU2<BrCjGI+0.hJ>E\Še϶(ԶK2 Van{꼪Nzee xe@ʨishUٙ4%0[!fm@WEtnԠ?2kc5Ƙ 3rv-:~S Mm`;mk^ ,VuEd9$;M;(J Ӆ @Vkr#JW IB%n*R}^K /UPAڨ=h\.u_"+#3p{v&]qkCPV@}XXqmY]+( =Hlڮ 2K\gn{mXG+^I'VfՄh5Am pZ*,inŎZlb€QLO~&eSoR'PRd4*7 u zUG%=M@@OP&ܸj Zټsor͎}ʸ\Ƥ5RR-EG+Y,H1KY.zqi[|W+j8Zz%Gh(Ru@0<ϊPg釘7ΎD~Rt]MMBW0.@ Iփ|VU9>-eDƤ*%$ LV1糭yv i:5gӱin>nU'Dȶ@5<07^c!{c6[ rwJߌ_* \nq*ePsޢ&Z+UQ|}4GEa1_Ss6eR:bHs@[ kخ҄ba63sD r+@Q=DuJ MW0AJ1KC0IdخV+fv*A<;ZbGE %l /D 8LWoS-BvI=D\Z ,[P#]ml<9fVDr|9 WXuJÅ8qZNYz#Mrf ۝YRY;IG#ٙ/p]hWzWlrE%+!jbE3[w"~<_AXZʋ`{ R7v(Yƻɭ~G0YW,:f먁Pn 4[ Z "B,|9/XpE`fuyjPWՐa%ڕ d#Qn͡XtWVAI*I`eejCoL.[Z,z42V5՗\/E hRJUώJ(9 /A.ͧ>mweȭdE~ܴ]G dDpN`,VOtזE4#r-ŒсZQ4-Qvu`5*(M1BG$5wl3m {p[Fӆ]=GU}cYԪl{p~p jVim(' *# 6293sY0!,ыfNϑñף%ذ"jR~(D-i:J/Ke @B^ %&áL!:Rqi/ڢV0o<\C.DJuu @`Z2s"φkvnr/ؒ<ғP)_4Ù봦60^8Nux-*J]a&űsZFg0 -?5I- +BB@蒺JA*5`1\9I%P$ ׭̐Pm>[gf-Xu ZLGkbT_ L'twjаpMI,|@I5A uU狔7-8S&x#`* x'ԋ"tz'$te6nƜ_y G6RSfK$A.RFI4< _R<jmg~n"or(M6+#RAvCþNgb&̸z)`dI ;ag(r(.}<$ J3X#rrq|jF\̀țq;%vG$du)%0u> J$ꏀ=FA\HKr%|6>%A 2$`h>:|ܓ ,a8tQ]!nn:I+:iZEf\bZUR%nYy]u\k`-m٠9]P( [zU&vG][$ΐ,yg"qn,JE,VHd}1L_,2.*A8\=[~Ɍ\ OX Ƕ;d{|iTfPͮFft1ŲQs h~cg+5NE%\`䭢4Ҕ֚On*=%} $Vk Q5ʏW]\曋O*0%2:0mǘO6!)%{TVN$ /TC\n֗(3}9N@JAv-݆^6ƺ(`bSL|1z̴)eaJc:,.j7Q IsTN8Ѓ6&:ʗuxqxa4a0|mYKö2iYZu(Q~5ւxQ6Tf{v{ VigY0բ,{s3!㹮ƈ^A8̲ %t";lT]s-\>RD\(ר#.Ϙrmed^m g$Id B,ii@/}~!ŀv8z2:PKW;đ+u9b, R mLzZG\~eb&6}&;Bj(JP:K%3S5F)᜚xx7ͮe`Ub( =f;mhtT2e?JM)@E:3ܩZs%Ŧۂxȟ$AvsRC!,"Y&-#l"!l9@Z]Mj1՘^y=Cr9BHrZzVpTiUV]8CGH/ ci~42S FѹR0!謝E\ xkwky\lw֢ VkSXP5KƬEEצ]1e+xE632\PXwףUADzrK#PZ?_LA>Wr޴LE GAJ|v\5uNCUu[jEJG\Ja,?LNȒ6[!-יncvr+:Jz xU#v] q]zP^żnE_TtB'sݙXruTj8%9-ǡi6r0,[Ks:&k0ia8_mcԨ( w*M I)WGGo>7 Bp<.ҠOts ,Huk`'];Yrê꺻FFٲV.g@-ȼ;25+=QyQkG{S)2ZuX[J^L;= 7J9DQbB ˭rY y6Tj8qjV 7eդ[ mP+--j2+)FeYڒBW17R$|A4[庀,zZ",1\̚ ՀN| r%V3訋 anIXh;ۨfV\ 0_ps-XͮTJ5xBhE<Q`ʰΔo4_\uB>ݙBkPVRT2X-s˵z}F 83tX 2\9eV8WX\#T0r$5/AYsTH2S|Nh0l!2[krF%*OꈸM ÁrRP@ǚQ(zl YC&TmcࣺԳJi%hWl(8+@[5~jB-nV%5T3: .Efa{9IPZzN[\a2TBYd&-T[Tu79ۥ c۝)Y(2붳SO5iT(d E?Ա@. ˓imMx:BMZ %݆V^p^zvFG0 3^u "fP 8>iȤ< s_+~KƘ6gЊ Z;Blqh)9UV%j,I,SܘWD2h-'-J脢K̑(W5LU7Y7sNEg$˲?uoizʸ/Lx =̙0M1D gHs^,V+Vcq`U9ʢXiF7-"&9( E+ thf^+áܝlNsrHNDrЂ, "f|,hb-[i4<6nmLNqh5'9::65IZ:"d3]"L<"JJ~G'iMDL|EWH65ݙ y~[X}s171L/(AX[eJWcNcW/[2u ]Jצ^)P2 *Eplg+j}&wxuTUv*ݨUs &F IdZR3F4P0QW+>kcB]x49vF!RNvj5 %vHZ~:F)IQX-͜m^̰Ln,fOеX78KJ,+ΛL@ɭ٣:dnwJb,8YL{>:T-}]f:䭃zUb%uu3lPg30r&@ӛ>XoS}r;(f+Kzrp-"!{pHHQ*gŰ(9ps"s w2t&#@3v?tf>4<ׂdƯ2%+*Ҍ1V5FhQeyBo4Hf6Yj][\ӆ TFwBf9JƎ D/WmgZhN4uE@ &<^+;J뗛nhFv5ln3R79G)6\ F3OoiZv4p,>[S^ۄnThv!3(J#V&zmᥦ0!21(إFZi8 r22Xj kռCIVoU[V[bƌyJ1`W=S"rYlƍ"q3'cNl_AR-ԧ$+Kj[826a\*HPUR_z>A5QIcOWhQWŵ–>J,8hrCkͺ]fAڒMgbK~z.*EAr)\-xc[{DU_3[ugJnyz&ld:K87Λh9 Q3T[9w`3הt1%ng.U=gJúunmOtfuXCE|eż JKje-יELv(sp BtxǠ ȞbdaWݢ8n&[t+ ~C<ٚkS?VsSaWmvT`@yn{Mrpը!\0Y޷ Or([ 3BecTvВ@?Dx$$2o3_?fzۖSu2 ZDžNk^fu\z]HU11 2zu{A)@? i<38zSV*9֦4,[}IQ *QI~Q]o>q"QRsfV70;aEpfWô M){sca-Zc~!sH(KeXv۽0@1=zq4Pi- *KA'PENI!4 VBcZA&r;.iVP34\'M$4Av/t!ɉ)fN$$3lH"σJ۔bşt貮]rWpRl#WH֡8DvqEIyEP<{e sPeԽ ~EE@_)m縈q{=B|Bl$=%X(_MN aAw0TbKˎTZ.;խ}e9^^"}CJV@)ҸϏKa_b 뗜f"ߏPWYU`$Z j?..6U U ߐ# MJ SY(|-:DEKpʯm 2_G|,/t(keuVV(x8-! ~\ŌM,wܩmNz_ kkB-Ry:Yߊ -$ʡ8!Ī8$@}o&4d*z'X-P- xMQ|}<ȉ~"$nDe0>O۩m:pPuqSMd#-Ŗݻ+Ul42<VsQ;8`O1Ӂv''3Y㵲?>B?:~~aq`MH0(ށnݔkA`2NF:t.kBzn[Lhg}>'#UMdׇBEB_fRC& -!BTMCkH/WBvjM \/[ 0Fo'MFڗboN~4D)h@,vi4l#:))"Y"\8 i' xjVitjr}aSc;Ewo~Y{ jGw_@E[p'(VԺhğ=ĘVjwc*Bٖ*x my'd5ckpy|Y %]G"$8:6!;z5R둫ë?/Jxuz l1ͬ4+o{K@oH ֞0Y6-]@vaX_p %V aQ(:8U:Ux\5?b̂ufNdӺb6Q~G 8Q`,ntA] kWuqi?FW6*PGʄ/.O]W `ݱfQJ 14"rԵ^Bڶj3޽C)~Nww# UZ`Q*KOF5ib؞8nv)Jn1W᪄aӡMS.ydU%\<_yApZQi`fc*2-[Se6P#LOܤ^AʫEa:SaӛLHF:櫌P56x|wFAdEOW9?̮b*tCKFAuFRy"kaKwruށރ6izzlceJoc0{D~LR$`؈Ȯfdjդ[_Peojp7ͅ@yҸS 4SFlIPh㬙F*jn}F$ieWY/fjM.zOQߢU/adC WS,Z)LHmp7_>X NPTo'3'Zm6~]1_J7~?dpe8 6e;k(I_>jY[ ҒyYJ]_v퍍18XLe Rw߈lp"?):/:3j\ " ;1 Cjq3zjOf6l>sH`ZϮ>T5uB6-^=iskQ a |᰺)Դ!ɓ} U'fMp˩Rs Dz x^D꧎YC+ф9~t;)COO)[b 5,o[X+9Ika}@X6:/[ ?jcS?ϦDHLIybyJ\HQegۖw38U^>r{dBFκJB̞0w~ Pi'GϛEiJqq&x e*Jn%^;v@ -sc"ĕV P_ˍ,:c:n-9 觤q~tR!B&q¦=5Be*M ]F4iww&laM:,i\mSxz#)ECnu!prJunLHR3/%! 3P ic˝r"N=E7QOjz(NMh 'qGVߌXJc`!Tǹ;.. $k|>x6eb[ʴz`~K!uɯYu8@9! z@Q/bݥLؒ?'SoO$Vi'"'J?LjC^,l^ݫ!=A{ނΝjcف$6.Vn w5܊mnWYvHisBέfs~"pE;VRX{,niyM喋Q`@&9B6Z4"bj#?{U[i, kM}zi}אW0Q ׋a1TҘ2Ӷ$+&A0. \f!> ͎# $N'ȶY52̡6 pst:c. /4vnǤG͈9Ԡ?e5EML轾nuu)Y:G>ݕHu1?GL >Ղ ;eي=9cg-pl1]hG-n0n ˉa׹'pVBڽRenl>v&N9^3siWGJS1; #Ir# zY0z%a:Hk+pwȩ54rpiP+fO5'sZ\ =|V/' qHNmvŠwHŧRzӧASR,*&}vW jT?RQM//HMS3d[3OTC*$cyM͆p+zzO JXn?\%|1'S/P@4fDm/X-YWUkvO:J3*p'vk n붵U仳A8U@2&E`aPF1<~CC7Q]?,mtW`$vzhR=)bh1UՊufA͘YzM!A$PN~X-QPW= ^|#'|IkGC7VkS'5arHigjǚߒp:BUf,yL=Zs , tshĤ4~]8]za}8-3w{o69\MmT[Jp'' EƧ@rvQ  ߉v`?Sc:s7ͮ]|li&!Gj>+h?W o2v^ sƥufga׃mu}X>)mchفƧ E`8J|tl!WbM6 +/g M__W#F^>׾ҏy"K ?ftgc,{mMOTz="Wu$\`so a,?Rʰ%K&` ?Ųİ5_!M_];26;eE6k Tmp}=13M9l#"UMrlݘ\W8h{ r\ŠdW>_n $w"j x&c3`[ P7j=֬96^;~ XÄ7<l1w׎&tV*}n6 tU&!-ӷэO^@'+|Qpu>1+oZ68;3Zc˪{|\ȏ8[ӯ E+"k.45óxF)#8LgsZNjs}xnI__؆޺цgaۃOS{POg џ6|Ǭc-f'C/#g.n*uO0F7)`|`don/m9?Un'>"G۷J=aFU 5K(w%GnN@P^8ρjŏŁw@"5.ڮXT-aO`":u_@";יQJ} V`y49A=ann_7HYݚc.4imR̍ v@}:r1g)q-2&NQ%Gp]7iž;.`#,2(X.Sv*0-5)#ރ%O jȜ`'F y(yHi%]`ū'#~\ sCH2΢ֆ_zĿ6x}n7S6CR׼v)(3zc۵w&YlY^dM k'@'Ő(X#|h2R2g.7N+SDH&ղcIg3Wå_/s'u C}+XoqgZ{N48eme)*a&].b3sѢt%,v >щ B>]5 p^;+=:v6 } PC[٣ 6Rζ!fO" ?jw9UxܔL!dY?\Ԭ/jaW~JDeI7 m-,vD IT´\ԮlXb`L4VWHOȅd}Š_ !Kxl9}{Rk[" o!x;7f NXQ;;Dtt.X]w2B`Vj O4g%q/ϳ FKx ;STXblԩ]M ovSjMA[VwRbษ D|ҽOPZ͜9[A_;?W6}wQgwNHL#\`-?.K狭`b_۵̪}c!.)?l9 zn|ѿr3O=2qluQa_S{%@Bt}?*etSP0k_jY>I"ҔٿZ0u|ݣLޭ?#fx sFwbxʋ5^4p)hReHZYm/T(=$Ÿ\Hj+Ol,4Va@kHu_It.BȱOh~(cV F'JUrRDh D4U~)0GxG/o9wse5Y%lBKwcV%WvX ",˚yt !+/; PCa}pKOcW$~\z%}e$/Cр48 / 2u=}FHq BAtӰn=BݎC?߃TJ]D { $Q+Y6;bBz~#҆9RPkjT#v{5Qʼ ~Le't}w?^"IjraO'ukQ=A^aoЎJWO>qlYhCO* #iS {Q}vL^W}I{6|¬՞{7O4F=^"..eSDѪQs_#eP&l+D&z :rn"{bMu~Q=TK_U4tS//P.ŝ&dL>J/;񛊗…^ᠽJ@`7 -{,߾J=nMͩ ))CZ"wM&n^%UoVO#[4P8U9o1# ??A*t^>51MOJ?7K\Ol? "_X=%]Yqq6 ^TR@J;Xp^P\ۼoX{ c 'p]Dj}Z6%j~'D%Kj!ސ/7O؇Ҹ\gQVAvL-xS_%׸F2??, 4G|΂CB @nOɑ6yK"IpTft Cq.IgjYJwA/hYM1w2FV?tYdAmŖ窮æO5F~j_cdy0UF$  gkͽ%l ?wW{ӍkR_&Cfߍz۟ݰX Z΂y.BAo)[ISԌ͡K),2`5 XxYJUQEawٝ[(a~^c8|6NQTʳyMbfa]OCJVmkH蘙iRڈ d~Rr}9!ۣQ TE>9tO@33uц=O7$1~IL'>yI@|aXD[F*'% Fy{`4'6l;ۺniZ-.n*>NtjI19[fB}+ -s)> G~xA*x!6)2 $jًXcnyN|6k7*g~Bt] 饅<܇k}R _4Rw Fl@7 br7}O|M c7!o2V.Tg̟Zm1| Gie%n'hx;56Yλhna`P=)ϔrULn#Z/er7U|Й?iQ*(} dv>樶/أPZlJ3߱sW:f.Q\ݹ|& 6&LkvpgﱠԔy cL]㫫jmrQt9y}5V@c7K#g;7ЏUɰHREJ|VZM(9Gh0MMlB$x g_z8 GW2ueq˻D꡻GPuq/&XhzqtKl[vFs_Pi2 Eg3bQ)$ P0R$#"qW~+t x`Ȍ-krBlܛŰa=6hK7* 3:lcessYaT]u?J(_r P$~? 8.e'EedwUډDBcqay"+oF7[dxjOm [7} .k^."<'=q~Ouc"@Lڼkie\l6|oqD7ɚ *X|m\{LLC} *EaoK5"ޟ9[.MV|ĿxM #E7%hL% QX]d&5PLg֎"P\_D?izO-8V%PA"!,P4˕llA?k@iE;o'ktz>j $)MesJ4 Aj)w}*Kڹ^\R>'HeJSRlGa/On7QUBPKO!6M}Y 2^=oG1Uv:,P, ([eLkj(KȲyqj`=_0L@N$gӣ|l@Wv{!$Z[&/9&6rV;y3D+ ؒ`MNu- Yd)t%A WlmDy@oQQHd0ٝR_0NDSEd#N4Dx $GJ0T`+`hGi__^mDkIRE%Zk"ѐhK?;3emeI~DgŤ1A;nH'%X3 m3PHJXBY{@ GxpDŽkqGtSXƫ)uT:M!ؖ>B+h93֧/OmsL]ѝ⌍ bu9>i>`7 vLŞ_QpYɟ.fn4}Rz3%N٠TI#ViuOZQBO_v};SO.-5W=Ga.AK ݫ] R*:XĂ85 L_B`RwRx`J~N2.*݀3#w0{SEZl85kKm%{ӫ#IG _l{=@O䲲(F*AK+m&1t_=d6$=R~t+,m?^0֞įBpRn=S*ĉh_`罿p;SSrBnyUȀXƧGhxU󪤓GG; V /./! n2Ǐ0kvCa*P_D5|la`lq'uşzv4p?ձJE#0e~nOBPP>"T`܈4G/=Y9,9Qpǻvyj+A Xu;_;UH%Vgc09Jyg>z0u *~ai7g1 $B#5zdX_.1yV7?QCu+W+A8,"nhOn]g`l¦L:5{mz}iiL1<|#7FgqH a9zSrLT##i/lUUA{׸_P12mOV56OM={cԾاն>|[ٍo]iSK4-OXهfjna Χ{|?S8H0)[BPq[Ahk>|ԅe@/JY_ `ˌhۍUۖC+J4eu? H$^U$&$t 8EtT~deE~1TI:=:LhĨlrX0,D[Q|6 t>H#-{({C aAǐ)O&YhT4QZ̯~xqN:/5,ខ6@e"NWVՇ[y>;mu^>:0==Y^ Nǀgځ_pUZvH]unۑX%#'77>2HhVzMmZG5!g|:;6eڗ5eX=%-|qb43B%>uV7%L- >vxnbY3mB<;lk7eZSs*ScXslyaM˼w{@Vx<[{NG)]Qfim[8fvYA uC⳽J5-残&B>"$ezhnV+[+aG9m`>c)g^\ 71@ 0gkSJy5=y)-&BZ>8#arꘘ\|H _(CY{(+Kh # ¿N+ `g034j{\7+:h!4HP_ Ƨ!aSGhVhG:3v`. QY9fSR/@@7R"vlr{ b&X_MS·] u {1>fE){9vFF6f=xV"K jx0PjcVտ2!sQPm4 ld7zrq\)ϕ! M.Y ҥ=(Έ~ >15}^'J t~!p!0&D>FQ I-̈Sˢ%OD,VDYzdb!PVuYKp>hx3%` c/iE+_(hC9G +8.E8'\aMdʝ.(N ;@\'N\Bk4,ܶ}ŏۂB/ D=l{:}g#˪%AծV%))n5/δ_x?Mdk {`8+s`L~I%xD=kyAz>'SPՆeMLI %Pt"{+ fE8ϲz.v'7z]7_$ WS ae9.&|V8'RgCo;j{J8nWjѴ~K IIp7mΡ73o2=zD`mrVUnk U)pEm0؍U&OQaZgx}}>;D)mxݨ|6|viQ,ÖCKW/XJy8FӞY0m݀~n%1QNr3[z0"*-Aӥy`DH `;d/^5WtE vG^̷N;ҟA@tF'^RoM_ BT!x<.i{Yo#NOsl?TQQ">4_3ʭ'fGk$]} 2NXVu^K7>ZQ0sÚ릴WkE>ٝԻQ//OH¢pUXg,rz*'߃+Ƈ7 g{Ş'5i_!X @dP7 0ypppSB%Zx-~L&$6IMˀ{᜺(I(hKy`ʎF`鿆F.$-$2F?"XƑ؂z~}qTd-z`%1םT4=6OiDɉߢU>r]X: KtȍVv/~~i+nM@$ϴhEZSPL6WS D!kp~`-v$KTho4&Fn< RVkLR#n^*Fpe$ :)cVjDy׍ƈxАwR)3GuʴoZuYčF `~s@0 ~~E aZ2)x(OV8{rW [/GdXȔ1tMLP 7$z/o(:hJޝ hB׀\f7asި!T4qz:>y)J$;e8~8n,5mkޏԞ"($^;0<,S!< NFkf}bSH^y/ &y`*8R(Z?}!]FOK~z%dqUOR|R% 1|+,!9r4-<\.: fdϛV)jzÛoi@oL_nTAgyrzgWiׄ-}hc]3wj &UW$S.Sq\.UhRݼ(>%%b+UVI} zHP@#2v(Y_2z9}xvm_50Z i? [ Y^3"I:լzn|$Bde~ك7-^UhfҶr ׈NlFW.uBbZ*Mo Xo*-eƽy7^#<ф]L?BU;ѢO)Xp|18$Q9xsVįsLAoto`)?z=yohI:y!zX_#EǞ4H/*SJE %I'6[}e!4S4W6$:9E TAfv]K ]p rhNyZԵajn.a@(\j?ٲDݷey? dT` 19 -KE" 8RQ;5.975*{?j_2c뮒p(iROgLdFk >p?G/ oZ*s^@Ѽ\[GLNnp{h쓛r`|sٛ#׮c378Ƥe@z4R@|bi3$/tW0 ^#>VcayST 'V XyGio7W RF 2V^ H}i85FOJM] ጒbO h ڿL[X)/a^ [Aƕ}&1*# 5ydnS#KgVY:OCUÚKϞNՅ'Փ1صY}e2/Qa?-6Uw[ǜQX"=МNB&#w-|"4z„;)OJY^>@zA Nr@]I=:P@G$M^3+cIeޜx6[xB}hkg>rr-}~_Va?^G;rUYJF D~/N>s_CJּμB҇ч?s:U+2"=S} ?J~mQG_O)??)X"/OGOG,-X}?_r&cm>02g!Z PnI%c#ޟE 'ߔKy!@= 2'W'EgKh2u#{OD ?aBJJ**'~faų7B8K ߯e׆uNPwL c4ngp9"wh| b| v?PԯK8!dS >(Qoe=a;R[+b }.oRLᲖ#gz5j/=2)6y٢RZ/##(9&1nl7clj͝I3ۻ\XZ"F b]cj!Sv?IKpۺxM}j'nB_Cryps''m=Pe ZĹbojm yG $yMJb#f>'CK`҂=AfSIjp D}]/`}ʘ"_'y8by# |u^I8 = i&Xb&g}ʴT^o'e8heh-h?jZf~ŝ'C}KXɯ="JCJ7h.%61(HI__QH2Çk)Diw_0Oj/FdJigHAUH} k,-ww ŏhưQ+vxf+',EQ囨چxvwPxך`Q=JbۗCꓡ\i Σ. 6 vMp_b&(2gܪ./zzٔ13ڞtoڬ@7jG2?9aGA |\0E-}?l[ TPy]@tIw #Hm: DQJ;.Jp@D/F|$!v B{&&K pR]iї<{h$dM'3q HW.oXj_=X^ksJ~>XNf;Q^=Qk6ջl񊗎Dg(`_e">ПMkw܈_mS Abx`uNhhOa3м*o !%^VM,rG7kuXֿ2Z)iRsgl ~Rjzp  YZol~MSg>6Y=&@7t:;󽍗,#*@lk|USS?gwj {^#~YVuG!m1auPHi}_ٟբvbRBi<6"8S\nhĈ2C'r b_qji<9uCž/?V8o1T]HJdr0髴k!K1Mw2y n>ZZLT 0du)"*t6 lQeiIGyu{]'qV$e_;u8brfL mt8_͆7!ՙ'Ar6?f)<(#{ٷkwL~P@2Eb|AO__EFu%9py2wΚPc, 2ÔT,ɳowZmV!s6C r^Ēb0>m1b ?@=tum~ m.1|Cw8iщJb̭2k ~M\)T\|j?=iYYHlEs+ hYM|,Es44׼5un"/t, qD))NB `%hBE!1fnx`HC^ .؞p9[ZR(jν$MDA0Vʹ-@o7BaW# ok'zZ.<""zIJi6lwO:!Y1 %n_F dr}N\wN>{ŷ_/Gymζ͝Vg1"+_J*)KJ85?._K/|WƝnX92/-MP,*cnN^jmyQ-AiGi6_sڍݟoa/(iKNq"2sBxFCt'[4݊18(Ei3XD; 1iӽ [4Fȸ雥?܂(tәiV ؔ0'yo8ABNp#iL|׊lA;o1ǖ6TN 8* l/@ -;W 3ډPQ_c+xM}ҭڷkSaSjda |)!ܳ`eZL8ZH-ēA5D(-N?>ŸǡEKXh9v4(D3.!$9{CE;+aI8d]k qq'{#:wۈ|1uyLQE4:Lja cѠt2fiGK2qCЫa{Z/I8p%h_JǂSl49XRΠ0L<@O=0Bn<\s6I~&M)2_fBn^a l`ktO4[ݚ>f4Y/>G&/z: V=4 Nay>h ʬT3wF`[d~ek@wA$:t{"Bч͵ү],9S$:~߳GqϠCDB[ʖOQ}fx ӞviJU*JyDc_25 ]ָp8+Fg觟Ɣ1ȕ)er[{Iǫ! O&)L3CNq&P%~76WYom4lIS'!|Prd?H>;|Mnk0yj|+FT{Kxphモ;iܽ&0ڴ:e'lcH liq26B\:=;^x׀!c{vUoDJ7hY0ߎEOA+Z8 / Dǀ{e+[N!4gmDǟ;DPRYWr] LSevemߺw) O'(S zS6 72Q y NT~_Osf7W'rz v?l"݄8:,7 D9"|z3^؞Сka\VܦnQ` "xf1[ϒ؏d.n7O]&0gWaHrgƤũYGmPy$Sꂖۂմr3`̰;'uwdH_NxxhyQ ֊j%/8SF?zvꯞ 4pO(s~6XEt\5 UWN*b'˧UVؑ g^bv H\n^ <ѰlXhB50nV/\j9.[@8MyA=є^"{>|yLXYT=k-Q_D%G$DOVv> #E9oIw1rϋD7i6g5n/͇Pzv(O`;( YH+T }_7RLKfXC$0Acwm);|p'.y._Meu2nxY|yJ=?Rj.g!QT"@TRMfsbQ[V/~5ɩ*&l"Xwv( TCì 83:{ut%1c7(-p3{D(X|O,YkЮAzejxdµ SJ嫿+V&|/ QCLoB٥g8C{uՆRFH82,{0Pi,?RٞQ,! w"nV5\-[ohUG=햒$^҇qY$\'$_g՟[jq'02>pC3qiމ*mCP927oŇMiBZ݈>`Sޯ}` Hd7KD Fk)l|m1@1N[lۿcFeB۷Vbߞ;NgGsXR1V]O(hK[EF^~s>97A5)nڂ~0?oͼn">]R%ii/(Zeܜ Xi D]P"gV<JO,;#,ThB Umzr#~I4"3Jcx"Χ#HLDwc%/䂯^wޘfzX!zQƕtVb3#@q5zvZ_a=r;)L(}| bqqdO;H};l1zx 8zcR?mx"`gäWG@.&q2oKnh 3@$%.j́݇Qҷ޹@ {Bf~"l^T=q}kzazfc{Ϝ):~R.'E^xÈ`p EDzDP 10x;>*ϐȏw,~WvlĀ> zxq>.tcFmhsn_鶨~/6˿1SnDY)|M7 ,q$E"P]ΆF?s_ƬyjF,C`E'3}am3G@ʬu҇ݟ4YI!w}GH€㼀vcԩK-Y~2AԀvȅ@}97ڵ'uR"ٛ\\b3=b[|V;{N/ !ŔU: (Jc;Xho۾y@VezT{3W@_Os 4~yCu a7$4Ri] 3G|!Ly=?gspSAũTw|e~}S (H4 e~ჶ3_BF 02+h f5w<׊PPO~*u͔W~Ч t}e'7ٱ!j/WFǔ+rq| )Z z'$=UN2HqhL덑9~SCmm+V`+?>h̔{$aҌkNĴ];ґQ׋u}qz'm$ ߡ)޶ilrquK!W,Wm}ԫ\;|z TY%'/i5FPȊo!7Dbי]"!yxk  SwӦpA~c4Ld`_5Jfn\o< wXireO\Fɣ ˑ&Qo_}61i݋eD51iܿdZAEo[^5}]Jp4]_WQP\d~xPn102b߇o Tp^t/7EEݟOWs=':44w% e~ģTU> __s2Oxsb@]uR_%Տ0hHɏ6u,, ";"9 p>I8!3iuM@`UyAӓRYf GBH0tR$;~qD ,Nz^)uJl-d\0suTwĝM`7pxͦO9{ȁ.eo7D$k^nt`Cr {91~-1ܣЯk+T`Ĥ5v<>ְ1fKrxmg9&kGȪH&$]bff4sxk_t2[?' (f %[[ 빚>BxY`Tol'1aeFv) I~uQkȾ'NeKWCIr9/-ǹI)N񻃅Nf" ӲAs賈0 XJ6&J׼nFi@qT:4Lj۱!%{[ eYVz!쉵ZC6f!~t/. (P:Gc.e`j͜ޠx)_>Z5ޱ[[^ M}11%Pw4Nh,J 1]jw*?Bwȯ}i />acuEqnӦ0RJN+4e ߱&)7n;_yjjfI<^]Ƣ'>V_Mnk`8@u嘏@}3>2Py$hV"ijW.)mt2rH̃O/Zk"fkg $W %E!KZ!M= L:`Oy #LB 'xz7:6m[VmHZ&(˕I^`ꄙؼ)*Q#X}_9\ݧ =j6/YpJ&A÷45RZ+pODbcQ*so (..ZST8ƅ_.<43unā(cWkf*]Jl~yYm,cvijnbnD/|!ϯ4Z;I&T&Ԫ#Iap!3i-t;.^Ks6^0zzRz=ӝM1ZDѯH@+I[d^)քJ }JKTΣ*bGwrWf^ 3F 7K`o`Ϯ@ʻaN{ls4f~ U}II>K"9EiвCMI J3L .1-{|t 7~E.kVpD#rYf^DzG\ )/17$[k}o+CbiZ~A,ug@e`>Kh/=$O^Y,3,42ע^}e[`wV X $-)P:%+b3 ݗ?@dC2xISY!L1&(G5 [iA1OͿMu}gQ:p)jc J&f`%؍Z%%У"*Aq [vS*YZȊe 'Uvd'>$Y j%Hit`}ljp(˞ 90v/40l|u(~(c?@tsºsIc"c>._¶%xva]xly0hBgۇ7;~\q]&-:ޏ~9Xh纠8P6Dm枒=}t :7\MDltej_x.|'ngX`q)jV)v|SWt*k!oH/2ߒ[w?ejLj^{Sή=#6Hr]~[8'%snGr6:qGIW9h(n__-/UF.f#1:p qauViu <2 2+NݾQKI ;# N+;-+vado\«HY^c^DOrmĔ 'Ș>(f_#,Daig[`2s]{%? d| w.) 7,&%)r\AxOeʜHs,оݦ (J2,tem>;sEWح"H8:L$yDC$XcX%zT<{Ҁ$ɹMdv$ DlUG.Mu}!*n6|a?!^q(QZF3(R]5g-)bgFt{z<*l>7{+)z,l/(\5CuѦȝy@RrczveF f0.%_%irNK--D;M5dV|#İpqKh*D_^fm*U2Y.}hJICbcƇǑe#BKnl1AyAgz\Bj27YEv9Kw3N=,bSR9\ITrO77ΪnplW}E>vGɆC:ڛ6NbE3%]34pcb%l~cPW؍A;%*1t}FbVv>c!sD  %MY%hqRk!e:{(JEsJmR|UI{ 1:upPgLMۋ׈_Aگ6؞{%k-EG! L'!ari]&.UWj4oPuíViW|Y}ޮLi`SڠO;OT"&]Y{$>[ LZ0w19:aM7m:x{jbh&#!H88<<oZbj!v&<͍-mG9U[!=yW)9O"rKymk{xTuyH *g'jRM_wHEgou%R6# R4a4kWSS~JFD ]s5zTK9|oYfld<);Oq|`gt]>7A'>1PvA_%ɮ(!\:S菮N5jϼp";q|R-`7 mVC(##?v}RuN eC X_0Pt4?ܤ-'gKl[NC0 +=3۽hwN`%XP5 west|ќg6my0סi *=`'MK'5Qߟ_CM%Rc, V@W38G@WMPtHBip}J!w?P$*~Cf_lzAs`̞$ @qb3'sO UrF`PaSDSN#rj;3QflH_i\C\ٻ?\POE.&653wi~P j;Ee I@VP4L}.jYyF_a|Q.=d!mj4nw lyL/jjFPTWI@{4Jdfa2 / rY8u+h~2·yV@/P5I-' HP`; @ikL_xd_W?"՗ݾY$._o\h,O7v.^s%{͝F%O .P]Nr;l"?dfn08V/wOi~uK5Vm(kUĕn$ݙ0ece!1|Ԕ,OlITg=zQGo&p3ۉ>+>Ʀl{4B!YQDU! ] R{.S} ^W!zYoP.ض2CWRZy[b s8z̋Dl?ͦ۶r{[awH sz)ٔBtlVP2R&!>ڴsbmXgS!lytȩR(;̂ 1l1dקcQ3cKd';ov{Kepvn\3<ߏQ8~Lw/,qP׼qciS)~1I{eHe7=5oDb]'b{)DiA ;n[PM G < `.ѝNi :Wz͙FuVQ\ZۍE{u9$ի6g3Vo>l S]_+2IjF澻C`sr'; YLV ʦMPndٖo FRi֝x>1ݾ \pzA9ߡ 8n1R=/ź'W+=>@材/rHa+PB<| q&;xF*| XՊq *w[}X,OcF/h0eR:)j]t`F=@͎#{Z# ԛKIӱO'V+?f袙WU(Q')%l(+`DǃsBy9kY{ *C970-;;rCjsP%!.(9mD^jBQAi[W@~z` V/F- Qg׽u=Mpyk+h|| *PDۀoJB-ն)mx 4?ɢjwci-?:$:zd!5z<C5OR | fk7*5cW!mI~uc_')prNj 7v_=Q~s_BVmm;{hH۱;x3 _¿jPcś :2tT*o`CQq8 Ww(6۴7u_/Q#68֢y;$o7Z;KyLW(VC4ՙ$^`sk~,Jk6dnAĩ;rX|ס}ܙՒk˕$Y&J@yL{5&_QtH(}V݅ܐs_o!`}Jn/dHGu6 ?}쥗o})ecn4⮎+5\^wj|6F< `"im 1:&}X [Kv}GIeMIO5o(˿F -:sM?w~i3՞o3lu%a$n]>/_ѶЩuƊ;lx1BU;V-2{fud9NPy{D>ʢE}7}w\Oۼȩ*f$qqkPʒ}3=AȦC!WdZ@pl2Uksx {fsԟ:Uzh&׏B,7_j+ۚg Qϰ5!&JZA=-"$oxBBD^x.+w{E'pY6ĈByX[s*; ٶ_brSVNe-BC|L%3S]Ńi= %fr d'|xÌ m Bjd)ܛ#\>C}ԮiZ6lwi>j@Fz+ܷ߲kC\lKqm X~rxGNP>h+=b\miѧ)ӝ%0M k;"?\6BZKڻUn1ґ` Ƽfx6ќP|V`h\2^y~Uγvw0 v%7;uNbnI;l˳ꇺy'fHQm5'oH sVWVc,$=p87&uT~)&_8Ia1zj  s$AOƫ*K[X|@Z%y^ ;J3F@2`ܿr31#-@4NrI))K^M<*$I]h6=fbK Ek_&h7|2TEIm vWAV0[Eb; ; a:<^`iG| 0~^F R ω(g#XQqmlANRqX4W=,#r|<`w͗^̰[d 2ÛО}T_/so@eDnA(CZo-T& (=hc^:5}VDCc."C"V6Wt7>}NG~Q{'x~j~ ެ.ײvv^F9faνH{]o$F| pD^)}9}^HKNћ$ 0^̧6MDiG\M{OXwl vN=t njj;lLBF"•YӇI*n5Q"w,U9]?'RRH|E|QXh r%!)X8wyHM5%{f3_HO3ؼv%Iߕ^vi7K2vʳ1=?b?@'+]?KOSk{>GƙONj݊5J@k5suN(v8َ' ҬY\{m]ӗQДhnXZhԩ&BSEDP[MPAqb!0 AoĸK DYuD{V6}(LȰ>H[2%٭}Ս`r@G|Nɫusk_{~Ӱ6o./^7_չo` < (1 ?fݧ`]?Vu9-}J; Uח76!_Rf]܋nki0pgq4tiX< a]WPk( .0O!1k^&cX$9@P`og V5oVѺ)sJ56KT ݕq,W\R9>#I@3MjvOͭUplZ 9. ô3?%jX4s<+Rpxq0ÓIȶ挑%OIOFPFƹmMe {w`|jF\Va^nO_=^{v8b=/?auC SHW̕v.$mVG_jMPK42Ţ~eT5N,q4e /i.O}}1s7v%VSqT[FYF7gl@t3tpbu\M>T-N7o*ݯ9̧*@sg,U*wD4A뜷KovHEoW IA,o<}ho2?c "IHNN ڒO}[/ȰDY䓘:{/q9I#pz)$;NT;vWAdO(o\ V=#o沛pxaF:|>9[b6c{}zԏ@N4C1r,;cyp/7-3?m?x j,J89q(pB=e5M}iDMUpTԩ\^H;vNoG!ɯSmV;*~^Uj՘OBk\Z_dp[h4}B? db;%\Ë&-^nm^Cipj"; PDqL(S?$qlOG޻o-='GʗK_b3 s;+9b dPfgx :moc{ea;Ӊqj} !Ioq?.+Ӭga 7ӗi,F/(]K4}N+旵Յx+-&u#ˑD).sk|JK,barX9y|F&s ]8ߋӔK|tpH6DoE0rM"ǾErz`1 GGre1:e , *0~AҬfâ2MU浂MJ(+S3Vi68tA$:|G\Vי6"]!nvǸ4ˆ6_x\crj5#:guaN3~ZʧE+DSڋ`8R3l/_ނy)S\Ҥʘ.R-xM_ăa]m[N:^')n;Ļ_1v=|v_n҄9BVdw4t:%y^W̴}7{,]_ɳݟTe5pHn:BP0*w [ Ziw̽gi~nHb^aUvFݒ5S=!}kϲΌU&~OfyBmqJ-- L)\My Rڈ"᯻B ~h[$-mgiHY6kO(QA{Kj\II #R?E ҃o"'h;kG6 %&KH W @|GcYr2o0!Gd_c!McцYPDrsFjڈ/$W!# :SREWD~kFL}0&L JUf VgtpYȴ7>&6{!Iz._JyTgPϬKMJNxJ "xN\-%!c .8)2&[vIY05(ͧcbnVnaJ/MF܁}(&UfS]5ʵJkAC9VW[Zp *U%}qf[Ј:*\Ũ<'TW߮Y B"оZ),l$MGۋLn_?.Ӵ4XG4H|0u"V 1YVݢv/wZ0M @:Jxh) :LD'lY 1a߂/pHVJ([!ڪ_&oih($ߎp|wPZhHC|> xa7]},;&$ A &fwRNU䬽KwpFfZVyfO2A"rZ7yMM؂E%쫱Ǫߘ FEHQ^3)PS0ι9,U_,lxy6)#ΪI$5XVbIΫWK}.%8 'PxLTK};/b= 1aQ4K(kߡwNY5u8Ѡ @BM؃¸57WZpR&^aw\ (: 4' d2V-Իc:tb_CUU@Lݬf-İ@&0s0me"w^S%fț!>e$BҌ.eb ,Xir~̃U>PT-l Er7\o.Kp[Ao?9$J $=>.YsoD6~khT*B/&@}%rW( SV*h-Mz-[2R[~B"'?fpwmZ&t:D*rx(ؑo{vǎG̡ tǮjr%I_1(#c=CoOX Pޱ7ac~ID>w>&ZZw9܍N;әv: IiIC{y^Z5-K)yIyI:5u&b5^(wpG 蘷+7N!ߟy”gl̦{ͳbá&ÿ@=tN/\1͓;7xHESh,uxGОuwQ-Fu;t`(0{boM0ᧁbN8ܚ_ Щ^Li|JPc㐺[w3"*+Yn%kuXfo̯5L=j&~Ԗ%vep1..v`=ap ̱lأ؜ixޕi HzkT~ Ƞ^$mGҜy*yljUծ^䣉,PRaz̵GGx:2ڥ l OwL 3};·86ʽ0Jt: "1XE|mv?' ]]YK"k-, 'jOMPP"/>  ɸ[HA^ْ2ޟ_{F~3s}Z5}`KAo W_IGgCRdH+K*؀vaW-U~.i g?`,'w%)\?XJ%=ڇMTt!CMt6h#~CM?JAkPzpKL+;$~6q uz]yUֹ]NT|,& {Bq9GISoλ>8L/곮ļ{Ab܈`"i e, =>8:Z}g#Wѳy,5'6U~a`w 6?k;<,5X ,@o4`p|Z,lY,H=ޱiI,n!hkN1hfZк^ϵЗ\Z~8JT ILNВڻE_bh{ck3baB@I8xJmGئd X;1@7Ax ]}; Cv@#+6v Z;qď/ uFu%|`0H4|$dg C2.0߿KIXU)2l=@?_zRo k=3T}n:)IIj\(kFg RSkK, cY'=ն,QMOϔ5b貵3E hZ%!4y1צ+wKcI7a^mPݦ.Kuf BCf"['.h k8t>!iz\',k /iw#HOLž[J$MWSQC=2{xI?.E \| 3t1^[>u| XBGj 9yr4{>15-nwT,K싌Ysq(8% b{}8%TU}epӿ<+ R_UT`L٘{h‚? hbbLЍ|aD$Xx #99l,7G>-8^X/8jͺM/zt!0WMH9\4[K5;^Tlpq*Ȟ0R>&nZjP{Ko-oԌ \\yu5s &%-7}?Vխ;T[ KkOx'UT FԳ$;WbeJ:[Hϼ4YWB`BDV<[b} S]W&O^MC獍. $ 7|X7O%.$Ef?+Rh*B'B 6J:jY -Fx-*&f/&m~*Qֈ*RN8nLA_ur%ߴY-1*`:Xx鰟i_+g`{C!?!,\ndUt`1JL>ky\_2 !2E։6iiHI_+;<㳿#ヺnqN) "ɔGz.@\u@1 6f~6A0:F~!:1凇Q;ai#ߍ8qtSN_‘!t !h p(?;xzj']tːȿExSyudoo xml>0QMI>5գ`PNP@b($#f$C &Ə/FyE3X5w+hzTCdaJ3!SnDpGjf,Upn77JDl)~-ك(v9gØIH[S.\)z%g$ bگ1غEJEbHrr%&?& J pQZ9OnqiVaԘ ɣ{hoqC\9ѶpAư!or=z1,-{V`H(FoO'\LsÊ+% or&c{Ky*,lǀûp3ŬGQ `-y{S^Kґ8Mĉz'lƼnYi*M3$~CH]X:: ?`8yp;cC`\T~X@8?DOevQgbN^V!Pǥ1+_CL9&`~/AVF<ܯ/[t܅ܾJHKGi)5(qNK^"5/9[2ٹ&u:s+2͍hΠol3ޡL_wth )58p1Պd}5 R`@>$qwPyh>׮L@En"񢴝qXyAy߶nQvB=i54g3-!ܑ֛Ͱu"1s7};TaKsiACM^Kۗ&7ڿ `}d^ʪqqp?EIkDHV3wL tKP#ި3gx&i``oD#b1w}:i[g-!ʬf3g7ُ-]3Zn{^H3bDokWCUz5[nɽ2W9e7o}YPg]= tT]Eo98;UÛ$ nErkzjToXp9{hu,+G?[uy݅y۠X >Dn#wSםǍU4YvlԹ6F%N]0= sZ6[wc7iMhj}j-%2=\5qxXѝ\ ״{}@lֈqH?ZE՝ޥ :fJ B `c5 s#`^rsF1 &2m/g.EʹX55C ?ytV$nDԡ,@[d2Ħ%bIxqs; A/?{Be%St}Sat!3q (崎Uyf4T@Tu Cٯ%/8P@ s귑g9c89V_c=pf{!B{y?{,&W,4mk>Hhi%]mJ2F_k{ֱ!~yRFɶb)= 9 p0pzP,`Ҳyt^_, 6޼m~qaq)" xgy6N~WE)a)xm^;u^df3 M~,kĨҒp4u][{MeTL(=g?IC5 n#86(|(C^䨼q|TkT1t$0pU˺o++קd m=6g ,@+:*OhiU*:*yS^^ST9Ȭ~1.p ciOY`钡[OGi}?-|dxݼ)YL]A3Sa 4$(HҋE`O|q+i"j֛7bUI-c{`d+|NRri(_[8/ELm(sR>oUA̭jm_n |>D#Y(;ټs0#<}#&&f`o |jZiK xMa*-+l''liߴGE{m ޫR~S;-IP2VYK'U"V̳5وBG/0 V_ "7`{"ppLֆ0uƩu41|7=R7dꈛe>'7l I 6xfhK;-1 D#W1cG.q ApH% *%23 lNA<!a N;[fふTSS-q42.Mz_])GV(eILa6RQ?~|c+7qؐ0~丝 ˣ_šGZ/F[^MBHll4d[ؖ  a=L5ϢԃIr{sjuAH֝`h(YZc2@l1ډA; j$%p(_I)-%du>}V:;&O;-}B8Яe?oxUy5Е.s/=6/[M&sPAt瑇,5.FRLA5wzM (f<_ Dy0f:7yY7oU[tqb`gmG#R9x\2^9WYo!^2t`B/IwxQ?GY4TQ';s߃֤24/}%gx[ B=oG|'YPL L"2yGɊ)i.Z2AiӴmVD1S^:VкR_T`1N«D:6L -slߧAC)TuE DG=^kc Oz%~Qcۗs9ha FcDt]0?$[A31~]Nlj`qˉ<$=j>`S0)8 W%2B?MoR/:[IyMyNSie*aXnGRDADwMz αrMX>slfཛྷLȌۢ2 1 c " J M ^ U 9Tm3K$^|Ck䇛-+ЉpwHL 5B 3BU]Yp)AI+2bD*&fMb5}9 @nTIdrդ,Oԫb%h$M7B; aKM{ :YzJ-a}x{񷕘Gǧ k?1bhT7%ӰcczTXSwY+΀=q)CzPanKCТEX H_aI<"<؛` n@I؀aRCX0W6#>]8ffƔvؙ-,͵e _Ϝ5dj~kKJ~!RE߫ؖ0?eY|8zТ| @ʙU(0p ; nmK7ݳOq_c3<}o"+e*w4NT3 ڦPJ[w@GKmi@] `N0Jج^߳(s .:uix\Y[KSbsl҉lXLQ?_tF5bEa+5,\i-|[7y1:ncӜ lɹ*3~98>AVVf^x+pAdVCs'Ȇu*x9MjY ȻpC ^q`<@زkS۸1J!10yUE4s\Y[Y_SQ!9rB}ȓ٦jwy!nXU1 삭cXʾy$F??# З?iDʾaQFeBqC)5ϖPRk@h_F)ڰ6:w5%0hgӷ:Pcwzԭ\lGFu{HeZr׫nS_x^|8EG{@'4~prkqӷ O[=ɫM .k7zH1ӆ_^ qؿW ZP~\ax#pr ]F@`̶n@x1p6*T֍IpRoswהY|$Z+Do9%fy 3m3}j6~?\B/u*9ۦ;R1pAt@7qfbNL]k}s qӟ5',H˸K:μYI+z Y;f9^;] -϶8wP$67UuMqf,[2iP~_cl ?Y`=e>jgQbi,KXSZwl<,2"߻QܻJ, !mD99"wsd%1C/`J+b@$Tbb3BJsZ't N=sa:W)+Uy#*^!KjٳE,#iudxžf$db| m-'B8j)镐OKV˩"RnRx@Z+y[t($hdG/ð<7 /Cc.f f*_M ]+D=S _of_?P4ᓖS?n"9 c2!TemhEI!cI-]ƀ] q7 Ң Fe?%coX*2T2 3C?TrGd94dC:WnG5X ȷȣߍH[=cPhQұ O?\_d\2}T" 8w >iN 處@4o)sxUOr8Vb5'P+! Kꏙj/)@h n,*bmn^3ڿ" tvxB t%yO%Qw:ձNPmto5T{^rR !*$FnngwSZQ a2En)g y #QTfX '~:x9OUW9-<;ų@f<@qboo5A!ҩ!⇥:GIJ)=Xn I `j3+p/s/oSMj) wbqUK:=&D:,(V0;4w t['ekhAm4'Y/up A3bosng,PkTkg=շFzWp5/-vj O%/&X&}%DeY?iG7O=9klI0@ԈXGOYpQbH*U!7.=}Li^a_uNG|Ҡb@tJ]"JR̕aܬG P>a3PPMڋC(s"i*1a*,kS *<</[^ist^"*de 4$eK5R,֡ʀ(3 . |64Xmi-ȕ1i>^.I_5t]-I%?X3p[O>h8aTY,)=ֈh~{vԋm! 8t{Q#]"Ū"3M^:0,G:ЕCF%Ⱥ"W ["RZNi z9ajE㸞fi:uCsB~8!^ G܆H$ 'lF# ˯MB io;gx8[]"$O}xn%49_%?p9oU=WJ(8(T . m&+~m e ;־Pa%ںXU J> !yBF)؛ TP >v'ٜ(}'Ie3%^P`6M};Mmc=4Mϑ7L"eng5EPȸ fi9O$Ąik}X'?h sNzCT}2y wGƉbKΤ).u3̾\6LH "PmTmҊoZett%m7j+{!Ⱥb澿t{5g ^Jnfߠ\`N;6ZG1Q;jFHyH^;;sהx,}>+ IҌS0^;zžЇb.^ ; %Ahݦ$/#վXEJbn׃(m"`=U,VV<}%~m-tZ6Q$h'w zQ?.! ̃~@KcA{̺{q4&+ xr\\0 <͑VěZ0}@C@ gk54~xr8I^bg%{8Ӷg+%7 ,P\/6~$/*%heXژ:y LWVߜ'JVmZ GKJ'x+!/s<a"ٓJme;a%o 0:4>4WK}㕐j@OyDubʑZujF\ZH^Rt 2Evڎlw2d_}T0?lr~dtz]3!|ؿ}~i9ՉiGW6Ĵ|:}f+H;c~ =Yб)x[aך~$sjַi?yNM1!{o#N{QP,_a.Kyg:^LAx5O8<$匝^2i`U%};f&6LbkxSi/˯DAQENlFO P6UvY KΓ.!A,bۥd p[ `0B \S;P`=)\ДR gގi&mHkrZ H;(mYb;.L 网]kaڮj-Ł9ܕ3E ~bj}}hM_ '–%8W\X96κjii# ԗZ/t&j2nv6qwn7_Ik` ENys^)i̷1;:[w[fZHif5V:E6@7|i%~5'Kaďi]tCYӫa YP|}OR tEIHHږD媰':e i8µTY=b\ " }8 k7+YP]yM-œ۝S 9ӶC*?CF\tkUX@wڥ̌]F$I5xQلkxʮƋ9m>iB`$`/F^vX0ހL3o-h[o0rXWk#%b1'5>\`OH [(% Kf&ٙ a6 GPҲ "rfvĺ@8se,եRdH?aw:ղYDҫ;S~xm#;.$+֩9`P"yV(By^CU@r7jn<%EOF;CR?֝hWp DdcϘ=K|QL3>I @ >[,x <)j"oǸ3,zo`/4q.u] @g_o1+x IvQal~^^4;E$K ˒p~TB0:"_v<+J 3`k|RBbc &CGz}ӭEM؄WUJ" |(O۲C!|isç]ut}!jBn!u=tnOϡvҦҫoܜU|ތ'%n#.X(9".tJqỌ@@{H"f'ꃚzrۼ.SK)D>B(*Q=wyu a%P)f;X Ⱦ[B^BRemib_pWn,xƸ -oÒGzBA>Q%93"ܓGVlXmʂպ> "D8xHz7$8p [kHT!L9]wA$L+E¼D8goh]&䁘iN,N!)2vv+dQ~tZ=QAkw{ߠ'5zEgsɇ@3;Ie.w0%MOx"Bc*ǰDVjX&, g~[vپ O < M&WuJ]QQ_M{w>_I|QX>t:߇=uف#, [Dy^jbGS0Hr_-,)wNjֶ,xN|;<[8ݛߜA iʖ`/cT )MI,oy`mNPK9MX}mM=PpL}&n ,n($h-sSs"!$C14;5'v*xtOnnh0ա?+4̓S;=gFk4x'˺ Vfc1 SO,Y. nx| J&0}) =A+27<{2phG i: 9y]r:Kd^ Ж~[|G'y4~m,. Uߌbj 5Ò!x)o*~_ee 8j_fMt}oDJzsx05+<\˭_  DlZE9LϾ{J-[ߧn]FRypAC?'pE8T$טAWT'by{t _Υ.-[ojX}v @d UĩrP&QU{bz7_IZr,wH5SQesS ɉb R5A~Xdhn=I.A(t|3 0nM뾘镤~j0zKZ'xS=ȃ*op:dNZR=byC|ms,U&M`r3 m~:ܬ&}j 00lYLXkvlGIIQVs0`CQ LnBbicZNc46&qPqEhx7zFi1Doʉ>)-0q?rkED*(KId)-M-hm%U:)͗籢9.A?q.*NDa%6|2|qR47jF)."o%5 qrB9;jF‡jAaCɻnWscJ$_w'raIL μE6(<쩅ԭ s>beRipǁ),̖=v2m~")k쵓=5e;yQm)vɑh5gj)=9SC7nBhgYHa1xtW8nHS4U#&Z]Mi?&K:6Jsjo[1dÈsA(-*3ȿ\fM,1{ ߺ63GsG:ɛ1O\W,nf9v\&/C J=-12)&=̚r̂5cΉ ܚ!LTXfsgʄ{n"F? X=;4Wk mVuxI3J}j٪yQS}X#Ay>XG ހ3soso_n6kp-\64OMϋw6-~cnvrc17]?^vI^j~<0 PS^.\tdjwXoH|Y%Kc-LKM귮cnM [EwM0 5h*555}] UCCjҪ "ī1SMϽ4aygɱSj NY|#o.-zA @]tA`!Ł*0J$QMK0V߮166L6§};g~pOyZxdWAf:/PTIZsA^1^w_}J@tN-S\m5uDû%\Ri;NeL`դ=H@.}t+ʍ,F{aa夸]T(RqaV ^|NS#$Ld$ Zd|9@qWB0ނ_^hj6*6 ^IګTG7cj2DaoDZ.6 A+Aӱo'QPs4P Di|7Fu"7nFZE G>ճ+ |Bmgp0Aqӄ֨,NW].)XǫV@NΦ%v&>ei,HJ ] "a4ؘ%mMJCmYV{Tu [{=O~K=yw]i3'LL7Xw7U=8)UTxyӄכZ_D8N.|}a&6RTV+mTVkt1t:S!W0;1 Dsc"LxiS+/'6쭪UM# -56 s2L^^L2)ΈXUD{E]|QHg #-^3$h+#&74)ߒD^僪cf#bXߏz=wBI7QkU2 e~TbuDH7JGFˢFI=~A"x ?1!U1~Rv/Z5v;#n+)~ڍ;L/kKB-7#OM'N"C@.z=%##  YfTyKR[_J6}aӾEN.q߰}z  IdaAvr9R[֜? ] ?<˙hw Ӕ*?oY lՅD:\d) |Qx8No/Z9|(ӡ\LB&3ӷ~FxW^sGwVz{Q/]xք">[dL(^rIpAL_ $Kj)h?` {|(ZBL"̆Am[B|-/.R6`lg@)JE-ҫ+>#ۢ (6x's3~$ |*%͚5YaKϱ!Zkh"OU(:7+מŸu|#%QDˇ0$[dL6?əENմ߱if5gƯ~25GyPp.2ϳw/fΗuDLp(obPP|xy7 UI"EaG6Xt\[X%KI1mc_l[qɑ7ЂOV^QG;ܱz~DO.{4 O OLݥ7.v"d>Ew&UТ6i_}Օ}֔^dAjZ(IKuMubS`׍~3U]Į4IOV_](W捯 ;MBފ_Q 56.oS9]Dbp.zg'UTp[v~at\6&>)}}{uDie0kq[,6G%T]RFnTKǥ+QV'm^ .+G|f ^*T/˶ >[$zNz%`$/x먾 +gJ*SF ERczW9P9*gw3~ҥh"c3h4Rhr~",/z 2}mNxlElrۈ@zx$6Xb#t,[ou !zSvڤ V@[qcOl$&(I\2D@,ɞ^Hu/T}wE4,\)K#bJOh;Xx5mwC*eЬ=r{[~wѳ(-oICSΔ6H}犕FǺd|\d\,a^14lK} 9u-pgťmu7Bن6IzPuHxw&U[UF*z2e6Z[?mג[Z(u~'Nx77&Q(3а A/v巴ji1u2 AÝ8EaGt3hd*c6'Y j|mI۾N#z lmJmV%fu|8η+;= |C7E{Z ga>>_V08!ߨ+ ])D8ٷa5 Qrrig ܕ۝*)~I'JHa.@OO(ATo炍ԯ@j?qth-f_5RSmrXʆNboH(cSÐQ!#xIc[=5hC5}oePRI˩Aj>K1ၳ"p{L.j.ڭ{IPUo3-6o^MC_|"}೛DL୷P')a˒Y5cY.>q0dYӷI[-[(cޚ'vT3c(֓ 4ͦors!??rTL1rP@| uA:#U:źQmA7`,Z)@OFs]͉@IK@#,>/ %z7&x؞ob7kVP{-!qQ*6K1Mu{ }w>{q/J"P}"7E+?7RbZu9c{FqQ@#gf/~N{Og(`O?+Fd ]✕7 %qhecH0v77pc\"c % ܗ%xpƶdg~\Ǽ&tbd\70Q |`7 k"O!a,1@ߋ*{ *` ,E( P$+MԎ{\ Y.A@22 [eUvaU׍SB#0{Wr [z9I>Ś(\ 6O#;_2K9c~G C˺tJcL4(A ~{8$sI9ѱcqg$Hl63 )R&<$,I6S7N{G?2k3:21f)m/NK)u[AimvOU^m^ے̢bZ& lOiZ._9˘8v SWP uZfh~nMGL:#E܍ϗVkJߤ<#\ (Gl'IH[-g^?#9iù7ebY-1I`ۡzLX>#q;i1PBp hWJ|_ۙex@%eLv֐91vĺkL6Z B~H%i5M|jCt9jG h.Vcg{[CpH.MMٔ`[m_1fZ~AOE%iB)+}p7c~5rQP *Nk֘Bk~loڲ zNH U}ZMS!tMhu޲sUA;IoRj׆HvpmF Ƿzϻ8Ƭ jx]aLنRǿ ijm]/(gMAa&~ɫ7&*B\Y@qWn4$cr>ж.sAE_0 {cۺ2aYbgّw"m&{K9Sg1*O;څH5PeYW@`QXh'KY¼Nʢ lwkoC{nJֈSFb_h/s I8xÚ457cGawv~a=-AYH۪2d=76XX'_ "͹Xxˑ.;M6e&/֗6?,Pp~O$*DL"oʱkFvl)MEjTW !j[)X 2?%tB* )r-t'y?̓o7yP% AM ">Rkbխ[O$b!Yaof"7 . O͐ERbJ&lyTfE鑉] ׌tO]AڿiNv+*VD1\/>g1 L4υX:@!)u_Ln>T]{Jsy2RK!`TJðLȏjsY椳12-:7@NfJxMk_ :7c&gX;ai`V eF3GG""")KLˋ"*hmPʟ(yk"\<J%ycbܯTP6󓴑%{_"Tțgqhn:d#EnC;c]\+̌t"nɓ;iJg'4B=Lwćtszi?)lݬpΛZIm`pA,u͕O>As(p ~|DmXJ1G4g@@YVvB0ILe$ߟbyS?3t ]II]뤆^d!zbDJQb^|%HtK͔`@?A[zA&2NH7RTքnVL4 $+&CY0{|qY,)12z W!40/ҬHhK( 5ôc8Ri6g(e%% pU9(ПvPbr] vtd ։#Lɳ=% vXhA7EۊXjO>36!;Hi] (PMDж J6b+շeӍk=>H@;E2Kqmk- i&-¢Iiq궻Ш^F|3)yu#о|*2Б (g-@oOH!HӷBrg! gOwno[d&zy0\%?/1/1t>Ƀױݸqd˖=9P{f8:B^JN}sw"3L/[HX^7m]AݓW}.]ωZ~lX33 }!Yh2s!V'py) ̑r𨬓0Rlh|=1nOG/FH7W9ms&h3d~{sBy/^mD3,P±4p=H[c#oVM$^z!]ACR8|eerLݯ#{'_Yӈ2qpG'͎Ur7 S/[;؞RuX}cS '#='쓈6`C)9_=f\` 5w'B<ްQwp+=rpWHRF(*DzqDoﴪS\%AnWb(\9'̼8 z_8Rv##n`^^f>זY]oOޏՍ2.%[-&].4Yļ{rt7l!ח ^("yq&ẘ*ѝCeoyܺ'+jFn1ꋍx,TK 2ZpR_ؠ'/H^$~h < \gQ>x-sL+7>*@a>!2{]JWڱJi,~ޭ Jv2]/Fzi(|Bz| 8Hm.GWdX~FVSaU4n DkN,.2[;'zH<&:ߣ݄ |h;LK֏+JQNM  Rf+u cz sfht:o*)]O:2y ~A2\ }_gW%gdg:ژF8^x~MK$]o9-Hg9>,1:Y5YdZΪ,]F-$7CYoxsJX tSmxF5-_d`+S XK r+7ޠ1-JoE/OIQkok/5 ˏth[,VN/S9gM.Sᇐ w3_末΢^+7`' !2t%uCϋ= Rr6q 뚯KlaH3 |$TT3ƞR%qIp1hvWkJU7F9M=RrCKX^o$w~g{Ꮥ0=q7sBFHҟu=S^!k2VTsКy][M Oø@[|%W4sEaK0^:~ YG0B[aWGweCnm7?JE]O ٹI&s|oz$s%.{NC_Jg<VϜuS í[k8=>hvkelryDKl2rӰD +vCZV$|}M/͗$/3wA뇉]TM}82S {X{_ %0tfyYhD )(`JWχwÚlNP4 --7#Y;܄H_jf~mgM4Vh?4*?eYcс$R$?(w+*_@`c)poqj?bm{EB>oG)P`UFFԋo ^ۈΆ(4Lk{4QV;xe}:D\%(=ן"׋EK)ڣPޞbZ@qx=pJB[ZvY7aWGMִ| ~#-؊B==:tz;;PXFdZHdHm vIS1j i*r ~GgEQ Et ,h.2.&h? ' 9\+@@ȷΖ|T|s("5*f:5+X떋U#q$q[4܄[Y=# 1פ M9 ]4tJ ]V Hxc0,V8wZ+nɔ;Sz_ Za\] YgrWcˊ +.jyJcaU0_RSacjN]~mO%OƵ(D>%?LaF5q { F &y\|xX$k/ͪ-MbCXW2s\m$b+žNJqn^6t#1.7b pѤ塶Aw>0JŒCKcrv>0@I9 - DXRoQPRqkvOM}rA*Qܯp,,b鲌7k^1}ESs0w7ae1]FKzM`+J~>֜OFP-ΐg-?3V(cK`~oޣ}Q7MNk)͞ }"5B}[F')mo"}竪{)-$?Om]Xsz@}ܰXAГX<l>_6cf+=N3ı3[ |c#f'|Θz<zɁOVİv;%=[̇U}~|[dgd̞,y$1n->ęgo!5V`}9}4 <9 ds{K57b2(vХzǧ߅-xLΗLvzP ɮJES(=7WhnVs]쟛B*>7Ň;(+xiXj4T9Cڔ,Y"E,*z O>|4QIuUzv()F#y=S Ɛ nkسxd1-Zy&yU6n4ݞ¥m_o89ŸDt4<8U)ͲSnNGȉ:*o>a"TlT %Y$F%rrGt[ J Y+fX1>KAW%ϫCH>&;RR?T-<_{}W^GcC.{`aVuK[6)%vRoh A+274kZq5"WV{b\À - /`Ƣ<.<߹\9Kr4cjR N3)h+*s觯oBܛdKFxMwwٻ\ȅ2 9+LKv:DN,5!sm E\=0=$FM/|kC4\>LUJ7-0O&FX6>ĒQs37[(Bhd XF[k¼ǞK]oFXs P+nwR68)+CpSnJv`^MM~oK1I:Vaw)oн_5^uȭ(υӚc^ژQ [osx6Ƽ֯sڏkcoGBI iĿk(RIi9u$2bucbb{?';hʄExbqHo|DAk${pSI &\Gu;Z)St["++$\Ӓ'BUI^i:l| 8tuвBt Hk_Mfԕ(TlVkrii]Dl:je'59@I(:PbHwᓷ}ӜX{wqZ!akyنWj6 p?lvkuUN7Y~¿ "ixGa?7`vfCPwڵڇyó莵Q_;tO go:;TZn~1 %re x t͝)|G=x+ v44>"P+v0V-)QPzE(8p r*PAw mϬ,:p[Nh,[=<,0Jdx*R|zF`vyFVVؘv ,P!W/Bw7~В3pY3!ؙ %l0,b.xwe6=s>]c%0e6OoRoÂ&\dy33ƛ׍nj lf3%BÔ &[z4$xvMAk;QC$.;;K6coF(ĈTBO+PdFVV :\kʘ\ˍ]q/)=8h9ܠ|Iԃ+\7`:j?fO|=n[g8bZ7i?uE~h]El#85傜m-HZį _w8yw7l@~ B~ÐA Dkb貤VGbJ.sNony0:"64bz oeY4ݖU)?q^:b71?="\/MTCɜH}ٹIzZݜb(R"\-?ѦFz>w {4E^qCMձ#m;y'j2 I+':<|j5 X~k@y`(lut,I_A-ާQ^2-7/+Z ݤܻ%h;gb2 jS!W_#M﷎Qsmj: Mh FoSҵY_sk;jO@+FG4q*M3Mz?둶= 03AxhkZn:0Cİ%N:îׯG [n_C-7T^'Ɗ1"cfYYW$_62x(l5WwEnvh)a$nrf,5%DrͣRX}r/z/ϋI% 3PA~dL%d X_wO)ۼYϲ8xkOBū #!dNb0Z8ṕ ̎,i@Ժ2 pXU2?⼙lNmEqϸuzYK Ámi k{jļ~ԷyWp*iAdڵ ?Sw+~=.p%WR J^j|PȄ@JZ"/ "F.kB6R$L wPeC)8 KYA N {.&6gz3x |8~30y}䃖jY0bDL=ZM'X򽭙y#vvU7tyDV UF%vUZ=q~\F(@ `/{Cȓ|t̊ gZH!)&8/=,G %j湷!lܨ -IH%bzg4ň{saxnyۊGa!ܗ椾PRv pܺ R\,V/[ fp]}^f^zzXɊYѻA,ϟfw5cGҜר|O$e!f1qu/xMw]|=%v[-w9$;*.LqDHsh1tiMhSxo V7bޙbCd64(^䈍֙H9RyRj 1MВG! fjşztMֿV)%e/k=~χV@݋R"*]w~ttu`\|S!0ML9)81 u>]*tXp<8OneNE(oǘIHes߰̕eIop;G[ZE0Lss%% NVEqwY.})#$v7Mgܤ@*Ƣ_O%'H#TfA|Q}G.GHVF_tK%2/Ӂ4K?Æ(#Szy A{GN};WgO!F/J'5),8|HeB lP&>i>Geqh~ stѢ p\kJ#ǰRF!K_:͞NPωu$kϨ`Eބ/3 :8DW JÌl&~bONM2ͤO{I5׃kNPlK;K^TAl+pgӗ4tоR (ŒĔ|3bb5Qr4 pωE`FTnrR~2i3gy$sx6:9 xD2Tίl(L+ 汧 6AC$ߠms#;5i6j#i)&ذ1Ӻ|phXl5U._6@,oni- grL&zT&.p러$., xu;d@vDž)ӴÙO?U$hSS1~8![w>f{ 8вJXʪ£ +\tzIe6SiFQ(#G X>ٯUSկtsr_imdHM Y^=~5dO`Z־zX6aʒU#nD`3aМƛ[I^)D_ҳ$Tfpx8ۺ13}70|i+Th{If>o|R(RR:{s%q]AY %1#*㍘ >W/D2f;;޳h~,=>$ ={MV2nRs^E\'gv*=( 3{%S@aBrMa~^M$208~rUX˝ZP6vn!uORDzb0PLSmm` Z okp+} ٬R/YQ2NJI"jZ{cܕfKyħPEPf~_>}D퇛}b!,\kq>_>-j1%gr0í"ұi}cA15!*ď3P[ ⢩&qvsf? >$Q).6Fç&T^մ.|bl01?0Sxe$v2pG@*D$VeO\Lć 8lHKns!6p߫ENIuSG:ޡ+h,8S!ܝvuvweQU꣦7vR~߽vjPl 'Cz MDNzJClB8IF#҇E>E9 Tdoo1@%RIVsmو6įRbn㟳x ;7g] l+O{~G *~nSUzW`e' ܛ1 dvMۤPCzw8"O yVlϵbyP`_n %s:{zl>H=@ƙRC\H@0j]m)KDْTUhٯpڴ(ψG[MG.($#㌞XZyEHһR:n@|WF#PJ؊w ?W_ӿ G|2h}E#I&;z>pmYiJO趝AzO%y2}^,jO[DUMH!4|LmΗ1~m|Y~.rK? ;w*:)ڔMAz/aA_sdMVG"Q7қ5'pgoS?MK ]MhpY7g]Mx2.\J1Z Ѿ\XU~4 T)kV,"+XmbtXr=v6Rw1;|#3лF jgi-R1o_/#߫yb}'uڨȇn[.3Cj֢q/'0 EؑJŊKx-d'VCigYmc~($f7z]v0h|jM N2]nJbx-)آ@@1t >U1i`i)g&y(2k ҳ~MFӅ\}+̊6}67&9tMɽMm4k2idg3)|}$R`UqԸwzBX9S@P= GOE.mh%s<.ZqjMSH)#wR/d6G K6 xhvnF6q7$\'r;U8Ggf:00DƪpClP^1l0FluA//َep}X~YyȇIk%M"  K'!BݜS@72}(:".u^PpPB[I}֝nZ;CڮYJ^;C+:zC%7~\Bu~Iݥ rBjIxD]T!ϼʺ; Y5d3tOk]O#EuCXn:jS X쮓{5DgvYLJp`9؄3y-c&IsmyƗI~y^H vmPblLSLOr+Z!6rŲЭNEnDB\QvF Vф1M0k!D V|;Y[sɄjz`/2fuņQ=@\pw.2n^)LIw>1$\ԣLXB|wGw[lv3/C1%+FF!2R]QiuȦ;(}UbeM~ N/:|_ݮ$9+iR̡9'F{6'UvװS~&({}sܒ.aKJ@qeJ+AL2s_lԠ$sn+L|޵ 62IY0QEU-4`@D4\Ltr8*YZ%& $Ybb;UY ) ؛ S6kkՏ^k D4,j'#'bV uCn'BX{MNlĬǑZI8m;^:!:wBIbzluvj&TIՕh)ZE 6_:^+Q75OEB < }U?қ)u/IʭYbK̿~$s8SU,;~W83 #P]$#oKw)2bd秄yG )BW޽)2AsXH3@$5 Neœbzv G Q w##+m9 0W_܀tD:X;c׉oK]QT2϶۹ _r>G5Hpx5 1);R7a=6$ȏ:ʂI>ÿT2/s"CdAnd xB* dCrA  y_ۡ~jm X'zyNY5j}#ax08]_Y1m8ʏ(nuT Tġuw _:yx@[i/eM-ZqPz>Kv:5 wS*@QZB588e$7ɧU6W-aF?g0|NZݲU &I&7.~f<ҧ/^>ޯ[ccU󕬵<kUK2-#=-=:wN8_SQvm o}ov" byt}-`Bx1_c=Be"Vغ϶XOJPMz. /7C0ոx"?V[1!{1ޚR2Կ^^Bv3 OVn-Z`%nO,!Bn{}m˅ٍ@2j?Ӌ6"6z(pznVՖZXYHu ~'v*1UJT5ɉ[QeVd'4t4l94?l5DM*y]ꌒF j?u۷]vݶjVdKn:I-~i_5ɺua*ʜ@FO@:I#UMc힠Ԩ+5׶}?F^VI|bN|1nn'4a؛ ̀+7\H'WR%A z"I*&HRz EZ+ kw>eθ Oi/˻Z)~8&Vv=afnAmtϪ!>'ؚ L>5u9?N`lO1|zu"/Yc/ V_~A~ A6 IN~T*;8<՝"e6)/=`,MFKyEBwt+TR^/=e; ~ҷ% Z]ɖCW/U Ȓ/|jp~z[QfJ:ج#Kv|jBH 38FޭEIPSpS3<30 w%+E|RS}|(veIw"K>bgGdt+7þK?XeE:5'.Q%W UׇG6Tlߞz(o;OvvZ.s $Il@B&ߣfږeaTwXDF5НB-3T@.s?(J%p4J? ZÕ}^w'w;ɭ6 Ͷf0m⹰t$QI7@~^rhŦZc YCZh1pt筐ֆdu+z'@˪6 il$3ϤlT%R}mOu`h#4far(w'7nuq^lݠvu3~#Fs\-p MRfW ӡJF 9B@YĔBC-AW ЂGE10^BI[Xl3Lz]ߐ[^N$酇V?$||}ۄhY_Pa!&S|_JV`Dج.pGCrևq \$_IL'ݒL57lyy99Bf}[ ]cwKv."T% i1۱Q"v4WKZO4ed}ND۪q]Exv~7gxwO\|'63Tv;x=QCeջU1el.jm!j~*m>Ȓ9s?<[Rplm.Vq)Wa6@|#CҰe^d؊JLld^Uפ?Qx2ߣ^V$pNNGT_0y+q:"8{hHESũ԰Ͱ<;i\0_.hosA:vU'|b{TnC79+T-ú 9NPc|>F៚gI̠zup9Lӗf:\qQ݆Eh:| >a¨.4</f!6˟N1c2M{tHeRulH%ZBn՜;wEL =+gu1$O.6gI{ͫ!ͽd_Z嶺Ğ1>U^C,nf^]C#7M3?%ŎPs|] XUrwM6P5T)0b-PĹ9a3l˨,SM-G9gHQ\@ǃ)kIz x;H̀x(lCƂq]Ƀ%8xZr6D(txAbo5[_=^Z4{Y{̲@d=+OٌS )y'=}'\YEB'eʌqm^s6?% ʦ"_7صu6sȍF:6/%I:+b]bU򰻄 Y}:UcUJb!~{:뱙ah+ˮɳje=-Lo)J*0LODi 8NZF_yV^)t<㭆Gt_ =/cVNg a:UoW___ʒre4'@tSag;C] Gp|WO5PvFBZL Xq88.{)LR`k :i|f]d[llPIMKxtHyڐ])ݦ9م1 nןJ;E7Ķ$:ִʟ+#5mD)n>!- %e_kw57_ Oxþ,l 37 8"hyB@$lOyt a<ªnA׈_swcQ٭=<"/=ihy~[[лpAhjT~+8rf1 :2e^f>ש{,(`=lGJQ‡G>.Lkĕ3n !H/k79_2B dݭy}fU%K&3]41JS݄aY^0;Zw?~*wxn.+7l IX.=z]9FRc!U6|ѵ[wI0}Z% `-_ϒ+Fb8C%+c#J;0UxLYԠ}^z-7޺8?N붝oigXn_/nYB3Vc+{/JQ6;AԬGHBΉrAt,i%PvJ_܅_o;7X1G&GL ql2 _k$FR|o_21!nLAMȚYZckMn\g `[HR+Z~궭5aJ QNm !S1+\K+C+\e}OE+`GK@6,޲00 (oZSۂ|qG_u^'(TjK;hGg“$!褏A=ݭ]j c=REgwѸL3>LDʫ .q6$&>Fj=FP6*S,ܛ1l95ūxF&hE9_U il|Mɓi)*5/@W/; ]4E9Ib-/GBnnD$=4S*{-HH81=\p3 ꡃ\/Or~=Zt7;rC#ppsRid% HW/41fޠUjRg]uASTEN# #>I+N$ f usw浺inV.l^,[NN9.p?B? Z)Vc{$$'KVk~QΙ`_OD :YYE+;M^1hg: D#<̩LY;< 鱏pg]3[N˟LvOz]lD~EҎݦZ^~! 1^9OHU^Ar(>6 }Om\7zJU'w`]A u-3OJeDԭdJ϶'9NslE*Uk&:%s` (?H&^m\5԰nhMY8ri}WiGx e \5a-Ĥ0ǩա/j96|C؟:v2 z%ll2܅We_fWq 1: }2B;}M1eBG7u㱯SR"}a_ ?c3267 0T4܁Mt{8U(n l|x%Mk䅴;I©mYYxk)3AMȩbU}[q1WET(23Rr&Ҳl.7a*։r7.FQhx?YL. iHAlt3_n4-~/nQ +-Mmvd⺡Yv*yJ/Φ";5$Dܬstr I9Qi-6Buq̋uQܕd탞OFdJ|:{^D:%# "q79)pVvz/)9C#~.!3 JGu@ ׇ9mu}d+0rq]A\Hg-ȾWSgKj>i F|ՙ|VRسz]L; rj{+TӟuYelV_S9_)Ֆ_Ynu}[8'섯"_>XqS jxՁ7rbY&pQu-x Oo15~h=U0>c7X5}hc+Cwq1]Nn&O~eu6yx%):s`'6K!/|- 'Q#Y3(+45 p+FmL={Ab˟$]Hc>z)Ф!fM ʥ* :SI]ʘ䎂ߣFr4<`Q-ߝzyl)[2?PKΒ I>_wCY^w/=&q Hߧr^] 2j_vTfYqr-gPqNqDb[&@($&ąh%p ~'>>M^ޟ.M Nt5nl" hvCۡST} Kr5ڎ.nfOˋ Q 6RXl[,K2(X ?pOH)v!AՙVq0ndG$tܯ勴S+xWޅm* M .!͖Z󜼖l{_L1F~(.We.,3 =i|8D̿^]'|u:݊O`>wW t{鞘m6 ڜVRME 3opjYk64akECtS.%@Ȉl`YkJ"2 Y5Lf4o0':y A»gT:L|P۬U jϷi;i 66e=vX;}`?rZg ͌hQ"~:`:O*J^e?rI2ZvP$I(4!)6;q+@E+e2 tg āG8d©`C{,zuIo&*6$S3whꤿgyP+JBA$ $lBDQːŲZw4B2%ŠQH_(Uo2Xdqyo}?W.0q8/z?G@.O졷0'0'1'"%9->xǯэWYSпkNJ~sL#J!rЩRCb_Aeۀ@0LiCeݗ.(s4Dyy N4뭝RY_گvsdy!3%͛JZ磼/M3 CZVE˽muv,Ǐec;rc#lC߷qyfl Yh`*w4.=d|HFcLuT)@%#ԴFlΏ+$`m5 ^_/1@-(B-k GH(#YD ݲO$,k_~;(~)+V:cfcY x8r[ӶP5dnVZ݉ȔUH}` :0l!&]Tmx?Ӄ/c&hI #&i?Cg9l2#l볼I5:98g5UbO-k\ʿ>R][/4.]tswA>m!P"\ʢ1)^wj`~{TFTxj߁,PGMκG+b>uu>4%㩳2b0ek K5"tL^~ )*&\KŇxv\/2BSzmA*XU_x\51GQ1 dqCw~sh>oڽΧ7ov9M :C봯qiˤ7A˃~X[_ߧ s|}50<+~94V[fA(g!*4aC%XzW4kr_zޠ?T;UG̓W92_f߿3I_n% `T$d?^Yb-֨z'GQư ,I5zV5%jV7xN IQL'oEi9hy `۹ <Ь*jsJjLh٬mMy,#ۏh)Ή .6o s7Ku}eQӑf SvdQP>Jy[w7+4n3P]P֌=Xp5 Ȍ6xT|P\Uq .e&mY (|W{J-Ŗ e~4rkOh4ox?\͕\E0&=/\]|fo$+eG<}6 M,v_m .!:sv|.LjO9 x)puUUۙF`xe߭zNd=2q][iI nb-гTs \J(E幙@|06b[,^pݰsfdB[pG'k=Guu^}5>o|%uV{b@O 7QՎ`ڳXa {.m{YiBJ`ϱ:V:>7?&j N"D5ޥễP7Fv1^` T6CQe&2t ܔϊ醵迍%忍;o؋B5!v*D̏pNϗuozq5 4_:J8>ǗUndj470 WiCjp0Sw |M yf5~࿘}P4 ֦g~l:Ѻ+fZF0zS~TURGf)-&` $>_E>%4@G^5&U Ҝk0ѽT=vNS@z.L`U%3' 0w9˴ XL$I~eY/`M0Td L(Q ֓s2c&_4}@.!@e@zmB4s>fWDRo Ey-"tyj_zِ,:!r r$ *뚪 `ogf.```iY7B0}Xjz恁)p7U沀& hCQp; л52]8Zl^ajĺFn^%C% zգ@ͿÉmZ9mx' 1 U+\qopP׌ƺ<7IɕhyJdԐ_E+~%;[WU>6wϢI1ၝ:Nq7(63@4^3Bq83ADD"+s$*:$.5yd]U|*o-w0\bNۤW=@q7kcӎ,1R[#'΅2yRpnfS\PsXWjLbנB{!Hs}I[wDSԧ~ky{ԮƮD∂1~VRYq-jsi4u+'6lYCv4D39)D5 8"2}.-e^lOLv@Fˋd*-{_fĎcy識[םΉw`eb=Hrad;eV d<^J@Jm[!ӧ,8)ʋB}g#:^_qSWMo!'w0W`Dy3dB#bx ) Yνsg ?A~B|pQqkT 焳[$Vף -OaFgkxA E|6:|‚ `F-W}IJ魼HSCQd_ыɟڑw:orYت-\bO2@|C#V 0B(H6c%zJUssd̺+Xx(O{,점b~Wói|zT9Ye0Z;*v+ӼRtՒꋭIBtf YTmdz<Kf@OؿČV_ &[gk`$?O@2KCrRevF*/V^!4${(۹_6`7Z4+kGTj C4$YSzM .=NZtM k?^8}DA,o,cf8Q5\ta$LeMt:SeYyLoMn<هd.jCV?+|, d(cwq߱΅׏뿗"'iZd*J_7)xkHtH )66bXJhRjd )4h,]5\E{5MϾi7 8(8oG?t)=( yt8R/Du׋ c:s>We:1 yo e*{?\1ZlUY=/}?i^(bn1,S.3$Nc1 Ch,=pa,Z zݰ ]?55-STNWҙ() +  }z[}j)B ==ӚGL4vsp#pFj-%bk`@vtՊ3 |5#ݐ۝R̎< ̹'Z94N~yG@F#asi(c B9f R)UoA>e5aD{30m}I`(MH1'k6̹յ0/Շ9 3}5msqxhDMWNy!VΉbuK,OH'z|7T1!*GqɩYim`Z!DFK)C#L_)", >;"c#^Eگvʜ%Аn|ĺ+F6-{/kO`͕Cr~im!(b#^ԽD yQb} 8z!(~s,rAf  IaP1N4x$9 wf, 1`_@1 ~;@/45 'nN`0 JkQIo?u!MJJ~RRv;i/ˬۗgUQMotTVdr6 ,޼՟/ _< Zg&}[뫌_@m/ 3졊3UEkGnMNjao#ai8|T˶f/''>̄a=vwn$;7/I}NJ/,IU"aNؗ u f?̇*\̺_tk &4EPЯn,tG*B9̉{\yT>4/BJO oB܇m=Ҁ?6(6,`tzRMҠd=GTwW2ڤc+wjDd_Fn` !^H)ndDR\ .f=lũ*މg+@|I1N"6UUC_ҟ.s[!I8@{UT*11`g n 1Zɦe#c]Uhi-H6'X3^>]qeC̠k9`YN!E3(/MsxgxS7p&QtIB(df⪲*_R^y˖f[%t e`b032iӒ&Y=D]V}=+8- ׏-i@H&ytKuT'emI͢ :/z/],IM 8]YHWȉ/C;ٟlb3Oܶ [4y6&Itm`oέ;~p;Ŀ-ߔW;%BA&@5\z9$~"KÿH.<V<< iy78u;k'SvNGפ<t0`TlV8tqVav뎖+MYJ ?2}Y/Oݮ^ɹ{J8'OphJk'KY2 ȧa"6 \@]ׇD@-SA`y9p yNd8f,va! 8CnΪ|KJUbZ})qe#w{0L*2U"Pu,wvJ}4qi0hUɣܻqd)I\"̽ÜDhM4HJOM "oSEgD!]ToY >\"p=v]U ;F@rsVo1{){j\0 9_KK j~Fm7!s_R=^r>xa޽~C&6#"2?WGƏ_ϕ@}t`79ӮfO~|w9Q; 8/59k%):WR4aD;* 9d]Mu[8tN rCY{MFMZ5W4[L)E4z+Pk!Uɾq#+V@W~o y&,f1E#wc} TAoMr]U)`D{QE<ɛ[3Uz=+^AnxþWl\<9YdyħIxЧK'xԃ_T ;5W_ԢsbY!K~r15-e:fMb?AM؆010BZIW7*CB8R%G,ψbi,I6_`To.C ģ[L9(=e2Vɑw I(A+7_5j/g:s(uNBjdT07o?$х\>ѕ) K%VNc>kv_m{ kbLv, f5E1QJN/ǔm߿bwmy/I9+7s]m 9{VPLAaMpµ1jC>}_x,dGEq}:E(N8ǩ/i$nz B*oYx7߄dVl X Cᝎ}y%6}[g+fi0uU8Ol՞/j(븇HM4)b=_oŘN1I&as~ҌEjKC9! h(]о4B1j#Q,^p8 9kgэ-fO 'c8$&Y5dZm~P.cx|HP+'1zc9wĭ=zbv<3cES]Q7#7P{|O1 K'2tW SA]8l~}ϖ:u+Ad򓻕Z-á }ZT!}J Qd BMKfG3ݜ,ҏS?ZuѦ~Eok&xrBPBS*Rw.&}}-m`(PѠs36nу~*}2u EuwO72A| .˶قֹI䵼\~n=EvH].k{82ʴpv"7A4g9-T)Ⱥ%͒';C#5CccߋGEW{Fm#J뇎lMNqZrȠWoOx"eڨ<\:{b̩12x):3FPmS9Kޤ|؋e+g%ڨnad ^caT[%UM|'`Qk-CK'#"X-7)ADq`mχjq}[lNiRyaӏ.'o k/C8C=z@7^+r##O"Xrڨ 4b{"+; `'&wGqt'>j4Csȴ\uqh.L>yP(&@UT-m\^75"{*W2l+yf%P:1t~<P.jps)IO: YNYdVwfRBG@/3:d[EE-)N}ɶ2yg {7.WjI|z a<7TcQY`EĞ ߼e'i|2?3[GB57B'>K(VQ![mCgqJxF->؄l$^- ԁ!KZ:quNu`kMK.Z O׿i»46(ewz~ do*:gKۻXGbjjA9qɵX !ՙMI.EXh ߲;>r)҅"jK0^߾B,}iGG|̵qG1g:]O[ }4WkQYV̪;O%,N&T0TFw" 'pX &<룡 y$vdؗ?R@yFvOjr%Lzo}53X-2P˖lGAڧux͝GW/K<`*EKrHn\+-rp-q'/6==_R}1n8#^e / }U>L> @㬔wQ@j^Y%ܗ۳n։|`Gf=uח+ci6~AgKo݈쓵ŃE.=W1&L; WC0j,Wȏ(GJ#xI"Bދ/t]ݸ"6?OdF8T. Mee= l] \$Z!Sv}8{ɴck=@JK5H5O%< @ZbТ}geus_X:CjIFveeDyUG_b]Tl V ;ُpA:ey:]eO4P`b.5=h)BU)`*vD84P@o`[G ɩbuw,dMp2Ud;oz" :O7 Nl3gwNUDɯhmbznYp;{X| tʜiP*ոW+kȿxAWwa0ױYZP!0v[bbL,#~̃\Ch\T7IЌŋܣn ,t0E~&O2W϶ ˖F35aY7n: TjIV}?wf-l-sj: iRu|qʄu+VE/4CB㿫,j &"tZ(JʸX< R%!ґixN CS2<+mv%i$BgIKle9".IAf,alq\REE2#Ђ/Fқ51> IyDdhFm1|U6.Ole^/@NDx>w t|ؚ([ =oxث)΀ QD1UmI[-x~ rثT#])IoYŸ쉽]CD5 ipHND/PBWuFvyH遟ʼ/t%;ɐ [b>3}N[JnFSL‰˵Ƶsd2^p5QHP`Tvlv$: (W)),GzlF7lXd[rKD,p.k6qh@x?7@a^S~Ҷ%FK!kckh#I=6ies^i΅V$davOR*k_[CT){|{[O`,|n}" ~>?y@Z6ɟ~5:.TID^!%Zb=. wçQY돗p *6=ׅ%d:ůy[ ͿhEi(U#P_")-*Gȷv_R,S 6p4 ^DD/'-Fmw *s.h˘<%SO )l?C+)e5ˆs8Brr4W$q٣Ѝ``hMa-ٗrPyBRMFti.:'8hBofT?fߕ\<: 6Saz)lJUNLjB3;MKԯMM' mq|tYWb|f\e {;$Ao8J&_ pD}1__h.2~7P_W1/>_ _Jۛ]"B`W H:&P3.kpZ8`_T2LTwlOcv/Mix|r ?I?EDV"6^]|e]Nq6zO価:(AݜMOx㹁1vmN}׻TF+. 9T)UONjCO0W)0mqB DĐBʍ7!_TKN3ǡ+A'IZÌҏKm K?*Š„BJEL(J)_J ʢ%4{sWm KWG\1,:{5ñW{bc1Z4wj/pSc1lt5yPdԦ_-ddԷwj|(J=΁jo! .Pjś Eswat~2d[LXxږ(>ǍRcD8+`ף2vUI픶~bX(q:Xm?b IiKyq.Je[9 Oj/1p\Tg4]LHxlEF뼏ř6A7̌ cmnM&6 40w" @6G;ϭe dklҡ:?>9ij">*0j&UnRa"x5atAe4<'B{EvQm"֔;Nõp~]5 }}R@z1`%W}IkXm ͵&!qdF?R*!%.'B΅u_c.y|PFe[ c[O_~_Ζ@ms?tb tLvbӺȖvƜ_r߫W9x^ pǃbۻq0Xa  b;AEF ' '%RCV+bs!5{UcW=_{|AqtaZl_&H| yA#I֏I·e2yzd3yl^2BAL;ȑ #*V tP~C#'-E]%ԉm;*+Ff>~%o9?i)Gdulɰ!gU"'FY3 ⿺HF@`4 8PHNbh(ɓ(I,oB s?Qv9~ ΀X.;0#hM#<uF81@`O="H|i&uC1GhdW2wrF2J-a7}` B usS ? )1MJ~ۓViV=#T85@ZQT˲+2/q_4 "합W7=D{~ fe et{KuO-6\MI\2(S@#5"㨿, ]BjD}OVed l@|s܇C|?9يkplF[*u͑)ZU&.O~ 5}m=?V)s&F~

/jU˖$/=zh5N2x;q//y?q%o _t;֗$TOOZT؂P_*͌zUݱ^x[ڴ6A\(ƿm%j%>{#6 V:`Vl]ֽ44qtYq/ $!#CP1;vsd,7P(p[1D '7gjA|*" w灁f.hT\у'şʂ9#ƁmݾEñ~,ۚosCjUL7\ɀM*7׀?"kpX|/]|Suo܁00Q +/:'[DC)gsimxN;E7.Gݥ\^%bFliM>JCٿb;Q ev:Z[Ak+s|$ktqR/Zs9^u:#0=!VLY DQ4P4 ~ 0S%c[r'J^//4@3i6Ck`J/&1gk4dT<$m| rYۃNt0ɻA-P<'Go$3%5Ȫ89am7uo][kJM@3iΏ/Nւ7⹮AksuȵC)l!NP(5鿱>"=N ʙyA>9eO-z ɤM`Jn«FW2bb^"||v./[PgC#i&fwks:uϑ)203d"aiݬo쮴jstNlmK53rA:Koɳ77*B`UZ*||[I): BقSaikf*qt΄md̯=~5ޜP|MW4K6Q3̾" VP0V!RVI$e_|z!]̈́AC+b0|eerHݯ#'_YӐ2qJwF;͎}Ցs' VR7[;ؚokEn M&m->(>~hD$mWs,JIX;ȕ IpQOWzgқ)}5Z ekgur#wd.yBGm'KN(;ŕɝ^dg7ܹ`.K푨#e7RJ%nJ1ZmEdMM.=_Bb8KE^O@Ȼ'LþWx$I&>5-sҎYF^4MAxBu,u88hD=8w (N"&?C4!F?3̙%q"_+D~@ڿ 9, M+ǿ_wxsJ֘tSmHxF5-]d`3S}h)2(-{FNFH|+=jJ?%WD)dŮTM,?ӦhTW")+”u:fGwnPĘ4ףqljJs!b%D+3^TٜOeuV댢@`2|i+M8]IB|QLNT"077J}a!t{p^AOW̓r@ЦgFp&Rj 42񢟃Q^ 80>t綊˞\\Y<ئK-Q pG~ɕ@?MQ@1Ń76C=>;:6|7훧>Z<`>H9pg4C$觺M sr̻m" 6cw}vSfCVLҏ b1sWuafg Я0Os_D5?UFHvzL'3!l2avf^t'LwGPQSBʀg2,y.}ͅ]'_.r8l4!Mŧ- fӍlYGEWW8`'t!ҟt%u]ˋ{??$$GRV˽ۄ#ׯk.#_ :SQ0rD'ZZ]ʝTLse7*NMBq -by>œIJrWz,ތ>I HLyӷXiVځۙ1ZWMD_L+Y-+en?#KrI(ei9!܄-iVNJ*lcm<,qݘ˒XbQ): J:ʨd6roKR/W +ee%NY.`M55A/@'twK8sp.wbx9_7>9`;غ[j tN8Xˋk9[A&nfuKݠbo"'{5hc &q?n56_2j@߅9%")2'_ˍָF0 gFžONbfJ'Kl;Se s<3ҺoC>LM3y nJ<5VmZ _YPD%I.ظPv")E xa`VEgFEU8Ɂ;t_M&98ZRچqqї=9eHq4[Hہ//"#^`&EQ ft/N|,t?ǜ op7CukC[& ѾTV0rjrޝ[h$[T`L 8C%p 4[m!Y\^{ɉ4Ϧk!X˯uQcqSR)MI|?AX 9ڊM1YnpppLQOSL1x/5Wx q|3etKxZZ-р甎j)'Ά7_Ўߖ喍:߯<7dnܨJ? 72Mcϝ(Jh;ճW xxϽrPC{8bKɷA]CYt$^qS% nn^m sd"~7O-!}8x->J3 )$#;h~E;K])yR5"ktjXj)H/cH^,?JA<)^JITʯf!_MCȮ{pLEƺ%XSh5&>&'KWϽY бS7]nZH`liQy+kaԔ8 x&VyP6`K`ă{O*8~Ÿb(oUoW3F$ F:t}|8G?uZJ#`Ta\C 0M+=/OqfVnH }CX~?lHh1OcRGjɰ2. O:oNgf༡ ![+& DQ,߿hZx!m4zMxO&fC7*j0Zǘ`韫Szqh)ES h?6G}{c=;gcjZť&kZ4.[/wlE :_XFdjj@"dHm tAS12iȒ| ^#, KT8vÉɮ˰‚hbs )ih' o.7X٤LNbuiz y&MN\˫5Y<p&$npφ@eg /-,eù/—ƈ}RLk-gJK#?DˏCמܑ4Az8R5,c<%a՘1o<^/jEA\𨜸Io=<FL~,|<߄Sj0OzcOjt2_2/Z^H髷]EpIkڣ Ћ+cJa+\ˋܥ\5!SB{[yKZ?H\R,{$ng%L=Q%8;h *`ijD _{q[L\,K`y,357ϚHrM"(锩wK両;@tMpaȨ|&-Ӡ- ӭ$H4*eʧ_*7) VEZA}Kn5 γ*H% ,]Z1T ~>;ywF;lveeNpD ijsZo0 ysy8n<6 4; :1d 7o ÝM!0ʕPj @IRYG:Tpz#&@@J ]rۺQz\:,={h%S>^䋒#(bHTr(7EvJ2lss9۹χte||W$<}SI ;{Vr?T2hb͢U\O 7K8nDXWeoi;FI)/T:qb0tL=BVI79c_0|@nx$e"C+i׫.G&A/m#c1%J`U܅rb̎-9c&BEQPUrbkk+QJLu  bz1TzuA{꘡w$[L\CےA*s" kHh2Zdte uUt:F.Z=R{ @;rJ2[np Q^-2 74*j5"]+?QblÀ -i ʘk[.<ݹTKr4cIJbv3o+*s46> sD=f6`TthHNbLKv:|DN,U!ri \]0\g$zM6ov4l>DUr7;0G&FH2>Qu37Z(idc HF[sܨƞM]9kFH s tP-ngүSV`Ik&ߔZ){>C75M]-='i:M7 T)-ߠS3/ꐛ ؓ^ MOӚc^ZQq[sx6֯ksZkcoGBI 5R]e*D:}gob-ZN1=NX蓝reI8~$7"Ԍ 5WJO)ޤRu.zУ8t-VpM-Fw!Wjiɓpv>ǪPҾn|28{;>Mo`hI g H9kn_Mbf)Tl}|ɻeҼp47N߯*|EFq׀"Fr} <@Dhݻ;=2A[s@6RH*Cs~o9V!X>=*-MD9 9ά pU/?c/P-6 b)dqXIͮv:Ec܆ yo,L4ȸ{ކ9_#[*AtṔO|r|8uL%O.UݦX-oN %6߾ _~iTS盲]/ߔfKn;;/iOq{3¶xN{\9h;'¡<QG uɆ0c}y<=%vNC,n7E Vˌ.k[—;.:BHTXĦ/ڵ'%\Tě&c>{>&lU_8#f+Vک"j,U2]MdQTXonP pL]aI3Y$?%(">Q^P 66rف=(?문@DȚ4o4E+}&\T$aO˻̝$#͸ u\ c!o1eύ2b ~X>xG@!)$Ece`Gm!ȵ΅nZ8}Bڹ:u-v7d|DCØn_&Ķ:n~h zt%L+LGyzrHY[*88討j ۶”ч >]/&A72SćZߏztE; 6b?o=zAi=Dz [stwaWM1QP{^/XP +Z@ -ר,D¦HVdȜ#^Iz|6AP,P7d:|ϛ5R2OX1: J禷11W2/yZVxEnW:sh\\M5 UvóKuGot&sN1A.wSh-߶ ;.C %X9߈ غ6V:dwCDS w` ؈qD jmn3T-mTѳIsN8m*$6C +~.Ɋ>Oj{.]q/)-p8h9<I-g:j?fOg>`oKrw32IKTȄI?n"!| ]Rr^J6 X$iB,@| '-s􎚯O:AIwʡKȠ@i tbR@WCK17XAb7ʃi,lWNU(>ӱn:ƍbMN&NhL$J\~NN1iFj)zpSB-]hx7\ &RX #*ۼq K9uT %-#ru,e* W'A#*7iahfv 8xn|s1oZ~"Әvkvg;R\.1h=|v+uT{Bņ0a/J0>}oW,¬1ɒh`ɻ4|`Ǭ"iH'Viu$1WZ%ӯKLf|OiRepe|^AT2|1(C b:s(֘ ^əCQ뇉j⛲|V&;V':L_ &d)7+؈1Lp 2,.lhF il)~9χV@ݍRB*߬]wnydttu`|S3rE.PL9 u>Wx31opOjeVA(wLjIa5}A0L9s\f?{f~FFRUV!~ݲ7WB'Ime(I#N,Q{:)T$DfV>oΕ>+2Yȃ{EhS<zK }@u:E%+EEэ9 0 e\g0r|'Ii}΁ψi2,45RcElrW+ >f)Kx1֤,Ϗ@*@?ZX8 xpZm͜bk#VO5s+8j%ZgX W,ؠ;{\f5΂!3<'Jm?Y_+9&$۞pk8b܈8B$W+C8Ni#֔:TI~9/OkXMc~o !ޫ4@__֜0i~˳b-=۰>r}/M|8躻4s>ll!qWKSX~Cn[_ظW2X-A/ è&o':KZw0n{r'LA-j;S\4~QH_)` 8Q)T*,Hb1zr$j]9ϷWi>F%38:"(,CGa;Ŏ.vW=wē60Emq(|ov5[YpG;Xi 4/t*Q dVAyg<^i<`KRFa^0 Yzjit@zN|o#!_F]&F+/&})!T8!j ȈYWfT(f5{v2plTm&v~+HʬI|]W/pg#]Ҩ\" b[ee>8a,֦~jA!.&+?(3k3Ig8fS$&>/}Nw(C0rBqN+|$=(&óidIL#R֗Ѥw~eFa_)XW0=]p " lD=ݩH{Qny??O; M1YϾ僣Fsڷv`Iuv$  }&ǴlGMl ZL‘YWCdw\2M?~Y=A<5l0ku7clpn-*<E4^V`1iT၂8~@S_Z5U:N7'FA\ߛКU\Ct 0 ?a1)x XLnøF,Y5bLDoK6)Jyn`۞"O%=KAE`;wC˗FBQ-'m6F* %L7Qg%X;:*_ __Pb/3=ވ q"@$ko;{={&RsM;doMjNӫ(DNp{_環dzf 6L辒@9:ϫI4T&Ug_kS .7-^jHR@&iꡢrAk!^m nšo!U%+]iY] <_R!XVbOtLx_l)ʬO[ˇ_/݃vp3gDJT !sR8"7vs#xq| /(mbfÀq,OfH's@ʵ o#e*`hJ_b@FF׊_vɗƔmVw[zp7#'SRo%֝2,6FVa2үV94_~ǿL.~UD:6ol7h;;DBqjWA\4d>n.ǂ$?ƨtԤ97#ԫv҅O &~ N^XH(S ~ 0yq iI sNX>C{Wi:)aH;|'x*䁻S׮N޸2>J}4`3}.XޏNjþzbH/A5hTOM'#hİ[Ǣ(J-F;B*|οM9&/U ZmsaPr@ߡ OC_x08goiA#IJl@ct񙆿<\@) 8`"b+)^%?E“2/ɢ`X_2y ~Sنo*(xبNVzG E^.cŢF:j jw $¯jG coslwXYKGV1WGNy~ЦU m z#6x 'NnX:Քެ9)lì4=s/nZqO.m"FG H ˺9lKuqRJ q/ vOPX ҭZYলMYbXjXZ뱳*C`١XO5J@V;KK?o=y=%e~9gg^8F݌D>tr COm]bT={9Q8/ƎP/VčX*ki$sw8Y4J[?sjC9ͽ0%1y EcVnfvQPzpSkQNEȌcNCNK>7cFXSk4.XaVaXM1ϡlo=\O~?mjYI#C=H#qreNӫ~J͹Gmz_m8~*rqm3E/ѝ/wՒVSMNnBrHytuz!CA?RXBtdahO1t,cGs;48MZ{+im&g\:p䴝D_EԱt1[67J'ROtjvRjggJj^b-l Ũ#K.WBVK (E }OTmQT(mxB!Ә{Zz)Šp7haW `wܫQ':udd"U8&VPkI6Io3L HOB`ehm~o }we[d"bb?Z[ < (.@&w#5-< }7n}=.nw*rt'"⊢s0^ƶ& m] %MN^0ƷɂHܚ L&4uV#{W7/.6,!۽tFO v2ddNfJ/!A皠eZpK<2 C*7~`#!)i_E72 )ݭmBLD6ݹ FR(kqz06Kve'Yl>Nb877Ӆv9QL\R{6D٣(t [U0-//W\jd”{vI *KQ8;{j0m#C U CUD)j\EB L$`OMD''%UmBR%&]^ɐɝ0oCH [X`__@Dcʢ~RI0r+ f`]w=y}"dG1OI̊iy/ߖ~ %s'$W6(;?Zy}߱h)|QlBT]ɏU`c I1㵂%~SP$pɫˣW%oA-RgMt5!F,G23Y ̢` hz=`; 5E2p}lVT뮝~" S.HHv~Jw 8*ݛ"T?wAe^:CDr-_s)9T /s&(f z@Z-Y[_o'Mm}צNxzȞecuoV'd)nCo)[I2FQca_}ipiaL"ʹS$^ԸS&Y-'N,1`Zx"pg~m>2X0qsxUQ XJMp#tG41 džĶ=QGYO2gJƁ6V;( _<$MFi,O6 }o78`0 ? HUfه<w#Um420PGtЍ/"1 4ʘQ8?r 7Wy.Ж~i{KbSVo+T^OĒAM6.;}T)/TN#M?PF:Mq|Ze3{ejzs& C-[`aK`r2+g{ `#}E;N>8Y5_Z#VX,2#.5PHfiQ ?D=3El aQ6?J7=CC:FO Pmɤ$̔"yH$ c@~jՏ3~uoHRBF$v㯲 /\״~xʀ}'MLӼRv5[V#~GbWn)]E֞0][Ħؾ8`#`'y aٯvjUOXmpeПen_TؿwzB oySDQ,~~[5,UھauL&}B)jMCWQ,LF^Csv9Y#O\o(E(iS}hmfEcU[wf j4YuZ4 @qk J q^{ڶo(t js>O Vש>z9ƍmSX& {3As| su@ʣ8cbVAoY$[%Dx)[J"Xk%}tMUޞ1%|uyZ+7ʮ'98 0;Y5Ч[ɧ&Un8i}7/CVN_6sb̚}S/ȏ:Ԧ$I2@%^^rS##𘧽A$&;5[Vt]qh߉._r Xex}xaaC5y&>$,m)r.gKeAU(<߅DJA^ QJqb6T ɧfC4ę%sm3,f&aAKvTqIO}xiqίLFNJI+\"ЧHXW+06H(=m,+rwyV Kl7k^77b8DžpiAPLϠ*]M|x.UOh{HPK1j~!n$`# $LN@Li+$8~X-xT:11%̾~8äו UD^xxluMǗ߷MvXj%k] m\i/jb8dv \K4b x|9$ɽ/h}Eq-ȄQssΖ'Zڟ#:a7p搅TCOC#//Ro浬T%4=oNqŕhd s>++3U(:`0 .ՇntPFIzVVW##k!U;ysaob.@Q%'qv:jg[^SiڨkKp$^l#7>/R9ʾ {$%'ƃ:jBʡ҆Kmϰ}cXumflJ#2$AǞҿ{ƲҦnFd3eNi)Q\@\Кop&)ʩsE_͚Lã[u&L##?g /ϕ7C2A 1Sp!oK֔{ӗWsAo_?Cz\ȖE[=xYP̃x-Wc }Ly˫ZaMcuVU]62_v;F++9AŝX,$.RkhE]Lě:S!2sfuTa~O: ][s!*QMَЈqZҒP}-#gUu"V-³A>c|ǝv_xep<9cF6VFZ*EՀL}%Ȍdq(cs5MUk QS9m`G$̙1|G\ْcKl/vK2 [؏_%iu-SJ$VԽWbb3$󒮊&2ŏg,%wr:'wQ[{ׁEKKF@.R?.N}FlyI*wAk܅~ Jֱ:o`Cܣr;i+>Yj]Фq2: gU7 <;L/wdիHwOf^_4@XEh=6,E%f 8OFtIZ\Hbbdm? y;~_PB2`pi􅅠b3X e{Pojbp@ 8c# Kqaڅ(1?ݥ nNAsE洐"2#+,e|9(-ܥ,GJi/"z΢-$mע], B3f KZ&q/"rY| ?qja<3~$3K<+پHdLy>M7+Zx&׼!5QTֽ~~}}1H@@$IgE+[lRvp!XgJ^v9[I@,]ܯ;C~\g=66r?3lme5y_쯧Eґ62E?_IwBe@9>MG܉V>믴7;_Gsn+'e L"V!O T-*˝KYRNQS 4H7Omv&3hrǗxο=>ZC8%)kgD)tZ%kS? @_o[ܿR4,%|^],} !['-3pϬl  i Πi4"bqQ˖"4'0F"S {hQFض$]ǚ}RYsV6}eģM=-3݃<'E㡡ࢾ{Xkwf0 otؗra]ģ-OBhc"A–S!6GHsj[P>m5\|Xivko⇫/m>rvdF=!z޽#qEw9\6%UJNYmLtYu*<^6 XR|đϠK.CuB7S5/vBb!N2\V>%}Zl yYGp nn°,/bTX;VD[+Ye{[hW[g$e {Di O) ˗_Ɲ[_Uǖ ^[b}ݶ-Mt-Kbƪp`b{:y%c%Y ?jc'(TI(>9q^_8HN%v"N4єk|{-sg>h!CaKxHT V&&čp3Q Y1K8s~ɍZVa@B,<~+IJ~ER/Wݶw}&pS# bU $7J -5<ւ>zJ5FItkփ{py?o?Zc~q#t Ȇ[FMt*}[C>+J@mti5BVhLx$d1;|7ܰC-atW i{iQByX;NVu7݆'Ah|bC]jFe{s1f 8x#B?ψDMpwC(kԂ")y2-EBjeQar(65IP-ȟ|sf2Y%7݁/r 8GK`U\=t0ؗIΏXNfGthn;nUBʢ8I&ПҬTTj^-Zj̷Kq4.hj\x}d^ۧ5wӉlnμV7qpʡan[q^f+!4|o;|)~Eۣ$7o#5 Ś|wLmS}uŽɟg! |bj6Ho#Ifk45#zy#)sソw&ֿ|̐&P./ZS2Qߦz#VFGxvSБ'OL^!E|b{U|ÈV]l E2@`vf;JoX7sYֿ [ n+ZKb iwS۲DM9RgSe_b4 /6uQef=L87ei]o̧U嶙o\(.X}kіCd+G t\$ii$C6f.݄iZ^ܢ ZcuC#'T2D9^MEv%kH2Y*Wrh6 9Zl뢸+\=UݟJɔuJtJFKADnH)rRoڵ;ꕿD\GTX4P* $-\VGRiFymc r?Ƒwq9 A N\L--dVgYJ5ck3w2,hūPMֽg*oYA|=NvDʂ~iTW[Jy׏f}bm͞T~`m\O'N nL1SW%ZJe8y Fi<1:XAY*Wh$byY9On w99d:.=+[PiEA7{ԃ\UvnRﷴ'[=fƈfĬ%$1 }OzԟwFqYDXK;!$#)9.&i!;A2@~2Չ-6GS'`ˮ;) WnI>ވ5HкAmAnٱug'3i!]~ܺI4%זIQ9t"ħ)D@en&U Sv쇩BR󼿀_qr}dUxUva̱~pD6wF<\zEt,sHjz5D2ԩX?Fjk#A D%GnXiM2Y|jxͷU"ګ7T-rN݃3yl)JxQՎ}<*PZzXo@Tnųl;Rn~tU~ Ϯ(~x@ ^ƣ=?I^ٶ37RawB\.+W\FXKCG2]&2ƽquSwDa?_mBRVY6-Lcv;/\tUmb5_іTP y xHB]Sк봃~ûzF%LQnu9d;BLxi7٧Zk\;ɍ휑@Eh@v0zM(:P*HSZ?icĕ(R"jZ{g3Ruc<٠/yi~+:q0+cj=rwq[6簬 |/d3 ky;>Mm$Qv0FVkn̈=LPT#5D15Fnoo }Ǥr3M W_,kB.?a"g||{3yP<|=dt*;;|F E\u8$7! jC a6?P[/fvO,1NP3 hf䰩R, ٷL6'U 4.88xˀ̓69leS^qF;%T)?}.ì2ZGaX)sOI^yBix~x0F@&ߞouW!ySpZ:K( 1tEM>^ԫin-VSj@ rN7qv^lVv,aE(喷}W`(ɻ;7!RmޜNmD#`ћy(XLf=֨7msyݭp E1l1&=9[^/_!1iG:p_v=L~ lP=+YIRt@UkG۩ȚM t3O@o~{|v]O6^%h5mER\:p,l2R۲V"Z$'ªZc;_A+FiJQl[aS[AS>5e5F Hi\go$h9*^fVഭ*PTPy%6թ6fs` ˁ2߬O>/I=?8 ɘN3h8#4ChK"zf:jt*墓fr>h6η*沺\ˏ avFx*~K&2/Ap 7Nu6pƶ@ʒgWFdzȚiC-l,h>oW~@W{!bl˭4&s B]v)SqQ񄾟n Sn-u3z]hqّyKaKɠ=LQ2<Mb^Xgy<+Ez3k\Lx }сV!W9o`~c@s,=QYNiY"V揭r.9/v9}7gAӌ]+,:MB&=ξUGټI,y @xW1|N3ч&9SoQVҼKbUľcO˭bwv&HFL$jY% oHr(thE +D0x<KW} QߝNeyO^զ]_l89xDN;K๾y[QrEݶ^{+!_nZ|㊳|]iuwƚ槿tN(eOIx,ʻT rX.B;:!xaNj-M{4|UmQ\zU1#Sΐ\^oiUٞp>z%TƩVs}o9Gh&k#hP Z)?9MbȬA\1G(REŤͣB|µ,>TQ+`\kXא>WL6KuT{])I,`iĞs6ĀqvaH:lQw*ɦp[yNĸnR[LJНٲ vIn!?[In@kV)&K]vs2fžn&UՓLq6Sij m_7)$gUDAmeLY42EY*}?7f)OϤߖ]$#ֻǛ4+^'tJ аYu/ҸeB?3w|^]5e D~$=fyRD4ZGi 랏S~fB~p&qƼԺtL{o 0^ 4O>V@G<D3{dcł ]PjonvW15h} .ݦ!3dj;e"0ߛIdT5haxby'MS?C ('LD2 673 骒sAJ%}K}Wn7qgꠦӧu*'7Cg).aF \W{\Cr+/@ $jNř,HەnD}}7pdIvg5<&G8 GO Z'^ip#kYޓ <3T{@,use9#a)lc݁9X^TJY}]7cN?UB=E'fCT._yǺ< -Si0}Ax4YKޘ^U 8@%nn𢺞V0DU/ 1 9z {9P/L`^UdTxj b8idi}=$/JS݌ɤ5/oaz|ߊЪM/:$X,ۙEN֥|85PBbCq3}حU,q^!>NNe+mJrs%di ,Elh :){=^ =ÞEk4[Ay`q{[] Ia'n!@aftOdzLn muM2E!MڭMOQyu͆al.eLQϰ=qB{Ri%q1Rޤ7޹:~Z g΍MMc2C+fr2uLDTTn~N̠$SӔHrEih'Rp ޶7g~ˏPK;=:rPbM=/*~5sZGfrL9l"amC۬dq6uOհW~GG9r9l^Wo%dhggeerZjW{px:`,PE_[XgڽNN蓕Vɤo22oDnGݥؖr^[0>wz_T.,` r6LI4ܱj.|w10zC QcESI}|x^d44 xe#"CʰKne`Kb_G*oHI@ Vdʮ<^km @]>Rfҙ^=)8bO%{d^+O9066b,Ӛd_iG!$U;aR!@0׽K+ŏ?f -X0 La+Z k_I`%gWjL_G0e"_EWOY_.;/_bOO?7?\_sPF~@_+RN-Xg_OU^oY.<_=zߟ 4,o~Aٿx%ӯ2}1Mrw/E;}?-g'?_O :׼X }_gd*%/93~}uW:E?uMKӄ4 Kϯ3vZw[6! _mP`io^e?-2Ɋiu?I5&k;_n?5}:yC؎_}LWj`cPݵ HaPE_OKg2iz#ia芼N4's_7CQWi2$08nNr͂'>WVƲJ6+,"6+og7_J+qu6Ё-pvtg7*MJϟ gJ3+vDQUL|צu5T)M5lf)oC5k&Fo-Y||TXfVݲ4}zj.\:gs.w{YHΧdyPc+cBʯ &l/< zMi|KWL,y60H6yZ6KŸUWi#9Et*ӸkW|o_BtsxÑB*Zo꿒-y{:osB}RQ %)^ɘNv)= m"4Sojo 8b+Ct:╛?$ZyeӪ "&T+Gk^|q\" R(Y'(p=Cڲ]}ngX*zAC^>-z1nJ5՝)FQ'i!,8P;M'<$FU;4gOS\ ȝznY{=]г>tk 5zҞSU!n &j 2cS1r+‘qS.-hRywn_+|2u;]k1m!wGISp00H}v>B{l;DL`JZ%ߚ4 !̲R9B WC{95m uq|Gitmѣ|$7VD&-5CrqzMᔿ[%5xCFy<謹p%J՗-"ϯĜr) L6 {䞎<֋0Rm7Vы`^ab6U9qzK=]Sޯq1C3 p1iZndk4q_/̱E&xFa>DZCmۇa(7uRE8_|EnzY,4%OMAdxq G%w- V}1vPAa a搰aTL 0~wdKOۍ{_U;o Xtރwѳ^I}SSFaD%BQPC,*ccY֔Γh걺cWAMgǕ]qOyz^]ܼbG-N'ڒभrTRP ˜veSbbD[3z#lM*q5pM80^;-~NspM _ rFM-kFiN`[{^o-~e4fjJUiʹM2Q=+ʃҿi[iW^Wbt6'z]:i6Ir֛wZTY"+#huUlɚq7`)M+ ޺@umj[A.e,rxjcUTӄܬ"XIH&f/_Dɲ7Erf|$O,.l[>cMRu ʾIiH$$l4VC!<oAsIBw` r.Y9|`LdPfx-nPW•kEۊ@!O^v-aGnk>&,Z{Itf&v߿F, _-\#08a8o6|$Iާ᠍=3'SfQh}RfYgQ,nT`y""wlLZ=tKx>L$fj3Vi?泟],xCr:xzL_: (}:_W$!Fʋ =:ߌ>xo#<ߛțKߝ5_}@-+?7gF<ǙSIC94Ӟ[#v.{)~ђ4$oK _`+./'Zx<<v;6oo6 X6Ee(%K&kS,6JL+̊9or"eQ.ǻ&5&pE&a̬x~RP(:؏rY  v5` lO9 qw,:`2.rC `K ~~7k_~ *s{9l P @_V_hۮ8BυR@ee aI~]9k(O~w\EÞ^I`UQ-3^YY#`biB }VE*Ǫ) W H:=Dw f$Rбz 8QTJE2?/H0 +JY? W޲0BE}I$K6+fuWF0+{8X%|) ?ArY%gQmX@.IQH`Ek l'^=YlfXnN ']\1]8vt"}}n-kcצ",hA.xYJl_k#r &I)X,ĉR.sԛ]IL~Bf^D5.Qٓ iggA7B*Z0hİ&N5uEE!"\Wi}|V/ 'C֪LD+LF!ZY$a)z}"uS1^d%wF߅m#&8:~"7hY ]"T`` !$ =04~Y(! H,9U@ނp!C?œٌO Еfj(n# m\gnlg>O}Qșȸvj>nYsdUmLS3eaY!cN*[?\-K1%(r3.!.~U"fQI}4rr.-M(!SC&PBtA 7)|.ot|Vto#tu`9ZO ,%Ί_mU!#X:6 .t4g7V_h|<&E%2.(7OͺCaaPsm6v5C6rKp/7J[k#Wk^^[^gg{TX& <,^]ڛv{n5~+M[j\}kӱP!p2o'bp^B}  ܁ӼeЖWj>!ݢJ~eKBeaLxˑIX)v:y}A,UQ$u^qz\ 2C_͚\"?Q2!(\ ȝFٲ|DunN 1V}9Q9mtb p砕Ŏfb Z$vX1kcEx8Je7c UبW*!25͞(kƸV:y۬qhPqK[/7`Vz-I)tq+h&WY 3Fs!_ NbtPZQt?~k"1\0yl1וLq_CZVyPU%Rza\5Q)ƅZ3 _ /([%ٿ㡒Cm3EМk=lYUIo!Ffu3bV%E7^{Mj o+n H}_+T̷ BH7v>wo~q %g='@hhHnm@7&Er%I8}~?wVMOP˄L!y 5%iAVDc=Ğ%ʍa3zIoH93~3 V晲[GaJk5ޞ|<[%Gv[?GWߺMg']}ƕ*,{E%zwK킗I`l?[ ]zRGcڃHE6}ݪkgz]nnZL-_(,r'ˇvܮ͚<,ƛ`BTOʷ5EL4,* LNoDœ_gpK=AL%]5IWG^x6IрΗucmmzj<W/X8=>5LÝ+67eR]f)qSq5RB#TMǼC`>rZφ"呗j(XZ7D,Kpfo©{؞HW2&k̨6:Bʶ`!0xmI'[a!zgG*VSڛ$Ryp;DPĻuHQBO#Mu) 1!_-Ph -@7IFuk$8[c!l[S{ÓecU19j5ӹ.1q⋦*l`5M*ܘo#X=x\X|ygs1T8ap枼^tVdQj }Q@588?GK݊r;(D}pm] ˻)mE{=\Y2< 䓎蜷@[]R[{>;nfo Yc%1|#3!ޤj{\}ͺţ{k;)©>%kz3;X7O` )g& 7zIY ."j=t&H%Dfohf 9 ;5bdԆ2eku֓?r<)IE"5O wy|8c^dlrPjoTZ-/m"8M~)qoM_2-ѓ|2zm7otSNЉM&+Th/^m[ܴpTkfLz ;صKpQ>Ҫ dsi zp]QV%|*/QՍkE 9 R f&NX*S=L;2m`MW}*0:~m+(z>{]=R_&ɦ=Y ̵fkԵ{/ȄESXBUSdd5F.-(iJkcEH7I`JpHT z|ߛ7$26@#a1&*%|0cյpfUA˶,G%Lz 0|8${`-%i莵=Y:%Ie~D%bZ3Ckg?V]ے F欆Zξ@)Mž#Մb7;lxY*4']R(':efsy͟cgxNg[Չ(S ~0hK^ f_!Es3D.u/غN&]2%fvp2/%QZވbW2N˶I+EYJE"f^ !P?:AvL\MYw*#DAKLґQ qَ3;{Z zp8rȦ(Lo~0!5x"MƪF*Xқ6J?v5xev?uY YxmQܥF-rp@Z00'7$lGm]E#'N d=6o[vna%7jA<u{L"Dй3@uIhS+ķzcxdG~i)]`Kl&^==)n/e$=P#PdS~bdkb;@Էe\y1{ppgܯi5>(|SA$a 2,@ T3unpIUbKj5Eɀ{~fOhH# ڮ◾*VAR\&-&tI^OةYL )l20hc ̭XIV=_?^1j`}ILZ/f4XDY@cx36Wv>Lqaj#PYf5V #UВL73MXP8w 98+4U6޽Q7S;|A'D+6w囦jQ(VӉb#cM$r]',7Do:Nr^drUXbL]v !?5˫Y0Fep'Sƴ0m?D`BY\^Q.iT?"$lN[ߥDI y+2KԃEۏ${+>q.9X ޝ;rZ>A&om7Mm8dWc)*wP s $ MA^|%::iٚ`8w&Tbަ#x2ڽdy-,nu8 =0w! ύRpl`yɇD;W r;}1}{^bY ɵA^(9EZo$>[Vz6]U 0|В6~ދ`\w"ÓugxZ. DWk\ =U R"[w ~Kז{xNh AOPSQn[FVP̞̱f9bY%!e8JS0W^g!2*quyױ*-/ |K]Xl1G*Nuz**:_/@5],Z%T %^$pOjk?n2PsՌDW\&Ҩֳt({B~[VЍrr?,f R9*0w\)mF3M8bmv)KSmXH+.Jbnf.f=6ah"uۚ^@,JWz@s^6P{r7[)vG_~>wڽcoGj2 YZ"FZ[gKۅHĽ}Q Dux 3|# e^LMؑLd.$(O959smW9ظ*)u6/ {sKX(v׻;#F ''A~w<~+T]Z?F%aW- Oh]1w$++Ձy (I_=yOt- Rڥx+!Bc2Q`꘨(y,h-uU4Gb{0:~b+gJʹ>Ol7LZt@LZl#m_IrGLN£Xؑn ˖+H:9̦lɲCwQ ,Yo@ z_sznS}߷ڨ /z՛ _+a.[fY#_+丨)ut+{K100YB;w' ΈGژ)hIC= L6gy\AeF [jJ0UZ pƅ$gSH:ݼ:V[%o\vߠ^F-4keL/͎Dk9UFs8/5W-c9k]a凾@v"ZThGv.݊#iAC('\w\rNh "6/ ѣYT iA5C0P*HHfDW<Z$sV|AuD"TBDToJ޿dwXlJB1 &q83Ck3S0rU<} 6x@@/L.g+?aEw1Tf+ˉUZ>vOzիc;dwƿ{xv" (YB H㊡>b!iׇ}hc^e}Zm@JTP~yZǼEҔa&3ǾI;S$ }Im -އ"8u@̸#FUPًuPq& TRg ]sG x6> 碥 /á>\*<9Hot;Wד=hC\[NeKF N!r^`o8C/-qtx8r,SKePPvSf!mA.#ݾ 8m9:?AĞw*:ejaLd(= pwt>>W| +v#0،PVNMr%N(&5R t_xUm8bX;2:+$aioXDfm=c#U[ ]m&M×ekInOP=8!!K8:ıֱfK<@Gۡ;wFd}eYta 8M䗿|>.Xm=V+Cr7qș~3<KX#C{]~u޹ՈqĂ,uzCm涒5K^πPXhƹ9˰Xv]?v`ҁ+LVZeْq?Er#;.Q2V%LJ ,qU,g G!k}xKG{Gs$t8Q#=,/4ScP7}?蚊)kL&o #}}E߀_- f*S}J(i1m$x(,`ϯɢ+Br{ _.%U`z -lE`jPh3>L?27Srfofw3oxG@zx 7o;k,u',GQm) ̟Xle2%E 7i= ax8wpYuAAijªLoB$-)J^ NU޺{D71b,`Gm.bk!ϡ#<r,p$Z0. כ; лaSW75nhd֍ 5I>MQ\ nҟcvkO`R(4'ċq)ua8ĸmYLC)}.w:/'))uZ`Q9*@5ibؑ^#J ѦDQ6.u]Sndջ̄¥1\=܀y,arZYkS&l2-5kozB2dWp^lnԦoUݫ0W_ưR &dgtryu^ruUFA OMBN^<>vad N7N"xGrқ^PA1_:I5 /:`dz,4r- bLdoIv=eJo#ec4HX\Cͽ˛ܩit,Eo(hfݣqi 3()a?N~Ff(ZnxwUU\mұw?{37'D]GV턼ˎLwkZӤbQjMf&D%|9OFc jؚ ź'g LkPi+vߣ'm1㯽]S~\zr};40Hҵb섛n -g{2bi/,}<mYB;Vs>~_%8'3P8DBȲ&ڿpxksy‚M^)|5 I FJ:%($E{i%NBE;Ox Dg>=C{(M 5W0愊pZ}jVKU&R)`"D|?&KGblxS=C$ ml2!LmByD7" `/ulz ,Ěf4te6;duS?u9``[_ x!W[KCW,haYXxi9B>MC;@@jah3-=dݞJo|RgH>ƎBbXux r䬌$jۋFS ڏu\ym ݬcFb~+U8g=U]?"7DiDichV7bjs` bj<`;.֧u w3킐6YKB׎6 B.K"^e֕R G^u^qh@\&BZ"bj?|h8TGi-ԍM}Y4_2q Oa L ʘsej&Am0.E-\9!E?cFS6v_\WbI^f}crdC[m 5a ?&ߟ|%ST?g_hWYY ؏~^%̢~E.m1i^"rj|?\6 i^ҥZ\(Mupջ|+̃ E)X=m1(9cfz`C4E!R ao1$Lu9b\gR=eUgx?`|45Cv4sE5e|=J2fLybwaX"idk:V|<Ԗ&X{9A5cj/` h󤮓r_UePEG;<{x\rLXo"?u?$DSj@Cr4Qe2 E\~4|S;Di!*=h ǃo57F̊YYBzh;9|N/f,="(qa ,&(U@(GF a$wqƛs'[={<ԖZB(=lsVGgߊp{B>Ta0 r7tӭ'- ` 0_?=J ihW˚싋nyBdO䋏˖wRF QP1 '¾Aq *.*lVj=J/mez R[rndom齟8l .-~Vԯ7/suV\!B 6]D+QW/_8VN)9`>|`lMt7}޽>u"g7tJ3cF] 5k(GUan@Pݿ%& q!> q/Q S3Vg$lP߉({{\LDǞ:,n USύNdK_myjXzy8B'ۚgwkΥ,s[I1/vj)TQ6Rėݴ<Ș WG(ғSt[ߤ NS'gRݛYBdTmY.Wn~QViRN'KQ jȜF 5y(oU@ F.&$xA%dǝ>΃&vy!(DlQPo ~h39ޒC:?hd sx ]/S@bh.k|Kz tF4_yUrsg2<K3=ڥWp۽.ԃ u :8;ndv| Z~?ZX~T3IVӼJj##}_n Ӡ+OJZsx7C[fy~XK&63t/,7 FJH 3]Ou&x[0Ao?C*s|׌ #Oغ$?=^UUWVRv97:@(۷.<8 ̣tʭm黬PЕk٫my P4e#/V O)D,g uUv#<0%UYcD; K\4#WҖc(k7t/wbp + VO9OeppWl@X1Hp阕?G^n짯٪Jy9c,{.:s]7GI:OFJ3ju$6eV/*ò*XpڃiD}qw|PU+3'@WkJjyQpŌLש(W'kS~:k`8yKb^a*DcGy{+3VͦΛJ0Dcp>5EXnDYf\ys K,Shkc"ҷ AI!ff-{p|{lGKvBB:͡ ` lj|{whՑ7%FRsRo57R\?LtqC-, .KUu^ &>&퉞ł(6T>!G2͓."2FPmI|Cf_=J]Tw*4 Sؐk+cM/gY͔:q`oݜ3kʱ ]MQ .$ӑc5jqTr3oNԖ4U,T1\?|鯎{'"P['_ecb+WZ~Dž>sb#.]W}j.@=>0DS6eNi?,} )W+jƊ_Ǘ5NGC Hw E5eW_==zR[jpF'|Q ~\K3wЀ7}fZv?x-(Vw:9ـo=,KN1BeA\>Xu_z qD#ZG#Sbϗ5,ŷP/#]0DLeE@B`Hpr*D>DIzX\؎F rnʃM T0 7^1?^4rڀDKMl];kYiъsQNi-Dbb5_ibRdЋVNcdM6soCucvB^)c21HpxRvm}ݓד{8tRe1let@3g57 9thoEY9 濳蹭ZjFYqޭ76 KZV aS@S+,"|rP|%]~|#wޑ_@rchm(ȸ Hbe>jxaX${4˨7L=GS]+@<&ڠtp0ϟߎT:X^ȵ/@&j'k%.O(Z=Jkbh0bD\,IҌB/a|Of-Y;Z#xa}ia!*J/~;3;:Q2zUeݘڍJqҍUG"tAiyM"<œDJpԡ\Ѝ4c-2OpIP.q7T ,Z6@-MȖ%LL~$EK򂽿 l~x'Yu|әjWP3$3RZEJu >LҾJ>S^Zhqxssi<4=Ϝ3%i2׷@O>a,ÒqH;oM.8`M7e]96O݋^TsDZUzX6qIXхxw6O'Sp܅V̀ۃ6e:jcOуVJ7~\cӪ[t}2'={ YM wmY9I%dpx3$Z*[f ]={G? 5}r_͈hbC9@ XFĞ DŽtO-Obm;tYJ>KWymsloOC[y{%uGy܈rXPnHz&8rGW)SgR &ߏ |y{r{0<<b.ɖzY*vQ/hʼnYTpm Aœ8=tYlٚE]N뾆YⶅOKL 4谦 [ga ѳ(C4 z t7y)7nԁ;K:۸$Zd-;yE~*'֮ ,-d"nL$F҅`-STK\Ĺf`X-ocפB{4AD{bB6J*^A2)RW{JkM^]SNHp.hT$K0-ACi_;` ԳԺ7(q{Kp[`a_/*]Q5”YуCX'Z8r3aƤ[n>iMȑEŞdD9BuRct Ĺ`ː\5 <ބ|C2xWd: KZ "!_;nq TjMJPr-[߃Gҿ2f%_B#ɡ}FG/kh@/bsxVѬҗl+;gJS^$$^KI,)EE_a ܺ^zp{XIp԰E бTͮ E"o}1r8'w$}8D,JU,{=5x_sZ=Bi&2:Da'>2)W6_V*ecw1&53텘NBmIod䬽^Ut6V,׳V"PܟqB"1h5jpbrnsVدvP:f>S}B0 &5D5ToO.;ucC+7JWy&_P_uod'o8`,a=.f-1pU/ěOm'cU <5}z^Q;2MhңS2ZMȑEK /!<jqi4ywtϾ7*"\o=c*` /z @$ {j4<]e` _[Z#V.H`EIj*3"2V}+>Ni`mvf{W^LWBCՋ{ %Zw'F'A bh,t7QB UoXYCT(J~EOAd>S%xhTݮ_;vȳgO "b @ taarHYc-A񯗂^z7͋Q/k2W?{EA%':@Yǻ+C^ tk|L'=_'#A2m3u) :CW2, "=o׏FlQ[@y3 42 ":$#1cFV@yu %Rad8Qyů~-1An_-ySΔW읉ӯ Oy/3XnN¡Yt2iD>T%uTEzl֒{9AEjKRۊ4ܲ_ by"BH)b.#+ t9Hg#of/y/e*^ ǵ̀hQecxX̨6S@1_K#DV uAiه*Вo*:حtJ k=_/~3~a#Ʀt% "Nl7ćag&TfѾgAzиB+k7'wC s+dj3(G+JhJru-,K*KG~Mdfy04v涩7vb*z 4."fŤ1A;nH'%X3 m3PHJXBY{@ GxpDŽkqGtSXƫ)uT:M!ؖ>B+h93֧/OmsL]ѝ⌍ bu9>i>`7 vLŞ_QpYɟ.fn4}Rz3%N٠TI#ViuOZQBO_v};SO.-5W=Ga.AK ݫ] R*:XĂ85 L_B`RwRx`J~N2.*݀3#w0{SEZl85kKm%{ӫ#IG _l{=@O䲲(F*AK+m&1t_=d6$=R~t+,m?^0֞įBpRn=S*ĉh_`}p;SSrBn<*d@ ,ڣd4?n{yUɣ#pAGa0v(s>0KXMI6c8JMO=;f XxGt\ Qx@!((s*fInDߞeW@ vV<DEGҕI׎i?oB|$D~+UZ3sWo@ohnؼ`3qya=`:^o~L~[oRrS=~/ 4A̴ xS>dy7ӗ|ӧ X$w' j-V;ĹIPF^0y$n&pJ)Z m'moZ%uU^x_jX~$ݵkhUoi?:S 96nRtP9:ucEiB1.S svJh$}?p&65؄9q(UGL֣&`H/O]oD `[" 9k{$?&i^tKC⇲"&e38$Q놰b)|q &D*贈 |ƿk_K/`Z'ƦP_jj_gj[ӊC H᮴%ZVs'{C3m5g0i=)$}eٔ-r!J縭 45yyP ]s2z͈{eFS^^*|mˡX%㲺?_Me*_Q:Jg:*Nw_?"Ѐcip*$os h35Z(6?1*+/VRk PGX1jSI0%%hV+,7^N DDd""cg "cxDӕUqV>oO? FyNGmhEw5N/LfkpV1 v !\F~'R@W[v#AM ,ڻ^SloQM_NoMYe |Y1|VwOI _4=218̩gO6("ĪĦKӟQ8}&UvU 7OMb"S˂F?㡿}t2ڍgƔ r|AyLN͛_xQĉҳ۞ES.~R'jPR=k ^Zx(&m1nR@%ܚԘ \h+[*`lbk2o-^}=Ё֞QA~g}ڮu(G]$`A}`ݐlRoM g뢉z>F(&I|ՊJQNXX ki>W0W5Mb7| )7Zc/yR^MO^ w{˿ w1:{{+pHt:&&"5Dq4m~-i(nӮ Cx,Y0̪#:2͊ E)ZlaC6'lWq;CHZ"Όأ,{ C}E.* P'Ѝ\^ WTaWB]n岏YkQwJ~vΰ]MY2FճG+yofmf3<'2Tr4U,L\B T &M\{EshHBg0wӁK!*~l:?./|ts53"_qBOnLMG迒! 70_"}+ QԆBi 53(s,!!! @Q.X(il*:@-TU@]V4\#q9X4KAEQg> 5x!><:qi K7E WASqr' DD.W38ž07m`%"PK0j [c)hzyYjEzPk觻{.tIJ [M3hxY/H75>nxr9~~^)d1TeqS1Sa-a !1ߞ(~-:%/YQ-γ,~ɍ^@.BXjwٿa %880" YƐ妻@9j5N蕻Z4m_F҂|@'g'tERF ?Ms۷Lu71XlU7EBU pn vcrST^_ߩOjJ'm7*_ rZ>˰eDn,-fWt>u]6! O uvvvIJ2s t1v`ٹo'so;ډ_XAxoVvEʮ!gE͇]_º ~{,I?݃ߜi10ۀQB/0ԸEx V􀑧*v8 EFS6tT%u+!wwп1bX≿.O(3D" z=CvT!FCh†Ϯ ҁg/6uƴgLd7;r@| ?Ƨyqӟi< y̖#JA~tk%N;Y;O tK"WM~'10e%Fxo5?S/,ŎgP(щעG[WU%K^[xDkE7zUjԿ6x砈M rњIW'L᧧S)U70YD˰uX- D[}j/V|۶/_]֌k8F)B7D2nD; K_~ZCIc{Eb}FށlRܾҹ~I牫S,%w6]O"+Yg#Sk!%b3~#Bk9cp|$~8 koh!6o \ҴaU8Bu+dZRTݛ^]C]0Lt.4ڄB^[U7):;0֣L%oE TbeYrtӲ]:@Ri4s j/cWy~Ń#jVz4C1oUI[J%’jќ\Su|=|0M'v;"N9e ~S/*'%Z0GRbakvvMuhVd( સ46)tѺOFvgr; Fw+xҀhg&\;V˼`(c4J3 ^gIFMWVzq>0 mLzF&k7!ܔP 6dK-x/ɇmR2`5}8.C7 R^8بXQ7)8I Ϧ;q1ޡ_p%41q^o.OqOng2b:E*![;xLls4 <AHQ$s2=!elRr~xܮw|:YHݤFo;oanBGX}%L/U`=dkj>:@i EEāa1Mѽma muLuڛ_z'>EO\ۆl"^aTг՚1!^n*9!onaPxfܩml< cd;;lYqi:yzR{$amd|ś5pނ,PUp";zK | _AKcݰipwR W쒩MjY~x3B"vo}QD8~9R0 6?5ԾiΊD3(v9eOmjF.Ŗ (G EY~Suhۜs_5}z( T>3MJ︷nG@唖o |B#x#v#Q 3x,/_\~ 1_GqwH0!Ir%%gjn|y\;N&E%\"y^͛9/=^v$89#xf7f&V,ϡ7j"IIyچ~5Pf MS9>]9M:5 kK($MiA!2x*F22Z׫{7PK/^ռجF;v#~]~0\nŧ^I}eQ/n& xAMg?tCXZ}Ŏz(uMAkZ$c)bO؛LCt`mo%B2MVvχ@ וfK 2Zl2qyZt!8`ꙉV);촛XSDkOm. ݓ>g S,% e<)椮dy<@$ *7bXIu'< wM.S;Ϥ4Yb/y G2q*/XştifpU2kB><WǗ p=O'F{ME#A^'d} 8yLF>:Qrbh `A*3m-F}(]*rcfeC˿_iF力i;p);83+ZbFUE!Qw"c1I'/:d {2!hpȣ[g\ |Xv^u1"4d>bŬ~̑|2#ۢVr]z-"3F.:q#{/!_9L6_zVm n=8_@vU"b^֋V.2%{ iS1S4f9 Ilbo 4w~Pq>05ะ6GMku\$7j;m( mܹ޶΢Ga^_"Nc>+α(EĶK rڰ#7J7I& Oe!p!nGqچY@x,WދzI9l ~|f>Oez_~G_bӒ}=i Y\yU.S%.T:uL(_4KA$<C@#Mn.8W5k@$΂;F-f#U蠚; =f[d8e[$Ur6YU5aKc={"ژbCyxLĝZ82 |ɔolKڦn7/ʹAj0o;?ʹkFhF^l4(9HL.J|FL^xN>>A']|v)VƬBeo/yl>HĽN55޽hk,DYxu٦_ {WoڮٯC5۫UK;irk;텣Jny .9||qoލשH/kjv4uSOjNSʆ?,V0_ 61IB\z2G0ݛ;ةgak Ə^` ZN^{7W*Ht% `ˆJ⧆eQ D,+I\ խ岐@Í޿4S4W6$:9E TAfv]K ]p rhNyZԵajn.a@(\j?ٲDݷey? dT` 19 -KE" 8RQ;5.975*{?j_2c뮒p(iROgLdFk >p?G/ oZ*s^@Ѽ\[GLNnp{h쓛r`|sٛ#׮c378Ƥe@z4R@|bi3$/tW0 ^#>VcayST 'V XyGio7W RF 2V^ H}i85FOJM] ጒbO h ڿL[X)/a^ [Aƕ}&1*# 5ydnS#KgVY:OCUÚKϞNՅ'Փ1صY}e2/Qa?-6]w[ǜQX"=МNB&#w-|"4z„;)OJY^>@zA Nr@]I=:P@G$M^3+cIeޜx6[xB}hkg>rr-}~_Va?^G;rUYJF D~/N>s_CJּμB҇ч?s:U+2"=S} ?J~mQG_O)??)X"/OGOGVOŖ_ y>LVzUG9 6 ОgkiuB}w_N:{ѧQ %tjEV'|(Zˠ@zW=~i6mE_o7!گ(Yi$ac6TuQwwɀLso Tw?Ҁ׸3öDȮ^5LyuS;q 2;  ,{Kb(0G+ج )|%&'~#-fxS=P H:v0#-ןW{ `57 /@D% m|DX5rىh޾^~,8ҹ(o"i5NF `L!5+ -㯸^"qgE4{n|;?̢"Vy8\[=nF+Á*_5Ϫ׍amJ Fi|ZB^ vrD٤GKTs|Í7y מAz57H:]!8!%,0d~ya@`D7[䎌Nmko^k6:u|A(`r n00iS*=^;si^37u![X/\nXPk6_"BശKiڢgMs k:ESb$ӱϳbyq i4kuj]gQk,rw#322vYmJ,zg!#ce7Ep8oA3X>g!Z PnI%c#ޟE 'ߔKy!@= 2'W'EgKh2u#{OD ?aBJJ**'~faų7B8K ߯e׆uNPwL c4ngp9"wh| b| v?PԯK8!dS >(Qoe=a;R[+b }.oRLᲖ#gz5j/=2)6y٢RZ/##(9&1nl7clj͝I3ۻ\XZ"F b]cj!Sv?IKpۺxM}j'nB_Cryps''m=Pe ZĹbojm yG $yMJb#f>'CK`҂=AfSIjp D}]/`}ʘ"_'y8by# |u^I8 = i&Xb&g}ʴT^o'e8heh-h?jZf~ŝ'C}KXɯ="JCJ7h.%61(HI__QH2Çk)Diw_0Oj/FdJigHAUH} k,-ww ŏhưQ+vxf+',EQ囨چxvwPxך`Q=JbۗCꓡ\i Σ. 6 vMp_b&(2gܪ./zzٔ13ڞtoڬ@7jG2?9aGA |\0E-}?l[ TPy]@tIw #Hm: DQJ;.Jp@D/F|$!v B{&&K pR]iї<{h$dM'3q HW.oXj_f[|9%?[|L3(A[K\(ȵR]xKn?D0/2FpO;nxӯ)_i m HKPRs 5*r3;dž=,EsO{X 6ߘuW([] \jQ;1kk~er`Ud){R.]j74bpBgbW1 lʯ84jae՘}d}\.]P%2Jc9}BUZy똦Aوf--&*NMC{͔lHLfp4$ׂ~# Gν.tVn]s(I1:F1+䍠Ðٯ *IiSPngEʍ1+-swdܬzQj({޿ ez[JZ}8vדaD\u`S$hkowFWˡZV .樴"Ã}Nl.6gL \0 C&/gg$mz ^]@x:j㛀:8}}l͈my\pwv([!\]R 7gԕvP?|OD_|53){\S/e=}7ǧkvn㷀G2jY{b0}`>Vmh _a$?VvM)g`p#Bnd$C"?O81JmHi_}3\t/,sa/ƨgKmJ ^1pQHf,]}\a==_&'(~zuzbj-ͪ,R;t,1= :u"dY-E9 k7z'~"f)iuQT1tYv9bR ^x4@/Ԇ@Ƚ\Oy%Y*ܗDH| ™d,8 3վ{s r9Qtb}K: ʱ HGP?JC*LR9j?C=E;_8W!M,B0vV4sŔEi:DXr@|j$&W 'vvD2xN=1KXZ@KH%<$luǁ^Éf_64[~m=lQk5 ob`?!Ʃ^l"Dq_q&'7$bk8& 8hm l]Z` ٮ6SaNw (ቈ~Ǐ_L)i;TjD\"tOΞȠ (YNީKJΑ-Epd㯎S>Nx8#םFME:t^B@Y%pF( P d,c|8AUZ 2}j[ήS\ʿz[ZsO6c ޢWǡH*geN2俣QGHr T cz$ kbˆZ5 ) SN0T"3v*|XGjJos{H&$6 =Бcm =VYYsoD|J6h Yڔ ێExK@~4ntgȀ{ eٛY 7U윯Y>8 >7>j{{.g:AOpv0!K0d w& żzC6 y NBXts:85wI7,l*-DqSیw?ݜ;1YRbѥM2I$ 1tLwmL*hĒ8du΋ :Th{9S f qmA:Rq:xFW,`V3eG՛S\{:G{,A(8b$T&Ň9.OO^ #&^Ccv 񖺐HLn^ ߎ݅찥Aߏc5쫾wYKf!0xKUm(D Qp}6uhtDuf[%{Hh$Ϋ|pUQoâ|lpb(9ס_+{:Fi׷ǫF{F]3t g,SC#$7D)X@8_"4LoB٥ 1ݡ=uՆRFH8?e6Y7` 8Ҵ YVٞ,!I w"nV?kƹZ| .pUG=햒$ @r{" /YVZLw ˡ4O_{[Jз={|&|hBZ݈<_, o>00Wb/ > vۊcJ H@1N[nۿcFeBD[+M1v̝?L'}sw1ΧcxzEPЖxe6bEWw*"rxwojR]ݴY`ߚyҭ=9y}6+JҨduaa^v+Qʸ9?H_ 79qN'>uɨ&}s`raaw Ȟe(:tOLߚ%<^?gNFՔIj =Igק'EZxC`0 A GD 1O*Ϡȏw,~Wv9^6|@CxlEenm&z).{< *93kTm(C_xsEAMyڌW4@TUg6} IZ v{7;N3V:}8:EUps$K7gl+нK#ʿ&vrVnj'XOXN7.*18÷O T ݋'*gYusl<|gE ;;Ff !ENO2U6EM" |l=c.y2\}܃W[nlڽ(Dީ8]N2!ui6润o[hօJ\ս+iS߰U. Q&<_pxX-38/ %=Kof D}EW3n7z{q>.xF} qn_鶨~+2˿QSnD^)|L7 !8[W"CM.gCrK}# ٹi_ƬyjF,C`;6b# eG;W\Dq,$w{}Q 3q^@{%b,B5BbuB `GBョ,vmϗ~ԃj"׾_7AΞӲKBqHQe,N),Jk/%۶z?T٩$rzhN؜4ҏ;o;Df}F9m a\a$vfPBs7s679ZN_JuGWv7@̱^D3P>h[(3ZU.dFg|"Z@ϵ<ԇHԯ^幮,t~0<9;:DE;1e |hr!W .e8 #/&fDS r~,zdzPD[ۊUF'JG#(홙ro8V؃$L4ݶ_'S)5L=dGڟ]1*e>nH`O #EweG\w4ŐtSh+|c'2+D.fg&鏹()Q^[eOlrСvDbϸ6ָٕ J;Q7jͻM[CNztsi_ h0G AZsxUb$M1萎^ԯ뛰>Cjm&m~ WWdd}eqGʕHC K]-a|CɝŮ3DX%\&\`+MPi "@jP<qK/%eU5>Ur1*&$GF/~}(Ȥu/Q {DKMei)sω$ 7pfcqEuvģTU>:@e`C KX욣)ڠf#Aii,Wf=Š1w&=zŜ%~mu#xn5$L[vċ FdVJ '|vD)/:k [ X:m׆ai(955w Bfm(ΤޢoGe A_]=79׼1ѡ42g7_e vL [\DPT"(h[}t-oI>[!)]Z)U]GWT gR֬&ЀI7rso1AC/Zy*kl%GgL}[VqW} S17uAx{22jЦnq8A^$rG2g a4?)%;e&M *oS2xzҵ^YY1ˬASB]fNġ"/76a_+(N <Ø fpn F|4IRf__ά~CXbF7F9 /ǰb\= FJFLZvml >cnF\xxuo?1Y;GVwEJ79=߯}޵/jnFϜ"0~A[@$Vy;|B9 vA^-%_r.'6=/xOorب(xY>]uq{]TeZ9/ yRX`\X΋zqnR$l`l{v7; ɽ5f@{@9lxz(tk&ؠڭ~vkl,+vVQ]uq?v\ԗSw#Pc:G`c.e``j͜ x)_>Z5щ[[^M}1>%`w4`N}JY/4l>Հ*R-ƅ_VE)*ݦM `t@ÝVH:~_K1|瞦kQoVwԞԠTU<^]F'>V_MnkGHO8uA1fPS}xIFI"gS\Rer;9D/Zi"fkFg $W %E!KZM=L:`ĉ TG*8cot!=m2ZƑ(˕I^ <Ш}BپZ/Jt1yU,y8zB%$A÷45RZ+pOxbcQ"so (..ZST8ƅ_.,43un)cWkf*]Jl`~yYm,cvijn@E|e1N!aoukA?rN$qp{Xzn}+\pvZ /4ݎWҹ̀)lwF@Uo^JT\qs)Y 3( h%iLҋ(35WEO2~`6 Ⱥi]I6֝=(o_B~I%`~qgf3^YZʵ7vzgՀKѲA2 a.,~xS"6h=L `%M=d!tIZHHh 3Zl]9<5> ڬWVF̪e-5( zƛq7c7j^)mM\gIj!+j)ҞDWn, 255N|HSqJd>'b TkAG g.{`*VuCl9Cu\'||ū B#$Qrat=&Ai75I +&Ӈ?8@:>T١D:5-7lAx~ꗃv Jna+Nf1~ ^a)G0-~*mLM مRZCZč, $N9Vm*mJ"Le9z!_R][ULu \F&e73ad/W ~dHN5y@6b9* %m+Z%%_Jۈl$Fna?.6*.WჅPQÂPAFqũ7u=`{gx;Z=~~y%.-Kx>C麣?/Ó\ą?1 2&%|#{\?l9lKLf>wWG6Otv?%攅8?6&5$00T[iDM~=7+mp΀jR)3ɂLw}]&Jva+:mnouQ=qa%<&9>;UkNE㻗) 8 LDNۯ!GJ@DWuTWbi(1g3% 3Ph"C5]VEt̨ΗnOϔ[Χuoe:e_p4]-| **WM6P]rg^&*`08e]Q2<)XKIW >q'o2^|+İp0Kh*X_^fm*U2Y.}pJICbcƇǑe#BKnl>ygx\Bj27XEv9Kw3J=,bSR9\MTrO77ΪCnplW}E>zGdM'ВF811K61|+Ơ̒`?c>džb`VvRX9ؿS&_cqRke":{spqhJ\6)oA;_Up놃}*,s>h5WM,7gBmZKlQQHF$$Dξ?m˄qҥʼU*Aun*6+@ە)>-{xJiJ]Ĥ+?{Dļgci]Z ^<<'Bg?i 9[oOMl@aDc}N,EЖYa-BPG`%OsEv[Ars8bwwUxJNӵs?%v)Oj۳E^c`@6H1.)AW{aY%[_]MRNw 6VQ,e_?-uHFv5%G ?(iD5WcGʧqFe!Ɔ9ΓjcO!m_Xw!n<2M"'s˘M(@|L/%ɮ(\:ShBWsfDž g^ ^8Xj6!Kk>:hW`S_b0:!XNK Usّܤ-'gMl[N )=3۽hwN` %XP5 west|ќg6my0סi c*=䠾'MK'5^D ^σMōRc, "+p3G@D"`ɻHCT~.HUiͰ,5/XMݯ> šr8COG˩DA1j(q9sf,D_bY7fƢ.mڏ#XdZd m "[-=TX#+wO"+o .iX*YH#MۤFb$FVD&t;xRu #9/LE61i5_{QWH@{cQPCe_eeŨ[1&q>+Ͷr}TRJ~8^uG^;S(-+|1q=VDzeoW8$O7v.^sA%?w;myHp0a$&JV&8S0 6b1.4GA~Xs2O[e}\Vkv`Q>jC3+mMc3I3&C")HJGw3ْzt $L`*gp-+vcSJ6=yQI7b,4t-}|愰r̯L$T&n'L[j"GZ"So>B'7Mݍ389 'C\Rץ\.B( ]me|z^I1j}ch_Vc^c˽i6ݶJX&G@VK̦lןe(.!2 FЦ C&mC8Z%l!J_4 nDŐ]fWE-) pc`k)w;/Im{հ-`vC~XFHљ̱/_Y㈡yc,aiS)~1IE숿=27um.[h6NٽwnW-b&#SNW{czu0+uVQ\ZۍE{u9'IWmbEg$|7RWRe]( }w˃sr'; YLV ʦMPnd#Fl7eh%Zxug 1:"}:|^wD;މwQhˈS_U8ѳ[p2^yb #`80~>n .A _PMg/exƷ_ ܉UH]RxK@uܺn7;ki6*XRo.+Z&M>hbfjj^UM# G4{쏮 r(&ADsn_ѓw!Zv6'ow62z7.ֹ P%!.(9mX^j坣Qi[WK=+H\I?D/;4,%eS.eT+SK~g};y4GP)wuCLߠd$AR~Ԗ:ujvO8]J/3Z85_ 6Qjہ` +smJ5<Cnmp;ƱH(tک˟p =2kj‡C5OR | fkOaUAkhbB F[:ƾOpSz䊝(պn{"~羠wں)nw7c'wpgF2S!7/`}Fljpb!Ww(6۴7u_?Swa_Q#6"y";(o7Z;KyLWA)VC4ՙ$a^`sk~,Jk6dnˁǩ;r.A8uh?wf$#7r%IrɲqaiALqTa!&}Tw!7xe'[pH TdQ_M&m_x<{[dJ?1K`5JYTjo~WǕ.;5n>d%$غHZ[zgsd̮ieNI@&kɮ/h6M7k[BODyg0F9+S/ߓĴ \|Z'ί#mmT$d3ޭE+2Xq/Fj9%sUfϬã\,g b5GYWFﮂci9U%$&n WYҲo&t>ٴt(,:UޞXFjmnaOmi:7_Oxь ]Ufr(r3ۈOgoi}&e hs-h+=\micє(Z&zhh.ML-k݉*HXAPnc}3V>ol9ZgdxafE"DV;Z/vaέ?%Bnw2꒝0Zw?.ϪZ>FG;q5KEo9xCLˀssd a-ѼQMQPTj SMȀϏ9G2pc}IdڊGڃqiKr+χVIeZip pW.&j"PvQ1~L9)e7e܋7G%В$ Φ/L` $(zxYMc!(J|"^TA'ݰ[E; ; a:<^`iGksbMRk?/#c?焗3K Vbޕ-A1R"kqC7*p9e_a|iuZ 6|v׃ghӞQ}3B2DuvP.:tϮ%Je" 0߃:SnQڗh OhۥP{ЇÿM!ig25O+{Dž6Q=lמ<3;Ɖ<4<7ieŵ,׻ekYco4^oVa"dtp^/|A] u8/Kcp {Q6#06zM=i t-QZPuW˿-QΩ0tN@°"pe9!0 R%mƋ]D΂Y%CPڅ{"ߒ`v ~J< )H%uQ^H1o)yV.z.y `WB`y dIxJx})pMl!U'_HEaeHwD|ҍpdvH4Zad)3+X]_؄~76;^UW=eRC'#A ҧyk$_zF*B|c`Ljjxy8wXL);_'v#~8FWn&jK|2䓗z~~U-";hMK!qDܱ2x{%{}Fqƕ Փ:8!.qbΑ4+>l- |գ~rBT)Z#g ̓{Ini HQ`V,!وq@ )qmK#gtרJNͬqq O%̙JW}$[A_w4R gz3o b8M~4DQ[x`館K84t=1|+ȩ࢛i}?S,v<0KMZ([)XSbshX md ׆cBPО$7v 뇨Ay;9qrd|ɾm!6K0^h})qCa *u} SQ_O'ѫAJ=o0Ir(">ͺ8*p3}vbBٵNb~Y[]X #yEn1~9Q%evoӚZiR];G_x0o)ژF(8F)_CDk+ >o9y$Wm@Q %D%! o::,*7[`T)APyCT@L.x<`ھ !*]'N19Q3u먠dDo7c\R aDί <1c9ǎb0'ފO~-E+DSREalb6ۗZI[/o?)Vz.viR AxeLxM_ăa]mku<B֛ZĞ~3a@s7vr]'L#l N/FN< /fZ$4r7y=7E<-ݽȦ*CrYJQ)6g!&J먼k0Ed=K vFR 6ꖌ`o2ǿ,XXmWTm*tv`ě5ݔ@jYQ$.i`7z0$~1eKvg?i-R"dbp GTОmZ8EsRj7&2QRLD,LsnD.59xf0u[.&`Mȡjɨ3GMT|aЁ$K}.?Dq!NlO.PxxKsI"ϋw ^zKm7؇EDXsV| ZZc]7Qs $4qYڤM-=).`^s : 'eU`kA?EgaĒALƊ%YCzwLnжXU3r~1t̬^[zjB nl8FY桽.]p5ʼnÑ yNkDHX%`m5f55{e`U>~K1[BCT%r\? cmƟlIu%,@ֹ7" ˍ_ JUD % ZogKJ^[qK^jfs.(9(aM+dWǒYE\O;mϛێh9ؕzR_M!k"%tqd#rB=oaEK(wy6}ōcauOA黿OǣIigd")wt&=zPFUĎXn|ÄsRb^FiK_L/K}8 YRwBn~-:ʍD|gx0%;rphOl_nC:Jb.sI{<|$"TSީ4Dj#hO^9{]Ţ|acQΧ>]8 ^\ζ4i0&8/íYdH>?uw(Pb"M;ug?*"V}QVefQ|}J30dS /q+31tq +SgEf-TmH35=XL^D]r/NG&lH%IsL籩U{xVz&X4îqikt>/eK*iYw#m'gvoq"l6{a$k! KNt: XF"p6p^O]YK"k-, 'jOMPP"/>  ɸkl kj RU"$(s|A}] w=vW#X%tsF\cOF%g>򭽁1 k7( cH6 ie_26]˫N?[Li 4R}>_5F$#Iz(nd"E5ŨU)0.Db(Inrb8xfm$\1t8 %w 'xĔ1ClL]וX?:kr_)jDA~O(QyiE}֕b80SLVسQHف+j}t~mʤd&IW ^KUߊg!r+-\WF4 -%m3iGîU@j^PqK͕3 sw9QH'V^\H\×W݃lBTXU'PοnVA),CeW MyS];6?+ ¬v,>z? QI *hYlqvnEzT&v S6I$dV=ޱiI,n!hkN1hfZк^ϵЗp y*zk`u)NВڻE_bh{ck3baB@I8xJmGئd X;1@7Ax (StwQzM\ 8Ǘl::xn|TH0P$l>I2l3roġfTRdoJ [dPIZ.3C7mNɭ%֔X Ѐ_`^c$aO{~Y`+* Þ6a)\Vn}[MCc%zS %j՝K; \:ѿT1ZvanB}%` 1%#IA+X]VUND~PIԲGt kgL#F~Q(jap+z6ÂوN~u#NUjSlRo?%2#iߞ4]!?VBo$.2?N rn:o]S1 ~8fbsU3ĞBUƕԳ>9yr4{>15-*ƩY8|cPpJ2.Ab{}8%TU}epӿ<+ R_UT`L٘{h‚?J]{*Z}|aD$Xx  r6\s]RNQ{r 5ciW}^As\cpMqߏ}Tyjai<8#* b1M=;:qN"ȹs%q (VO4{KA|.;UU(јȊgK2fkއz;ِzBaR(zO,$0!Ex[o7żlw>x( zDqǢO'0b͢94Gr~(AC:A W 7($#f$T!ӈfo{ VAռt, Mq4syN=*!0N]p"8j#5j3oC|Dl)~-ك(v9gØIH)`=Cȳ }:RΕ.c+(凱f{cl!kr>T3JR. H%d9O|;"nBBȈ}5S{Jo&5y͏9}6.ϥ'×6|wh:1av3δ}fOC͂O{"\^tCy^{> UlBj.2/ K>n9$\1.p*%M˂?3Y*zϯ$UHp+DG; FLZ A@UF )08 3j{/AuA|NG;͝;|]4YvlwljKڝ`{.洖6#n.Ӥ;_Nk՚ZPK,ezMkwHyǿFwr-\KeY#Hg!k>Wwz. 3gQJ)6` 93I0is!8 '*V>nuzԜM_3P~͠\Z QS x/!l@L^%ʼn~ܮ2T9e~@K>V= )Cg~A0VQ2i N )+ (ifΩ?[d'_K C_q܁wo#rq89} s>~0{P3K C~XLfE=:BYh]A}CKH;a_۔d؍ ek{ֱ!J40 بl7M_rPo^`Wg8Ȱ8~ˇ@w5sH}@"k(&YBeXJ'?ޛ[6 V/2UIΙ7M~2&&K܇r_Zbf87ٗR19[IiHMr qzIfQQ7U/̺o++c6Q3b|TՕrzNhiU*:*yS^o+:?sVIY1.p ciOY`钡[OGi}?-|XZ Ss2x?nޔ쇿^ͮVҩ0bYE[D'+i"j+^+?`*$ =Rjkot y'W)94 N@ vvʜ=[UP.sZ[`׬3;6pξC6oi. 0)t߃H) Ibo q>f.u-RH7^Swˊ0}C7u޴EU)?)ƃ$L(,?'U"V̳5وBG/0 V_ "7`{Pnǥ&9!`8ո:/L#e.m}CjLF)PV)0a@*i yr8^Baȭ|g{( B4"j"fl?HRjz J쨅m"Ldm6PWC!auA53~-&BmX @3Z`P8fl&ӯǔ#u+2o|$&0dA/o,q{&n7P0؏SBayKXH?&OU9)sDό;Gߩ8dT?kA3U}Z:]1x%C)C^F`hO?-G&1%qtm|"IhqOUu6xKË~q-&!G6  S2OlKÆ0&T$"fͳ(`2\ܣ7?+ywҷ1u'21~xZc2@l1ډA; j$%=3^{q'pc㓒Y8li[Ԛ2>c8Lw;K =@^uĎU5+p>@WL.ϽD̾n"4iAљGv<ָI1y=5-#x/@By0f:7yY7oU[tqb`gmG#o4erΝ:_#^_Г*X?=]&z8ZaE^.iN/NwIceeif_J("*) B=oG|'YPL L"2yGɊ)i.Z2AOi] +bXAjnK~sR8 oǝ%ұ`Yn` r}M+җ!ʥYNSxY,0<2Mѿd'XV&&vZ?VF`JEv=w5f7(br@v,)_ͿmN[$!?lP#m;_J_%R L^~B0$𙰌xHO5(MN~<>6o~L ~`!T ٫+b?nm hx$dLrڷ'~V16`1~;U×rGLD+//`KpzӖ0i[(hc#$ct:[|t|΁ S):}A_3S pvl{y=Q k. ~g|6 y͢;榿t;d -:,_2(+X}38,g]{aۍ( 6 _y fg ̌>v&#Vš3ٹB,뙳L-OvV`_vѮ%Ҿ,6GZTeL`tnaCU܄ _BI?6?7r٧8߯U>~ͷO˕RM;@'CmSHX[-;#@%A.0w%w lVY^9B4Vm2OڼQk-y:$B٬?oJgKvZ't N=sa:ܕ*PuG.ه|92u*|UC |} /9nOL9$ǎ' 1!sϰx=5 =!EWYgmX[VC3jy҇TfAvc c,!58?ez `դCԳ;r)yf6yOc>o M$GTėpK8(BX,iC+~D2rm i@#w3xV,pjTQS"8VV@"J"Y&% ?E `T{Z^1 WD72E?W=cPh1ʱH?W/2.>*xqIwL Z"d'cJ`L 7|OĴ9*'9O_VT^\q (ڎBLlxń%R|L5͋͗4o sń4j[$acۉ$sa^b!Pqڼ'R0(;X'G 췚|@??+՞ZNJ#0Vڨm ͹a`QY3Z;n-86ӇfxY~i]T0xXm-} |,6{/ *N;:Ѭ>'䤯!PKS#~`3e)½F#Tzg߼o؁ܠC~`J:`>Xs:z[5'ϥbSQf f=j 뮸чֆ:m .^B3ߦ٭Z |ymJ!S%ǿכo%v}+y0+UQC֐ݷ̚:M.yh%)[4QbQ]d< o 'aÂunؖЂ\vx%n^sO8™T7s׿e ydƔbfړhGgGr]AGھQU%;.'k6>pnz!|.ı١#trR6SQueFom{9׾S;9}WGT!*_ V WQ,39JNȜ{wyp>7(7*޶/b[&:ϡ0 `|7zT(u ə4ens枲ٗFIɴCAMFM+62[!M^vƹ^޼.<.m%ث9fR2p3?v)ѺDHU)Ko[7j% jV۝lw/呗6ayQ0pO@h2^6\}jKX:?~//czPZe RYY o?ʊ6s?{j[67dM4Oؙ'2Z}aK^v=)7 ٮc*{fYktgRe,Ry3CckdLB aqA s~] Cs>Ƃu eiLW_RЧY(%oi:&ߨGH,H!l3/Q}]\:K<,זdQstl}>j U7CƏq%҂V%q}mčeͩq)_p{~0jR^_?ZwW:X yF8 @^ϞRJrn-{Y =/I,[_o(pyuo>JW}[$ˈjPW0jթi5ymj Sb MTz ~H%m70̈evڎlw2db(eg*?ljdtz]3!}ؿ}췏~i9Չ-mV6ĵ|:}f+vpM v0;05vaJ6|Y |n ݖ-Nq LQ2!'(߀Ö*L8ޤ]k-M icl\Ȳ.gZo2It=H"Ns5P?KJ`a"q;;Ur-= X'qnھ20Q;R͔HlMpXgZp0u1榪b\U$ qHj]D}5p^ټ e6ҌfSۭ̘X?j 4›GU~BK&K7sCd4vI0؛ ֿBYc[7l+ZDo [XL!g/ۃS%Q{w5y86}91PAB~^~hMk?T0i]tCYӫa YPǙ|}/R tEIH- UaOl@ Ӹq") k!}zĸDpzA4n~3 W=mq3Au>N>8!I{.AlRLv~P^V];M"ʭnXm], 5ARǘ+ъ\r@HQ#hNT-T^8AvxOӔ_ E|`IlV< $bnΈK|?G`w|[3klL-ߌ +a/aمLyۻ$E$s p?85^yMm;G"qRG.'7sv, #9Tn|nBo !O&?&LynؓnײBy5$_g6thW?ݺ uD(h#n-,Țe^fp-o,;Dz+rPn>7T`IyB=F'wX7błu|PRc<rוĎOz^(߇}Z܃AN)qAʾ/?koqmVDDfctdѩU6 },\nPܪw,I P@ >[,D <)6 5 Wзco>A7JI8h9~ND13o/48-f/+={v]t7[f_%5@3^DoOR,i0qgI%qHO-o'~o̳Đ?!&J/ e-82n?L`7UԤMzl^!2Ǐ/- ;9G-=7bY']r[a&_CF˚+j'm-hY%md ;yx?GąP"!t 4bIz(l 2>詷*x?JcA$"<β´X3l*ŬT,8QY+^qnJ"{>׍hؘSBˈ[7ŰuPOL~IN-H#QVe~:`[D:87~pM1 &*@&@ .$Ձi=g3Ȗ䢠J|_"~ҳ7_RK4sknKNY@iN,I!)2vv+dQ~± Mx${9u)Ӄh裿AOXk-+h6Q 6g:Ie.w0%MOzD<҅aU2yt,akLx,`Ϛp }AJ[fey@ Lίꔺ6o/}Q)b}c8; w{ouف#< ![y^jbGS0HrQM7 SmY)'9wDPCp7gs9E!ifԅ-_ƨtGS~X,64ۜfoszCmz7ą&n b,n$X-sӢs"!$C8 ;n'U77}c[,UաD?+4̓;3 q5+j4D'Ϻ Vfc1 SO,Y.nxbA8CaGiޠ=̩A+27<{2phˊ҈#4օ<.19A%2/hK-Lx݁<6 8?q߬pͰd4^ʛL̴1GBYok_飆~:S_\4L rk ^_SͯlZE9F}84,7Olݺ["%O̩(?(ٯ19n3OB vk%ۙ^CQΥ.-[onX}v @d UĩrP&QU{bz̙7$g֕9<.Yf5S1esS c R5A~XdB ϞH D<4B:10nO뾘镤~j0fzKZ'xS=+op:dNZR=byCѶbk}7M`r3 md~MnVg>c Ʒ|aI07Y۳l֮S pSyҢid:sSlv@}3OQ nFƞ_^g3D~hMRؽaђpglc'7j 崍D9_tI7(Age ^NFo eDŽ!O<Y/+5VLX`,ЁIZvi>YVs|,ꇦ :.x܄ރbicVN >P&qвsEjD7~Fi1Boʉ9i-0q?rkED*(KIT)-C-hm1#Uȍ:)͗d8.Ab>8L_g'); ~5ߓ^/NJr^LuKg 8w <7fy;f6^O5)VK2ym)vɑh5gj);<Ȫ9S衛N´i!b$0s]g<6Dap7)Ñn]v.Hڦd%mA|5V߉Kpa$ c;ȿ\fM,1{غ63GsG&ɛ1O\Wa,nf;v\`&/C J=-1~JMf5'_[%kƧJ5CQaY_^gYD #zn"F? X=;4Wk mVuxI3J}j۪yQS}e F Z1|%#@gL/Pn6k +\64OMϋw6-NBǸv9}17]?@S/q$/@?t>0 3PS^S.\LPdjwXo(bY%Kc-Pқ>o^8 Ë.`@ 5:555}] UE_!塴C_}iՅv0Uf^e7Mh=  ʮFOU&O@!́*|HUa%`͈]'Wcll l^wO/w69X5]ⵘ9TR͢uf^F&|fafէn؜ZPjj9 WwiK59]HuvJ2.դ;(̉@.}r+ڍ*F{a^IsTQDt F=I~h:#ȏhQ#\ x~ͿBvx L z%eRRr?IߌIN%{ @_= rAdX5H:D9 \c-0 cCިn]9HBekn}mnʁL%NLfIXa}CY=+G=p,-vH7Mm*4-}咂uj$)2~ϧ,PExIi˴A&_M& >~ bzruS;zPg 9KjW=yoN:E(_}j-JV,> eL~c;%wqTwx bTQ IgLQo.kpP]L 6R5B헩 G+mTVktql:S0nŝܘxb1QL&VYX(03`{΁{ !k+z9[w`8x8֔m Yϳg@*Hr޸xa^,_ׁOĸ+^'LLsL~d$,jt ܳ$p"l.'5n0юQ*xA+u݉RR G݄emI1Ƙ;<{DdQg ,+X-ls4v=3b k" 8+kɌ2o4glւAYu<䘋8䵔0^&ݶ z.*@ gcluK᳇}s6\*jZ(Ʊywh4}y-צ\r~ >,H ;b҆MgJ0ux LNta"@h:en2+ϠS3.XږR<[ OkXL!C ⶓs| eo|_بCsc1'4eΏjq+7+! pXXG #,:ew BP/W s7ٙMS+-}:,cXݐW2v/n+kP6;|8VN W&$ |*%͚5YaKϱ!ģZk㢘OUh>5T[ًJ?3V2߳ӽnBR~=Ur0^E-'9S鶚;NvoKbo[g/c]sT)~8M,)><[xeݟmi|YG M$; wfGχՏWWq0p[ )q-Jp[|ɹm5HgεW4`Cv1O>(2K|j 57<"իk6N ;р>%<2U wބ|E@7,3鬂qH3utW﫝}"#R#B@GNT'(cw])+Tlj//tJ ؗuM}Ri(2WyƔ1'OVo)CS4sp'dt5 o >uS.mvq1iPX45@fU^>m_Aa}H ϝJ"3If]_н7P)CN76ucލAYUAI,?+Аs~Yo,Ĝ{Sa8e|3,ǥW:LR=`pSp:9 fO~ ׈!Hv,_Z5@?*'V%o2O\L4)dIѼH6˃*#⤯L_۸.Ѳ({^nH_R~\+Yli%s )0o}7n"Vd(3,DW_ $.m UB,ɞ^H8u/T!+5 W R fR37}MŐJ42–_Fp@y,Jc[P.ݤL0v`pg,NQmykQ ωWl/x)EҶ/(`<[ۥRUaY+{]~^;N rOB{(?P~j5uVr8gϣO:?jkW /'r= eKq}]I]x~4˳NCJ XA\tpIҸ 5S$ uP#+0űs} Ŭ]cU!e1&zmt{}jR6mj>t~?S6T3V -J;1;+MEWMAu/ j{6o^MC_|"}೛ooiO8R )%jet@Q gOh%S<$9[Q9Ojg16M@iMB#*~xԩUBJ;6uLFqk,tuu|޶E% Ij3}Wb;=;Ɠ|mqlQ:l+0̓=>)V ߆yG}q ?.̺ʕZ̐Wb';85ۅul7A@ڲ2ӊQegz 3(OF9- {.ީ;z=4j9B0>|Ȼ|˓7+3dNZ/Lo>}4/3؏PYBCydyeUwaU׍SB#0{Wr [z9I>Ś( Zᮀ^Qr^q}-}![Rra.2x lPC%Ǣ%>\|ί Q\bBB$6PP~ˊT)W[X;zne)oޱOp_`pL䵙x:2}9 S2:^*eś= Rꤷ8eӶ587_ۼ%Ŕ ČMX:/ lOi]-eLWx)+w:c3,܉W?}&?#&wd#E܍ϗVkJH4 vr'`h}O~SpZrϼ~FQsxsoʘR[nc3Cc prC@ &0b\)n.SX N&<|hcr𳆴t΁QrQ}{OC*))oC6'Pb2x$ET;nHAvB4u8Ԗ B@Pti8m2ͦhbZJ "ӈSiWh+4FktrQ *Nk֘Bk~loڲ zNH U}ZMS!uMhu޲sUA;)o/iվ 9 aLDzϻ8Ƭ jx]aLنRǿ ijm]/(c'~ @3qf-0XHŜwH@ۺ̙!AEznx֝ ;5͎n3O ]rͿE~6Ic]Ty1oXUVκJB>UJdpdtR^`]{ߋpV'XF0tx]hH9u@  8q8v6yg4th(sLs%un-~>o[ti)'0x_tݺ?M|'!W&d yFH andʖބ]KezśBo/8{;JC$E )^OMTBPqB('\zSu 4ݙ%EϮ_>d\075r.;tXC5ࠁ=(  PJO j`bAo16AU-[nPto׼V:y\ǽ{l|ĵ3~A8Э X_pS=a@p5Mޱ;~?Ż`b*Y:s~Ft?GW,W(s/5hT\&;iȷ9pc}]kD4υڧ}pؑ0-Pu9ZGgU/fĖDC4a+#h `հkYf2):GNbL;)ro}5ï݌i`IZ3 ScPn{˔yn@AEp;'/ 3U//(\J;U|+wJ34sf: Bn|sqFCFۘKF˗=P w=D;@Z@Bm܎slpr.N2_Rӈ#O!2*M@W">Ӱ X3͡rr,A]擄 :4ù;wj]$Ly~1V?D.R4p[a)cE D_>kL|ʴJ~Lbt N^̬ty$ew8 V~&ez%*FlFup~*[jt$}$7 4~DڤajZ"řEfiIWDlCY {1/ҬHK =5Ԥ][kiI762,QLJ*s.%aJţ?5|%bȄ׉%Lγ=% vXh^3E݊ɘjO>3mnwRPimI;K`+JxyU2m㚥UƏ@7XxeI9-g"M7 inDZ.6W;˲o4s:;#w$Op &_7tD=;'C.}42$^ hU\g@5Du\K_ 0z].Խ$QLyzIpgmeE1yf,Kک|g$nX# M\2I߾\-J<[O_|NA{9xR#iT9j m^#)J_#/-|@d`5ħmu"κKqukM h&-#7;+&F|ij`ǍxkP\rE 2cyhȬ}M@oOoH!DO3rfwu{POuNo{|B2im=<ۃjџ󕌘_%:ݸd˖=P{ F0|\rN}su̧3L'HlXZ7::+\:p/[A߇\P,$[͍XU⢖ k|7FòNPE/xp{Z1BjJAwlny3EY$$k_ m7'qk͒] >#qerGoH0p%U9I9snxc3{Њ Y5xiFȹ.s4dLҝN%t_u܉|aՃ_=BF{ O"'G|Z'nt?I[Ro6(N{=rk!\դޙf p_VzFYݩ\]&K,wӪ: Nqer'f w.X,ce`0b)D{$HٍԺ8:zn{{VFYv#y?FGӃKOgxm@D;(dɁ>B𰯆$I{GOGvKc;lۗ ^( Ciq+⚐ʽ;ޝC.eoy')+jFjn1{hxn/T* 2°<RWؠ'ǃ@^$pآ |<{^z|\]%gVj}4txz]evoL;p s&cFӘܼf$ʻ@_p.vQpXl cJ 2loTiۉSXCe1Rv/%VD4ٔe&D;%\FZ…~Alx;y6+087;PH<ޚAbLlߎQI"3FL[L)v&Vb64th)qHk$67X`lϫ S0|at'p:LC1xLi$畖UW9MH{ sf~hId8dI"?I_K海dޜ5#<ݔ{d)z;QM DW3cF=؟dhf,ZD! r7󞠑-JoE/OIQ kok/Uˏi8?UHʊ0%o]ѭo fzT;9\Mi.A xeK*ӳjQHTL޿~Zv/mqK:iB?ϒ>ꗩɐJ!F7 #=Ηsq/^=n+HJy0W(4Lq{sdC^&Q&^sw=]g6.Vxs:+뛇}%Nho6A ?P> ~#h }` ƤPxcO MA%41>pA>E:%.-nS'n4 @A_퐕('|U`Xق)c=~eO{ŵ9ݴ6 @|ygLFmf4f'' 8?C0kTqE2 2c(l K{wCsaDni'zI藋5οj)CHCi Dt/[s֑u{Q3:+ɤ7Cȃ'>oyI]" br6~뚯Kl(TT3F\%Q%I>VWr8U7FM=brCX^W$w0=q7cOҟy=S^A,$yvv~L리VUW,+J=GB _J;n[OȒ\:b~YZN(>t᥯07jˠ9s &q:X[9Kh\7沤6XAtJda6R|E2&͆(ے˕n{8'JYYdK=?spMMvy Pqz(}%:"\˝X7sMW|nAV?<1C>t=ZVqЫjmdxƧu7 h ZI܏mM/͗$/#w??sfIH 0dr5n$Gf+ @@ٰ񓓽I=ΔaY-|ƒ?4όP{Ƿgve#"+ 7,>7Ȩ&Gs'c#ڎ<|,Uޠ!$sr\7=wxRemPאc. p\Tel7@g+.Skw?X<=3ޅfORx7C73_(}QRWJo)s5:rj5 |$݌̗1Og% /$*pnW3SA5JIk;!lMG:$'1ss+>'ć'<׀ug:,v.rzĐ鯦{d=D8"c]NO_)4xNxe?٫^,uXI՛Oi-r$0LC6AHVʕR0jJ@v<J<|%Q0~slfb\1+7˫D#p^MA@#Wz>ddsںb-W`0nni&'F̸dW3+w~dk`D$KGQy,IM 6$B'1A_dx?2. O:oNgV༡ ![+& DQ,߿hZx!m4zMxO&fC7*j0^ǘ`韫Szqh)E;R h?6G}{c=;gcjZť&kZ4.[/wlE :_XFdjj@"dHm tAS12iȒ| ~GgY Et ,p.2.&h?!]ya-kwѬDAs S ;dgOb%\"HoI+.Ę떋Ӫ(MT87WWkяby$=xyM I @څK_n_[Xn[ o_/'7;֙J[2eϔޗ?G~ЉW=#iaq^kXP2xK*"ê1c29 #ax6_=XQ9q4~*y7 z$$/Yx `3*9ƞ ee0_0!?нyWo%yX9a*#ʽd:=&=>"Mݲ5>%CM:}4l9״G yE@&[WVgVBK=jTC0JmN 9XH j-4K({KqvU#g0@X_EəĹXzXfko5[lEP)SWi;܍qCw@>Q#BMZJ $}A[.'[I"hi TЯO4TnRaz)$jgUR4Jd'V X,cg+cε`|Tw&v;hQ@),_7;ޜI a򬅵p 9Wxlpiv8tx8 }'Ji-¯ٓOxt2~=MohD0NgNJ8BA5'?;?Suۗ|z/QcXܙ3ƍvHܙG>3Oz[=?l{LÍhWv:%=[̃U}v~ĞgW g3<cwv4Md(WCk-$'IeR 鍘 J>)2tmFrwo` eϗLvz~/J!ņS˽=b۝+|r6.mfRl>ZޛCҝ]LM%i*Tz[-IPGt,w7Vs=-H{sf/x$ -{cO1JJyƈc^156xdJ[r rë,m$h&);]M۾^v8r7 ziLo8(UoVqGȉ1;ʷ^Ad EzCIVɉo F!(E$3m,HfT=VϒpPm c! kl1q mKFvhAt&=#h!5ԕ?[W}K7ꨗh-H0 SJ)yl˻1nD=x,PPШlR ֈvXG &d;*cnr8zvc wRe/ь $)=4}gD Ҫ4NO7w؀ RѕBd%"9/3-;x8=THM7supm}}7=_ۼ1UnPAnX"PSKFhzާ2"cn sZ{6w|).#-%A.ߺe\5KqOY%|Skx 4iwc螤6/P& KF~Nϼw;&ývwC~@Q@2ʒQeb% T6?lr/X&v%P0d"gy|HoA@v>![a.:3]>VubmNW<:1 ~ǎ7|CPOjoʆzcֻ^; Ug)|͖vv_|0˟"f<9m'0rvvOCy*䣎@g ua2xzJ윆XoB ] 4rU/3=@w\u0t :ӏM_`͵kOJD75L~ @}(n}LпpGVqSE԰Yܫeh3l7Ȣ~ 5/9zסLi &`q,5v؛f H~JPEE\1q}J@l m<{QRYq$e15hhVMzչ"IÞw;IF8ƛqAx "[v#D#[ViO0Hc-*`iԹoāf'AH^=S?  }{j'Tn$?]bZTj̆gI]~Wfx9!FN*Ll{{&R%%X-mt&}-Sq3d2rSϴ~=p[_tHvy٢7%:4T O;+I[lANkӕo&|& C~)b:4ȟ)ex_}rCHSHxӅ:)):]1aBke ) ܴpFsuKAy=Ys[ozA1ݾLmu.ݜŏ)*KW<TqpQ;ǵ mk)!G`}^M8oe';㵾肋1v,??l~p[l{X{]XðbP^nA+dW.OɁgvA[QXxO,h#^-{E{.bK%2Bp"aSCi+Gd_ R$g> ^j(n m|2_fP>Ӏ͚~N)'bC_s򘘫n<-+"+ 4zB*; {%{j拁#kv: X9m;QoۅWNpNtpoD l݌VR_Fл!)B^?l8]~6^י^*ޖ6qE9_`^6~Bhi ?dZ'uy=rӗs4v$33\i%9[k{֤Mb dB]ѤZ7~_>\uhuyG9/%oqKyc,ִx! >vzG'cjzBР_%dP}4L1)櫈!ҥ˘ӛ]^,uowmt1 ț5Gm+ *z X7Mn gF&Neh?\z@'U@4&R[vv_`%.^V'4 # G O).4Ma<RTy{`)NuWjێm޸J(Qv6z-Fg>8*"CM}-!h1/s=}%.X%)+Cv{0(Et"2}`X$~71wo=DǙ5 8Hb kI9yJJ6ְ?pn;Vd> +:7aD!/LI׶g=Ε+>7-b|ƏhcyȌcz9UvQ7r"3g4oȢ7d1WC8_0!?MUl˪+ڷt|?u*YAӔ:*ȿE[YF߮.7iD7 \UX\sy1>j+F^|{h(, B}fY))0=SɼsZ`ꎙVWB@0?/&C,@ !ɠ k$~=V>͒CmFQșw*\M}>|f-gX N)a*g ==,^=8čƧ+(WkgZ3&sGe4zr'0EgVJT\;r B&j2q{yh509!0B5p9%dޟwxzdp*@d> ~X?^0^T5-%iZWL+J^f\4qɄ _J\C7 "&6BvR$  yP GyC9 &q2߅AR{S}}-$7TQn wBr]'—t} DU0f.;Ž/*.sp,KVr%45δ;)Xo1{sQr¶1ڲUn nzvXJQӇNR-^CsT~Hc=3 IJJ.n2Q}/ xCx[=S#%{{7r_Κiѐ6CH4X|E,Rm M ؗ!4wzYgPؚ=϶חP 'a) ~cCIHü\g `xpGIrGrJfAZcY?ӷw8vߝ>l*>R[|~~F`َ7n0h?3|O=F]jC0QWeݾ鑷kaeI4=jt>?kSVc~hu4vh7+Hz6+m׍%A&Omwt42D>Vr' v JBU?\&<1i2: ;5`B#kuWohrPǪ0QM|S’dJdtY W]w߄`f{!)DfE…ͶЪ!M#'}S= Bƚ?/㾸j!EK#N6^rkl*pPiZvu,0@'įq;1wéO "7Lm~툄zXh^ {31op8\%ƺM- SĤtީ;oXZ3wɥM5{KRuIK#Y#+[u{Km,6~94Db|i8AhUT7Z03n`"CxӐ %~b@|e9k% X)KǵUVnMm8d]߬>ȉ!%wbەoslu4 DvlK `ްRޣU>ftY`7ƛ`}nA 8vCJ2O>#o>Ri k峋ZhU]+*Q>H;M6X$";*= 2K<݆ypE P=#J2U˪mm3I,@Ecr* ܴGNbrq\qFn>Z8RkA] Qx$*Vxr1nk ŕl ,B@N|i:cgR/%/^@bmOGT7*M$H'sn]hH%hqG;<>m w7-FCGV7$TZmE7p\0=aMNq?#TU˲D+#Xlx! TFrN%S!Z#i,瑪:pGҾ:3ViN@wOO" l/4ȧ@z=J+TIU='|ڙ{y5]Q)ΗfV]ˮg-y!/{h7muQs q4 %%kP8[ džjQO WMȥ>Uȝ779Ҁ09g"ڕbdӎ-ȃ|3J˚g:JVeៈbL  z  ӇX)Qo%E+r7 ub?SW-b䈯jsD=k5jD4;ZEٽ:d7YHć]pr6vlUS 9=elXg1Mҙ!QW6ٚ HB= Q7 ,XLb@ O[?XEale(A[xa)g@r+;ﬦojmhC I]D#y5bOo9 l"`u80!E/k^O8x{"p:铂fFba/Pj;êuݫus}lCNT?>@ C?tbSE/h+/e;d*V LǶW <'S*Muf&!}D#=S|Wo86S>p~'pFb^>=) }sSzsK`^8tWtjn<3ZGn ͂ cw' ՚mQ{IXjw: Δs:hrO8P@p ,lD!$Y'17ٶXjHHb q lMhԅzar8Q-/\eT B ^FDukXv^7x8CՐ]%]fl镍m9qpfa3,feb!gzi0%26y*sQGB &e,L gqk_ hsR6hOmVP+LA>9OiY/_$`CiAhj$~ :p@&Q,ORΟ4*BJJ8HOC~\  .~Aܛͼ^Թƹ܇1wu~OCz? fhѲA h%}܃~ؘ '@FjCƣdFF\|$(V'6Uz*j jֿ]j.ճF43~|'vt- &Y@1):v -r(~ -~!jĹG0y qӉ-[Ԡ,@tkk4n-S͠7ƜI玪2C,?nvۉ4ۑ6Lʼn +93wKA3(- K.(2zW"zzF }MYugalF/cX1rіh7ЋUZy_EȀq \U^$-bo~-~8..:MUN۟w| &(>#,^V^ (1t7w gb*Y$ :΀k+;OvlD">R=&Ȱgo`>WYߎ; yI^cB9n"Z4(C>|c_ެp(P^w*D\ ߤy"xBz t:%Rޙ&;9 ޛX SuJ 6qQہa3B8]O!j_ i1DӼy}wm^jET9VÞ3 JGPfFsq7=AUmp׸E%psyuwIj`3;6nl <!৺Q.^]7߶o"l)OB[`c?sUW/Tj:߰uk7E>N.,187?9.tYoEBvѮG>d5`XӞ)Wau06=%tՅiky޾b=aH*JUG0[OU>38s +ijnKZvw婅{oSAVs J/Y_w؈Nhf}4BoHt.PiUraSH89~19`쀸VͶ}+MVc`F!MJތ6ZՅ~}[BqbA\_闑Mdc()j[#sDP,&x)D(2Wh F;_ɱC q_=[JNx鯸?wUvS/0{? azP$9rvbԒCb+8_n/"(w¹S]KrMLvfo|zȨx,"i${M{ȣ U_\{?'taE:sX8幫/1+/+^Gә{),0wKܠ;ɝ'Z [gȏ)h5߱6ςesH}I 3dlH@x)rg=(P>C$Ŏ:JeQW1{nx>c)@8NeF{6CMD^@ppWy$2&[hV|\?`4G0_6Dfa/i1d |j&]Uw ^Q Et6"ꖍMI/eKm#m6Vyf?1G)N6$=߽~9ً 5ÔISFB i 6m[Ӯů53; Q 괒MQDp:i&uQBVƌe3öy\֘#s^:xMx:$PXai䬱0 ,H+EYjҒ+͖v6C3} ='EJgͮw! %|cM~[I[#-B 8dIy#hF  j&ɦܠ7Rax?+Ԅ~j\jvδ%L]熵)ltۄ߄QJ?/~(f!`J]#?m(3vF{=ۦ,Uoglv5m͠`'  f0ڮsQF~Pf6eykߑ0I7AjC8mss"jJZ{ ,2+ MO)Wj~C4FcY#5kg$XV Â;; _}^EuO/kz4A4ߩӧN|&Q^*v(gݒ\C&X_qHޜ Y&='0)<7,~ P'&h[6jοͧ2GAp_BQ"ܡ"yǍ߻$p+vAWlZQ0tE9_F|סW?vJz9sHD״t/ +%~V]+{yR1 ) #U$V%Of ΍s=peD7J˜m˿mm3Ц(;Luf m/X# νpяSMJwT6Q͵fx{x@ [ovZ=TDν/:{_ke,% /G)[`lzc jα_ L >5x$V;cH΁neR_eڛW!")|R1S+{S35tK Z;j9 v)Ĵ[).WI)[12$>P`͇Vy'^2h0ܖϧKH@iAfP%.iv]YW0l#ȾBv^|G{F f$Dn7k#ԑ^r!x{޿QKEhDʮlq,'e8(M%zϷm1 E (|2 QFwɫ z0zTQOk/i3*eyk6O,0mDg :TꚳI\ nN|y "7bĂ<߆M;chm$Q(6Q&[0Il+몪xښoCƀ؟T@ }ڛDii~C)Uw}-I3-1@֗JژPim?V|OW"Yje*{tkia?[6u&$?ӿ/ɦNB)69 )ξ\[P\ųwщbJftkty O)}& C#u[橺*-8ZR"^}̸Є+qv(|kmpSeV Kkv;2G珤0X@MچE|.Nh!ȹ 陬!?(_ ' eu>EZ8J"J0p u^pCfbG3E[4S|"., Q̡E*n oT +ȌRdz%ٻ/h{XX+$_u=ݩ k'TV[Fٻ+<6P|kΗT&0ԋ.o (1V͖fQրQ'ܳѺ}%y4no@b%{6Ev܆|{Qe3ykOh"_lclPv?8r$5qG <ç:(8. G (Ek,sxx(> DWA{N`BB{'t/6 m*%Og|Wy6z=S]m .ޕVy5F䅁']'V x×~l+~{'d4je@ߒ5g?.? 2KIFҀUEz]Qyl'lqୋY?/P6 pƝ$tmn?vzYohfCNd!H:Mv/sOv" cvPOі0,¶ӃHoF&L\-K͖ln?m3fC_1O!·A}T :"o2TՃ-с效n:JIS{)5uqx}&])z{\[*8!|JAkK7f&шMY9ɾ  ?!UL|tYMUt81x/b1'ؕ((<}q i^"yo2$D5sf^հL:;m=^s[;6^x=fap^C?/է%/5= ծWx^0vB9ഝ&> =C&2Sj"0(\qTc$Ǡ VBw8>QjÈ<>?Ռp&3|vԣd͂a8(!gdQ{Ϳvx% ڶ/EHU[SoZڎ&59L =Xޡ`sfE_nwөqwAo[dQlo~6klsVF;9zʢHZmmypRcA:=mQ@5>Wڛ6рOW^[5%R> We\&FVd0G)f}"&>i2áMyOP2X% ο|t-sd%f|K]-nI|7GyH2oy9Z^#&RU9Yzg1$çc ̲`2׈8"x✪))I$w~59hFnext^}MC ^xyEbaP`ru(q-cދk"9DnnKh/m1E?UƗϕuȊ,<"켇` =AJ]EsˮQWUt]D"`" ohٵ ݫ Mwh{,6?)GE8?dő;;"k9y|Kf#? s(EV[8.Qc#\$<N4?(cnP)*$w$ݚ6V"p=˓Jbmry|9L٦zgr2sՌRPRsO/:.(<u~D};o+v|WQ?"6=>\S%7:!:(%K!Ϧ?h'fz2LN8%kK?sbhwCgIbaeHt$.d$>μ㝑T7(>õuXaeiƮ.А]FL'5_Is]qbn5H1x\ر3yg03܅T"ekDJ@t0B'b 0*H# ޹~-c#Q-j&N7qpӃ;,='lBY} *hYZd_>KZtzwPhY^"/nX:U("ƪŊm,W}W־m S.H7w=ř_n(4o$}T -F؟d.8ȯbm0H~zP}Q E)HI03(GbHCÁp'X*TǮs4D@z͚RD3;GQ5kyMlI? QnuH/6=I{m'5s].FXrf<x^3 dESk!ĤnЅi:nE+im@fHԻhX6y?}'%eUu-R'`9Ǒ"a`p?+z zѕɷ8vx8vq@=Vc,GVr,{I.}k!8җfPH;bNpO_7r}I5p֢lgOM9 8ߜV x{'229K/HZwr\܋De̮ Eˁ:Eez@{S7~ O/(M0<3*ԛDEj J=/Q_r{k~_`B2.Npjt/tԓǣwnXX&~ v_gܧM7L\U qd:e[*|큈O /Z9? 9u1RvA&(zY&?Pr&d_ ߄:SnЖ&D8CW4LFv9;8@O%SvmUl Ξ,H' I|O98kYr;1=Z$%!u|\,{hR%h ZV <*Ny+^)Y<~ uB24XȝFkFM>OT29cnN+3.@.pඦKIrOr}z{Nm,zHׇ>Q;ֳOVrF'W/V~X F2SWg&%1m-M:oL77vZYڅ2,?@Et/4!M8 JhҺI2,{$ñZU#|,أˤ k-/͍{v+Y<U_GԌQԤV'X/.eAvGv7hmF26m8c_ P0^Wc|)p!L#Ӳ"I3zFej-lYJo: Awbƭ*IL3oc6:&>Wvq3Xp.7WYZ"NAwT]Qt!;Փ:2VQ.x9X繝kŻj_ՔgAUP4j"4I;#$"|%yxMDV8R2fHUp߃lr.;Rܽ${Θd;-,E8.O *u=3]\/HBDwy֛qmgiU޵ OK`,O(aϬfZmnT]it%qה>cbVY>lcv;楻rh>W?龪3*c^_AvUĺJe eC%DL =Iț{@}k~\׃: B_V !d ,e]YerȋϚtMc@* nY PN;>3Tv:aE/r<^ÑϷBkq$sE"S 5e`@C0(izO'DQ6Ғ*zHxW3㶃g`y>a/6=Vix V'ν1%l|\úP\ɀ;⨕50?f~; j4I4AΙ&"Vc5-9 .ў!$=ztюtn#e uŷju qOgEKIZ a)FP FbSB:Ejx v}F_x\ց 6ֻ)_ r~><+@KjȐ;u RP;З}ϟ/T dLL{Z|v2?pRO$(|W[J2lz<}~`^`9l09Uo+zjKX tb#1mK՜g9|3\%k+Jս]2 #-k#3oIxh"m|Aj˪Y>~3uvMSVdA`N¾HV|nʨbgV'w ^B/%Ar awm5ل2*(ʻA1][`ne=.'3q BÙ,d[:$m(.qA31)GKlbvwFOU.+3ciDU/?I,&7 \3qYzF~WU30ςo6- (RNT>tC -ʁȅ߭7 ңrlVL֗4p-TSeEl0;`R0nl<†PɀS߱b|Y?kvml|]_?%}5;n,94Wf)pl+>!f6L*bn26!r |+ nA:k&ĺCp (SLAo1sm;P4U.FE7mHغ []P7ztAxr EǶJרk  'ֵm"_a**)]H?݃4 0Be#mL2M eXעDk?]R|#!a[ !2ŽqM]{nyA Z7ݟC y4k/u{KG{*.VZ]QIBub t6цkޔ >(b+D`x}]Ȳ'rpfPϝkH ڼK8g"!*%2o\J c5W!xoN3_{BVk5!xt`srd.?[㕧]^suN3uT͗Kz˝VOݽY,K^t'X~&A3i*b+*vHe澱G$h^7];L'g (\6ƫVoc?&P tM7%,B{_v\Oh]͑8q͟bOnқ*UXKR)'kx|P h~]v;ʪ9?+SӀ5;#PMrEUq1[C3,&qD:`ŁM6Ѳ4qժ|ؐ2?1!8! ׹nNfyV4(w5MeJX9e(%4dK42w+ E,$Y L?q}/$vۤܝiN 7?+$p1,6qU9gg L(Q֑>GeD@_w4C6x 2 W }UM&B*Foz9.Dbv/AХhQ7"Bemś =DקT N.$ApYR% eMi= ,!KFՎ5mT7`Ҏ3L0 ;7L@ |[{ioa7*S=lCUm}P#kiSJbJ O IU5Z,-YHiQ :o=hyy [3_h$zTHQ(+]*<.I>=GH:Iu Dg*E+W媏kYc;,~ǔVɀOB'hjc<ׅcg6[E:$$Wr$(~شy6UH̄/@R*>~+wﶾ-Q*p1nVH8_\=fN Tܴ8gX%V>{PV L6W5ӶGHm?p68'Że _5MJE@-Qp11w6+\VUO yBjxFlMQuy2gfH4K S<7Zu1QXߞhҬ\d|0}8ϻ|3P~bñFd}Nk㖍 Ɖ -gIJ-[ʑId{2exd|DGlG>oqR™̧;MR1$"|E[Tܣ4M{=H+Р}[OjNx~<o6 *pBcԿ\3np-hc ׵.˔)N ;d7"qN8Yb5-ha1S=)<>Ϯ <6Oz}_ #RrCj%I>~ Dq(*lLVxNEbW92E5,(>|`h@Т̄fIw*xDGw{6}~H"LO#@#[($ǿEly?⅖`0Z+h"vj]OyIɖ$]R:gu^Ti=dz<K'@O;zؿT;{%0͟' 9?_7xǪ٫<YIrb&ߵOwY@+~;;ӫJV◆(j C4UEgaämȹH%wف$,2 z]'3 H4˙WV\!C[A1T<7jIJ7ҟ׋~[񫊭C1[Mź_Vt*7|d8xJ˔9@;vR@C[ qY$J$jhf~6/y(fqk0(g{${!4I:K9o JmUv`/S@ 6 CzR"1h:/\#j7DƶҺ&OyJ1E~qIA)!諒Pl ",cS.So:~lzZ1Yz07SS@2˷D%qp*JtS^:"!E~axftmQg*PEhd[_y%jzՈIu>4?[ )X;7>v4Μz*wFwdC5Oϫȑ023ܾ>HW[¬f~jJ:)znsP:OUzY֑'~]e<Љ]K-$!h0'slQMwŁ{srC9HR&l 1_)~GrYߘ֎h!t$sk"p@?s79ϯ>bHrlœ,Kw!ehO5Hd挓_e`$oͣR*7wkGUE Qew$ͮ);lᒆ#LݨrU有 I|_VkM9jQ>0,btx׿TGi4{7t4tWRᇿ 7b:擅ɶ<-͞(05Ľً1ja/yA̶?_?dIk%U7CQoi2lgm9s6~9v^8 ;9'\#qx9e?{$p/{ ﰁBl_s!!GOI՝_ɝs8'jje?}`xX08o!)v }o sJ-'?<ҖMRSwoAh{4ZO0|nl|D=;M7NFREmLנdF6%<@ l~3*uOH@K Z,#yforkYj>Zw\WߒHMclޓçaưH-/@X(+w̡@B!\ ]Pwͳ.`|TމiTC]RjgUWtĸ'oa+4+9#XhzEil ֤YkTy"<ROv܆iK~Hv ފ5Ηږ414 z^~)DYK|ŧx+}wJwBI;Tq1s(.bl$LNǃumy/ * %gMkٕ.a:#0 |0n2TYzӧo PdgfvzUgͷ0k_ʀc*T?ջP i\1l!нƫG m3jnW)M)iUK(|e"}jX+@]>4>EXkUgPV0rC26T{&/ m1) T14?I !e->T$1Z:= NiK1 >+c@gr7bG]pg}m -z3SUK(7\Y""U7?f}=MƩt 'O뺴}HAG+z LoUo)m!w'YאpWAHaZ}΅B"tٛJ V%cMEG6CZ"S髡Ǯ鐹4gƋc״-~3e'ɧG (LFnj77?cå[%5D֜CFyx#IywR^u)MI :?s(`fҪFL䓼Vg#G"XxTXd3j~Og8SgDARADԯN?ة/~ZBAgbN2͈`4f k-v.(?zaT.2wCd9ynˣn},[&tFbCP#^ABh\=&9So~y qg%mt- {bL\1QG0Zs8W7_:0/yG4¼BODck492[OEjJz fM,QMb q>IZWw˻.mNhځ&aJl[ϻjnD =캷p\qn3?}JAy'ed4sĵ0'ش8ˊdCbgI\Zw3 e _.Bt 2_ SOL-kIͭ_lhKK\D#N0l6R`vriS:!J}Ddžr2Xߙao-[ਃX+g#g*x~mvOURF ,7ނ4ZyT_=FUOTbJY6򦥬7M,3fJ\z&խamETR;4RqNLr(^%!d7 KaJ }v]{Ͽ9FI(!\5c^IVA{7)idz/xiM}PH$@{uR\ӮCН&?؂~Fa#mW ʠ,?% :UI29b@qS[ Q?ȵy"+#z}^vne’kL,/]klf'wUj6W'0}_b>Q'dK@sZ3t-N1EO\G(3{)S逑HE= = YtD %m1O<<D3ʢ\}HڅOZ7X/?u(u)8DĘLghwBIWU\&gR#iŃ'ZRe J:5J @r~M"ԧs n-j3ozet~ъl{5iad!I\,.̵D eoT9f<51w@ov̊l,oNcG"w@qN~iTy!EpZ' HEZXxR'yoO}RoU7xZ ةm$Fd,G_9UDb_ȋ6yŽ4}mD6\E}5q&' [akH l7&0u}<'h HH 42ʟ^+UU2Va/f|L"5гHk#{< c:s8m*x NWK7-c⶚mi&@ V>D]2!q;|,պW2-R p6I lX,G]{ЕAQ]V4JwQMgKiRb6HcB q.~@LBgΈÙ6ߠo ~H/Sd# fVޓGN-TrtW82)[?gdlO`+:;VxXӵ)cNa;res&wĴDB* ߟWJմP,&7"bl3yCFUN]89hDMZ9?֡==>X'e} g/O>/X  ($VVe{r_LM'˚}!&u/ QmV*k `TxħesX>pF%eӡ8q,<骒hk\0|idUb>XAwB oE^'R# 1DQ 2Ze^)9x;y|;F[Pt*M8:,%#S5w֞_Qw-:~v^$CG W:qt(pX|4ʚ=. Ay'}Cۋ~ ct{Sמ?h8'ƶWL h ̻L*V~0"X-{ (oN+ʵTݚ-yKYL4MŨaU6.F B :7a7cYN Ģf~&fSG#(2ϡ$m_ ]Pd8rϑVE>\jtj뇽$c0uif~XqZK/)shּ]-Kg@n}?Z kB |­ .ҊCZFOvKƦc+9ι`֍-Vlܢvv 6;Eo <$~lN}J2SzKMx-bYV1ŻM"y 57:]hf7@ D2'\}bdhf_^9 [TEZ^oΈ3K{=[ +*IhYlJni^5> wCUdA8|=B?4p)Zv>q&~C3ƪa(B)!T^v%=$iؠƜ@ǮHX.ln V?oz:>+ nGavl]J.sT0~':?Wϗ-N5.40Vb`s?{yTҺrp8W;-^3dK7hom=}CCykJ={5Hi!`d,Aެ/}#Aqݓ|Vh )u ;5Al0%msד'ij_ vMYoAmg\o84fI6gi"D"r6em+wA% <0(Ļ3ehC3hl\+F+M7 ^`ԃ ^]ը6ۦoPYԊm +!Q[-qvl޴eW+)eyWxwRNjO "D 5-T0vӽ,U,u* eݑt?̎Ȉy߳]VR:N&p~IEoɗtb:UoB1jҿ_ >e(ZX>$+fI?(5>d=)&!8G/&I#^rck4=wL==0k}ف~[4ơ Ȓ\*jM+XؿQ߶.Y$]m6;$fp<:|zw&~qq)Fq |r"*}h+KEM_>( b?SؕbO9M Hg!nz{uD&RH4|ڗKܾMOh.e㗣CpD|gl-s~/xˊ61j֎] Q"JtF^V3TeByoz?;rСzE+["Q_q#;F"13fxƶTMPA[詛wNP'03gĞg곤TH&RPB)H ?b K۔K)$Wk@!_F1lˡgr7Ҧ?05FFxd,or`zq3Z(-e};& k%d%Jࠧ~&Ȩ8\G=c&38*Ǜ=LvHp7(5A,Xpѭ6%ԃ$o5Devi?mĬv6((^mp1-^Uf)> ލgPh \ b(H=Qmqtu$)҅D&IhIX-wrN;y7簚(M=HMch"FY^:q"CƕFaQ3uZJq"lO,X}]jZֵ/s_s8MD)Þ r$6Qid8| ϥ+ vK_\K ZZJgv@U i/ZC_2xBSewU rם7Yoȇ֭~01;[֐%1*/ +FT/Qa*X@ paxՆ'rb͈2O^}EaFHo Wч ݎoqA^㥟0AZ:x/ #v3t7Jnt7/oGʵS&xfzjG,hJ>`Rsپei6 i8D_Dy $MI.󵞜`._5--ͤD5vsT8KG᫪g_տ q _{m肤m;"5%x oHJ/L ZV&őLs\w|߸m㇈\U;k+j%>G;5@i[J4PbisD;BϹR_#@Xs)aƫPM ע%PV 2i}+le{$ɀ'þQsX;dIPl ꢔ+I1(xg2AH-mKKWpN*_VZ=Ί#2wȈ\! ,/0$v'UAm/׹XHgs`ѹ> 5CI}gc.~%Fq^!Wޏk]^Y>hyr?}xEEV0AIC8:g xZ> Pۈٳ<2@$eDol ~K׶{[DN,Պ$ז &ֳ (Z>}KՃ?tT?JJ<ҝ7𵢙!A~]q16MwA;bn2t/JˀҦpԟ۫ pH]붧Wo~)_{|L+ay/i/P0귣G ߎ}c:Qu|wCMv055Y@ƿwc2UTTS}`o2_ۊU}WGH;`MelMtGt܀47i @^N^d$Pudro>?Q"/@"? Dz,Щ3\YsM1o4(v sk*[H2@[m\Q E:Ȟڿ~䯘7 ίݧ {}wvwL?wTex:*q9?^8$,q:ܸ׸=$iO959sʿs8qUqKRB&-[7b89ISZ*X1*Hv7__߲֕ IwOYbc\܄4%SFD' Xa*.ƫ]M 떍"tF@+cGlk#̦9<Y#w rFvj\MyBP=/%2P'8̼C,u9#gR'Q^,H7~@e}OazBfd!׀jw;v7F =/kF~jU %ֲYݽm5!G=As4h[QMvH]J~sޟ.0ȘS0-e>38Fh$sXsE5RrkVïJrP7=o^Hr6e4-xcG]zYe pLn1ݲ)ʳQȌxP\>Gh1Rsղ㿦o* }PvzGϨ<=M&*oCْB@;j_حh!b$:D_@hR 2%>~KnY-I&&T F4K)ϐ3n*vv]EHي>i"~$G>g4ɧ a_Gy_! Aud4SlƫL_NyLjEeXJFPU520yKV_uqff<0~l~EI"Q! @aW"H(8ni*PsĚA;t'$ ;_Ag\c#ZѮPibhT^/6ڇy.xeE ,]B$XtJ%o46sv~_ټǟڢ]f7ŖXcBt%Mdǃ&3羾("忎@s$t[Y#۾X4/4c7a2bF1"[dB6oEcTmx*4M`OI%!~ Ă2pV>_U2L-6*s¿8(ƿ6EdAWD+j$7##:*"Y{w5>C5 @לNٱ盍$]g_xGԬ@zEx 7o;䔎j,uP mGQ}9T TleȆQ"ޤ4Mj0<'I6Lk {(ⵊc&r(Ѡ3dk4UҧDaaU6*uM,8:|#6UGu񔛅)ϡI#<2r,p$0. כ;k^9Aْ/,_\9񕊭Q~1UOM˰$_^o1A_>A$9`CH8%(>уݜgC *#/XA& ! [A6ldF.pg}.VnJ\Q/6:8WA!-ܟMm!)b4^ 99^;Ap#]>ahNt̺*/f_X{/eߜ {+k $iHr3|Z-"kJTk7gek*X0U;_~Ta7)ݳH})f:ɼxk)ˋo~й${% 2Q)׏'4Oo 웊WHŗ.ZJh~>&WM x51u $ wrc V]g؅GXbR@>p5!_$ 蚷6s)?ŸOb&3ݼ4o2_P I؝*7iYx98d`/#;L8##d?UDm]XڹǍ9KfٸA^wGIZB5yp}bT(Mq ?:v@X(A-ԕѲ̚5؏nOAƟ8k^# 97V%LcJE.ne5dTn"b/N˷:f-7Y^܆z%7JJX4QB!ZJ~GyuoC2 ->F1l ރ0W!f\Bu`JeF? bg/;v1 sJ:nt:gH;$[~ &hiFAΌ{?})xUX:լ`⻉J0k&m*9cojZŜsr_8y W,!oy*숐j?e3`]cY{,y&5j>o6¡bkYz t7ti39C7 a,Y+z6sQL% C58rIYW)g)iشj<Ŭ 3|CM3zL0OS'cT6XT}'&`RJ&( $$H(q)}68.|f1}\3y? LOՙfMdהGzg('QGDA = ٮw OcF{x]( '!ͧLFj R]OZzi_>+2^pVq1k>;m+h:ĶkX2Rx&~@l9 cm؂;I =Ql{}CLy$֤3x̂V!%Щ$ 'fz3|msDIQhG1%( eQR+!{&XiitEXfx7@us1[ esNgܰiuP?3!8+ L=0;Y֫?joX cԻ=x$vBA٤es;5\iRq(@+ 2s'4l0ӭ78Dgc<&HGo9|@b "#z?}y rt|ks0 WTŌޯOoS8ocx) Ҷt템;fDf0C0w:/5=;RG9^MIRՕC/q~$!-W:g4gX1-Xw ,ې~dA銰YnX3&Ú/PZ|\[0WE)ItW^_? ^Wi?IڕxT&pT#Rҗʯ-Kƽ?us}^G+9,㝌SDMKOK/ ʚlj  s _9$&Fu*;kXTLI[3e*~s|ߛ߾,o0FgNCHzɊb* &/k[#qU т_;ҟ# ;ՇVI"D|姛b(;VR?+VX-nW22Xbw,`I1$0Z[yi)'` 4n* x NUNXmBN; qxÉf[Wz8VC?{<P|.Zv,2H=ŌaKBlmgnxﵑ>W/'PU^J}G%&N×z=2'5MGi2+H w Uj9CXd;cUe>5t` R=/d? z5< 0`愪x}ZV|f?Mp<{ D)'~Lryn\>:n˶cq%1ѫcjWG~gZrN?{QLbVևߢKL~Sݤe\ss!\.(eeN=HO;s4u<r;޾ W+i8r{T_aFۄ}_XvʒKՅ\ آ5zZjq.sB_%fEiѸ? ^U|>zJ2os/>FjD є>UF9{֡V;Dیg!}g0 ̻ؕ}.h"dؾnn^=݊iz]~ $Iɑ2LB_xS =S" ml2!,XmC}0"(*]ب7 x$ =7I͚`(\Jt ١qJC<鹷::xsr@}m7Q@`*HPhs{b+I!; aS[_2u/YI҃a Dqn/F]kNfh?Ip#p=^1eRv D}c#>xTNTs m/??|\oI Gс-CxawBOMBO'`KTݹkn>@VLxyuUkv F@j,hgnOPJ~ Sy9がuJk3PүàMl><A˔׏,C2#~I,Wk`W`dfhr3Rdg ]OoT˛>P39X 7pXXbȠ_Z_hy6Nk"B|52tgjG nM G`͝bdoNү*6D)gC8<#*Ilgر6# ЕJ~b %F{J {$@l6Quس~P >'Y\c&\Jr:&+\ʇn/UCŒI/۷!kK79%Œ;02P!8QاwLa>4bI{OL9.s|'`и x^RYzoe D~eK+}z_۹OT{3'kM=?q q\@_Mƕ"\)y)򧴋rh:f)j*r:W8OAEZcJ 06?\}tIP޿uٯ# [-|~edIw3}Uq* Qnoɿ&C 8>gsEpcw0آI/4Vw)~Vx֩gq@RN|{%v9I v>W+))2mȐQwTSF" qĐPLoQfhM4Ht{IwV9VqU%l1)z@Uh Lȿ=v>xwoex /LkUV*!DNbB}o}Ϋw|eM[]Ű<Z'Ue;9cĨz]_ I8bw-*lVz=J>X<]}"'bkl0Nm(nBA@i5Ӛ1>4IJwh.| w6/mM4b @譣hmM;Tg/gI oaKl_eޭ|dz6JA粽/9?|V}7k͵Og_.ma~3~7/s1 +!o+ ΄o!!h/+tgݒGPv't7OH}޽>u" g7tjop3f]3,=k((τUa*nBXݿ%Hid > /Ѿ?VRf:hZ)ؾzI;J(%쵉ya= XR2΍NdqKJ:4-,}kC1/γ)Þs),VS܋vA7L RT,)KoF\Jw/LJ))oD{/Sq'gRSݛYBdT}r|E\|KQYTx!/T4k= P+dA u>_u( $&TNQIw{4vi?_ onq>N6Z `>Ss- <?N0Oy020 $I Y.xV,[K@f2*qfz~ |<͌jXYY%Z+ƺr5tܸQIdh]v+,gC=?y-.[_F)b=Ң_iVXJH>(ENoig-iT԰τ2fd+) &VޟLж8@I`Ճߚ-~hWք4 F#ILʂ|x`JWCS_)UG$|Po/"\4ny~kn`SnmepXC^ h+\p]/[ P~p2^<^ݖq:- nvf hRxhNTYyv lF6m)V0睫< j;"^]qiH GcV%{5ExndY|﹝\"KXۙR ?>C;CZL.2+~.CI1봆q|'N'~<a4G \7nWo-7|?\r C-l . OU " L|L=;~Ջ P/nZ==l"&Bzbũ']$dے{0'wQeE,UiMGaBU VƯT6uGgm6K&+]e֜ٳОS7=V88Zqa$A3ްW3}0.}wqnDo |&O C ./NP!vKʾ^o鄗 cR~ ;/xf_yqhU)]W}j/E@ zѿj rO)B^ 6GDž K+ Kg>qF2ΫX_8(&wZ0ukGGG,$~ 50,vhK9FkM+/:f2w~Ѧƪ^L'Hg2)qNrx'Xm2NeA惗H^I턴 OҀE eOh}hg7F_ie0}5Jhhh0R_3:)◍"OLZS.+gCׂRjaށȹ(&YC8,q;M4CM~"ue#x G4GǞxJl=cIR"bZC$ZDmg.Vwjni': 3h`͘EOV_:}SmrIQ`5%懲A^c ȴx TnW}sM~OYsqMm 9I9d Wǟe\TeXfZδWomB[ڵ;Dq2n[VvBPjCżdC#4O`{۽슃/4΋挢BxH^~Nxaz?AO^@ToIl¡ K`#Ӟ`֟8@;=o(ľ/)_,HׄO+p]QzщBypf%`6~y?^<垨ĝx[j&q)kF{4z*+U3@*Xtc &;Jpx38R`rτf(n ,qDC2r\蝇0S0|tVVmT kZ_}s϶$s~+SkJՇ:HYx1]+ͱTՙMwo uq7[4,J Fh8R6'ff׸sn҉~T^8/ak R`fݪ sy-7rA7{DVhxK=ۭPc ># @ݏz_H aphٴS)T ض8=5!\۹?%$J ý?$lAE?&$»KϐY%߱oiZRU/\xUEI۔O\Z˞2lÆ%43_+3f;밦e;R=a[ D0ؒ;e8<<0p(/6k}B5j~ 6OgSVp܅V̀>g:jc3OуVJ7~\cӪ[t{6g6M r3~dûh]ڨųn+89I%dpx$ڲ* ]=@?+5}r_SD41KgU6gG1ad>SK} ]VR|O璵UqۮS`=VD "0x}h^&7y>mZ4L0YCy59n;FH g^\DCRr[Q(KIFSZѪ`۞dg+\c䱃%~r . c5,^j3VO$<2(\EI͞&߶הʡk"= p宿Px3lIκ[1͚Ki>4JG"HT0K_Q?I!wf?nyMk*} o71Ovż~j^x"0q:́" ߚǮ*_ĭ M8ϳ)6KYܔ:af깟&%=NR&b2I *xɤ4nj?^]sΪHphT$kS3~k["25i_;` ԳԺw(q{Kp[`a_/&]Q5”EуR:q>$x>~cNA3㒆؎8UA"Voiz?ٞ4~ZCH>[W'F@2weuѲ._ل{9eybZx\nk%A }^d=3X_ZgsBE &`5wsryh__^;jG5eOWLHÓJ>dY "E?b&D:+"L7V4[ѕWqNwhwk0{SVK{ه3qR_ CZ^c e D(Q(,?>~68 B.NCe5BWRgiae PU7Z+=L}@'㡱subg|H$!ɐ-.@*E<輟?@ o +8ym^b~a}Ā9L^QfvwR Mz14f9 ;2k#D?]980H s ʹ֥'t2etY:Dz:!͍ت59f6g;42 ":$#1cF~{AJ Sq@ wbC?[ @Lsnٕ3%y'`"|>$9u2[8N!ۿ9 }UuKvk=B"%mEsmTn/Q>` khXcH#o(y7N$n1BBblA_0cX*7ު( a5Ggpid") u1CvZ>(-~1fz{eg({.Jvq](t?%eqM󵞯I oԙz߰cWRөH0aX %EAEP4Mb'w9H2ARk4_%9ʺؖX%#k&23y04v涩7vb*z 4."fŬ1A;nH'%X0DٶIa$%H #i>`7 vLŞ_QpYnW3xAc>G=w+'P}$OYHQ l~Viݭp!N@_<ZyAȲ^2\n\[+w/h @:Vɔf 5wWd6@yŗDzD j+z~)#C[wRT@koU܎?N~m@IyhiW{ L_f|Ķ A\ qpMUO0(*~KERfjG`!}6 &NvKW/d0 );)0B+$.*݀3#09x}c4V!"R[dvw{YfA_(F')P ;x7B]Ԯ=1Ou>QycUQt%h_VkGݎ4ןx|NU!>"pD*-sDžq@ohnؼ`3>z0u *qaid1 X$B#5zd㷽\cdy7ӗ|󧜄Ho<$((L{@WtEٍIVnBI;VI]GW#?W<0V'@w)}Dڏ\@C8٭]*GNpLh89Pr9EsaN)ygD1'n" H?B %'`R7""Xƞ5qnުgIyD4ݒ!MHP^_Ĥa* B#,Xo4_n ss~42:-Ⅽ*9"/wkI ?S+wdUct =VM}ZmkZGoco J^e5o|>4VKv#ޜv>{NGWM"t B^?3AwN]X~UZۯq̈l0"P԰L 覃pw+ݎt^>(9> !AZDk}: 8i͵+k׾/+/)iWG&V9,E䯂Xu@|ui:hoQ%kWpsx 'ޕ,v/2,Lsc> (ִp. s`4b۶3ZXnvcx ss^ܤ/Ƽ~g"xCj%I +ppW )ڪj 0 7)3!玉ɭȗ@ Q~ߡPB:Eq]\Bm!6:0tҞMì8Ө=sݬ*EkfE)GٹvFF6f=xV"K j˒xP0gdF2h 0o2TZ/R&+ECz\ Q5Y ҥ=(.~>17}^'J t~!p!0&D>FQ I-,s3eQY䃃'C"CBj]P=2Rv\t[Tnhb5BRG9>KM44 ͢(te|1噏B ^6kCxtڰRCQ} vTAɺ p Nxb/%Fm'X`[P~K0j [c)hˑzyEjCzPkh]zܣ$%ԭfř ?hxY/H=0oh  y0|iQ,޽45}𔠺ٶ,`w`G,+= #@c }27ZzlNt_3sv@#7*H@eא֋áa݅`f^ }7fpL>` tn"IQ+zSmf;~ EΦh%nkk&J6B61bX♿.O(3D" z=CvT!FCh†n ҁg9_lH6nw?Z7%1QNr3[z0"*?K_<,v:_pSy&ǰ8\U(THǺ$xKwو8,QFyQ:QHx-J}=!5QQwI˲{ѿvTU|?{7^C Qć{UךIW'LS)U70YD˰uX- D)PN U--mŋ/.kƵmD Djh"J7?K&xCCɤjc{Eb{FށlRqN\|)Ȓ?'7CO"+Yg#Sk!%b3O5r8>G [KQ.is)n_$٩֠Ű玆4|Df2}a)!iPy@Ƥ0 ])K8͵6և|MʲpN1 ("Syu[QE'a]pt\My/ )M4c^{|m%G5ױ+f)жEZI~D;ҜFSkf[=ot6<]a=Cpt{ [,1ٯszaG/T/6jEAFpKy{k^mnAWK$jdw^_/s knD)0Ua,1yKs3mPd`'ۙ]_dۨϊM[?g!egAFWYKKY?~A W|-(P\go&yڹTI'-OPSJZz߉Ntu͉92C襤%sԲFD:7sg yѭ~-E~˓BrOz7"rS1r5jxݯs)HTP$)qR; 7_C]VW$nEݘK \;qM9Uq8~9Z0 6?5xԾiΊD3(v9emjN!Ş (G EY~Smhߝs_5}~( \>3J︷@@唖o |B##w#Q 3x,/_\;$pV$934X@ "iaN.G̗̋PK̟ŪL D(4ѺޔۻZx7n5_{=׮Pk aZ9z=u3(>zlH;s}_f֠.Wu[C2UIZNGP(܉E)k R"٘~k{ g]G~lU|BHW*0 =az]ls)Q^BM3ԁ]އ+]_ciD~XsDkOm!3 ݓ1g s,% e<)椮.xʁHTn:A*x\4wIi`Ur7V~HXN6hW(f3xqu|Roɿًt|raD{[l~@^T!>KqBrd%'V R 2ciނ;.jT/UL"7fVfZ=TJ}>K0 Ԩ\q mz?\~Y~1b xTޢ(d .Wܱs vWF}HSbu@yaWJ8 IjѶۭKWA>eFl4d>bŬ~/:eGGp,[Df\t^Na#U_B9 K?SzVnm a=8_@U"b>V+#2l\dJ:bhNf9 Ilh 4NTɻs?cM(8Tp\X[MkuZ$|4j;톺* mܹ޾΢s0/EiWd1Xw| g"b۝ UykS%w囤rvkw'p!nL#\ȸ~m,o<@Tl G~Y9l ~)OMrf>椲y//diIݤ'y_ZBW^N$*QP _f !h56 #H⁛UMɭ~# Җy3/U蠚;!F[Wd}I<}v9Wi-}hg]3j fU7$S.Sq\.UhRü(>%%b+UVI};}zTGΡ(GBeƅd|m>yŷm>[10rޚ^M I%= \b{?cq'j&ؓ%d3؏ lYDU%Gс=(8>۔Sgo&4Q+W3O*S q H#Hghwvۦu _6!c-C:sim"$ h"UΖ r8c#U Z 0*}^UMH15 yP7p_M0M{. ogQmj]_C2 k0=KE" 8RQ;5.%w5*G?j_2c뮒p(iRܤ3hj&25_ #Ur»d?-%/h9f)y#f'xUZ&~l7dCwXjH ~cҲ x)D `>SamvԴ_e]sG+b- h{0qr)Bߓw+A _i/+U~-]xV}.M+/pZ><~'dccqqWj.g8$XlyRT5T]Y~V=)oǮݒ×/Gx٠ amy:欌u|7]=v|m />+8fynR )-8Ayt%0BWxvex8TĒ,ʼ1l,|E>[,L_Va?^Gw;rUYJSNt#"KĐR+53E!iGʀHy\z(/G񏅒:dy[֤Q&8(CϧJ;/rK+bKWZ N]0_0lC19 T{7e|ǔt.kfnv`e@_vdoP+#B%WGa5ԚM(뗈/8R(kS\ANTw+ߦ>:tX^\uM |L3jmvEGdYZ. vMTdp|YƼ] 8YIV7[G ؈bEbw%R^Ȩ/*P)Lb(j{h+Za:G+ᕬxQ^7y"9ϪNB~dZb[t;b9% m!=y |1pTCzn  eٯ"i1YkMTR6d>l}|w\JqqY#{OD ?aBJJ)&Mg'vYX㝡Xzh:'[& 1 RNy؊kw"ph| b| v?Pok8!ds >(Qoe=a8R[+b [\_Se-G.lfԚ_,GmeZ\gmE^FךgH+Wĸq߈1A5w&an24Ы{Eĺ )BzR?YKp߻xM}j'nB_Cr忸:o%I%~Zhh{FF**s(w& '\H[Z8@Te9bgjM퀌Mvo io'!gL%OA¯ycbB MO8 B+D d1 ֩gZ*]ԢF6lRk h7Ej*;nqgyfg?uUOVI1%`K$3;i9x{`3xFF1}Tb w"o4{v&PY%1ф.]q-7z$K!̓ʺ*-mCmO J u$ GK <ʦRV.L$ QgH}Cu/:e/u疞8g-n@ ۯMiZ6eHM%]]5hxi>wY?ToJP?IfXLnO=ĬjڞT8Xf_H0''^ힾ]3@㱴hU6m#ti~]$((n7i*l8Qw6bԛȉRFPBOI{Yh)VT/n]j#e-R s u&}feYԿ}"?F Y|c7sҟY B1lv|'nmJ!' c+xQF(*Q<,'7m 2o)!հ -]gĦyv^VcY4ݍgZTBf 2i{qglQ5:*AWO]@SG6q[\}%f5/}(Mo${DnCJUе/YTX̀R/=2rx*x0,_]V cT-l&6q q͕ǴIsSj7<ÎrBk9b 9c{غ#ɩQ^q \G :λH-ٯBSr䍠Ðٯ SPn8UsV=[$ `52C3-Uz!ըQ8}}l݌<%$+3&]7 '{v$זTG*ue]<̏/'j,OR|Piʞ%h2JH_͉{m7uw [ s|JdcLu-ژfr k,[{mv7O͜R4"Z-6+Iov oqH!8E>9#FX_5GP]8`sq4H!a6w7f1,,EsEkFt'K`KmKaB^Cd'~P87ҳ^ .;2-r#ni(!8c_4Q̓^m=ME%) Ng5j62on4`h(-e|2:͉h1y4oRB+Go&/΄oy;vF#t*tΏBq$kVHH d$,$^Lvx ; Au ;֎w# i57~V"s+zdiɳF>3BA#$"`OCKA{E%wҸ`f֑φqZˬ0r_횋W?/&35&( KgK D(?b!oA-}C1 E>Y㧰 ZMV`HkQ¬2&vk.AeK%[k=9y0js.(b|7>m\˺;aSZq,؍ y3mꊙ((֚pJ_g @dfM2 xz?leV&Z;d̡RQʼ_ cEG NJt9׶BYXK2܋LYJ%sREqYd)_jⱿmQR / 2>)jōb ]``=%GmWx)bdу/I8%hOJǂSY|09"_RN?7Tj]@0L6[[.V.( wئ(pWؔ~ ,?@ /f?\a j,*/ |~ҥUYCPs4Xp1kYP2̰O_N'-׃Q;`@j ZQH̡Q)v,]{H|r}JꞯC , O]]XzpH4}6CaOC.2C -YVeK's4vމHU*.Jdhwe+˸X;ˑ 9WI/V|,/kSx`G_=++}5/ 3VkY]/q2g$_7׾{s 9Y2L }8ʗcˑ á܃J&BZ9(?S=#$"H:$|_]%^$jߤ&0|Ӧt V,& #܎%9:mlf+;|Q>;_xVaM }`y\X;+RGb)ss@/Ei9DXj}zPWm?};XPzXHM*Fbu޿%TmZcnD/ %2/+CH?)N5| F+BSS{) R#|&T3>xD&N+W8 b`}jY^DvE/t2`\C9{/<'*yJp3Wi>[iIo Ks2=}x:{K<.ne:{nn/4G"S:Oeɝ0pF;n˩uҘ:ƅ96LЌQ7D`_dށAG -UmHTԐ?]L,-l^q޽E|!/QC /Ro3|M+-l*G$ PHJtJcyk@{ŤqfvrZZajEgT0Vqܔ@<>l+GMHnz#?*uA~eV^̿C_i)v,*/]cp3;`?KGcd/ޤůjB͹g/B<<'h <%S,vWWe(ζ S "kp/Ky%mB/RdN@ tB'.f^;bJ Nsg7W'j'AF"ݤp Fm.bnS_0O=Q5j/K4{!k^#pm>aZ|`!:b)\'1"-]c`l> *Ed %=oXd*V 3i׋?Ym׌wO]({aTw--EIf/C4,EQR/sݿ M`eBi/ƥu{%F sCȆ dxd=v#2Mya Y*QA0GfE/>س mP$~۪c D@Rc~h_mۿcFSeBd[+-)v̝?l'K9Yi^.vq'%EF^}1sݛi װlQQ?sxf^tklm^.4tE[8DPJeܜ Xi $xT#gV=$O,"!5y6CvG9DgEi]HGˉd3WJLA^ }cfU ы6&6;r*$~#FNk7,GYn0BOA?9G ؗVF s7'l^/t;6>Ⱦ>1Γy#_Ԅxm'u4@`6. IDoP>=εE77r9o?fN7gn g7W̩2Q') yQu%7 QJJ@5X" $0p.pC>OF XU:LjOUW%zO$0qqݼ+՚9JЗ3Z1>jf>uQlLȢ4w͙$?c$^Gﶃ wqyWKrItk"}}yvU4贡#hoW.$=8{(U~Mro9-FpO6M8z1:6h~ۧ050];,{(n/Bꫜ912C4L9-zpzЉ%eR (D34YP'+=teMa^wCc3w1C;`*P&`Ezrua[Ihw#ci .qpOpj5Xv?!/y E 2XfЎܗJڀr5p|oJ,ZǶ:{ 9vy7~XWMIꬺ|o89Y~5W+``4q46:ċIp~6fsOE>xɄ9\YJk&"("wdS*1'yӖ[ʳ$3AԄ!#rI^: MC>}?CsOͿ|V&;{(/ !UJuJCPQ╱|{Up\=mj}XSOr|}`)ǗGq 5 (ki cL:g;vBC  U{a:^+ RSi.XUx1I*"m g_Ƈ~ad W+*A8 o1<747S_BΘ'gdž(^[8*ˁA8j\!`<ʂoRt9U /ǡ27FIMJ8ut$},3ɞ)&_!o=0maXE}!:Ol>'7/wƖPoVC{*6irU+c-Vd+~7v{M.be~\`E3ȉF2Ӫ{e#{) \ɍVQ6o޵7\8w?:zc{L,\;R0D$A&ijG׎Ç|$uT}\BxoT{Ton5ll %W+[+>5DN^'gj ?-KZՆ@8)"iI>]kHNEU#d`34Y:KU&*Oo  rnT .O ( Wp؍]:s /AU\TeƘ2Zr1l`ֽTFO2)[ ;P /R |;* R집%Ͽֿl0Ń1=`b='wY|53_VO(zgs&? Pk饯{.vSS$% ~2<+!KH3cgw8`ꢎ'`p@oȢ-R~ m$XbmL g>*?^gjUhE6SdZZ.ON& c˅e\e;^qcکX4AN+K6HcA}pN "lDV##ѳS\/m`ҧ(;fרJZr|%@6a(=w+Òl)/>뺊oz ,ewI1MBDW[U>KMPi!-sω4 7hg8`Y:_:h.](܀#|w4Vz O~]s4%Y׬vs$*"/MլY~1l$.eՂLjވZF0O0͵}ȿs Ӗ]!.bJaU뱃d1>"} ւ#uLJ!b鴹_{_j1ii6of)IʛSSs{*$͘Xՙ[QYbWg-5/!\rLx@=S!@/2(* [T>YՖwPI!Za)]Қ»a.]ϔYuM m~@%jŃd()esݗ_h hWߥFs}gG3J>YoA[U^5%OÝlK05ՏٖXS>u,, ";"9a/DB:?pSfҍ뚀 p6%-'_[%DsʘT:E-oх`H:2wZk/r}8={|שgw"c%v[#lÃ/o,m!73Y>1U)#óZ_1CҁS9-q7#/I: 0vçI瘾;GDJ79= Ϙ}fnƀ8ڻGX5I)50|o~TH3Gٚ/xRKV.lZx meKYryb3&%#['yESU"ڞ80/7^ %ɅdNr8!z:ى(N϶mws̽ 0 `9Q[Ɯ+].6:a#3<2u0iԶcCjj*ۭbgj5GjXLgv$=x@?gуY7s:{ZP`I QPbԃRLss禳lJfIGɡ> 倦|Plx&NimqzyO6-@eQӀ;(itvc4Sߥ<~Cy|O oW6}j*\ s{w%e1m ' +O환Q L_>iQ#ե,z;b$[ƽz5t Z7@#'Mf-JzMtv>=q'eQFyCƢW~2o-~ΘlD;jRDQ߇ŐCtvT0q'eip@%&3$XsO[VmHdh}Ii[uLlyJ*d>;Xk+1cx00ҡGFE7.K޺P $hFPjHDtJ9J Zhi] "GmoF@k5;.`{?ˍ<,f71Mx;׶IY`K~)D/CDP v& ChLhUGēks# |ÅoBxEA 0s[mnIi"(I~EzILuM&4"O$j3+a.ӹjջȑz"hq$,|,!% B>.:y2qјi z5TV%ن('EdrjЊCMɈF3J   .1-IcxBt 7~E.oVpDܣu@Y,)f.t)zcYTh1spyKb _>.C1b$U #> KFqG`xZMO*SWVwiQZ{eo/׾2ح؝kd׆pOW\f2ՏԴ8nEUZk۹.h5ˮ8њADin˶u Wp=4]Z YdB:XGwJڶU4~%s;C8K $wuWRk( \jW;R9?#;uo۸Gʣ椫4]Xڇz*o3rYXwp{t|]{D  Ca(ܥA ޘ+;=_+W>vaTDАNy1<&>I@N"(V_#,$˕}Ö3vo!4dЃD{H~tg|Sx9oNY(MGmSNJoh|AxONeʜ)s.оf h(j񇶒,t7em;EWح߱!Z8Un`qwu2q)8󈆈)ޅy|Ft-@éy|J?I+c5IHت|\[ڊbW4m:P#E~BC7P =VV te%QZ.l!Ym#2[dߴ¤ka거EоrdEJvecK[ٕ%Ãx|NZԴdϝ>8y,m!i¦<0z[^С= D Wn+W /JCSJu>,?^JcϯՉ '7 >+ԫZӒ!?.R}(3Ye9prakXNiN6F*Q[bo˹7ߏ%h|zg hQٯY:dq^ПGTr4bzkܣz x Mκ~c,q0k#IjcO%m_8w!o",&UA'sMh!zJ 2dWZ.h C| ih9b 3/||N_TMG-C>JU*(%5a}SGЫ֩&T/1,W Mwhn1_'Kl[Nj@0=;۽wƩM`%|oJ)gBo3Gs1KVf #~eWaոp=yC=ت&;03=60vcQ~3*y? xE$4M קL"ysqM 7DMke4A|ظ(wˊ7(?z?M??P5.ov U.Et4.h03򇝎ۙI kCR iqyAr tsA=ɗ綅 n'qX˛ɇC=x:Q$c[Aɴ oyg/8H7W|nIdDdRGMj)F3D?6"L`:KHbq ,z;^<:|J#0zS_q1hQ0E^tqV'"3އVD/P(-' D`; Z@kLx_)8"k/}HZ9ޞ' ,3,Xn|,悩j2o "u8my5umQ,9%O'ktl~W<٧-Q H{}|VkvQ>jZð+mMc3Ɇ3a"+%Ka0 LclITg=FQGo'p7ۉ}i|%(Q՛K:\̖>Dsx hu|^( ma-vѣX~-{=37R *(]28p2U Cne$"F8 3V >V;1&9=E^"0͖۶J{[awĠ(zٴBLeHlCnB(iB0 u۰$z!letҮ;͂0l1gbbIgǖNqw}b,Im`¿j)_`vCaXfHљ̱/_}ǑB}^9l$g4)>#TϐOzkHǵoOzix'ܽDiP.th/#N{l}tD>n+{qq։ª.lUJ@rAN@ - }5t5\('8>g/gD1.P IU:o_Zx7:%fF‚H&}XJ'By,,QoHx }ލVEVuB]}#Sw"fF|m9MB!=U阧v;\LxߚWCO).clo({ãxEɱ|6H [=-ٛRJ۝Nq܍uN96%,%xȸrJj ֩myc495mחbfX^CsQy KAYTgm/iyJcb(6Vo'Go j5Tkn7(Z*Jy E(46FuzݫR4Qn[iEx `"J_MTn;lawfMn3߽s Q$2tcs}:@?#~_@ }O|퓛d걘k!mrIMlq"O&(-3يju'r^=n3W㷍Zmm;sH^Nl,ؿW S)CL9m_ǖB~_9'VnH{[\OZL_4} ;쒽ݍO~܍- ޽̓Ҷ!YYvFrǞ6J%%Qn *mSsc^۴ 6 1v[e#pa-ZԇQXwWUXfyFU4' [U̫"F6)l B_Q/^o/#Y:7 Ͱ4M웫ь ]U F|l:GTқĒ58t!m.-5{"9}$h#7ԝ9bD2I[+^fIob=ʓڌ}V8#CĶOwբ+ėpQDR^N_K4;"_0n( [@W.L$0*i&}oN(y_75zMOÞZq7H[t,Y5vV^nI/Ӥ;xr"[8#/Q0VAQ0aiDS$;h= ϲE;{[$i2Ԕw&@|C!ex @ãqYKf7NCk8@0O Y58#k X1ޠcI fr_)Τ}$]U;x(܏wl;kVC~A1Żg6AÚ#_6FFŎʮ6A CQ-,BNU0 >?F9,H9ԏBסM?, o<Z!9sWJ3S`RQ @ёOBƈ1 I)) d_э]*8Np6\of&O՞ם4Fi)" (}5 j0Mܯa~ +*,A o03$ͳzOVxw/;W,>926xSpNx13B%Mqn'.o~zvbQP 4)W>bW*3Aܦ7~ĩInl{qᣄ^,tZ5ch|;oǓIZ]qJ=]tŕo $ K]d F-lVrmwѯRf]nkiHۼe3A4diX,raPk^/r6p0w+-د{a}^|ۻ->t3bTp!kT2((VQ.|@"jg|;PO{-vcS׵X]wd>$AUB,{r>0WD Mv*6zۚ=KqAOS"BJqmee v`R=jFXV!NҢo=H~qc_[ >ZAG hD'sw;sFلkË+TgRp$%bVRԯ1l1/WP\9jGo{r %ZIdžkRi2ooyGHS\}c0AK}qn X7K йY9Ɋ&M~5ڧzT3W &BE<:-%ljA5ݯ; ܑg >R7/N^7p#@]!wX9''DiR{<8gzZ)ߟOQ6_ ^fr  "WCnF{ {{ Ԍ/7J+?Dd웟@!(OWt+΂к.(T2ԉGH*\5 K͖V˒j]\'TʋpT51Nސ\dA#_iXχ:TCX{1z}8!M^7DQ[`o+C84*w;1 lЮࠛi}$b:%X&M^Im)0{X &*dktWcBPК$vZ!jCiNy΢Cpzl-^/${qIBҍV]<͠1kP1rC߷}#@TWkk LMlFʖlf酛GQWz/Lo;r!zjB' sR}˴.,㒜ܢXLGj ;i 0.BL/^M9DlGma# {*𶊑kBDlfr`Bm?+j%pL0_@T@/aY@iTEaQ&*u tM`#w[`;3Z{؎k' @zA㒰М#ڰ^Q5)V$h(F||4<0O=li 8W\ X `b3EL/_Y*w_ԦHȡI%k8Hܯk9$<5 Rjr _V zr[ojz x^Į&?tEt 4(f f(| D5s)Y~[]Usbk{"*IZ)]rYXg `SϬKMBNxB "evT-% _}P-R&]vIY0T(%cl$D0Ff岪]#dqIfÞ"a*U%kAC>VVK\@/)Cb?K 54-#Qim(/~]b3t0kuH1%ݾ~Ri;h?I9zM։,z[Gf[z F1`_Zl9ad4qDє!ݟw| |QE0k|N +,ųmx'փOj&ʋT4CWwI BUpRU4PrO>qY:fy ED̥JY}Kvp FbZR ekiL6駘 9%KW}1a@| fEb&sErYɦݯ[mwP?qmaĔ:&:*}شrF(ORV=H~R"M>`Ra|g}-$'M>NW7}^c/jPaEARtki};Tz6)|ػn~!e,9H73AU^nIBؙ5J)i8)|0ʻG A2f-;c2tEpcj ~{nF5bX`ukg6LS5=)G#Xtz_!.el,ԘokYE3>vSy|Tf b)*VgR f&5f7ŭQ}Ծ93.O7CQöWg|)&]r~{! Jq,ۯE]pw ,e2{6]n,6F ԣ3ݭRi9qN=\QCncg\>ŝ@c);՝gvU[LCݟ0F*\rӅ6񁯈 N akqwD@(0xM2b-CnϠ 4Ofe_[`W:éWr2LЕ(-,H_ [( qz)5']QYK$k5, &jOʼnQC7: uWSh@lqVQX 9%91ǣ]%[*jwZtZ{}I6C2d١ hYReKk" ^(ÈI%T :|ktx^6= ʕiZe{<>`p>;]}L~{nSv*`AnsPi '^,Lvw$#䘨m9pi7sփI/ 9!%i%l"hpfOo\n~zo#PQ_ Ł#@1I c)>+娢}d~emx 'Q!^K g!b g-XGԯ -%,Ğb#S5(8NG vU^ =/cpWb+v(s/$LK FB}gw[¯(]7#g dX;@e ~'o==Ë{xcV 1G2|ERˏ&.M]bh $⥄h-~*2E?Dso|f'8[^- 76˯Qk dSyU- 1p>#:a`LxAoo 1qV3$Aĝw{wXp ~ \sMo曯iyl0}I9 IHU4@M)OV8Ckt3mK+OSlz{ 56|7]ϟ,,7 :AX@qΠ}4nw0U"`Si7~w'5x%/ TDc ] ' `X)YGi%R,ZTP曗z_{왡ue6V3%ԔP _K~Hp´{~Y`+'bݚV7~)\Wv<*O>cXS{61Mn@fVqD>gʰ8e)O( Uʬ@J=68Vb6n+7.yN݂s}xkG%ꍦ=WB";ҶiP2 7ݭ->K;FG7-MY)[1 (։8a{߷L_پԺ6(8{gqFKv%w!{F¤DB}>&i .x oNz=BOHIfI}T"A\-]jZÀ]U\`xnͤ?˯T:3Dݶ7==S׈.Zj@U+ ɽ47~]gs^_wc4NՖ mʲį8/~Q$bMpЌ]@RqXz+ySZT,$ i/2iuWQJ=WJqak ɌLol ٰ 0>ghdCNp'K\$_g_ctWɥ^ѿP0¥{Z=wAf@R%`1ޓů2#q+z~˛]ZUvH^"{vy($= JbZ#uƼ!e*$A,jKUuOF, )%iߚ_ouT,,싄sq?E F=IK6u28߂?3q ɇέs Ϩ0LDý>_a~F{ hl`DЍRcA6S7<}"n[4nE)s..&=S\U]ӪVͫ>G'|tO VUp!=v]zff֪}qQ/0JٳsFħU_nmҟ$ܴ8@+66ՠJ.x&G>,|ѼSUްFg!~L9`da0!dߙ;9[P'Ә\WYIxFPR+G44"ْ |EWnfw}Lܚ]I6|X3OW9I9 zV^Q8lOxm4P\9;Tb5_*Px̛hTrpsD[%B*K:2괤Jij["""oU`ԧ C2[ :Q.H_J}Olg0) |> rqRo*ֳ !+Kنd#th XhY͡?-gjhjĨ %x;`r-a !hܢW8㐆~^} 6<ωKD8)L @M=JmR {hVӻ'q6/MT8 j{Y7}=ip@~0a'Qb8摠O[Gʾ2݁gl7͍wB?>45C` un":◫<53W*0{-4مkg9]IJG/TuAX>F쉿0v-`L%}5/{/=WDZ B悆>u a{NU!m@|6M38=wwbڰhC2cByCy^yRV5XCl?qhJˍ20w ^}f"8;NhO6cs0=0j(p&m/vyv=w6?PU893&P"}DI-7۷IAo$H{I $vI^_Lb(tHj[ߨ3pg`/!.٘Tg]+e׏oy-wH TXHmE Qez%^闱IwJFPp}ܼ%"ij-?3 #)YX8x<5IQkT?T\9 8k6k1:extqYY|5D*mX(374KgvN?lB4+B7ԹPi̻u$Rf:$ E!|q.$,{;?gzGnt+~Y@FoM"6ۢ_LX& ^-~Vz4OM)˒j<1g!]t0fa55Rvg9JܞM%Es+SA^=d8v'vPt`y0~V}=,ߟm8ΧZ6V_m |A)׋1jB`5G>\W]. 0߾n؞dSb(hSU'o_.tq+Qں 4]Flc=6/fv nJ[z&|X^׸@,qڣmAR].% 5*+R =z}]zzŒSș *6k(-: #gJiWmzbD2 GKok%;{0m՛MoVsMaf4q8}NbrOώDLlt:Qyܤb!Tqغ8{kt#TEgļ9ho>mv%T>ڌ̷˂IjZ0'7G=%;^ ֔9`nܦ$L@`8}_¯s aul%3FLCyBwdjϼ< Yˇ6psnLIE5:tӸOQЍ8;iMqI&O`;%¡~ 'd;<*Wvڑ\|(,$Z3\m<.@Bw X- v%58qcWfA<k*Y#%uvRl]M;i^><~204rա&ݎ%]}PC6G}* jluMGA17_=&K2[k5^X j$g]NqiK91SMcKDD_\=zOQ(WޙI@>Ջn5ΫZzφ*c@GR#Y~"3NɦI'z3RԼ7SB餏,(HzY]t5TYw9X7S$~NE(p%[p{hePMɐKՅ^\o2 e2@L^mGYL``"i)ţFk3^ xiֹ%e.6Xz'k1Ŕd$tZ~Z1gi="C.;`,PnQhvkҽ~@ӻ7sDqiьؤ{ÇZFNw!sT" ȱs m)K y"$G%LmmQ"~wgyІu[i8]R `ⲹtV^7FeAy-|Nq`ajfu/"pgyO~׊ a(o]۬v [P'Y{_ $!R&&MJu9-~f87I!Rp- 4p|$Vܺl29Q:P0RYc3(樰ȈwU[5ψ{Vc06R=btהՕZiqؑ+:*iS^nST9ȴ D81է,xIq ©B4.(̅é9\g7neZZրIvU#C"w Ϗch9ifr L.'*w:MC@M|WRJ#-S+Z.Xɵ9Y;ljgg$ l'rhsY+H $֚@CʩqUM+{uXfvkg!4^xxfA~Ąܠ6(S,U-R-- yNՓ͜>'FF*tXD<[QgMFW`j[UlCԓY"2 !%'W[d(dСKw[$M,q`!Nj0ATp_!mWi8L\#AAXHJkz Jm"~{y&ߙ$u6@S9Eas~53~-zBΔx`-0c(TX`f.Mr'?M([V(0qIX݈WD n<}+3p+ߐZzb ¨^šGZ+ ?cU;쨦MrcAQ g^q[cNF^3HYk`U#% нkPu  Ϙt;! 8aDiH]:omY(_Ii /'~+lK_]an߾*s^,aAnr! 8 ~] 03YNxkКV-f4ꭈYUS[ZQUm!z;u-qWTyb4[# "P/P~5$e3,EDt7ޤ ͠+Դ $zHh?8[rJ z3e0. <EuebeD>@*&@4)x23BW'͡ ph,X" ۴FMyn _NCR"GmUtB=̂ zM_I6'R1y5#\]OЭ]Q%Wr|ɡ)iϞ'#4FW44GK B厼p@J>"ʀG MoL(t4Jm}[gOsh#*}i_x|Y<(cq/' PJoŶ n6t2h*}h-K%@1#P[63g"S]/{9zоJ!~_ԬC,mftT|â/!yB ?[Bɑ_}KjÒM֔F-Y1OZ@ɲђ}@Q "jEoWݦT-Io}|W8EG{@P 4Md-ZmoVOj> ڍ0v%k ֽBcܯ@WؿW Z\aLFwqu[Ү{# o 0Z7 XXM<_T֍IroswהY|¤V>ߔsqKV-z&,4m3}eCtsj6~?|B/s*yۦ;R1ስ1BoDř9i32 tAYC\>̯́Nלس(/`/ C8 f&|6i:'~̐kV@ ǰ.>3<惹=n̐[cbYf" r5HV:A^e8I \6XvWq%k3ECF{7Jn:G~6y%"wsd1C/`~VĀD=oKvZ'v N= 0WUVܕ+U4qw#z L;z {A#?RaCqw ,&qZ~B'U+}]V9NFt[oޝу,ԓ"ՈnX״tCB? E8XViDSrh;dNXKnחuD|F"c\!_uJS^t/g D ЈysFiWVUb *D*rċaj!Df$~0'x递j+=t]'cP)1Cvo:dmWɗ)ސ_27)"m sHg8<} GG\i|搰5eUY`fx[0:?EELǸe^&,U،@66f_j<Ơ]<6bR3S f\M ]+D=S _of_?i 'MH%ܒʄoDl?Knbvq(|݁̽`k\#?6~S&xNa+ RAxjߧUЈ{eQu0*=-wkPnUF1эLOhUs N+oi$I;sq-q"vf%0&w~o'b^^U+*o|I>e#^1H^1_M | %-m1!~$\M- v86 IaGPXC .lnjhj㝉~u#TSn[MhAjϋ`C-'B\^m6vvwPɺo1@+:LYVxq6 <ѿc(|*?3Fru uIIv˧īC8S2Nffy7R' "uTOSGƣn}\卅=x v >( lEf̀j\=xH^Oct 愥w.RmIyB_%cOڤUă,;DDS@v.TN,#~̔%NԷ*׻]!9cr)O caOTl82MKFIw7QLH8wō>T6iEwfJgXki07)L|_ojM?9:ìDTG[Cw g4졕ݒEu2 L|w\ > cwö*kLK/v{m ݮΤu-[('s d0],Vh=ֈadznԋ=BlkEx^wI4n\4y]PHqCW]#J\=(nj9q'A{dSz"ZiH^ #tj ᄄo?7DO83X6S/hbLVwp.n%Hu2x.x~[;J1/>TKɑ)&l6%k[^w8&}n#W`:ODL1%F}腘yfjNLg껙e^.Pnvڶ0{+0i#'h*Dj U7CƏq%ҢV%K}mΤeͩq)_t߻~0jR^_?ZwW:X yF< @^חϞ.[6{O_X*Xo(yuo<JW}["ӖʈjPW0jթi5y-j SR  Tz ~Hem70Hevڎbw2db(eg*a6PC?c2n:>>GmEeC豕 q-CgY >ٴk1Wm< =AMSrsi[9|!ԅBnb)?hvI8؛ ֿBYc[7\؉k/jK#c(ob1寂~lNDLe|Ͱk $xs5}C mZ'fEpfF^B6m|)z5삊pY (8!`h%*_< (-0{Cq EXq3vzd\4J\wMj&D$FmP VJhbn'b6XMO视v@ڬ@ʇMxl%I~AP `9i r{TV=JiC^FFM<_ R]u{{'ͽv<\}߅k>Ng}°`ځB'1N삦!oz1ؿ5͒ IqMCI]q-KlIA7r*]9t̿Y!V)ׇh 흰5>Dڊ,窜+F->!^-$sn&ZZq5Lj)70yȂ"0ɩ:LghJz`'m5&΍"+i |G;sޜWJvFV]~Ɩa6A"~ > ?T04O."vc_vհL) zpӌWs$KeemK"Hrr'6e i8·t_}z$pzA4n~3W=mq3Au>N>8!I{.AlRLq~-P^V];M"ʯnXm], 5ARv 7+=UFќ) Zxq >\)QY E|`IlPzIݜnARo͔__cc]\f^8l$ .dޝ&)6ؗ$dhކ v9RVΫxoLvح)9P̑KZ^1BY楯l=ky.`٭=%l*S@8P}' C6jw\QTЋ Cu AISʱK$v|MDؼP2`6W%Ie:L=œ۝SĤ>PAO[Iͫ!DDQ:EeabӸFLXC~3̄BzXhYsEMW9"1" ^$RCZx`4*I"Dtn;8B,YͺO=Vy]z㧖@|7aLU~YV+t-@G/n ,cC8NxTVWk^uc!.&씴Deɰu=~릾G.gz}7 kͶymѹ&ax|!A!ɳ{Da߶HHG0X !ps8ppp6Xxr%LZe&vO>jZ o7L;AesbfA ޼ R.\ 62FŠ; ۔R@| jy1ǻ 7Ԇި_2yB22F!B\@잕؍nZrN$P>}N͏_XK+uu('L'_RADb\c͊ ó.Be՟XnKцF:`6=q ʁY{Üҭs/(=bHa]ßC!S]RDxJM>/`kcqXz_fՄ4k%CRJMiW67I(~͚?j7M35I)*% _O`-6/Q+`B.mi~7(Cɒz} ֭H}QDbc+\@jɓr"s*J jkLΠ}R7ۙ_CPޥ.-[on8}v @d w+~Ou|'IU{bz̙R7$U%<.Y5S1esS c k 12n@=I.Axht|c10nO뾔IatN6zvQIWܭty|RzA{CѶRk}&yn62Vk?31la>l;> 7Ҧh{-!ڵ ܔg{r?"Ff&7A~5ܾɷڔlv@}3w܌,=2ng曼{qm{=/JS=3¡%O΅XtmO!la)@irYtI7(Ag2 /'#[b1w)S#BVBqK?r+f Rp0@g VikCkļ396%@дA/л|{^=mLu$2޿ѡZ12Ip>HX>O~(-FM91'6b# GnZWWRa"*eHEM#F9aJQW]#<^ G14㓢)~T9}v" /]P=I)ein TS\E>_%5 irRx;jۅ݂('[6ۉwۍ߮5&ǔr!膏O,y/KlPxS/[IL J`%qiǁ)x(1[&I1˴zqNqZdהܳE9lZB>T%GG%UAV*DtM Mg"E:8)_% !MTtKhuA6]x(>'|,yhͥOLvжb'>=PL[UvP~+vwYgycu4u?o=fzL7cj4?3x޹  Eʻ/Lsu^$B'~i)6a־,B?*[3>P__3 Bl>@ac|:z&L{u7rسsOsp0)і+xjU|zg4;>yָڙ55,W5~k[<pfm f6PmC!dxo+j.D+-t{h]ys4KR cOYgrfJt߰&Sz"U&ߺ4†zA~:ѴpU^LpcjhЩm~}QݗyUI\u^XJ;՗W]Ln Aٟjf σ%0+3>@7tԂn$pux]uPT0m">&AeN4v¶u)xpqDWZNߥ+IthsȢ'/XFc=հ(P_ƛkz_KUMTf¯@WR*',CX,k= "#,vfJktIs4\c-0 cCިn]9HBekn} mlfp@7NLfIXa}CY=+G=p,-vH7Mm*4-}哂sjd2 ϧ,PX_ 8͢O< xIy_bކqT^t3цyh+hN_\"wׯ>|,> e+v&N\u٘i; `{_W$+ōB g>Nݼ7h ϐЛrhȬiS%SGF@ñl#яz=TLꔛƷ f2|:&UY:2dse##eQk~ =DKΘY0*ct> nw;v‹Vc ]N[J0v+ڒbn+1w6xSɢ>8NZZh"zfWE~Vh;6KdhٰւA[шu<1pk);a*^&ݶ z-*@&|)gcs6\*jc-Jؼ]?Ms^4֟K A}ÁйH)%mo8|qvOR3L Ѷ37N0O}5'f`–'Οr6b]`'4Ώjq+7+# pXn#˅@;@+9LK]{YÇ? ,fk8#0sk)7[)9fDhzt)ƛna M`Dcdk;ܯz')}W'"~+Fă3Ќd 3Z^|݀_ %ZW+>ݐ+b >x'w+~m~o?O^OX%͚5Yaϱ!Zk㢘OUh>5Tً?3N6޳ӽnBR~=Ur0?cQ&J3;9??3RZr[[dL6?əENմ߱if5gƯ~25GyPp.2ϳw/fΗuDLp(obPP|xy7 UI"EaG6Xt\[X%KI1mc_lGqɑ7ЂOV^QG;ܱz~DO.{4 O OLݥ7.v"d>Ew&UТ6i_}Օ}֔^dAjZ(IKu2= yMmb]7Z@WIwr0阏CAjz <]Ɍ/S~gLsB77z~OFWڰ+Ɯ1o@'/ti I=JѢ>ޕ<ݗU!c 4c(NW~E:ԛ|q+QVxFb+Hj1H8dj݅rE)HKkjʰm$뭈үQcom6wO$B7AOyV{qR ZUOInIg ʥkkqa]۫#M -Yz`y>^.,Zg oxH՛rZ:.]☈v>iPotY9k7UqzX}ɇi"1,w+W'u}CD r4yO;ؠwnZΪM[Ob19LACv;.ɰF&Y9{Sa8e|3,ǥW:TR=`pSp:9 fO2k[$E;G{U-  Szrv7sI)]Z !*=6F#,77/98+6봋oY=//gw?.Mb,6I7Vwx7Pr W7r+2{L`qIdW6.VׂP!M/TuIVGQJLj&|,qO7ʅl5MX(Th [Zѿ}ƺIya X ۰z 42xج_5S>m_r Z'Fj=ymK6VJvnN rOB{(?P~j5yQVrgϣOן5 87故ծ_"O۰eKq}] ]x~4˳NLU%0j'H^7sFW~Kc8P Xk^:4XvWMT'!ӿ1X#0l{U}^VO PM[+Tr*tDŽO쒫dLfx,"2ˡv^d՛ߙ}6o^MC_|"}೛DL୷P')a˒Y5cY.>q0dYӷI[-[(cޚ'vT3c(֓ 4ͦors!??rTL1rP@| uA:#U:źQmA7C0`XW.ӳ<·ifҙ]DfXQ(4YOUi6;1ɏtׅPԢB5{?PW62cSnVAӳl>eekb.;P[FA|ZmiWS zNөC6ӝq,h9W<~bI?HT0p`G^uW>d^/Q۳mT f*b%$.Jf)߲.oѾ_m`ƯNO7x$է|'+/B`yQp _]P4,s-%Yg:ј767k$AKQ 4OpFh tb FcbIݥ+Y{^GF;[?m2sU_n˔W2#zld5>A26π]ڄT,z5&jD`Ӏ}&QaQ|?$,T9[^VikǴfy/@Qf`'Yi:v:~f?p   E<cR5MJC-RUG @Ue8_6C,Un[kY#Yn8s'9w\?v"k+j .~MΣ#Lm%lZBcpZܝDh @ #IƘa*bv˻q~ǿ7JY.Xc]zl|nk9<#a;Bi7JiupDġ%`d/AWx40t ^od<[^:@-/s.o + ;"nJOa̾[h =-w I)D h ~5-wXX~GP5 e.?_֥S `A jX$t֧K(뀰%>+$Ab 巬Hi=nO2qGv$-OY~'8W;d"}Vցl4+Lh{uo_J Mn״{⌯|Znږd]& 6h`p,f{`Okt$r\yEk2zWq:6Cswk2}>bDa1-n̄}\S~3]i$O@9bӿ=NEj=GaMsν)cK͒oIc*eǂI\:L`,>DRíZ,SX N*<|(crp΁\ӷ ]czѪOC*I)oC6'P3xET;nHApvB4u8Ԗ CPti8mͦjB1k z**O_Na$_郣QJoPٮ7~:-}[cr^ eri*9!bToJh5MI6u1yU-vN?06$I ƫ}~s^B# gR)?hL^3t>㭿;t0eJq$nuZ˿97ڇc'~oM ܙUDjXW0hHƜ3$}m]̃b}caD#ߓ {cۺ2aYbgّw"m&{K9Sg1*O;څH5PeYW@`QXh'KY¼Nʢ lwkoC{nJֈSFb_h/s I8xÚ457ǎ?{B_[~? UeΕznl$NBEϛs#]vlb L_/ l^X:n] |&>~`i2Y]U07SeKYoB/R˥2JT M=jw/qTiHh;ki|Ƀ*[*n_- ;:Tw)$KqTn^;K'+=S#..~0KGp} A](U&8zU 8T^? z#uEjrekO7[k GE}.a#'͘@wS=A,)qS߇rlb F\+j,r~)c?43jP*nWuzm`mjXqP,ZHablTH Z?Ziv'Z$9gŽ0rw+g# B \!'Ø_'k//; ELy|!{)4 Ej TE2 \У)>O?ewowGl}3$YB5)qu;q_ɔ25$*XH&o|lC)+NܬLŻ#̉+p ;4\Ƴ;i Ϸ9pc1~E"1f]\sġ`r>osCjUL7\ɀM,o?ߢczdoG'kƂs 0'oaWO} OHﳈtR›Bimx!)v |Ⱥ'3O *bKi"4[lG44/Ii/_D\y`Ti!t-P<'Go$2%5 Ϫ89=dO B*dy- +3 ;W<2'"$^OC3*h, 9 1-CtY? d', 4%zf=fZXB:aECX6qu Wk+wM0mvx# cR2m/"_%ͤQ;RF]\o7:CyZn? k~H[9is^-~Fݺ&6xI T^#--y~)yt\)/6[Um\_;@g;כ,<2z~3H B۟((Vk N?{ifn\p"s?r{Ir^`+Ցn91+%9r飑gwQŽYSLk5_ @K|A4Z,^Z>ݍkD=6OEyu3K1ukM (:-'7;+&F|ijǍxk/JT>I1ݸFg˖=P{ F0|\rN}su̧3LO'HlXZ7i:+\:p/[g!/CQy-yFEp*1QKo5R>#icaY'A(["zZ¡*6ܞVZoR![GtxQF #} izEo5H/BY| ^Sq#an qn\Z%}m9w?6]#G~9}8?ybΚt_33iv;=tm u)eZ:L<5[0|9^>}:pIڊP /)fcދRG̑+l]ax&Τ7SjR:N:G2A_`NhVQ@w);7#nsJ^4i+kK"# Gn֕4 Kt L'ޣ4ȚM.=_B٢|1&wO?*}5<$Hړ:-M|*j[h hHX7q0<3zp ;]`^ 4;G%#nmli-7}u18[5.ayD[BJPZAAA&r掫wX[o>Iʧxںڟ[^b!; YcbÃq8Hf,Og$7: ,e9(6D&Ǟ? K,J OKX̮Ĕ`>wpYir;6[i4ͻyANC0eWLGQyǫ/ϔa>$ŤFp^iY{WӄLgꇒDhCg F.&&3 9, E+ǿ}wxkJ֘TSmۑlZ 3A$'-&F3+f{aђD$/Q[鷁FNDWx [)b"J!}-zj6EG#%"L ˯c60qt{櫈fzT;9\Mi.āeJ,ӳj$WLܿzZvdxz%4.g 뗩ɐ!F7 #=Ηsq/^=f+HJyPW_i>,>x?缉mZM"M{׻B&O+m.9]乭48+[}%Nho6A ?P> _d=#h }`MƄ >yKiZ<Ġ?H8pg4C$M ur̻m ӈ 6 3X)!+QwGO9ͫ:0ق)c=~˚*3{ǵ9ݴ m&N6zw iM;=OOxAp~&FOa#tIH@AdPtc3aWIs'<%t˧8h&@ C4T ]Zs>zR/XIYpKDS:oPP;<2k9=-yu_yTo4 ݸ*sZlr?w26(gA !rݾ.xq_.U:u 9zYPj ǕOUv3{>.}Ⓙ}j| UR3]h*5ԈgC0\x~C?saZ,u=K׈hʱՐS 0C3p3V3_Ɛ>Y~(X S!_CMy(%Y-j7@mggk?BI&J{[9Y%>8Aѿh;SfKv#NkGvMc*,2/ŚBa_ckyZ}h tz'{ kX?5z6E@ ]~&9IJV[*FM SBioS ?X;|{_\fL]+vb,O" Q$0KWχsǗhN[W4 L-5#Y;ܸDWjz1Gdx+=%I#DS$>&(u+ /U%V[#Sؿƽ8o9mKyg?M<0V7^vF7D`<^ߦSlJZ5L+1*X*Aa^[\ ڏ͑yoS~ώY(qL\SVDMee7R⎮_BNwgr[pCM [ -An6`*FU& Y/%1;,~w ,p.2.&h?!]yf-kwQEGAs ] ih' o-6XlRaӅh~rqZ5BIj;qV,ĿGC:/IA!PHp|\3 AwrOjai%RL}soquH8`9yL3,̍YUʹu,"93*0ij]ʉSqL`$'~M8%IZo ỲNY\C I|V:҉[M[oB=GDt[<1ԴhFW\-9_C^ PЋ+mJaӡ+\ˋܥ\WCPJmN 9~`XH ZiPQD!fJqvU#e@X[LL@~.^0<l[gM$9&_TJUڎ%wcsrPP|tM0a|&-Ӡ- ĄVZ+e_ʧ_*7) VEZA}KngUR4Ld'V4]Z1T ~> ;qwJ9lveeN$px i[j97|Bou~gr){h+k>ӂ77y (7JZв7G )/T*hq뙤Qpp[C&SU&&ftQo=|=^e!o#t@3Iفl*Ő/IK[|{cR|(;fwzh#}K}@(Co**95M([ۺmɌz1dzuA{}}fC%[L\CےA2s" kHhZdte ų?4|#zr:6νVn\ |; FԃWMʦ*)ElHzjʏuTjomh0$ /{&-uVy}zÜ,Q>{ ])D!Z"X{ei)GR^ )7[@põlOI||MlVbg %,ށ9"!7ܰE$FO!ke`7E JݚF6l:r?^S4j]FZ=K0j]8u˸8k2qOY&|kX|oi~{zTOPTln_& KF~NbϼR=ʏ&7Д$SL=Κ&eɯc|҉eҼpٗoFoP>& k@%8ϾOk Os"q4ݝ}N(9ig^$@E!9"NJ5˧^?r} 8|ύg}a>A '۵k߹IyFo`SK{,t)+KFj3qaH}̿۰|2(#/9&iw={mH(.Dˇ@/oZ`tNZՅks־QdF;ЇK3 f8ߒ WzY,T&Eu4[r9<~M,9О[\s{"ܗ'C>p]6PW:so?;giŭoт2#.˼Z֠eˠ.a6Zg`>щ\6$L48xSw`އ0G cV_s=b*^%sEaxKf_~ݗn>64.31@%cn}@OVO ʣ辈+Od$N@=}9/?문@DȚohVMzչ"IÞw;IF8ƛqAx <[iv#D#[ViOPc-*`iԹoā'AH^=S?  1=\F)IO탫gl {m5fCݳ$/Z^N~=[߽m.hI vy] 3pIuC &X3m^C0}^(e;63 ӎͭN J5Jo}G'E~)L1eύ2 ~Xꃭ>xGrCHHxӅ:*):]1Bke ) ̴0yBڹ:u-v7d|DCØn_Ŷ:j~( zt%L+LGyzrY[288Ȏj ݶBч >]/&A7҇SćZߏ|t1v(,??tDp[l{X{􆃮 [stw(#_P{^/XP +J@ ,ר4<0'T/˖ƃ{11K%XOwݤ;'o]9})!16~ߟ<ў;ʡdL?s'`0*f&pp'-#QS>E"Gf ꤴ͓;jqĝd#n0W;ofW9#qQ{ɿhO _0}à!ĐjxVp'߶ m6JeX!oRWy䮬|oFZalX2b"ٓ!@6KzGl/T`7v[z-DtFILk P $:ΠQaE` eN8jq%J R3?Q>31.[ie.?%, @FW"񶭂&i(B% f֐J:_iKWĀvm;W$CHe?V+A{ U9ADH]%f*q˫fr6TD¦HVdȜoR$g> ^j(n m|2_fP>Ӏ͚~N)'bC_s򘘫n<-+"+ 4zB*; {%{j拁#kv : X9m;QoۅWNpNtpoDغ6V:dwCDS w` ؈qD jmn3T-mTѳIsN8m*$6C +~.Ɋ>Ob{.]q/)-p8h9<I-g:j?͞|p=ޖn[f8dZ66? uE~h]؆q,tCK弔6-HZXN[5_ uB~CA@k#2ŤV"PK/cNovye~k{uDiF+>(^%Yخ4P-|Xc41tŚ81>=7sMTјHmI|+q:9ŤaH8j=~M |wi ;Qpʃ؛Ka%tP[vl=VD)UeWKna5:XyQjk Ay;S/,tlƒ,I_ۃA)(/-D 񻉹{'w8Dx?Tiզ@X_"MYSR UU+t ap&q2߅AR{URMy'XLnh*$m{"Qn*RM^*eM(?{6#j =ی!HGn>X:BFE=-$cyq7j$\x$O__ {e*z G(7ňApny G*.]_/QoIy梽募n9uQe%+gڭp(D9a]m^fnzzXJQѻN,ϛR#&Ic^ӿIJJ.f2Qu~.amVmǀ7 -B>mfQ:x#E1 =f>3g"ZhL-4Q]l&Jp ӹ7=v",W_NSg Vx*rH/-Ǝ|b_;-$JwucISYx]c0)MZ ,?4_@(a)?+1Oo z`)T}ګ349s(c0QM|S’dJdpY ]7߄6`z}!)nDfE…MШ!#'ս}U= Bƚ?}EВ!FJŝZ'wMֿT)&ek? C+XFI)bRco.֍Y`;<2::O_úwa}0wԥsv\oK&6A??SNvDBzzU/:L.1cYdžUFl6]1bR:oURޜ7,smtқҦ =f]geVJDV\>_FߠCtE<9dW/i7 [on!DlbIWS݂L! /3>B/7i‰6c 0^&.AS[L.Q#Oa<`OZVBSAdLoiR;/2k!"G#8e.*nq2bMV<8F_%G_A˲G1><5PQpr8&}f6]mqK $рFnoO{k2΢_ {HLn__n0 WEXnFJ4U[eFNBT+]Z'^&}}b [/!הzyNLQ[N{+I*rND Sʡ+1)x"D{a ؾTҠMNF(PQ8BZ_C\6dx\Ϟ2H1팄16]79 b Ympr-yR]"ݯGuQP,8U!k+A:kLWۓV!>R+DSW-c6r׻bpx9vlu% \o5@"퍢lZdMIM$]689M[C\x ~c 9elX g1}Cҙ QW6ي Iں[pD+~OB=QW -XmMb~쑟6~^" (˜n&P6)@d]N94s^ohmhMܤ,p5bOرZ'$ؗ%FЛmf¡9#=y?Mlۓ26ʷeTEvp8ۺ ؂/4bi+R]g…If>oO@>fLjλ GG+' Y+ǒ+SZcF5')b\'^ +9 Zv; Y.zbI{~mMQVd4D|ngv+;i!噽)Fm}RstI456s4g 3@~3ynNxMIP}z(a臎[7j5lAbUdqlAw$SrQj匇kZUgbGʿ>Sj"qNHRL3%t-%ow\nnN^{mwqty&S94`Pϸ;3v{5_(٦(JEJڧ_T{vXҋp 1F*Ž"s`a_%E ')Ț4=ɼ~ͶD\^{D Xx;0`'f&k@* sƉlp*bA(X用v)k؊wG~7SZo-՝"'ά^j_ !vXH^ } |zБ?;¤ `qj[A|iWt'l|~M?Zr9=AsYGYΉQ_Z`07s1%IGaaQEUOB_>ԺwRz6CUmscGd3&px1Er֏@[[@/i-IWf#6c3|Tz5&i}kBqضiv"0AF`Zy!h] (>fi;+'"XJw_ר_ѿMW; Xw2h#~L+HnČ {&_lV*#+q"/sŢfj C_jFecols w}Wy ?WW%G^}ЦUm4ޣx w&n9: Ddl'zҟu7hզgo_{AlS/t=o9cBZ 8-|y`>~fx7#~9V1 JGPپ\\UOPau4wh{Vm&;\rڂl\]X #q7JCwq'3sSпFngy-V]'pدlռ O˝>Vx*ۖ/jL!Qa }%m* -REި႞ƫdA}uO3'Ƭ5ޱ?_׽ \Rg}@'8,m>Vn9JȇփRYA i*|!3aV7*A;}sy=#d[:`@f6)xЋpr9Ɂcu.Ƣ>q%pUbinOlM_T* 9C~VJ+Gm}S-6m_ 5WwRUS͔NmJHE|:jP`9AL(TXO v,%cG:,vȓ'BRpLRc00~#sJ;3Nvܷ)v Aw%WF&I~WsՍ~8@8Pяn~"M| ՕWę7p88<@7_(*z!E"}+^P T#ZΛnF+:SޮY^;S+*;fC0^b}AFP'FebMgHjq;|ϰ=ېQzkG|Ce 4VW Ѧll>$]:Q'&wud2"4x!P]o)6Mo76A'w ~V_χAMDӹ_[T jZ_ uWxAҚS~M]5#xP;xo)z]LN%<"TUmp$rm,D }2O%^^0&Sa žK\!umֲx+[`B{(Nm]N1m6Ss\s5=:0lǐbsMҏ: (prG> Cݪ4~+Z z`收/r7̜:GS/k9okub4:o c$o|oOqSȚ 4y3]X@[ժxkdJjIz k.~X}7 -~+5:?kg%i8S )ijnKZw橅{oWAVW lJ'NY༯;PlD_'43S>Y7v$:bd]O*9)NMN$N筇>/ݾOs(X19 U=;& 2ot`!uJvބ֓گ ]XT!8J*o@JdF<6\*h5U)|ahr9rS_6﫰GvMO.=3*\eW5j8882^-de؉ySKv`[sU>ӻkgޡ?THY2 ;ZK r M0$6 o5N%,5pzÓ(GH5ܝ9(<B]Nkbpl=~ \!EyF8wjCiIYLTo[utdG t y¼:Ϋ \uՂo3ppLFO^U2PI^ڟ][;?̗zPգR=Ny3HZV3{u fpia-P*SeYOcTب:[kPr5қöٍ{uXWe4Ob\cI/tmw 9QH Za 1MwM``\Dn3PmTD~'R)f5!,P%y;i ejULq #9{(EىS nkP?{s ȫΗY*D]Hv_w(Dl0 Yċ~ȅOE_J^_u(̿EoYQdKga-r߯nw}MzUjc՛JM!}sdCIӰM}^Pڔ2@0OcnSނ߯%mlN4CdZɦ "8 4`z2g{!`-bcB2܈~ܼt@/"Fk?Ik=@NbOȋ>PPm+ߤTXĢϕ) |YZ^'gޔeFXJ&^~PaHa ?mB* =\~4/z]5f`ŖWcHa%oc26Uk𮜒b{ tىmrS -y\'Vm Ej?[Zً ꐺJ $*r.skoGpOyO],X']ĒIA{s M,ܴdm %3JEe|<\+󧫊bHdl5.e藩UViQA<a(x%nb([?:[YYo+%-V-m"fLz!EBgmw! %|/ +l$luP4%mn)/7T3rpFl_tFJY8 ouпCŒ ܤ5m SڹamL'cB-k]V1<ʢF ߘw%]c_ҕZHRHefն}hmfUce;دjo~{&PO t5m9w/#e'(3k2J µmHD(v Zyj&'kTDž7&m[xD 3CrsB P mDǏ!L]E汬lBsIlb=a⭝5kK޾9_IpUS cx~(r/D`PەjH i6WN]fdqϏ-8W$xoN_ YlMp{J aS7,:O'&h[#?l՜7ʨ@} EsR>!g~羐P]]֯D.Vea|~;]^TכAO+ rJ1uC"Ũ{HH^au=5]i_gW`xɏyNLA_13zҒ'u3[熋9a2"kty߱j}(;Lu&Tv-/Xg zw^hZG|TcI_Z3Dq< h؂7;-*l"ޗD뼯URR~2|fz۱Qz+4[^ۢS& zyE}OK 밞\L }}<0}d~Iڛv!GR ߣbЧЋW;{S55tMP`Mb5xqnu`GyyϧsH@iAf,P%.,i]Y5W\ȾBv^|w{ &$Dn3+#ԑUrUP{F ݰ)J.POxd84+u%:7o?ۆc,,@P.e&"1j,pAz`0unD==d&ʎ_Ӷym&i"<&X4g9n9IąpAVi#8>M0A1FZ,sXg;I|]>vڶ!K{ ߌ"Eٰɕl@&l+k>ikߎ#o;m@#3SR|-I3-1@WQii>|"Yje*F`3cS6u&$?i+υ#ɺNB)69~g_-gm(.ec]bky ޾|݆y~/-8ZR"^}̸Є+p6(x;+*HLx]/^]R]&x>j8f`5jj2uvB3kGZNHd DEwT'N?)cDpDX=|4 :pU([} k(A%fוz ]DQ~t\uC"&;,n5Q ]T\?n8g_ #.9?UhsDMw_1Q[Hd7K9P3 Kf[Q)֜/O,7g_W,ylmùogA_Ϳx{Աe1lF/d0B]?IA jy:S^Řp21^R}Hvm߀clgn x\q=W7Leu};{.9E]ȴQ /KI!MM{Lw&O}m+땍'\b7I =^i!ic. tH%RhvnO%F`(*="`OlYH{xNUzM$7p5N7hUd;Mpo\iY3ayAxidЈL?|v|;,F fH[ңf=2~7QYJ2%W]w6"ˆJ-g{߮3f}Wm1 .7AU~ : ғ ;z? G}"+%yͥ`4U#W- r9rrwqE~4RCBǤթoǿcvћ^`@Q1)2/"7bg dKʚ'o?"{t]ˎC[کKƘH {͵7M'GOG@>2C8.^{Q^B3yi 7U(D7 CQy 4V.hRNy\ s2iM|jz6-:*%LdI+.D`.PN+ J1Fmx ^o`("SY%G'Mki!OxeF>X(涐*FN ,ο^EEeIp,GFY/Gv D/Zm2Ca^ch᥶FX'r)χy^A#GL]D~3Tq3= is~xSy_i-30bľGR+[wRPW-9 ¢"_~ZwƮelYLף=< LRf1~FM]d>;?Up*|6ԣd g͂)!ig-ɬ&gJB7qm]s_%职MEQKhk|МP$thm]jvvz*[u!QwލwNm:[K"j! =8l(|ZwteוYپ5qߞ@7(4 bƂ s55z>>5>Wڛ6O^5%R> We\*FTɂ _FN UfdЦC.&6;S^J=!_W5^oH2qNNĬN[޶lipK+9R!+{+Nъ~11j엓~fCZ|l0,[| (y#Gk(4%ߖ599d6W#f$ym'Y5I翯j(Aً6MHL lR6U7v%Kիխ׷ͥiTU W)RJ%1LWRRj_2D])\LM8<p4Yg3p; 4mL@t"ҕZ﫥_Q,9&1wjoMT߱UmUXOb|Bj*f &ΐW4%gq77¢ ^ʓ^ʜN eW- O#zꙤ'\-3ܶFoGJ:%-V㍾캽:tXpq bTXRBF}sd唦92HZ >uL$E[X{E+yN3ͶSk$=>5Q=x}DLZ1 kpFҋVUq329t1'\jЪMM=h\̴rqnԋ$nևX#6PecZR+ԑ2ٞ0\[ɺ Xn-4 {TZTSeTOeWYg1.EZo=7^&͉WFTBOz53͒^c#>C jŎMi#I00$ SWMy۳Rڰ5V;Mv*ƴ]eQ$6 `OTr#႐vJ2⠔mNY7b ƒ ̔0$։ +zmY9:zδF17٥2N=5J9y`Z$3@vHquHW&j(vjPUNtYp4L"4[PGީx$xR{@|.XJ Itdm֔4S36GlqR#zjpTV+ߌw`t=xB{ BhxURtX46V˻hk6nknTTVAMZ?Un߰Lg6vrJ>YHer20 kbb}^^T! ;.$4B&ܡG6XAGs8y!fz,&yA81' wˊ?$$PmVjTdǦG*֭UDV70\S՘;`2Y1U9iܗ8iIVcDgٲh8?F8Y4EstXWʤ뺖d&&rӪVqRM4Be .Fg-8vۉIlc\Ju`z`-*W$3[x_ 5Z=TJL(Ĉx4PY]K9MԄ$z |=@c%n6M8:Nb0Wv!JrL HEtikV*$6.&Z&/zBshK TӹAYh|D;քf{\̭kGYU ZoW\~aَlBgRh \ ZN]&f4 as'H98[eR M%Fjt8 <ņKY sW ɤRS"}4pPсxxhqjlT6gYU2Џ Q RS' v=#r|p9fG(Wh4㭙B(jNfaDU(#Ma !5ioQuˁW}6ԛmO#v)Nd£*<7SJT{:%%A 3 WԚT--3R1>V "ò؂EɁ'FQtƂ*,z(Vp}R3% H-[!(d׵H)C,Mr= =|"F`lT.Yi)+n* YGQDKAt2:PP/U[W)jvlCmd u9!V:fzDi  ڬu`㱬K^Xh"!JU|ViTENg2"\Ea*pcbTTQƓ86s&V./&ad4|}̓)kM)zOG0dQa+=+Y1q^Y'RA Ш@ lxfA?zh&S1pf'uY "uRA:x)=p:/d-I* Xb(G(?4TN7ϪTD&GR!1JE$LG~S/($ Dڄh{Jf~G%9"&A|1u=]㔦<()3$y(H"dž(i;2$K x1M {1=C?JNݡ@XLȩ.?cR' ށAW"a5\-h풅jfk-|ϒ1iĪ^eͳkhA,lxeiDȔ18Mvkja#26!VKw+au+y J L5ZV1r7)[(PB̧ PToltJ-D` ռ^$/'`IrmǐwY|\bs9Iȁ0(Ҹ`㔢3*^2syh!YՄ]m؞YK@Gr r&ҳ-6i90؄UQ^z71&5K#iG1%'ͨ3Wʦ|zga'>q:\/1Q[gIj~eTKkl-O7](&(L,bZ6gQLp{`mz+N򐘂+%?B&Pƹ,7Kɰ2l FrHPfbDQos^V8Mꅒ\)dR~"緽xUJ5T~ePupF5M|Dv|ŔU5|?+l::^g2<:<k+3 Д6= .~rIiemw= Ӧ1MW{ԛ?RV*^ !1S!Zj<. 3lŘXR㩁Ri5VxO #% qKI,Cy$Daq2SR!:Z Z4V϶*N֝1dC:zCgMϭWPrݎWd3RvIm{mV$$h붙e%6)ّ̚2f1+g5q04^ l/Va!XI?j8"ݷ۪'>X%~d 3߂i8.^F*ZS#NfmQRjZ0O@xuziR iG2Äh2e{2a<*J^rsXד HxPfF5Dp |J$@ؕdU(R"-{H$`/̂'$[N }i88DcK8$R1 #'9ژJ|3鉂% 4:z,QCx8)Kap8-gWņ)ڧGPv%?^ )mcQՁ+iY2~7 w5@K\Hg(N!=Mu~Kh4a^(3U51r %LBV*3CmW+ 8AgthCYjZZ:%D' bSRY%vb  _䏸^jJ p!3"d&\.YF.E*2n˅t21ϖZm/j g-uvo -³`!_+v]@5\ɵ̙)1pNWL&^vV/ժRb"Vޤ1:QӱJ<-D^jP섶2I2)hRͬ`f92Ѹ+jhk2DbI;1d[ƩVPJC x9iA5K)3AiJlM4f 9 Zn2!zRafC Oź-;vͥ3S1W+Z97kV:r_34ҠjN PNŃ!BV3dU,AAI,o'N.L]b?x`2/(~a&[l5ULZ$$z; %Gu!"+*8=^M"aDȷ#ͩ;MV% 1=>=8STktjFTxMfA_{"P4[6B*Ԝ ^ rOAm~,SL:]`Qt8g&xҨ۴LobY38_Tk9=@0:Re֛&գ `yDYXBq)!Nf9̤R&T[)l'rGϴDiTd!37)L$%*E0Fz21.ɘUVvX ,Y d!=%gZq+nETAIDڛB[f:-=5D)b\bbEoP,M'%sJ\b&=Q[kZEnrL1^%[jGI\ B"B"c5)\\AhTr&[j-FV遗սX_7T g յIV%lUG& JyJ&Qz3bxhtK3ZSC'XX6t|3SjfhȣLkEOԄGv)r 96yn"[|8|WGϲI!mne4$$ ~= L-G]hdaYhRpaIc l0Fr 8R+Q8><8ߨ'I1$2I81g+Œ<69h4Dž&Lי#CQ*8]Vؘ%1^Q$x(]M)52\%xR qY3. D"vՎv4FӂCJ'9HIlנ6DŽH19T(x#i7! Q)R(V4X ѶkF&C@Γ.| ծ[Z0sH ?)e:<0I%,H )шaj(h76KFĤ(lu^h lk(I@CQgL @Ndfs "uV:H?Bdʵ~<ٝi\yԬ t* ⳼ R,9mgV́r6-TiJ阔GrʕᆖUNRZV!FRc@Ki䓅RɌ bԧr oN,}u\IDvόE.l,㎝5Jhdq𖼆\-1njlRL4*CфZnȨf7U҆0-4ZNB53e> g)'˒hW "aTNmhmuJT[/Mz mf塏_%9[lIO 5$P$7nYX!3[Κ*fk^*/Z1VeыKCBY\WB3LjD)VZ~FFE>M I^w 6ז:^h( ~pϥI)/@S(̙$ӓ d"U,ڸۃ( D-cDK 9zmdڄ8$h,M[Eoz/xMއH y U7Sfc"@Dzx:X\paj!Q9 ͂kh# ς `ݧӨ4Ř4s {#KlH QZkPM=H 4k k5ڈ6Hf=00| TK*e|}NUʋ4LTofW,:xZ%;ctЯjc@C=L'z錟:jjĕb2 MXRD4e`P;Y7G&>|C,d7q.dXI ,76gD2̈^&xۭ )bpd;ީk4>f4,RL.6 ]\, R(Րz ,N5^"[D|\kFNW)q2ݨs XS nݖYNziXy+X?,;qDcXGUρDy<\THeCrt|˶DD'G(?խ4f `#,Z1sQr XC L)0t'Cn8l3⣽YCE0M7$eI!;(ԏho:*UP:t i [-*+ΎK$wjĒ7}\ja z#tĝ1ʳ!#XJhGRn0)!0ld*ŌCS)r|;M7֜`k-%?VmLZ mqy! RV' c$\idZ1hd&Qh)m$Z#Bh\%O$fA[Yۑx:hb*miYygVoѓG0^ϴrAE*p51mGV*>d^mj6u:12Id#$%;a+|Z%MlBUj74CQ@a*Ruwѓ|/i0%i3a69 ͬB ^Yhє-{i0Sƨ[8GkRRd--٬*(WSR+#ɨ ;7|).)ΟT R7Vkx#ɯjf2Cs&^d?$ "ᔃ͠r5@.~SEg8Ě*֫Ap!!Ϫ.1 ^'o`Pc8% *Ʊ4|[xҳɁW/eȖh8/I'Z@Tg/sqWP&W"N/aճ?0G~`xLJ 3ƃ&+xRcsI͑hXb3ZzG^~v(Ss4w,0 Ѻ\|(úPOֻp_](rs,Dx(_tia;_جE=EW7m"IC$ET|:uW)6R4Y]ꃛiaּk_5f`29z]CZ"{#w.9Xzq1APEA*q5|~",zcL z8ؗ?y/#)[ F|õ"SLE?Tq4jmE#_~[0c=0HPMFՏ Ә2V ㈡.F +2QlʼnvD؎a) ;b+Sy1ւNRv5M̺3pĀu"#Q4`0F.Gx08 0W#uV#Tb'8bShcU{yDFlWŗ"`rͻ#*TWxG#p>H!}s}lye'~ݱkO"\>Nms~/ֿU 3xԮ]-e>_pg` 8*;w{?Sm DE;tmkkOE`yiM;8=@؇EK~"fv ,wpLduLK}-89p႙ &c>pZn΂s l!tM ^aUZt} *~\kLխ!zP_[Zhn3Y]=C>Vd=f k.D=<>|] {^\*,/Z )oY٣w}ktݚ,/ҧ]]|#y _Aw]em{\~"@p/_Ʃ9;}V"K˟lp9-.yHё K NEn3Fh.~t,"X *\ fgMw{ўs= ?`V%<#4K/f&: Mbp*l蓮!7.Ev:Jx0 L^?x%,Ǯ2J.~qSj6z^WwϫZ_=735pE< P2~'gPn%=240]~zׇ\|[?9V\<}a~NO^<z¼SEgvu7A @⬫? [pWnX[tލ(v4}u/=.o/ #Pc7C{zh#|Dqp;oo59|5|oyS μD^=j4{?Da5n u sAx"WWU49U?Ww"/Oݫ'}wa;Uүw*Za_BCU4߈J !)}_wo)}haIJWn<͜MWkcJW~\|dz`ayԻ+~:PЧ~SyV(h>@AS(h5?BA+m(:UR qVc C(h5t[Pz)hx9(覊=4FA+:0b[ԛHjr9q]JySG֍M\8/+Wϰ;߀V^=*վz]<\%tO)W%`Z|^rzd/'uO/'“H ~/\BN/ Op1_."qk_ ~_D У0C0ˁ`xE7a/\ΜpU>_NKɾpyaR_/lwp^>v^.nsڡbT*.̨Og>=O|OM_iaO fϗ߷OW(39̩gNϩ›ͩ)qH`ɎՎ"+Wǯ^X>/ڨMG;B~ӍgpyNqNe]=(zzue1_~%Ap8_] j6U_}AUhբV'.@P, HcH'Ί{Vܳwlϊ+n;1 oc-l~0Ѝ pJ`$i]ozp A;0+͌Ҽ򛾥7q]]-ez1dr퉴 y}󳜟|7[?YQr֤O@,}9e) .^G{ޓ+8+8E=/v搗&4w;Rod|cz~1B$hnˊ>Z._x2ج}Le/{"T_|Z]K$"w->Yϲ~;oH .^5pP^~ƃIOgLg=h{7hIކDh:W-Jˋ̽廮1ӿ4?'tr;yz0OoӡtwOoDtpOx:ӻ㷓wCx:40Oo$nqOoF7waOf&O51At<˿ xϩu|8B7+It3Gy)t3ޚnV6ts*{f8N7+1 ݄[tn-fŃt”-^lN{az Nafv0ep)/L/Lى\{a/LYI/Ljn Sp_އGxavv0esl0%T Snʏ0ey)6ζoTYG3HuD>7ϼy;ΛoX;S`H3;s;y;S_?|S_R_Wou.S_ŐH^}uֳ.?7[Zx,oMI14+NYdHY]cV8-?ǫ_ߺ S"dp@#YsaNI ;b"hF *KmexDD7AItoO7w+YDt ~Y"N%(݄wnBmY|,yYk0ݬ͢N7aO7˙nVU죛p",'tl;Y999[k"?}?$BDhu"uXؿcN {rD;}o! {woDtap=/SwCׄ=4o$anqo F7AwafΦ51aA {?%BS( $ Pм oMAP w m)hBw- Z |7]A Zn<2ma/f. bQ z*8LA9[$RKi0@AI0.? [E$n  |zw۾p9=pµ5Q_ƣ0˙ p =.8LʟI  |z3t'9qi9̩gN=sNN;D7AItoO7w+YDt ~Y"N%(݄wnBmY|,yYk0ݬ͢N7aO7˙nVU죛p",'t'd;¯~&7uΙΙ֙$S]֙8VWzhr0EEo>y{ݞ\dvuf_<߷`~b҇ G~ S+Jj~҇p)F$NWPw(}qHCJ;~;~7tMC+F0OR(6pot~Gv(}hl*}-_S҇8?GoHf9?Yl)?vV(h>@AS(h5?BA+m(:UR qVc C(h5t[Pz)hx9(覊=4FA+:0ݎ1_n;23iev;3?Pr)CDl)/q"E$nM'%R^Br(~H9&"!()/褼9;IyU>R'z2)/8L?oHfc,'[̧g>=OvORfv;sSϜzԝ;1N9C=FH,z2!1vGkΊ{Vܳwם~cwtb7$?fH>DpYbR3 9/Eß/.kp A DvdbG @V&b-"]8QY/:U Ei2ǂLU4]>%GŭSL%"뭽͇ez?Qٌa37 3#Mg=hDh_&cDXo~=׳I{'BiC#no=B7+It3Gy)t3ޚnV6ts*{f8N7+1 ݄[tn-fŃtr~冴"[ܽY K_/M #(kW6k>EX븵*嶺0 >6crY#a >{jO>MT{XTx K}tv4G$pk;8j(#aP`dyi*XSdO)Nv 69h+MNiyJ>؇Wũ3!Si*5-Le2;TnDtS SB2!~S;~;Mn蚩 vų /~b Go Sj~pF$NPw_qHB;~;o7tMBF0O6pmtoGv_hl_-[8,} ~g;ߛ ?wOՓWO;&KibP~,cJ,._dq =*t[#`FZ<,kƣzrUd1(Kɲ<,~ z1XױKgv,eSYơ;_=I/!Ip>$AIo/Iw+ ^D ~ ^"N%wHCm ^|/y ^kJ.a/˙SWUp/'KXy   -|}zxw[ ۾Cvm"wS|xw 6޻ovo3r;vmDݷ3p;wDrxwzOݷܞ}[cwd`kwM}6y{ww+ڇ6=w"7׽@~ 훃Km+ȱ._.WO6sV{/'\9t~롪 _{ѵet|0&2] sz{o!{Sݿ;NٺtWbnf H$-Bfvqfzlṙ-SlQPl"-efp)'3[T02[순+giB€dCg`Lf2[@*lt;6S4}7=yJۛZ#T) }n.U+ZeSMh.*Y3f]]D`pzs HGQbBstj"?@@!.%N 9c|Q(H+!Hͧ4SwBUxIj~Gޱɧڴpk>!%'͇OQPf`IJ%'#QhW!L7gx YJ7'\9 9n0~A)C7qY@7rD!Hn4.ݜ+n@nTnb/&J}t;VBOK.݀DB7BҍhӍzK7S u"t ݀O7<~(p)A7pnT0Ǝȡ+ӍFtC€ \94` n@*8@LӒŽ>|VZ{VP{廹_$j"JӅg/83g8[8[*p@>q`z1pP 8s p8]8[ 81ྮ{nqp>۷gT(gU(׾ا {D {Z=]{3%st^gE+r(s2  DZg#2Y({Ts {n59RU9}'^-GO󞖢\1,~ZyxZ-S{ZRt䐧hi)ZZ $O>-EQi)f8R9"b<-E_,Ri)]?-Eԅžo|37oVؼvoKf+xӛU<[7[of ͎o@7[)o@>eof=N7B'Û9F7btޮ7[7[/ۭ7|x+=+Ԩ?>B$ I,$.BBYH0<7 tjYH*YH@$ ,$x,$.%a Rd,$5"H,$r,$BYHYHppo>NXYyǞ={u>NL:ʏ~ 5 8] 8Bp`x.N pT$(DR>åCQT;"p8jE 8pЀ]0#2p1wS29%jvBs`y sŞcϑʰ'2sNǞL#GbʰgMhQabϹr0]pg԰HU }:؋ػ =fgfWmYoǷW9bk{uڵ_}$^/ &?䕡 I+FPfqPB-Ceje(d P!e(@TB+e(h2TIЧ P *0qP Ce(l2bP@L.+C2Z/n,P%JI(f)(EӚ(S[F1KbF ND1( [Gxbbnb豹ej#cN1:rhbO14p(P%A1! *QC1Fǧ9"(}0serz1b_܋{|QlY!u⭫b %bf:ǖp̖y#-sV8'P2OD#r8fΡhr̾X09p8qVr֋9On;a9fU|q_%fOK<<Ǜ;oM5(-x_MR4=, 9* e*'W:o{{-zOݧmo7Iwfn$H 5ZI "H0<Ԋ HA"E@!*R~$?Ea$L"HvDN$+AR( R vAY$ʋ b݋JE_v̏wD wZ;]w3%st^pgE+rq(s2 p qg#2Y(wTs wn59RU9qw=?ݳkM>io@"FFF= ϥЩэ:@n@ʧ?n8qH7*JtcGЍFM!a@n n@F7  ;T턥׿?v  pF g9KΊW9QHeJ9' # G eQ40p\9.83jss7;agաܸ/cM%yyS {Dm_E:]i_ e:[i_gF _g+uT뀔'י#Ft_gN}ξr}o_ uTy_g yAfr" -'^Ƚ'$jnDn\ݨH P|CK tD7vDX!n4nʡ`FdtR9b=_ΧۉK7sSm~R̦[+#Qž`hW!=gx Y='\9 9 {0~A)=qY=rD!H {4.+Þ{@ {T{b=_:{',hPܧZp.!80<p@8*D")pxPRp!`*8V5"rh.T8pp7};agR:#Þ-QÞaOoWž.={xl'왑=;| R)@DR{sg #R({dس{N<ERew}{zf[Qn5?yoEb(n([Q豹oEejoE!cV:r[Qh(V4p[QP%V[Q *VF+ 9"ފy+ }oE0oEqeoEz1ȞzdN}&ٿv;V(M 7Myƛ=o xś9.loR78ހ}8 z1oN7sE oł逃7] oRo^uݻvgZxf7B H4L,\9b^ sHss1<7^(hor0~_գ^Vʿ[x_i|;pX%i}cR  5r$)GB!N-HEB=BrR~rĥD8L9RTJ9#rRrQD rWr]0)GB K9<Oh( Kz Ɋ ק=ɖOZ>J.>'[i}2#y}_ldKh}Rv}O>>#'B(]i>aOONI(OTy}O֧w%/ӡ]\[豹L⃌z9*>h% Z*aDf8NW|s( RA_,t耩peR^AŐ]Rqީes}@u|OV6ܪ|j1>xU×^mUB#2DvDvuL%2-S#2u"ӑCL DD|"C* "ӧ LQp"3:>9Ad6鋅&2!.#2֋4"_7D7@d+5}IMXG7D&hjh 4:4 4  QjHi<~hjip05MS)5͎IMB~jFi$ Hj\9tjv ,5 48@5F`wwOi~k1:̼>ϥ3HLQ:b:Bts tjt"Ng@@!33.% Nҙ 9tf|:S(H:+3삡3!Htht>AtWAy Ff\?uYͦl+Fn8eI&IflLΡM2dL_,&tlv&V7ɴ^I~$,`&_pqEFYE kwV6K,MO|_,p߾`iy*2>j~r\e+.f+!V0<@V*lD ")xPR![`*VVg+5"؊a+rh.[TVp?{T$>[qJz F'`m+a !<⠅QW$3I,\eiQe9|&X{t2_|- xo j &.Y~7+98s\#;]ʮ"٭ fj~ Imf쫴}F2}Ȗ|!Wl⬳"F0rO \҃ v~_ur?f~l@"A0FLL=  E0Щ!:A@G0?@08q`*JfG LM#a@  @` # F=|.'_i}:ODi}2ԂhWY ^>9:/ @(#O0~ J9q|}a}"GOP>Y(z}]+[.8!P[ yA>R{e*WV.rzܴs/}d!ח3{i:^Ĝ߄ҖX|^-j2-?oxC5myBA|;sRe&?lseTFS9sbeXy3*/#$\Ha ?!)B{uV#L]a1[y#'沋y_OU/\M2]ִB_4fLك PScצ\~jgK/v&s}ƯbpvM^MޫK̼\1\>k)m0m}mNWi O>79$j;s]-ڙJ;s]}gn/ۙ:O;s3wv;s[3ҝ9hg>q 91xgN;ss0w̝.x;s]3;s;/ }C7V[A3ǝ Wǒ*_;t灜_MkSU%Vi}㷝;?|۵}ڏcG .*k8c4~sv/}EUUc+8_F`?6~y-ϫ4Mϋ͟\ۍo~Fw&W]g1Eyn7]oƿoQ 6~!n߿{ט4a4ƿ_m4?fq93t&21cƈ10~ʈӱ?7 s}5G_eqqo?4~~Иsicw? uhv8bck/8PG|$x]Q7vw?}H<*F=*.ЃGs=*ЩyT*@!@xPK NzT*JQY!ߣR(£"a@<*rh `<*!yT {Tpأ|Q=uWSOz=;_rj~^p/7RD ՆZj]Ն3%vt^PmE+rQ(v2T P Qm&2T[(Tv nT5T;RUT;Q}%?WQZ!>4p~KB >zϽ'$j"Jׅ!n/q3!nq[q[*8@B>q`z81P qsC Bq]q[ q1/T>}#?4_Rc# k}\1ZYZW>21P9>@ZZ8>x}>d^ yևCaևXJk}h֟FM[z_ڇu "tobsޓ<@+$m{W3cs=-S d =93g|π )C@Q30q<{rEx6g/3<{Z/ } {3Xow(ekVηr@"j4KOC Zz(K,=?4KK,=8qgGdY!?KOM,=$K:K`@Ry |WAJs~-` 5j]jB`x.N T$Q (DR>ƥCTSTB5;"լjjE jpШ]0&2T1n?GGu6f<]׆a3-{ ocp[ƭ Ԩ Ůzp`x:5WAEBU"(DH*p)*CWASU#r\+ jE $ W*` 2WrW?^]*Wn.*&>M 8.8!q0<@q*D ")xPR!ĩ`*AqVȇ85" 8rh.āTqpg܇q#ssw@q]-ޮq]2:O7#v R ,@ #!N7Q<0!n_9(ĝ.xC]7j>}?:8H.L-fjwG\j\bsA= 0<\"n.@s"s|s50ġd.95"\+6 \Rc_|įͅo.P{?DjBhz@5jSC5 uT" j<~(q)jpT0P͎A5+䣚FF€\94a @*G58@9>}T T;n&n~{VHwCn!xW!xzlCL!x2ӑCi%!x4pCx>e<D83:Cx <}vCR}-2-C^}_ H NQbBs!tj"q@@!8!8.% NB 9g|S(H+8삁8!AH!>}_PzQoc8$]1wqW!9NM2889$9N DqZOC㨒Hӧ dp8'9g$鋅N.KJyr֋a>}X;RiE7SmOgnH$;nBvzq;nSqSPq";nq)'wT0v순7+︩iF€Ca̎v@*q$o>}!,@QiI_@"8F!N!N=@ υ8ЩA:A@ʇ8?⸔88qq*JgG@!NM#a@  @q C !C܇o2E> 5 q] qB`x.āN T$!@(DR>ǥCST8;"⬐qjE@ qp]0'21%Ux hKoYIr\lkac/Ec2H\ ;_h%:S@{ؘl^_f Ffz'U壙ؑhPu%ڂzKizNi}^O~߼Brw!f]HW.$=6.$-S I@.$9.$-݅hл I2 IQ.$3.$߅$P]H6]HbBn.$߅e+};{{JLzs~D!އh}:   H{<~{ppCSiÎBއF{$ \9v}l8@ _C܇ށåsRﭦyvܴBvm]7=6wMvd wt7-i%ǍqJbM2qATq3qv܌&PĎ /z :`vnlM+;nZ/ITڇ1muz ugXcK`m˼ڌWXۑam+e(Xۧ X aMd6P4pam_,8`m+UamŰ`})J}X?WXf]s]Dup;0[_/T-l`:M+BRhe n.18UmէxEpUE?mBvEc\U}հ0hz~yF3ЅpaD&hFhg 0:0 0  QFHa<~hFap0#LS)#̎B~FFa$ HF\9tFvd ,# 08@̭7?q˧&F[>Xn>Cq=^N<ʿV4XV~QI:Ўs9%jЌvB@sy @s͑ʀ'2@sNL@#GʀfMhQa͹r0]pfԀHU t}Ю2h(`M 0zAtBS)=봩=7_'+mU1XW|Gc^nsJ,9K, ܡW },}Q/pw򮯽KT PD%D% ԈJEB QBDT JT\J8$*L%#r DQQ0 DWMTCTB #*ʉ =OD9" ~XBTGDTC- ѮBTC虨::/D"ᕨNDur:RQaDRΉD遨BBQiMT* \:WFT Q Q*QDϧ4~cw~eO瀨=W }Ϋye@BR2 Y\<csˀhZ2 :rH-J~8 Ue@)2 2Je@p2 F/"PD X2 Sʀh ֋~K*~5dY.mY &gQj;:%̷j"kJtޙo-c%|#oE|K|K)e>8i%|97pb:)9|"|[ |vE[Je[z13܀|>e }C0H2>!s3@٧"D2@!)?R"Nf`*e9}VS("+.>!eT{ ^ y[t J^@z2/`i~$ Cvr49@qYQ=t{yq'p$JP <Ѯ gO /΋'"8zG!T `JO8 `zBO@ eFў 8W .8yG ĞK4Opz''8lJ+1FkeWc͌G?\o=mMHBpj^פ4HVF̱2)cgX ; z5*%W|UU'5v:n$Rx^"p[Yl= Bu@"quDIBN u@$H; @II)IC.%8q$`*9 vD`|'AM'qʡq@$T$ ќ{|'q8 Z{0\%R P''ԈOEB BD| J|\J8$>L%#r ħQ0 WM|C|B #>ʉ|^x>Ѳyz>\?J#QZv/`={gxpt^ ^ 8 p2/'Pxq/`Ӄ GzR(4T^r0/v@ 8RU/ ?|/{ gs"/+y] ˼Hxv^V(x[* ~"/O`zĈb/@^F^  W.x^@(z[^༛}/{ ^#GxGv@WJt{{=3# l#01!#0Q=2 {#p#l=awN ^٩/|& h =w' *_C+*U-DY~˾`iyh~pi $ZjDք\ZH5Ph |ZCiK ZDkvDY!45ʡi `hMdR9bZWv>i<PO]Yp[V?_ D̤~DqJ[<1PVbÄzUwǿuN?H<F=.ЃGs=Щy*@!@xPK Nz*JX!#P(# a@<rh`<!y {p#zn%G=v# ~,q+p (yp$JP ̃Ѯb g /1΋y"<8G!7Tf`J8n`z0B@ eF <8Wf.8Gj}p"4YyHsﭷq$jD\H!>P|CK ħD|vDY!4 >ʡ`OdR9b^'Ob.onT hǯw%^(yC-F03 8:/^W/ 8Rx(es # )ykE{* \/\9pxCp{{|/( |x3%^y]-zЅ޽= :O^g/`lR/'@z9^ /@(Pi0}^t^>@>% jw |/+^'ktՙ6h+"'@uLͮx-H m5 c%#Jhu\G8ױ(ϰO?De  7 #?@cr by}U6v PBɅ>ԋ/]3g>W{J!MlZ|n"& _>]B.Ґr0{f|>,ďG!q_B_2w=< ]1JrYLrW\251P'99@DrZ'98䨒 9}ʐdH !9㓜C$gXh2J9i7N#wA|ɫe;|R hƳ=`Kq/]*H<pԊҌTԿ{h"F>?J|P Xf%klOd|>'X`)>'J'X Fw8OpuR`̡x@ v<+K,'ܢv''<>9zp;136UMH$%~-#%~C[tj%~T$K@?)ZK?pď R;"ďKiQ⇄)W]`JH%~1ICwvwBl?{ +Z_fO2 t^L^V_;wLCb2gL!JֵbC_fу\}H$Ph B] uw  <~'L%wq.i.0 \9]08@.~{.~> ]bW܅'3(e4[n;Hl]vB϶^b;aE«pȵBn;v l29qvX`;l5mpv]pl!PTv8HS޷ѿo7i;_ڎt|cIU@?ZKE]_STحT ;Ht?1س]CāVNJ7,+p(iI/_WRͽC= t P@'@'ԀNEB ЁBt  t\J8:L%#r @QБ0 @W ttB :ʁswj@PWY,D@BŅï~b2ֳ!n!tUu, ցo5VC0W%jvBτwy! w%ޑ' <2wN'L'GoMhSa޹r0»]poHU  &?{;>O;Fr: [(nҮxkϠI` D=q,+*JQin.YOׇG71=I6`8fw_ fvʣB6Јӏ̛{OGs }GiIWGhW>6YpuY>@Y c9Z zdVY@>*GS,ATzd?@ΡG , ydm=@+,z?4q]w>qxCެ'wU'~I[Yf[_wF#;ĹLr I.f|\ei}6fUSE%3A@O7Xxa]:U[O1s"/lٗNO5oҶ݆YxUdqh2Siz;/$uwSZ!+Fq6q<SZS28#pJ+8EU8O N88et|s(l SS]SZ))_pC] סtDY uH!Yit!kl:dPy:k~lJOHuE&BQCBcT뚯Z1?Iڂ@3>o\vQ?^$Y۾N h)k1[*D#U t֜iycB2 M-͵-_VCi}mm8RÈZݻ{˞9rJ\?emem+c0so+WWWY^]JuLͽ1PwtJ DV+8ԽJ½ҧ +D% q^9^ Xh :`ܫ.sR^iؽ>#m>}8lx4.DKrD<;Mv._GµZKiૼcl5o[]{I-Fkوvq-!PֲZ- Z6@ (Dl@ʯeֲR 8eTƎȩecZ6jEԲ!a@jCײ.Z6B eRy-8@7kv:l>ɋ멫_p)n׹s_]S =w0i}.Sڦ-%@9}}|I#l"+]G|#Hxv>V([* ~"O#`zĈbA>œF> GW#.x>B([#>3]M\[G594 \v5XqGĴ6*q|!xB'DnxJB1s+FH$FPFhBȀFԌ  u# <~' L%#Î12odiad0 F\9]0FȌ ʍ 8@ldͯJ*~?F/dpOpK_yH/d鿘 # as 5Jz]LzB`x.NT$I(DR>ǥCST"=;"OzjE BzpФ]0'21'>ȭJ7+eA/uzc^='Wi}T dzHե7uP+sxܪZ~ 5z]zB`x.NT$Y(DR>ǥCSTb=;"zjE zpЬ]0'21돽%;uWga3*shDŁBA[ `DvStv!eV$`<9]$轜;P>b>,-Q_oW.~{xm' ~;| R)ADRso 'R(d෯N<EReAow.a޸`iIq8~i|q$@Q@=!\tjD<P<=?R `GxV4H.@dH OM xẄ́fT!k'`ڻx;Vޅq f.br6x,sxב#ڼ88Rybr%<,X7{܎\\ZYV} (*yaq7@" F!C!C=@ υ ЩA:d@2@ʇ ?2 8q*JaG@!CM a@ 2 2@ C W/ s]0ԇL1y>B2YbVzHhGfVy&4 j/AJ}3\6+W}HFQbBstj"0@a@!BE.%N" 9c|Q(aH+FA!! H5}]'}G0!Œ_>dS,+ϒau?KHfl3Uf=^6GmV$ mB6G*cmPʰ9qmV0=Q6R(c5F6va!Pc#Uesmw>l#d:M9N\WNVн%S7 P0/ko<@"FCC= Щ:x@<@?<8q*JaG䀇CM a@< <@  yMxMկ|Xa^G˸wDHZ@$]H3%Drt^dE+r(Dr2"  ljdD"2"Y(HTDrHn"5"9RU"9tD{nԯUN'5z) m!EA: ߑU&X|1xO x0g=-*_;ӽ}o0o0p7o0pu L 9 h h% `*o0O~Do0`|9" B] R ^̷/;Q[~O.Ϻ.MH6QDM!s7Q@"D6Q@!D)DRbNn`*m9(VDQ(bD+D.M!mT!s~߉ =V+Ѽ~7/ۅ< HFQbBstj"0@a@!BE.%N" 9c|Q(aH+FA!! HH^~_#l#؞s0bïnmDmZ6]m;elufF3f+fKl HY'aL/l#FJfNxa;rP9]ئ fKf fۛ?~m{gM&Z!ћLn&p{d"c~rn2JM&4pM&TIdOd"tso2s(&&}7@M&]vVo2z1`{`~7'`-Mo- X 5hbyf%h:Ɩǒy""'%P <%uABw81y\<'>y%|Q9zя[q$FSzD8G=ܔЩH@PRz@OCSzH)=*J)=vDNJSz4H!a@RzʡSz &Gd)= b=_wro* \YLYߓy՟~}ZH$!(dv1dȀṐ:5PP  AHB'!CS 2ȰB>di$ dCCv@ rȀĐy5\[5Mu>,Roxy@Z!b46Cejy@2y@:rH򀴒DQ%O *8y@Fs(" 0y@]< ꣏j/QQelz0}Ya% j "iJ tf-c%0#fE0K0K)e8h%09 3apb:)Ì90"|Y 0ôvEYJeYz1{+a{L~#7>ƭIPy>]#|`xn|T$| H(Dy> y>\J<L<;"' y>jE0 y>py>#<|1x97[|ri$ rC#v ȐryrM#>rg1?=8*{zϢ_]  EF g9KX輰ȊW9QYHe,J9' # YD e,Q40pY\9.8,2j,r,rXSwu{E& u${ܧ~1Rw ugsL$T )E Z *3p5vZYONm>]Tύu=,՟jW?j欪#GrR@?]d^_[N6J5?ۥa+ڂS{c}}2g[[X+O,B|%f+K*b ?`4O%J:6* X_/#M'iMB6܉uc\y*fʹW4^|bm|:܂ZVA@RA D_-@D}ʰ R3 >9Q)/t|Z)/b̿s>uW1cs/ն?( ,}_Hpk$RM,2Zt 5X2Og`Eo,R@Ndh%kS#^ ;:0P 7ł T6^, o| 4G~ %@oV1γǖ[1jq -[)3 pO7f=b8 t2`Ρh@k3N[jl5. }v52<R<zvs9wMTH@Nu@g[L2`[ؑhr͢v&R9>bj,9\+~DazRH˰{O֟4|D. w/x,bnK鱹,ej,%cR:rKiR4p(KQ%R!K *RFg)9"Xa)},0,ue,rz1K},=Y]e8h,+}Y!XV~nIRGo-'FPB. VoVAX{l bmĚ1X;r\9bm p%XqĚAXb8!b F,.bCzbm*bmuĞ}ҮnWZNst#\ύ>\`4\FfW`y4ngW/4?Xpn?A0V]n.esYCtB_|teiAꃰ̿}y} jd}"D'Ba}s'S[HO  H?t}¥NOT0'vD 5"'$ z}]0!O@*_ok|oK]oa3rU-Bkhm PwVT6(q8%`hW1гpGXjr G*30~pN7V0=rD 2`Mh@k+3n` #U5bCTxNG2?'OguVJsA2?< Kd%vd. %ld ;dPHRi2O R6`8'`K2Q d9dANd.PLRd} <{xy/yxUgg9hQha/тh9W2kt؜}40eU/T +k}?4HEQjbjBstjԢ"N-@Z@!.%NR 9b|jQ(ZHj+삡!Q HH"Z|n_)|jԂ2y>=4XV~ o1??s~VH]1Z?6]izln4-S&c^?MGiZɯFOJ~>eX?MQ~S?fO ]? :`vY4Oz1ױ7Ni!:?x!J .,DzBi_df;Z ᝩXJ4Խ[鬯 #ݝ=+ccSHh)_ʎ&GBfb~d+mw-7Lu{4T3RкZ- L2fGt Z2#kI4T$C}M鱉lr%>=޲=Jt[ Khal+5ZMd;BK˅Blbktg#\ 45S3C+ٝvZ;W7b[ۣtZG96-M7lv.&#MkSMMXXvlt<< OgwjFf [3v4lN 쌮U'rk xvCvdohqxvw2X\'RMc[rDRNu)ܾ1?װۼ0j]Y_n] %[zWS=+ZZ.骎Եԍ/; ֑R>ڽ:.,oƧuε֡|}dk0ں5ۛnk-ͶCիŸmӮvw~rbz*ӛY,.4GclKsxq~iyyshcbf`:R6wj驱TG*o]Wdc~!Q(ۧ |fdp8812:0[O,6, L-l =酦L694?VMNTO;buHhc2ښnVO& #=3ds&0439V;ʬg[{ÓF|31_8]iGs 3- k;MVmhOwN-:b##󑾵DRX{KG_}c:;?4; /֪7 mٕT!h 63B,\77^?k_ۜIm bDv;6X՞Z- vf5u=cDbNc6۬rᦥThfd3ՖO:cpo,нSN/tn7׌ַv:PBt#ىG6j6B ՑH76MO/ΏD⹥|ggJ$ӘuJwOS$9<5]]-4wb˵#mɺHژ9X(vךrdGzpbld1ܟY]_oNͮ:F;FFӫ kdB&r}Kk]kC hh&\hH/Mw#pm6dh33:ݜknh^ߞh.mM&D,R7n mfΙxr!3^ݓ팵&: 3][S;dHJMZ[ D=kwLfכGgps{gb0]nw[龝Tvk!^_=/gfgk鞞\}}zo{mim&V75վ蚝 vo-Ռl6u ۚfg+ ٮHC5[ZL.fBۓkc3+;=롶xKlef~fv.6T9E]ޙHl)5֮f>ܝLmZzms{9uںk\s+њhdf@3 p*6., m͍ ;lnhDr.o,%k-֝ڱաL@w}w!5Ҕ_o -5DcXd{x}1ӓOnkHt,:4um,7 ͬM%FrLjidU3 D&:;<3m\.L1Th u7W-hhnm9Z;WGgGbZtus =[=09޿]Y]׭6ƴ!j7OgGc3lXJHv"=6W"W^iȬuLg6 kc͵dz-Siݚo6&3= 5+][mMskckJdзXkJd P7[BdstqEsf*^Zl텥ށjxk2o o/O4u%#+h%7ȥ+M׮ŮꌶHOƇmr:VsSF]hab)<)DThsq|9ֵutP"Z\LML隥Txl03Z]͵lu /LmfѮL*N'VR˩NWo]hk{q0VײQ:61mL.ߝN o Ftdgd!kvwwԯ/[rÓэL}}z}[:ooeգM[Ljnrmb)\DzPR`kPWoZnwkt<-Dٕ҅r>=Psbsugy}'6uj[Pihn%5:8 G3Ջ-M+} 8Nj1ڸҜ雚lXhhHٖ֥lj?ە.z"TPv~6֝nY OFz}+Dmjg1;7ѮFaU=0;\oH/e= 뵳[S3+jk]z"5nMoj#ƺx(6XNgC~f-KLdzٙ@aqVW7NtokG֖S֥H8#T$1d]j&ܽXͮƇf ӣSXx*^˧"+mm恱jJSrmuus36>[S??65=:E;&޵lx-2oH ٙl{:;<)8(~܆{îw9{i[>'3FX#rhK[`V˭n| vk7`gq~[pff`)#Ϣ~7XY0*Vd _ؔ y,[z >[&&;N 'bNJw,0(\kDؿV}pno dP[,~fnaŶ.duR3'eǗc (r 5ݮ fgxf7C"JsQ0j׆'AbZs/AZ ll+J c>myoB*E\F|⳵0K…l&#ǿ*S=0I+~fpTݥojh}C[ikX*{'_ t5T:iu}WGֻV򅼾OCG멌8J8Y`~)M&H/U][,3~I6A'/-/wgȎ)EĖdQl (A&r{dD2xC^s}EL}%g+.>]3մQam(en5A+cẘ'>g(/eYq;"Ct-ߜE`y5HQAdpRld*PM>7:P :aIa=pΐ}琿Ȇ (!P| k5r#p,_А/']gw ҝP_]RЄ>Lԟoc'hSDNOve\fJ M7hG|YSKl;A~3[\ރ3iGp›"BDl,rY{E!MqW?%Yc ̏+3?7ԚChKDNOzF||0R[^CsX^U:}'wQydaV:sZ2s6S%;Ky9,S 5{x,k1!WR=eZ ]PYq/$Y^:Wi+G,":?#B $8EPCfYq*X et}2U}DHnZ3uP.&M2xh'+È.a*T3V/*Yߓ i1TT7-e aF Q3%~&a*p6gQ-l슿ʋNP9B)@{LR6ȁ'I߮O|` z1FP7]ud;OtO J7܆+jZ1)rީ;`-`Ø bL8labY&IRhL GZdɉo>cu)v׻=HU Aw][fx&p+o+fBBx"֍r5u_'jkU3DI^2"cU5=Z%J fg~W6*#يNxN_SSmiqU)5xWo#ʪYPAjFnR1Euxd:s˲S:A.#Q` (+h, efЭM g@ `GqB&"ϝ5&Է>ӏx{ܟ_I]jٕ?ט6zͻ% V8/'bd7F@ϙ~)Ǽ锦Opl~%< V^{@ܲWFP@l^d^.E}/aޤscҩO"m$utqÀjuA|.rSxP\HI=XL]RIzuF;)?G"'A{HY)_֋k gWY!L!ro!<ݰ9` n#wD =}'jy;q[Aldo!FμR 0꿅߱T0/ź_ZgfOɍJ K&.!5T8\xۈ<9qNڛW),ߺ G-{ }y) <Ḕv]}bugSlz҆;uEԞ'c0KM0ZIACU`Bw*:7zGXFgF7oJ0TA{O+dO [SѤ7v$Tgv$.ɓ|g%:zA?$ʤԩьUl(~h8-buΘ mD<~S8 0pH Q~7gP\8B5GL . 5Z^S{;CԤbdJg55Aode^V%N9+wDA5ϬaU^zGsث h`@KN #AW?(s;:%'8-kT0'UCW;Td%ؾWMhR(z.yV֧#c4K)h}2jޒ3<4.}W0b%At3dѼc)d4jZDU;07J9lrR.YJ-F=z^@3s U rM3JdҺk7e4޾:|D]JFsT ?LGPxZӹч2SRLؖrlSq0]ͳL\^5 xpy'c Pܕyi,b_іr`G"cNA ,gf5rbai\Y}a.[ ] [LZSO:]9-ih<(e?[x=15ci#Z`&Ut,[xnո$ϕN9 6wV1*m`]9( o1dùd#S!#ige$dTc fl*#`(EhqyZ.KpMR(oNRvrK83p,u`Zkc7i;߰ b}ENTAI!oϱ#k0SGP"x%A`'a}fd]3ICDq)U`F4Z ;U?#4>ߕW5 `tW\ReVvPҥɤ}u*D 0wRu/[۷uOl?i2JF#]uZ1|X{!ʢ4H:^chѻ k#='d7]=@;ʔL8]Lrn7,Bw'_db$iOxϸ.i G1(|hw׀uvp{t/Ӫuu l1U$T C"OǑ6͉/p%';l~9(yFQP+-U /B{5@mS37NqOZwY1<PN6I,/V铟Z3g{d&TʂIQM|~)ߧZOzVk괼[h$.7^<$#IY瀹EIqUR%kVS5B6v8<2g.Y a_oxo,Y?;%w3d"?ļ1JdYovhCu>/}tLZuu]"! bA0Xb0;fѿIaDU|!%iFyoXNHΗ8sA };9:J"y-ְCc\$z5*-2U|f;1 =ƗJv'ŞJ\$&NU'VGͥhl{|7S^Epr)ߐ8k9׎lc0V}wG~zdQ0m(>3.ଚX]P} T7JZZU7'{q_O^=h}Q;+JݎI#gpu[}rZũ.wְCڞg>NR'-<$^'Y/q&.TR9o m7t{ Lh{*g+> خdT<ȶ\ÝTFƸ[nRf{QшDTQEZ17l. wRiǻWdNe.DkXRosi85oZ|DPu}Zsr.*,5>[PȚEHA2L#AbR8 Hi[E` K{eG0hAӋp? TƸ!_]QIW&j\ Wkk*\AʚDD43F^Ǫ}`oDEVk7ey냕mrm;λ^X<Z`fy(\>s Xr}n?bzaT#4C ]ȫ_I7't%*_/zc]e bi>Qlq(nd|-e3p[_E![]Ј%"`0]_4nA2 <'.j}JKYa3b_Ap}ް+I,;iQY*饧⚩:\ 8N 5e;GQ5b3rPw^ꏉ.8Є6g11K1o'Fcw 0A _("aI)=dxv"9H e!oE|1 6}V0r# ˎ:BYz/A_Tɫ|}fTyg!@WMeS1jSi[U\Te( PǬ52WueOcI3zPmߘI-Xx 4Vmhߔ,TC F))f!ϼM6e#$wr nd!.0}/J$Mi ~y[C= v3:}NK-_~g=W8 dZ#cgIm2󔫩T(=aW~|t;KZwS}MOڟk>hI|uU醬ADW %;w:-^=%H*OZn3A=b]"~CI~z9gCdIxϧLLbt GU+g~AaxyR.:9.ŤaOϾOX>ļBu݁| ӎ(ݙM ԊznY^?&[aE}>>w]Qn2pݙ4=Ȝi/w|,< V&t FHʼ F0 }٨Ye!O W˯-x ]VAbV.GThТe=t=fۖQ&RY ),ѡ%DSYM^S_"0LÐ)%Mex[bAbD3Ter&E+Q} 0Q1_MwGEz퓱 gnt.FjtI35v:(WaTnIn.Ee͎g?H,"=<.yRu#juަj7B RۯDw,BG*!;Lg+#Da/>I&_F vsd҂̻d!]%[c"O|̅V'Fh>n.THO'9UuM)\ݬ"4ёKzȂ8NZ5HW!kg'x7iZL]4`|X}X<4?ɸȤ[SSݸYcB $p03 y0|5X\7;&[1׽YZ񛪿qs-iIx5_rwВ#mL o0Hk얅aeXM^!E@ɰ|f5ʄtP #Ȉȏb3g n;;znyiWRrCd!` ĒL^T~ܛpt]hDQHDJ#J8i;P40(њKe%_=kB M|WP|wٽg tu%|F_|*u WjWx5b[.wxgo*ē j4bҩ,jKf@Ž]Xރzghާo& ) Nn5o!O1ުoDbιT#ݞ}CR<.Őw?ۏU4Oɯ9_:>0;RFeJc{h#x<ys9ɪBx9GoZ|zuY15M5uӫNjm ORqQ Dqt724^S%AܓfK9`.TDSOqgԒq_S~2HѮ9ʠ3[5rMIUb25`ghm-> b>Ex5{.╸L?WV4ʻK)"/D\AaZlD]*V4AXK9 {yZg|fXӗ) A^ Fh Ɇ-p`qq_֚a l*<a~|q<׼ Y}SC9DJ\J D֠s']ꈢo7L*g>}-BֶS-7ݜw=NFn3Ẁ!T=2eUk)NQ \ߕH%,dHkLt`|䄅i!Jӧ#}%+)* \-O&9Ư~xT/'-j;A~IHbxXxi Phr#?rursSegz$Y |Aœ+`m93="CuJjю+9 Llj9-]}4vq9Ao/:1 R"`OCAW` bMM" IZxNb+_ F,hQ]$i=qPI3\_!T3,{CF@΢ulvg%df1%k== 7W p7WD#P]|XDK6!)2WcŁ-˴u^d΀9\W?2dMQ 1F%D J>(? t֒F8 |69r;Yv/,b7bb/5l) XUm*wAJS Ezy2yM9ø|s@ K*.:KC#n}.<,8ƑQt$HwJ٫Ub(NVh5&MEH!hAဣvFXB&Z/ РFΛԣ\HddYfkXLWN`?^=|P(Ct)JI[Ãu3JΠA tՑg `P^v  K0r)d3;$!ONU0}Լy]+p2(!R$!0}h\'@%䝊. ۽Yd;O7ݍS3$?w%W~l]xīHO;=am{%~>xb7BZ ưy t-:ʕ,_A+]}:`h֦1YC~UnX_8|~Rhl$@&sϏ bC豬];Mk\D(Z( U4ygh$7`i>}A]~*B8|'ZH`m8{ #AB2iXW-;kUNwj=/GȤ)N;8&;O'uuN<)?XNvjc6!'"6d~> F(cӣ8S(k:ze8Y|/ggsOIcL:r&p2R ڽ ۽cǣ-7yJg wͩ)|S_D cOvMPn\5YdYmfULsԾɛ>3~"CbRFU\V);\^iU!e8%f UqL~}sf#\_TT 2bc΄$ rGFʴ7=#ݙ,\(A Cݙ!]|_ӫӤuބ*jZfWBwFR&nfH;7~; QzR 8;mdY9xКVR&?1B15ecl$#gS 2K`k誯)K%C~![G)RoFs_Q$S]0fMjlmXvnw/E G`Pz8TI?]'#[P"So!e _ݲҋeAZ#Y{ ҝ,~ښgg {i# / }hBqPC_Om:E mK~Aq=bٿ9gƶֶ*]W'S."k0w.&Mw>CYݷy[%+L6:YܸE9~Q Br ԿEl7Bqgx/M v#A@Bp}r)gGEu Ɖ,lԞ/lMxAFdh d"8<7?YJhST fZe ~b L1ԟmv<A{!~HC]f+:P<oO}zP(E]qo`H\ƵV!vSED/ 7j+ڮ8 hF__~!|G%Hjt!t$Lk} g:y-ԯN۽e/-CI` X 7**lb#1̦k9G`i[pqnE(; r"Fbx7%|J* yq! !jÌp!7Z8[E:ӧqq/ f_;N Gj--L_VC/˩x*!J~h,U-}54i0y_Ir.p/zQnSUpX/q!F'X?D=/p>Y:(T z{Ր _0pUΧn]OBVxߛcd'GH0#7Akkgz ڊPIf᭖rХ$u#7|V*M OV$pƠY yZ f.%k7CU&b.NFV0¤)'Ϻ(X2a@84fz'Ҳ-\HtvAxJԤ2 KS+4ǟX~ "q`o-m6Cg#dL *骫zIH@ e3@QH(T ڛb?AUr4ЊHv{~dFX%PYA#{1"C Eu@pV#9৆APmvla mxy8O|쎸o=D*I m]g5 "56T̙^N&U ,kbO{UkL"RҬXleVR_/ŘzuL*RTA]T qbÄR'K/2y](PaO}t;eQmK&U);wG֛ 8c#/pnL\uT""#!AP)|4"ShAA]à*Ӊfld@`úo0U#_y,go>G{jrt%K؟YVrk){K׈L ?S)زS @ s_ S3u}dR]&& T6ԷAmnk%oK ռfRgy*}b;ΜU.?\< k}\Pw?YSo\!h<@ voNŇ̓0?:]2Dk؛|$H $X~>?ۑ7w*˼6K5$bN!09uioif#9cLLT-Mw;C`.1BUfoP%1L5XJovGDNӦܢ㾡/nG;3#&处~,iG|L⮙WOo-<0%E2fzT] sIYҶgs p*մ5I\{v9OBETé]_g蒑89/\x.>W*z2:ۉȵ-W mۄCoL 3 u]nAP4XKb/ȍaj2AWo4]di]dp7 !}<黷}1? R>DRpI_tV2&ݑ`i( ? Qn@:=^q:+\o_Pgb ѝ48U3 #+q@B~wNl!X,>(COC6>z˟J)5rp೽<\a.z2f;o^ōmAKA!b`Uf#Z\@#.(qDC d Oq"5 C I TZ{쌥e5XTQ⎇W8y]F{$E>*O;4>k2z08_8?O9Ew(|!'soBFЌfzRC1h*C) 8/%_]v0 ZZ&L ix}4о-Ȟ*Wgue<˥ǜԁQ6dքExGvv~TwA Qw" A5:IȆ hh1h6DvdB5 2#P$^+$ςc1׷Q~^&h(=WTIK-SQE 5k niH@c3+i9|tS3iܞ+?-FJr>yJ7zAwVT4yo'><3j+֝n)g|w~0]ۑF㪡YO~ɄkFRx{uȦdߖQ**+`х-F/0)~(HG4}Ӫu=z94Ir'PѱE}Y cfW svW^IA0%HӒ[JfPN8\, :l ty(JA0D]^ӃW;CmiB\tq⢆Ƨ#EPIEv3T [Gqvj R( Ƞ.:wewؼ*C7׃#40 e;,%&VTt]>fl @!I~g;5']NOB}kXk*rzo gH:]A> qUL߰eCkr43R&MoR?'g ~9C@F^׶|y2Tt } 0Cq;UfG;= }UK i8.C`M`0g !ӓoSXO񖄷zҴmIS]\$#3m l$|h 4F?6 F] 1-T2*[ر>[Cg#voLw.?RNy}J좰\L/fkܢ n?(㔐T%1  5ozbVlɺl#=nXvʡ7Y>1kOɎ%8#X#W`jufEDm*{b!w,uM wK>k`-_ J@ư[4&Иv+5I*7F! A-zOAsK{̏Qdͽ|o2_\Ƌn9.}R{3׊XdgJZYfn&$f HOl[.8~6^8G%rQwN :}Y0d_0Lq{1IF}ue1,ѝ 6hrrZmKݦt]ǩr;)uH6G@X==>uCJggbCO$-Ƥp윅grײ2`T[1%f7sU?KZ+uuT0 r/Dg,S 0]7BLvE+*拑[7n$}+iu[2dM&e4At)o !,̊磡Ïl#T L̃ڎR DH7BU xɥ<5ݺ˸44\;ҫԹ ƣ7;4Q αA>XwA9<[PU/qf jNoV]l6Ź@5J&:[N9R'~#2 |(1HShznŨ+Y`k$EF?NB;h9!4flrhX'H!LT-t#Si`ϖïպܲcia,FhE"q/yQMHdv>+A6qCm:o}ZT!Zq+bT*!zO&٘&څjdDgnW3_,vOKKmN$16V%a>K=4 g?|7#M3=O t&z[ܶ).3ߠ[se&7GJ%`+4@NQfmԋtQ TJvE9 (DUow|?}„ Xߖbt{_bZ|]:$0eY篢 Ƹ&Y8DdoSՂTuX^I˔ ɦu:짆ϲ)|8ea"ruPu߃\XmZ6+'ImҾd}!d{hnʏYive)e\] /TC{F<:f.5W>\v6+Q_ya2=zc/kMPLa͌5>-jS1 8cŋ[1[DQg}iߡx4_Q^f)84yuF#b2~}2J82X52L/ rwh֢լN\[VdU\w?YhvջnsE6U:X=@LH]A{3[t}]@XrlʉʁL!']PqgNµgkz`b[x $*CmHA 9RJ7ޒ)M3?`q`o&l/H$O `ZA͟òMeaQVƝ4T[y2JsWUG1tonIݧk"CJ",b.gcCAm+X;XqB ժG(l.9ɓ/6= sUX>k> [ЀfpNJDF!!t|r[eD9I6.{ ,⅐:9ls;7$~hڬW u RHk>s-5A2"[|i0ǭ7e}M}ARo_ʶ-ʦlr,rW#8.MtY!qiflrMg(M/Lc;pW$ *)و]~x? ll 㾙S|<:͜W0a@C OFt*U-xD3Y9L/%Mͷ׶Ķ[1*ɲUߛ' ¥Z߈>LPٺ oO,qQiOJ#<#cV;d"P۾97Q l6ȩڑ{CсPR]RaG .^W"RaO{Z:*4A{h!- Lқ'\,sWR&}Z%ziLsȬ\7G}#8FkZAX>u3 2.*@i4Wp8ҳ 9%*7~Gv# &a~J_Y(vbWu.3#IB|kȏUyшwb9'b2~`UUTLm,RC^Ys2Clpaxݖ>VT9uP": MVC" +,-N\hz]]]4U!~-ؘfxO5Ԯ_\O5|oI `V5aD_ODFȚe`rևz_0 t>vpR`)%C^\9S)Y [ L(MMDlq1ȮNJ}ָaYn`@|7mv!t;WЦC&dӬˬeU5#9)mPB+b/eJ <숎xQV "U_ƞqTI͙SO]iJmN;tT3-Fl騝l)SGML d:p^)i8Ϋ:󛊭ps ȔPiTYbiǿ' ]9хwP{*:|Jx`{RL$b =]!i|p6WFz5끉G5HO_)o>{$ANor}pe>HY~^MxV9q-*\-OVwpTV+|V߻Ag(ճ;_}M9꤆J$q/Orp, ׿ІT3ldi:4x4:6Ү~e(?g['r,P_$V v~)d&Ì9s:5j;Qǩ3eC2` cro7Hfΐ}T@*,u~J }gk~VCZ7_=~&eBW~9d ʒ J\RS={LvjϷ|"H6b( Hi%OKN'(Ff rrGlKL J+1US"gM?)(,=J`ɉ'ZdWnL,?IE(h[><ϩo2It,)nAQ}'ͼpCݎga+%? '% 2VfG 3$D>=ZzzGos?a8M[8s֮DC⪊6O;:%5Qh9+Yq> = X6oZVq+>@Җa)S P#T_Ͳ>jI0NP6quA>b߆$O=g!ɋhpz  z}姙Yy 1yJQ*Y)+vA,٢su=! ^H_uj4%IO,f&X[l`MOZ"N܅ӯz1ێx …߭ G6cr=E:1fSu1}Ab5y&Bګ!u Q VvFr&`=",jOѠoKX;ڛ+WVȁ@M¯ſX W&NJeW$[aCa71X]@zR۩ݺ d0tu9`ӺI(sw vJگ^sFa *,^,machKCeY۾H(jղU7gbyk Q6%C+m]퀓_j |myA[>%}t^Uo`Wl*S2e>+rl薝^&*]Su ٩VVDA|:;Uzrvm YatIdն7E `J[hįXAkVs@]u!ˌMB\s2~'UF3#$h#S{]v#wp'BYu =E-&TH.=)A[w +ݶٷ)ʼn݀a\&؇$npN2 kP ^ 3fsCW\rXWbL@$"YcLk ]$%Ռ~,#Ux(^??nZl^$-;>py cF*(Ɋg(~FZy9ZTɄ |nFdZ;lG1|%lGt$/C\VV6;2̸o|tkM6ᄁTa`#I|)߄gyN5Ċ/ۅpx'udkn-+6_ܮrF_35A{lS<'ih&!ڭXt|yvOɇ(2/RKV>o_F Z)!wm_*Bb#"evXwUwG'0P6?z1L h r6V\~6 NkBSH'/*J*\ j9Ѫn W?‰eYa!}~kI θw̋P* ?svс^AD_EZo@$ؔZ>REHH|\CEkXI|[ 2Q;UX:]Wm6 KI]-}s^YgNށb>!b+7$('-\cΣ4%t1~(L2hv-ƅS& %Cn|&!v&|aƺnpdX)#>)M݊%.Ў>(8H睓9eI O6&/H ֥lv6XA[/o}],<ї`F8OAmbi>#[l)R&@g(D-Nu*'N6 #175vj+@wMKo\R.VuH}=WwHh{N %6)s"OUhF~9V0C SA>k'y<=FVc:q/~`5e櫤gL&G;U/VīgRr4R'wr,ow%WI-R} crQAʕ,k6!vŗ5| 9qt BA H%뇞^*F{NH役K>N;{75XM 2N̬% n=qN)Y W&w7=>#t궄e.+k&OU´),Sw@tLqLp(y&n 1XT[S-mTzT`7[X2v[!i8 ]/5L._D(?0^_ zĒm:Iևyq߱ۜ519>D_˖3J=0?y+ v4r#ZVvN.U~{yM_XB0`L>JXC o Ւ~Wsiy^bTxv{;l(2*}koЀ5wf4Pc0 i>F0qz_WTi_~$dXU#}>0& фc+nLSUOa.8le aO&f2%e$AD߯Ի e3NoO-OKei۞|ՅMK_ ,OuH4sNCר y0K׆ռ 2>,U۔I>3|Q'D8Sd44+IBj=%@>*rV6U˂78:~?DK5#a5YE5mQKRGRr1XV.x[}J0zO}"Z"  @+\X$:|Uz*Ҷɧ^eB763~J6;^a}/E.+E!>%h9IQⅤ;WQI\ vwlS`@ӗm.}3'R aބm.g tBa*K!nCY$N4>fGvqP*E8 )]ǀd Oo]C&~6ĸ:RH /yL v@,uQ6$}(*_o2'~ĺBJkF8n82$K/i.qY.c%/?Hƚ|u|W}l!QO~t$54ŇY!Z7@X1x׃-Z5t?>kDk<~= L %a^n OJfC rkK4LxۦXm~'Fl/ph VVeYw/[Y.P}zszho[:+Oql]J\,OZ=K<3qO:vsOLX/C8[3i^ h.%x CЙ_Nsʐ(KA0 x\T/7t=nDD{-I`r jdG "EhGG7Cd[:])v-]*){ ?`5Zjb4d.k[WOҥ­\8ZtG}xwURƾ$ݠeގ@^5uRlJoD>Yۀ^l5G}PlOđm@7$f6c\Ɖpx DG *@Yh &=RDH*A% rY0Q]uވRjWDd[5߷ MP#XYs@=J }T!*a"n}ʹYF%]1 Ofrs1Sxv7}E KwY"8 ]ń"V&T& Rd}BTCF=g)vkMWvLğ!΁]*g3S/:e5r5&+ t⚺j60di;H߳ŐyUJk˄LÝPWn&ohYs")a2%@5~`xOL_EI%U!u#PXޓY6ߚR2=۷b| d* @IjtRЅO˩5nivB<xHQa&0p\$ wKh;Owˁƍi)s] K~Ϯ};Pqюo2}? vz moÎ//!4e(iE@{ l'EK]a7YQ"T)uBu<;!X(Xni,ZSFDg4e>mSV*z3I}WUUT~D`Ei=8{?)tc V&F}zwӸ$N#4t8D1I%5/fpy.[7Lh hCgEҜppgNl;0__t3*dB&59rAn_ʖGˤJC:ے%CBx+}oDogNr8LUmD Ņ1xFb [z *x8LQoȊ`Wsw5K=ҨllH/Gxls u DКd l-붕ik!}V"T N'>?L}XA$zu^O Jh=D@(V!MF  {4u6'M m_ê2LS~ +tǴWL-Pl5~d@3\-'0( w823:шmwiMݠ*2bg:B./8J6 O' BEW2m|wH(3},c%s 5 ӏд'I) fs@ɢ#=D'qi %[{b^$rv*aDҢJTvWXSHyY鐎X~ebE&Vٶ^hL՘~dj4Yg;"(fY.pp,:&@D}T@%zWQ9r8̾EFKt`䏦B…Q/Mj$-Ρ,y'n~#-+K!f`@Ch1̫CTD5yOCX+̪)FZ׵ VgI#Dt鄺lOt6OXrU'lk~ɑum-E 3l}%]P˾{7J8fɡ郁ϛ6 H1rLb乷;~GIgYh f Q\/uZ`7qn>h?SqI0ؑ{[53]/ *JrĪחfgcן M5򹶺4L9Fj72;mGd&$ G_ t@$)e[0KU5fR::x(it]~I@.=50vEoѩv vC25VjaC=HK]Iz8k -*ڨ2#XV,w ޮ35PYQgfmtϛ+h|(xwk~0 W9-/sU؄G 7}i}jO7|(  %ڂ]/h̴}졂!A0h={ lp & 휕#=AM=_36   k6Ig|1ZrOZ7g ۾&?i wjݏV2|p.|FDŽag0r&q32éHP1UN~q CH40l;h H-jqe1~ؚc􊇫cʡn%dUz'|c R7@Lr~ κpx/ve s_ ^:/h'[ΈгєMo Z0kc)mQ \LyS: mvG?ܝm6#d\.Gu:@jly<9ʐOVTĭjzЋO@pCCYA|*ʚ;[汬κ+'wA#FZ8sU8Vm,p5@JN5(MUݨ +1oY -OW;&4WKAVuQA^=dDo{[p5҆6.g @wD.l51+C Y2΅M5 ̚Xn[ gdZyܦt7fKaR25>9p”Vu  (jT- h@>qkVK!K: "1L'W 4|Y^珫h* \T>96p99+t|"`, 5ϋ xy5yab>dFH2۠^7c-Rc XQx Hp_[[SZ>ú>BPw3<@Jh$CU\ TwR*^3mC]*s^ y4ܺŢOo`sZn?|!bY=O`Ao5_'Tcow`wCs!0;լă8Wl{ȵHt !C9d%ECvݺo۪C(nuTK Кk&p4=$E&|^^Ԗпz#$9{`Qq0Gr]>^o|!",w-X״ٯٚU3IP'Kgl)C2[_\׹+X)lAT0v)lI%F5Bt"R6!^'nD`U s0Cɿ?1Y5IkVzY.懈݋UdEѮHo5[_PVUO VԵ{%RN~B8|[1 0!:֧l!L#,o27uN0*)L}:CPMxjx+u]e]`kv΂=Z !s#|r,6wgttI ^xVC}hew[FN<S:k ="ˠth5`wӢ&_1?]"&pdJMY| (*ݣ"gfN5~樑 '["zYoVʮŢx-_ǀ ͐]ߒ ak>RZ&x'N}wRDK] -]ơJc:8]Ѧ|ˮ+;AA6{#0m mNĸ(1m0>UuZqmUce<"CYT8̽)پSc{l CeQkƯ$cW :S8 Q Xc¤iAdy;Ƽdv]A  usޛoIN klLs,MP33r3^26~Py]$$$#+Nr' w0fZ$%G6vM)Rj!!~ƵVjΆ<,uqrHV`[=I3F :dp-C׿5Id3AK6lVŽ$** I\! zs}Qͽ!1yO0[o%K/[(œw>{ J2+/J[E_ !A8m]pLWLwϯ~m6ϥC+?X/aV6 k#\wvu+uk 3iO PIMBG*hJBea,z=愩59,̜X?s.b*_u֣āeȾpq_NMdF8#d{6wD[uD܊O}w7Jrw;s6$˲ӵBv<>EZn\m-([,ֹe?yhc֯ D*iK6jl.G揁gNl/ne9XnO)\&]ЌzWPK6 CIx2ۮG;3iGCҁ&Eyf|B-{魑"ԝE3x akF\bBR ^~QYr JO}+s&!XE8$ک.KM^֓`^p&^%b̛"V34 ]DO!A >'RR.oq&mH!;Dbt*+BƽiM?G4ܓ Z=_kE"`,<#zK_;͐mu ;s|Q"2#h0XJHxwEw)##헻C`M ' 7g4b5Ci{ڶ\5wL@PZV?YNmA`o Hފ`1J!TT 0j͛%2@=ד/0rx  vį%b/u4*8KB =ZI^NRn ֮,AqoYT" E6wČsH:^gPEq)!̲ɪ_QP/DW(jBVRGpϯI$)QeRVΆG79㲺#pMВI O]d.iKm逆17"5Iܞ%8[oЦUFKxSҺQ$L%^a?uH"]m:H|3qko˙yװ+F!Vܬ-h׵b]b=-N58'OBٲ#3'TN m^(.%nzJ=XˀC8A%OcW*hpk7 SH"tylStLvo=dJRrUdiHCfvTaȴ񭭭ċYꠒm7a|%?-.B6=Rbf%1v( jAih vԪh jvӬLP"ұ;yfz5jo'3OPG|cD䡽cزV˜4oX,Mԩٜ`(>LI>FC-k"qghrN۱`9;K£Fi{A&}L|%* 25'7}"u K܇C姧i;`ʩ#C{ Z/CUKw/%eJ~@ ĿM^.Ja|}ډJn<Ie JTOhnO !(;Dq%ŬC̻SB ;X*O5.1*|8ubusf?>ema ꋐWIczČM0X%6)EbVx>\Dn1K{6iP6 EnINhs&bwN ^}.h hΞeRg!@e ̈́-n MSQ0b(yIWپެM6Yn$e&E]s-ukﶌm<ӗ(ʖ833ZkDԠ^@a [<:mTܐ]$V|!Uvf C$ ޿5,LH_J iQ$rjwXyKYސ.y"龶,ycFG&X6Ϗjҩ;rIN SP +^~v]_u5dې1>H n}dGNG u[ɅzWcLʤqDƤh:\~fEuȈb\&.II&4FYxKtv;9H1;C.๝koD zaMn0V5T0Q 1J:׾3b}<D: 4x9Z.}>Iwh&qCq Ȏ_,MҚu>LҹI lJ_^GߡҞܩ0f{M!l9nzfKw{N*" %*ލ<~0Ni`rokiY~uLМKGX 7У8tCad"0(6PJP #>K|WTA^b>d z^ q}LliT/%qDӛբG)Ic+ sZZʃ`Q^bܺ+7 ܏9S+PJX8 tutrIaDJcj^v%Kލ qZ_|˳)\ubB@-ƤD M4LOc{=W8]Ys?1Vl5=S{-u7=6f}cRHL! mM=&qB`_y V+b-"ĹtZrvڵ V~E80Pt+<" ^H(V/ 7P\NY&7BTh5o9ӈ0T,+B>WjA)z˭!2WӀ>k(ir"Pأl'*j17p~8aY0`PËf!_u(|uq0a7_9B[ȧ}[k.c,u~`3.&AGé??UJ.>{e_kI>aꬻ+MxXkwS͒-~C帰OMZϷmS~.% *%:7k.hf4|Ѭ)c^^#Gb6y`~tܕbYar)FCb;˦9EPefMtGs 7]xk-s$FCQU8ew& 31ԟ, K!҉sYKYA<.9wx`B`?`Q5d 4j6*|OĤCpWc% @jr?LJ9-5< z x{ف wzvz%UY9}!KwnD{̣7|8yeV*>\?@<||, [X5YV3G\%ډYFX>B#x:jaK;G JҦՕթ / LݺpUXY>^Of,z}YQAғ8vO^*7!oJ\'>KaE3jE7M,DJ "'#<N׆ _8q"*K(x چoٯ732 3m!сyGxJ^HV^MNPeDX[rT'g(! A}aE.K5*IF+ Z+鮚.kc/G*iUAL]A Hh >* ъ8q⁙Bŭ倕@>#L1=UENr_UxM*s@UO<.hnS$* \R 6Vz,jP>K\P&HMu$r 1U6OePJㅖB=~Y+zEI`/~Osu4t!OH#s0QBL>7pĺ}٠L}J@7Da ̗o62Wj1W8p_Wm߰WW+yʪǺBVCܧx{wS>Z5r~@Gܪ8E{_̕Hwp7J7s!s 6fήsOHɧ·/+*N^+ WNCUQ-?mBxBWGz1ë|ۈJƧ9)@SK>Ɍ$*"%/H:\j>BQxJMq$x{jⶔS?QUj% ]|_hl3dVRXLeǐ;t8 l骿\Ea) &E0mTpz,rʨ/Ewʃ|o&}`q K dgT8U ߇^brgB<o[֎*Kaš[ZLL~ p7[Ә>)٬-ZjU]lIs4)y$jWqˍ|4C)h.Q 808ëɔ$'3xM.@ͯh%|#CC6w1;fE9 )LWvy''*3C޼6|b1}Վ}UsQ|ĽW,rOQU2$KUn5Y%5H%\V8?ڏaat>ɔti@ik-9zȬYx\&t+v̋T5vVw}<' =b2"^pOD偾,DG=Z,qQlI*>^#h>^ۤ&X"Gґ!>odž["Np _mmPtp 㵰Xb.QӮnmRaAh3xeeߌqM==)bX.Pd(c!>hMQ\ eW턋fg|~#݌'0()]؜˄>s[^soTsTm[#Ju!o)Dw\ YR("c`ahqbGa Z@ER0H_X{1)bJK(\[( +ZY_mn^eI72}Pm5~/F>b7I Ib /%/Hǔ[TE1[ǿ K`^e4^fD'FwcD[zz+4byg`R } YDV/r1 s٦'pgFe[ Y鰥jJξ4e(ƨ:9J X༄U%t+śJʤ@imȣlv :*bZV [tmG ʅ:ߧ.e&tg0مaTD" &jdM .}$9/;B2Ŗ{o-l} B_ `O[32RԄ}u׿=GEU tM;逵Upv M{59o?.oPZ]X8!rsЁ5__cmSm߫3M95d*PQwpf#:nw;LP7hTsMsTK$ \U-uq'E4O%3@GU6Y}'JVCa&-||RH~!Qa~tR3{!ߘʒ|7I6$7Ol!PAuPciz]Icgiȴ@"|3d" ~֡>{rnҏ/)!LG#6Aj4y/(bߔJ:$r'CG|TOC^,m_J $b1A72jAvz$2Cn}#YiOO*/q=Dvlnȶ.Oհ"*X >vT\It9 ZbaoͿ!͏dd?|SPm1|ҿQ][ 繕o{J +u+c仰~ʼubu:[p>xT?|{VW`^8CnI.3d!1 526. rB;KLk=37ԏ '$jf 忱'Q$=mM}%Eڢ?@p9qs-w=Y\Lu  T*W5Y56Fji ;Tx-Yʛ)^g~*,YW}Jj@` |'g%OR*PMĆ{ۄ%ҎQSĜgR/%eEv?,RT&YO€m;A%3ߋ]JhMndJA{fnʪ<~W?MCGkO"O?!Q!:a h>,3倸&}zz2[~!p2Y"BMQi:poO(䏽 }ˮ~+a)|Xj79(DQpw}NC`8?=5=LkԘ|[|I*hȯxN≡ fk(Ḿ5?SvC0V՛Y<]gˤRapSNN҈}b^֢@ n{;yzl*KTl#}>ds ]Yxq'DG&)4 nUba8\ 7#[*}m(b4jE&Y2n>i+Aw }1 ;R7bE3&;praNMݣ+/V.;uO%[I1T02$ZȆ> ؚ3:x@A#Z b\& O1zT>륷lU$^_*?:6y}0ˠ3:(,+ZFE$W }<@Yȉ rXY0r>s*96BXvV@O l:laxhp s]LZǤ3'BQ@9t|[-Y$P=Dtgrƒc wqQ@#y .2)dߋ[W 򆶿bN6XS[9$3 _vx"Bl1‡Dg7qmGVgۜn4:"ػpf#)sلzsՙ62hF}+[>U|Kg IÔl#;)=jd_>2y{O6D[Ƥ~),IA$V:ʂO5?W [AXYNcH_?1Lls&uU7RQ/:]FwX5"XAhV~̟FJ:a`uNѺ wCTLP7ae줮s֏٬ Ȏ GY '[~ vVᇾ ?)SZ+("BX8J Ui$P[%=TWj[ ,J~lE(C.@Ưʓxz^*iZ<wO2 lq{9sє b'cf>&;Ii緦aFZ|&q-~f|WkQ|9%)J}y-TMWuw-oڐgr#3O3mF1uSnwPuL/_FtFj\ߦwSd!ڽ"*O_pI_z#G-Or㺍K׾v v i'"&#1kI X%&ȡ/(mw`->ů]\Yt ߌt L^,"o_1AG7޳7͉"5;tb=|2b@7dveSʽQ&$Fx0U4<(/@PmC!::wܘ䔅 v: 7wFaH+6]wǫ#y0+&8ylM\YꇵR,)_`}Ikje90sgN} SR3ڱ7݈b S\8Jr}<ì7tz>:˷P}^5ۺmx+T '3 #\>}z[@2'y{5L!簱2[9ÏN\Wڷ]ųFU[I3Ozm+ղ0/%=GGLQGn'S$ |SiqX.B&959ϳu$:b`Hͯj9r+2n^PQPC\XuL _p9@_i(2!T-15 "?tLCG+e(%3&o[{Ex> iQAzqOk=0*SH H;=qζyZ}Ւ.H |ʞ5c1΋ú8|)G^78+.$򸖙1ko,GOU*: .do) ńHl_]X!(hhY]Mpx=~kh.#":ZgFZWQ4ju v'D|(w#Tm^/:IZ DY`J3J=uhlRHGgb((}JrƧXW d OVnMDk:12X(Ey"#ʗvYV_j k~xW Kv?ؓ +_R$yU#I~[F*S>ed\:hDa z9Q%a6e̢[+GfH Nx:Z\ MΞ5.//HȨ҆I4dMznSl] \?t+R5.h e &y fؐQZu#hXvz׫ڃqU c9\ 20Ar=!i+b_o+^EEǮ];U}ٕ{׉ yBҋu k-1} h00GsdUDЊ"YCeCz?CWgz:<@U_rafΗ4k\Y[Z8Ӥ>eܹ!F!MR՗vF%I`2 IV # A \GUCUxbM^-_JXY3c63qgLvVJXsׅ#`*9ws| *W#r6'[TIl!~|dsbB+;97R}3JGrґްu%䅇F ;I$dޤ pATZƃk1|#DԞ'‚-εit&ٌH0(W\u8lzB&5%8aIsןVǒϷla,h'' iFIxOz8ȖIB3{pti̊j9 6)Jv :PĬ0 ::*38ԓAfNnU-@PweaBW{"#W8fɂȠӐ-X ij Pɑ>\pE/)s>cIXplq+r*[O3A_ܡ_xU QDO"PE`ua·D` z@:\; =+dtd0'{svp9{KRZ]_د(u0vv) =:d--5]^qD2b W|V tmjc>\Y AT.yYu~TK>ƤBq}䱈ocd˄Oaa}-. 3DOV$kZBd kl BKIEH.Ǿ Bo&;yzі֨^$F,;s~)!ɘQDĔ \ s!R%'}%Uk @ͨ#oJmIt_UQ-mI츯 &oQbq> R׷T2CC7 شZ ΜU]yNSgwHö3z:A&T!R-2)  *o4q.e|q݉(Gde@QIk4J YeYFœ .{~ 'JToC8F3, qFl)+~|:r}l. d& vrw%62Cxd~S(*Gm>Li_8=0/T"ߤ,4)?IL><`N4Io}Z=GB~ԏl5.>z:ܪ} {qbm0?Ff׍Җ5@YՇ{5+7O K (0V.o .>(b-1OucM" ˲ `My(<7+W~y煚|?$ޗð}v̡2߆!>f%~/gݘLjdpbA:*cDQT3;,R?^9h).HNÏ,ttTPc9G~wxxװ7s+V&#F, a7]W5U9Jr7NIk4 !~8-JXE-y8gi }fZh(“Woԉ`bi21NuFJ̋J *>}[Vvcjv nL;a)`AxR3E*΢dV%>k0kxמD]9NqW>כ+Cibh8r`qռ `i}08bUmQa1c)L},NE$ қSӯv uI]4g$/(aaqy' X|&=}c+r5/(e.4_7^֢gO҂~i l| v/Cٜi~5 OD{X\CU")ᜄ)܃6y/S9z$i}($[BԊ,jRTwA/ JXf-"O +̃LK2 oHW<&m!򉳣talFUoIQSޛ 9}ݭe:OZFieh]˛$C1բ^h*:>Om}_ˁ~< \>A"ŗk/_]kSc^[82V}7jr0}-xhp>EЉVkʁKYc)u"27jݖx ]|B݂TtVMア F`w=f$G $AqϤvgkkL*fPEӴ(xzkdg1Fw18H82;sGTUHcPemvļ >%2p{np Acn_Ifa$nN`F;~ Po]榿e׿~+GV.7o )_<vݓgu(dq IWmJh!zjM3/hMfMŻȬ[M!x+,jQ~T>S%2b~KЌ ayܶ8ч碩:zA!FU|lbND:v4! UgDlmg/ѧ0n\D2_(z?v.kE[A蹃e# nkm1':}g}F/ͳ`0{e aoXx*QCcn@ Bo/΁R~]#9ۡ Wbm.WDo _.}ʦO 2nw6azzUj/<)n,h'uqc` A.%G&:d-3a8D{NJ.+O]肃 *OJ! u.CI' HP ^MQ3}mz-T zoCLJvROצIT/,S˽Ys6b_ -1L̗-\ɂAOÖ:/1 =Hl Ӯ+3iڸOsGBm- L;л-MmXD}E-A+ʄDyIWFk.I؀OI5{Fdά H:fuxz=ۢGQ̭ ƗLSo_O&/ _?Y]B+/0|vM<7$_7s_V(5T;@՟տuy)]JaW7>]jR~1?ٯC<^67@pEAە>.Ex*ԏ(#:%t, 9LEcj qLV"R+m;"~XE527jP~ xxR\T`at;ŋП Ȉւ^&0^Tj9/q1Eb$kBc 0@:įoDiNm7dFcvÌdDB2^ۂAiS[ڗ32OaF[WX7-joh$Px{+p? ET2~q.Po82zed|f O*- %s^`"Ԗ(/uK[e]fcKSRc?z٬nG6p\%!Z(I6aϞ<(],L}Ut[VE9YAi^\Ùe)wA[#W|dZVQ)[\pMIՁ$lGF(/+]xY\Ç>;K JFcI:d9=偪MoB&82ccy`ClA@DO%mX-m`Y66XkVoɁ` дm\9g]I,~z,}(1;d>.h8T›Ǒ[gB Z7l*9ۨ(oȝNMГ2AKqE5>-vM_D<:VOɹg;ٲ?@`?:x2\uяÒ[3]VQ02vݜ,;7PPɹ9g*a5~]&)â9TbM֋t4e5?o%VS .!|$Hw;Uh1'*Ƞخ#(-bu\[}XnaU ~c7C?sVI=~GY1Dj'p+J,˵x5j熚q7S4%viYK9?QSޅ-iF׵$rYilXmT{꘠%+'^(|}_-OaOƊv['t$r )k`ߒEPXxj){w(,jQפjT>1o1g$U)1iH͙&[0( 5!1>V{謨pE=ɸ 麆L"/ #\X`h?Ʌwԯ 㴠F}!Ӈz ֭9{6cs^0m{2#8GȢQxr 銺N>Bu4(_ ~Ss٢ 㵓;9D%EH!R ԖJFAO 8sj'e2>&9MY 89KqSH#NF,g2EO rD' />Bwm{yS:8oB>{[[ņ )X^_D3>N <)H/5u*gey$bAB7:Doh{Ql>4?0N0" υlV oV :ZPk*U")ZEWǮ[22-ʅP]G qF1w4_y޸$|oQ2*瓡tL00PTG'x0f7f}d-B􏭜V"2ɺdj uo$ٖ{ O7"V˟;zyoy~HKÓP 7}>DW`\.>`jL2aʾ/4}Øoj %MTՖŞ8iɤW[%1L+R;/p=֍C-=A ~9I,рiD؜dYzկYLbl'ywJ~OOUcYMz[x1lڱ@$OćV3/ Ox6xb~0g%wdzj=˽Bۣ2I+Ϫ=xUNZ20 Kih `-Y0V*Zw Vn~Zz)nrHBP..V T*CuD{7!7ɩTDզ05A$?3AZ}sNJaxdR"ES,5uݒ︌ -bQ*CŇV}ٸRhZx0+;_7[0m/9B$J<0Ȱ2j߸ILϑ Aˆ̓}2@zAEw$FNM;RѨHذݖwyQwiڍk]ԭQSͳd/Jf֣m (&-_JG-Tmў0Dϩ,h)&YIHoeљ Πm"wL4j$MyS_ 0DL Zbu%,hKv`Գz"( :{x .d`j+ќEdEpG0~&sca !%yKG1~]]/>2K,9(t_׹AQ,4MΌ9z^W5ZºZ-c| ~9]g1~b`oqlM4|Hυ+.>ֱߪ L8i'v;#\˓aP! ߲O^if{#D]o^) 8٧n4G*s(R S}g)WWI31&9G%uIX@^iQ*tV8h`ϣm\ |A˫, ? zX<8(,~hҕY՚70LSdD"}5'}=0&/ۮege[ƕ`=$FV}')?@U#]dC!i[RWHJ q}8 Mך{__cb8:}lZ%VrEYPnbsrSs!&C4$,5E\!s.HGR:$:} 9ߠkN:ݱS2 VÅ[3ɶ6vS yv X<AKK^=̈́6oȹtarbL.$7|+`7Cyf1zۧ_2X믟yDx?댛+y!Np44~21c=`v/{oyݿu6tZזjX7ϸ6 Qb:v|/N8HSRy:}P9~eV&*i&}܁owa(L4R^ʮ 3LGRl\jmN?:BQsWVl MDo-1pC]=1_YY^I}1WIh7eƊv1MtWLGAls f؆fxIv|;}FR.TWW=U?/#PoNk&w>F>@!X2cfsṗR|HWs^ZE_ljCWYQ6ܔ'/ 8ScR,SS}WK0 >DדsQJ(Af:VY4gxf Yuku@,Ga&;XKJV½8UHXdJ R^Lb 3X  wx¼ogǹޗ,¬9b >%vꖞ[{wMm P: ``(mSmGC~bhepwFjx /~3CAx9d˺`Z"jI~aS*6.bA׌6 [zүQWz4JɜE@n$Z}T1MkH߿< dSY"%;z1t$/h☃k BFKS_ "ϵlc .@lpb\?(-pPCU/_`!RqEe&^#Z Н%h Hw)t~S_ƤwޅKqDžbċVڠ)leR|/I"K4|Lضe!"H 4Sߙ&@:1'$T8x>hzDह!i|Ij4Uڹzvڨj蓬0/d` ˯S1R2ӣ(W@~fp"/ zg7uzZ]Iy_+&8nY|JO ㆠOej>+m5"c&RSrIiRw#q8oG#/H7k;;}2# ʲ#LVOIgD_yIs\Wj֔U|,)jbgh}/~f}xƏf'}̀.u<7/Êh(#՞iGdfue-| dijK/07Wc :fXICDZP9ūYcW<3POY'/9W"2F֞6`.5GBEY~LFgvNϭݐPE{MK^c/ _jSr$+kݢc4o~eD$5O nxmhȨׇ?J}ibnCVPǞ֐z%D4 F$_~UB mg/<'7r̵i&i8qD`KTfٵeP2LV2u_t<#.Պ=8K/] JՎNIzoHZmo0D:x_SJ77SxȢrByW3uдDTh[1B5idv. ȧn;@VZyb\3k5dRdH/$6b:.Ӑ3'ګat<[l` "}bIlMsn5w^'XШwx8(Y g2tNW1s"ro`"=,E¶U0iPwgō 1wY#{~mN&{4ѱ\1b1;]Ԟ^ Oe t2 荬8/DXu1o}j;z1p_׾µv@csq2=D:ˁlпoxn:A^d6vZҙj.1 VYIH5ݩt[2Q'L?RZ.:Z˜B:_[yuҸ'Dxljg*w!"2|w ⯧CDDrrc(*ayOĦ˛s4 (w&;lTPsX8$^ 7ܬXz0rI<(^-l`Μ5Sv? _3XἺ10Om @8s=O*'Q='i |-XESȘ `irD7>]4zǒ /2nm)3ZԧqLdwz }Ыxj.B`YIt)b!avG9y^~u)vaԠc~lG6d*(q %3f҈U Wܱp"5JPJ3BEQߪ foEssH3\O2 I$ |*T0kpBS7ʹ2|\>;ƏNk"k2rEPJ_)3~$*lP%L>ICf&6$cƍ-~5`i ,e* pɎ\oT|jŸGDfc]BYbF{{g|(AWI02 7$r4YXV(Eiά.TdRz#=}}ܻJF;_RF^67;+RL1,n:Ĥ䡊[mZ> >y fu%0$YmN=d a{ ^& Ppk,MNzn`1kX14xNm.yC0 :}(UuCE\hK;Ѕ ifTĝy!d1u+{Vۈ0^ Ν~&\~ (? ky!tyam wVĚYf-ҵAOT"\Fnp%$49A|7E;ժ" 8ߩjC0PJ_R`QF dhl[1n熖l4dkG f CJd,Wc&譺-͗hw[8J9 <lwcTd93_y3W5x{›Z쓙f:a$ WKʶ V}KV0G3 ܀ Bu׽ɪtQYRIqsAMe/p,v1/2by=$ `P2@d&yw db{YnW_˶M0R{ҟ0/Ao@8 jP16r7ѐkFˣ~i13:䜳< Bx}wsT.ܭd@y'lJvB{_ %E#wiIXL;5~9C7\d&iggMuLt[(&zϨߊA]5ȃO&6%>"([i2v¿_59 K=u`+NaΝ_Gk7Aq:c;" uԟn^\_^?ٗӐN^mgMF|)*jEs?bKR )ݡz}N{Cf]dFLg~8+G'uCӽfQ^sO{}s??,p|"X5(-3Лi%A)dt6ub{!U<=g7B46"1<n7]l8{bU跽@tQoXru;]a Ky,]; G7v1{otP;}h2jewFԧ* s"Pџ؀C|oQB [li \r|,0w\[:>1/P^>v x Ե3?~T &]yS';fIr:F@F4OQ!AOq+bN tMO%OJה.|S{NaKG`ί?6_.ܨ 'l҄?T#*Z +M d ނD#?sߟ rZ(Ӝq 1d9$Jhk! EK()ҏ~wL! :qI%q6HѾxϥJY{\D5[£@{j1VEB-O;>H;ǁhL\(<ә!6l|Y3xV?`W[0.N).ʨ6+ 0߳1ujAOewPX2Fh]tѡXӬQz4yr^u9_<[I@O@flY ׷&Kg'O{ 6iQw|;5OB:EP7c[QENoT&8ƚvC $6IbJ⨸k Hxs^(ܧqN\ E~r*ʡ)4[#ƕB XO^^R$&,C6n/BO(:qC VK)* yRY\^ $HZ)tZ>uWov`\-f}s(N \H3EΣE,t*`rdy `ݬ]B[q P|c1U? >:AfTRӺ5.ːǒ"9#;V ƽ~s3?I=/,΢g(.Bd)zGwӜMmbQW3b*i|!:g79x>#0BЯKh{v2vP# N+ L')Kc`qKhO=_J߶arZ٠>H̽(o@G-q]ыxysbcDoS 2D L+D:falUFZ%5UZ#@=6DCeGoR CE@۪a#Aoy :j3n;ZhȚ3( %!EٲܴG^DiHȲ{HTԽ0YKHU8 0%fJ/&7[&2ï'lMX!^rp[b`̕tO7}u8eɺiFLբTŸjԈhW:mhf[P̕hg9ERTkC3Sm)xdӱ1h -!2 W} RMOVYN/nw"p`9$e "D1,gߞXЛJm d!8ŀI0`eW`_&ѲрH,@.䔼m^MWIwαlēU̦[c]L;L齮Wl,rSEB)WoWX< kZ>5웪 ]{[.TH~bQdކQc]+HGz9sK{K6+"w|.XO@_1sfQ( Z165!~DO<& =SQm`~?W]&O䜠"(MU+FZ6,+Xp aAztQu;2 5A vP,be+)| 8EF )D0&=|j6*Vrk9b,NY3T[(jhۋtKq(/7hDwpq( S O߾Q޵ƾ8[tG_5kƟj~OБG@L( I8n;E1f>zCۖ|~OZUW,zZE khݺ-'&Խ툗$ęx;1۰S>ĮZ*c ?/OҴ#߼[>Kh# ;[Tެx[q^R=8Q \4~aQXSfPW'2>;GR-q*PBtsCn"aQk*Rv9Myj:k`F,OSuMP 3Y0 WC6@l]*={.}"Zy> \߳9R/{ *n{NsWI,̰\.2rTg$ATݴl;y[uRV4 nAH7/KɣKMq| #jC AM|e׊O$+ p%ZD6iwԨ1e~wo+yKԪKQK;MP__IzG`$,k"t=$ ]:4,6 N+?UT J]ll1kz9Ƽ}~}!mRe /P2tT1CЅ*ݫvʃy/{4J;#}".j:ThD.KpF.an덃TW 0\$i<'O~!0Ӷ[!6|o2ǪG#SqEKƂ+>.2IJoHb*9/ ،}uT^ȹwQ7h52E}E5]]r/ Aoܳqt ӈ*5d# Wk}hq<>]-26e4 4BeM8!],>XS3E/o"s 6fW/3xeF5p2m1jia$o%Ƌ&\Jˉ֒j\ #}5?/1QEݹk]D .ZZ10 !{I]!8",Cq7+5;+yy#OQo]3bvluI}rض,n A&vSˢ0u[L/F,걷5_6<2$A=g_w:.g8-&pz9X ݯ_MWGI/m( Rr$zP 'o"NxE2P2_/U[panѸG޿ZV.:_[ G2FeߛEMB"eP=O!0Yڃb0wKVosh9^Vq; R>UЈ#0%Hut i٢MkYxҋP`t:%Dlȸ`xMLz]c 6LWqݳd4p82}Iq18fGTz-oCӟ9{ }82^͖*lU!?j:[NO=G <}냗ǜ4pp$P%U|1UޟŇC2/?S2nsQu H|H8UxuqB c㝆_vF >mo{~OEsZ=Q@w>'T0j|wDg$Kk'<a&2 qdwSu-o;L"o0$5l(-O6B)~_%GRyl X=)26m&eqXPy!ܱ~!a1>UbDJ2{"WKdEwc.: LScXTfe`\|56.pRu**2SLUr _Hg}&>Η'UjhKvﻦU`֕G(\Ja\Xx3 !jY'.Q^!ll*]ф9IzRy0ƫުƑcGQ保~LO3*MӝfA??uոelHce;?ݞ +M|kJR}ŢhA{f/oOcL !-Qղ:a678U)řʲ dz96? Qz;뼝 @s7n%D86#A0WFSq:Qnư8jab1J7U<]o߿YK0o#۔3L8zx#|!ݴ LvO!\1O8כ%K#0F:lGAJo3uVE5AKF@L8t+!FT"~m@YzF^cpP'z-jWְcb%p19vSx {^9^,^dŀfi.=T@,|j1LqJdơ:-=?)>lLcB` - R;u渝ے˪LDaElx'Xvztzjn06Px=n i1c|C| ?hJ,oIK4f['ɅGo Īzmfuکe1yz5}NZkBTʋo /vg- =ePʘ@:rvش9jt ((:`O9.wz/pEfـ@/wƽjRu")j3* T#t$w I0*iN(1b,[՞{ -GS\'w ;DlZ+1D2zhpTx)oL<;B"QBaf>@toi| $ӒQ缩#寯]q﬎pYz&y[j{S!g Flt% HpP1%_Ce@j$5~f/H-]Ae*Zkb'l@q'X!Gz C]şͽHβ1I9G]kͱ Z%E Z9-nqDԳlrYd, GmBogkPQOVba-+@'avGb6_i#wkL9dwz@?vOB +Pq|󵿏I^2F9:N9%#ohv&GRF7qT}&szMS~X̵,_y?^pqIa@fB(p?h8&|U -@gEmnɌX? Fn 6/M,jϤ-JΤBT;bQH&HO(< Pܔj=\z:jɲM,ݸ5݌_Cϒ(6q%/lF)c@u |W)BeX9($x<e8sp0b?D Aw~,o|``F=0b% 7eӢhD؈M܌O ? ~N\oy/dz=d:wwӁŗ-4{a/ZQ2.(C򟾱;t-7"j9 JoȎ]mqs9FGc8kͰQ]0NX!XE甧Ps ڙUFqʰ6zSu.oi#;M[eqX͡=/Y?h|| ).i*NÔ{S1IC/O`GjWf%"Mtp<_b<8#Tބ#tG={M#w<=\TKAX'?PAS{"Bܫ&ZImƏdDw|K* U8(*~L~+n&)D,^ؗ~?۵p#n@.-ym_NH~8sY\WrtW{k'0[MH8H/fww4T+ee>N+"SԷOdJݸ}:T# a|go6[ v%>C uE)1P'`_;p +#|1qPP*@aiqmk+?v_g(ٻI9r!u?S %PNGhhb Gv R_/ʄ 9-{känO{gKuӎo1at wŊ #0<4%4{։LBms$upA`H)|î칆umE/{yp-vں^Ǎ`/;5L@iBջHA2&aV?0_tϷzE4_ d*/Ӯoڝ@z`HA:‹+m!̯DPo|HQE`h|ݛm"AD{59:GikxRNvWE@i|#l۸MH _ wc|(U$D#_LF{2ћ`S)= Zy=ӸM(NʬlmĽDRK{=0R-#L 9lVP`Q^'kȿ3 KY=i|ծxJ{g(|..|t Dz5"K5gƆ% sWK ^k7̖X!?MQ%~: \Q#)r#ezrdoaf8.rЈ"]{OUfNspԾLG!^k+ 5OʮʠB06("' JRׂn\<+=RXR| t9H f;EU$Zˎ>ƊBnv""lcEy@l` k#0I/S__~gF䶆 à(9ޮcׅ&܃}]fD #a=K i!Gh~”]ZP'K7^ad3t9ޫj&Xm!ɳ֏T=dLѿmti, '2y`Pk/׆~yۑ#FۄƱnEqNUhOkwZ62i v^HQ\^a0Iz1X)j@cOTMDbIý!Lq;U=.Dpp?Ӑi|g ^B<$aHԃF(Q6f# v`|br 9J!m^li׀ɼGAiT7tv̉EIsC }4/qO~g^)x˛2 Av_ս )gwxZ>B[3~6$~B >fY˾[+7M,oaoE dXvKka1]7X%qTu%FHjuB!EWKY$Ny>FinZ1b2Qz_8Z@y"M:$Qkv\tvm!^*%*#>:L9K%a}8OړLŲ2-g}|o&o+{p6rQY,nypubz OK6CB: !ta[S`,S/JZ,0Y#X\8v Ud X><I À؛ __uԀ+ Фs#GOQ2Ѥ %?D236{gRQXDz^wٲM\EۿCD1RO@wO_]kB) Rģ]6Ȇ@Z~mmzN(ѭv`ĵ{mWa{ٕl6?S)`PS;`VV&qƾ+"=;ӬF MrHdm %[ɕ@=7) 5B|B4m22y96fHP.N}"✢=m%:W ϚCɴ }fC`eM3 tG2+RP7+PbO\̡Nn,=/ ̠.ş B(I(g72GȠ YY ]ʧLA9Kb00. 2%yXKmQ;QC~ 0ʨB,NRAjf p>_Q5eF]b ;<7 sF, vh"(oQ16ggAJrʹjIkË@ێv5YkW DwV<.pIHRbJ }KXb=qʁ3[!X/>QDAX?fR9C`v4ńsж>'tNc4H\w@Ho2dֵxmŸ@;]L@tQð<ꤶgzXF@|)cp}73&OGP*ձ e(ƪdۼq [#-A6;֊%86HKZ@CE2 / oRV>A!\e.I=6vK "z[!S3H+U sN $Ng; (͖m]#.Q|I2M$fv6q9h$h9S[%txecќr^^s﵍WHAi3ҿ>x4kvW}R/#&4K*^sUh(^8\+v>ͬ~n;^Yq~}E,G9΢)$R7xA";9luS 4m0!MsZ@oIv.L>~, ׷@XZOuz o""|ҕ?]s4%0V~ީ{Bi"$*Z݆s %Ihnۚ]TK@;ݴIX-ĚEWփ!-IjPd+ s;ك| [ux HԂ6GvJ(Jk_%8$~+ɹz_S~g"tXt6;[H.i"qwjIaVW@-ArD޳8cBE-rzR T(5]kWr4Xn}ۋfR< ĕ8{n$%jҵp  w(;gs//'k)6Lp;~j `\q wk-U@y4CD?~˄,Ѵ)zf4Sn~SBb}2fdQjݶe´u(Ƈ+)t]F,Re֝gzH3DRx<wTg]Í?/ܒ- 1"qZϧuK=TWU@&cy~gFMVX/.gs(]FLCJl Hc+eꡠ>!)6' "HU&mꥐ(J "ɼ ፥ PL-ˣ,,X[]h;9*7%!cy%0 /hNʋ*(I [qP1ABrO{C㊩q߾͹pv@v,+~U<.MbߢϒdfMLI~a8,?{VOtBJ5&>좑cN/}F_dȷu ɥ_vҴwhL ]1ޡb\\"SWH1r?%-"qvDx.C}RWնmrҡ*ge`!4e2`P 4`*7H c4Qu\6WM8E^;΅x7K@D; k"p!w@7e6BZ'؀1&)G$^@ѱENȫ~E;~vaoV}?ֺ/#XV4SQ[xFR]Ih2{˵/P)e]/#PN2T2Zx&BzyJ}&ɇE5_QwQf-><5R.,XooXh;VgMqT)~9SX8k-1/QQ /܄VI˸6̯"rg7)2[pgOxB{\DxN]tV2߸Yg8!fu8BÞL^Y"ٶ7TTl^9ڌRl ^7eMoubs׻&(a(O] 8k![T!7PW6#?)C >s4m`${#V_$w6֭X˨bWou|5o|fF\v%EW45аZ x綕B0pɭ x˫}oï+WN||ѾSMJzo mZ)i@Z4x_QX3YfbĒC-*y0V~5A+m,'-}̶u +>v]Remg~4augGo:±W;1> d/+gh Fm?&$Rr_ O7H.; v\V< "S"fT^VXpsˊB= a}'5NRzi<(@ϳ++F )Ժfd!!N*5cXr$l5s_G5y4/]'lj3F[+W!ʼnv)[r=~hD-lyBˢjhƫ N?ڷu pK$V/HaNs6CY7O_3*u/ڗnLc8M ?kSY&*yb1Z`q9Mk-鑨7+pQ gl FtB`2VZDhc[~mG5bȼ`!?uDM=  DY8!IR fy 5/d cUV\>2Z/e=<(YI /ߦ2f"Rwvl?WNvV~t9y~+63Hk"bmb12gHiU**MoY.aUF|a+W[op~R|ܴsA2 4!n:Jn`2~qj  XC[ ۶mߚDz؂w;<uLӣ#CYbeҗdO| {1rns.?=𐵊&Lf[cJtVχ+'c*-[6tϤ3p.-jd;$ ,7uTPyVk(oD%>K*̆a-&oHI^$iLzp }8jc !]]<Bhrp شF{8ȣCV`sRqUH \]]W %FO]&IhڟH){W̠JJ%i~L Bu/-[Xy֕RVi n߼8 >cܩa~ab4l K}eG>;2Wgjٵc\_Cv"-yGҹIYضJSUr~,/||Ee/t$Ix۰%3$sтo̊5}@Kxӽl_ ,6S+;cz dw~P1ij56+~oN|ݔ]*Jb[f+11, jO<?$!YCN=~E *O7dG.<&27R_' xy""ҹicϭ04fIB U|XEHإb*DyG%77Hm`|}-`~B(HItܦ/V͒ j%G͒o=z,Aw aХFbue㹚[ocecs"12&࿶F^{KJJ\폳Q GuG42 Cr2$^?!9VD`˓=-JC4BKjVt9`ts704tk&;Rv$i.+xgbc/$0Z[, "s*+"N6IJ/a^i7hSD.MJQ0vNڬs:Վ [`(۶͙3.BX [6"1ZJv{h}`u9MHWJ൲WBQ?%n FMnd9}ʣIQ9jʩtTm03+"FSoW WƱX(yTcp|Bt0 +nT".I>!X}4d &t۶/JFo[dvv 8@=i|ĭl[ҔQX{qDE9&O铢NzIjNve߿j ˒7DI0 Mp-w/d@.c*6I/]| ?!=ɛQK(z4. W Z͵8Y}dd3*fNwQn~m:?/7z D/M0@AT.=b- ab>emI5STl*NuVN[-KiI=FiF=aσ4ֈ`^ֺqSC/גP}L+o?vΤ2g—tC*:HINf{T`9~P, M-w5c.ү>Q#t ~ ':]ˆ%8+慒 <{o$] 3%Cz&քdV:G#\ʍtY7/Gdyy ^T␏JGTa'yO7o)dkLUy }PNSܿa\"bmT3m^QC-붑pB]HG_]YO4="ۘ;t`pK"/4P2I;#a)T93gk ׆`ڮsrXԮ͵m+f l:9GG۟7OߎQ^SI";lcsOajv"S# afW=gZ [axWF͛$qjޕMbxcq$R_jm T4b~S`Mp?g*$T _+ԝE1p6O_"<UM9#"×JI} VJdp¿ҨZ홒Қ5ޘ ,T^Oz9_۝vi'zF| `{]A`DaW+3Y{V4lUJ΁*|axn(*ub~1 T{879ILam[T>|9 f;u&[g@0kEFv-1Mh5a{O7XYЗ=o1ޜ) 9tY>qPɋG%f\ j]!^3=/#{l!J0ecth\GK#]Z$j loJɵ}D}p=l_$vv8S2M?wޯaXUb3%J6M~O!pGeXy!#Vub1D2zr7Jv%eQ!^: R&r%2j`L|AR;*,싚鏰ɧGvɁ_",سEmXR\rlt\Ds?Г&-d*j5jX40)mեh߲#xf7ԹNEaq%.)e߫~p'QPK5 #H\Hi\*QLo \Tyփ?}9En%[gϯ_45U7C5S g #%xp ]+hܾ%ǶٳP߁/HY?5s 4~D*Io!mBwI@ړӶm ՜md,BMXk 2Cl(8n.î-8}*k𷁳ߚ/goܑ=0^>;'ժm bD\͋rKKhkMT-i"\즏R4_!^2k&^ mICN^o+W[ m&QIh$?5DӋ v; <uɋ@#"RT{zmS\`r>Zt@D; m魲d]ju^+~vݦM[ju|}_oJlk.Qo_[5U+$I;pik٠dPu R✛?ğj`B Ri>}-D6,\#d mYR/9cv!=D^uӤ]7oۼ7h}dnjfEA2,R,4B5RNl%XjHL<-tLFmWXyIo3~ل͉DZk$<"Z#8NI=_J(xffyM\@ș$ aSHyE _Dtta[c{?Ӗ\ۦ?6\-PI$)9(BRBD#Tcti1o C:5=o!Jwpgo_(Ɨh'ReXp壪M. ef9f gyIJh7C:~Q.4ÍH=n.d@´wVpMX `Ao0g)]if} j.,s??c^ؔ_f(_}wz"ڽKM[x3gz Pf31okª'|n_}Wj΂;fi6bP7b7)^ A >.rmh}v8n=[H#aŨ_$Pwl}f A~=0. >#zH~~?w&g$"e ܭw9"&R stfn!)41amV !?<{`\htP~d= u$ c`Z(Xu@`*nE5*դUeOe.!V*?OAB[95/F=yj64O%yӷ. ’JqȏA$nb*;ͅ6e&#mwuEBcq[8ˇrOQi%1a\[`u ?-oY wRYcZxδU&m5mD0X!ʢ]CFU'y]i)V4$;D_̓cw^* g%UT|{JURjM ~k]&X[ؕD1 `}7v*l= 7#yH?GW- xqⷐ EFϔOoٻAi~m`]uK$_l 34|/rJEUv_T9'V G Oh}W]$ ͳy9C}֖(7"6.,A$>aF @1?V()GjPD̗0:;pףQKz#\Z7RҵPr{ǫ[iAA'Eǃzڎ.vurYErt.:ʯ(ĝЙBӦ`7kx @ q^hM#o6Q.FW QxWpu.@/8moTsϲZJ57Gy+, қ@z!ógaxWeW)\We 18̪Ż+:ٲ6Z/AYE87OqsGAD2Wk<@;^IuY{;{Q&D  2j20-b1`nƯ.6 k,6p|n=6m>A&U.YHoRDeX}vYhڶ Ϗ>dQНmYJ{כa* \SI}W¥ɠ.=]>]DndZ"Ļ߯yaSp ) 1)RH kp)!0i%Y!R*!,C LKяGTWR.7s\wսdN>M8%h㬍SSLey"=~4(*e,TuLJWMy]hNdICjEriach_e]Ijy1xKTdDSvIp70`+8_:f?HoBKXe|9YWd:anLxU7)ªJb:xf{/ ^ =/o!U{N |SL,6ۛVfCAIOEb!J !+|hBFYn%#=}n@A/=]q0{2?{, DE)$9[; χkK?JbrI^X}Dx:^HqaF 2=& \Tg]rWk/J5!JU#ϺRb頟3Gl㉒+ і-$zN*lI-O]`hI 40yNS22^zYZcUӹo{ѧ׾lm$0io]w֢mvߑ}l쐤n0MAUp{24#:O]"#ծ`MV,NrIۥC 8ڈCije=BfXu^l5Ǘa ,GXLb ͳcnqs֘of VaomR>׵c2_4-aNdŅҖUUVV58V#t1n"W3 |K?/ἀ0œrdvAarZ,'Ȋݟ <+"/z&m_R`t2-ZͿ~Eժ, &f':(`;X0l|- ]zJH"V XĒ![x`{ia]\G I r:)ьbE| Ҏ[F͊wfbu^yYݹ CǏ~depT<66T$C~weH!I}j@@` n\cIxR!vͲG~=S`?_ș -9#XmX4p|Ii׸=&PaO3_s>\v'Euu;CE=P/G!>Y4Z#m_nSj9[3G~3sL"ɖZ/x*R i_,H>E tntEңu0v@5 a̓ݼ~>y~\PǷꇴ_hZD tDb?8n D Ay\B0ewfCTo4w, 3cC p*AVpѭcGQ*^éER/4F0|&${.K(a4?SϿb+^2D/&H5rydK ^Ϭee-$C= aIOD?/y`b_W_+zTtk_p{ tgg,-'1]q.J8[GtZX!a<ٌ^Hr/t=ᷨ+zՔ<)o#  ;2,ߴbDf Wvغ]s5kLBYY1Js,gg1:g9>,=X> Ƚ YBL'x:Qž6WJKev&Ik{ǰhV.r/K5x i/&^6|]'l{xjfSj93eFɟ/ Fwl،FM1BʰNt6)A`(=Y˜)>iyeÖlDy!k)Q\ͮsa=q/3*7\/CV[TTOu6a&bS~Y%ĴYc0q7|ڍOcDMɦ56;ȫW( 1.7*k(g<XVC_Z'<'˳gXrS'~!۷^uV%t*K/;k_oTWEhތS4OF:`tjYP`\gԌJS秺{\,GGW\9UUXfEedf}tPy㹏4 96)~vAf6 8Wpgl_5}[2sg<9o՜N HÜCXaZsѳ0qLABocbz_z6 'KwKaG*<_Z+5I~ݴvIT. +cq˙WFLR-n-ۮ( y|FBl6ޟ I!cvNP~vS{.D /nIM Y&)v4sc^xUr.nCz~MPic L^`x=VYsטʵ B$ƝjWMb(k*Q),o:{j$,U}Z6B D7QN6KsI#S@i(U2^] o"12_v_]o#e]_!7<>,r*H蘤0n&OW7UϲdvwZs %naqw>s?V%AR=V- @xLU Ci,ہ9e]fyOB f-un'3 +r[Fv *5ȼnKԝ}YZcDsz]XΤv>~&d |ijFlmYL TSnx'^o)w2xJqߊh?#Q!8+:t r;Uٮ{U;dЯb u6~1!#ێUeV`E鼃iY Oԟ_{’Jš]̊E8EHs"匦Ӡ"rHU*sMAv6/ tJ_$9xFH2|)!Gy2Wsmmr\O nQF_í^PP?1_tb,mc/p#=L;^`{i{Fm׋R\]yyv1qT- po#hj,LQv },<<ZgXΊtT]yA*9΋XUK32`xٻ4q[xcyԳe%.Քq>hqxvѶVn@MΞֽ@ H#,2CXYaS0`$7*e0_ b{BHK>atyZ%3Qer m2 fء:$"s|P:Y$!x&LZ; i=R\^@1I{Ee|-z 3~ ތRt|uYy%5!dko[vU $rEˮqWҗ[៣*+ʆJϭBMz'H1~uBt'_@S_T)fz6X;<38lJE*pJS8j)rY; 竏%4k]SLb nX!' "][anͮjPj E.x)Q<.ep32F8A"WsS /gPy/P3Xy!YB5Cו=mB{J1Bi@:nKwyWAڝʎTJF6z#ɍ4cS*ol @ #t 4E îl7qG7$jK&$s'ϲT`0i-wDYYi; [w"OEt 2C䁐\S sC#,Q(NLb4m-V*wUou;{9_!ԔP1ٙ Q8 㩗aB!+HϴS{of(^Zs. Y%.2\D no^O:ם_4ߟ;lUbaEhׂ^GSEsU߷i ϙx1fXR6Y-5Qơ.?7;R ]Dm^hSoྈn-͡&S<M tUs!J4w "R@J\4OĘK ΊR{w#f2b4P?{bVCz|LX4V$ddL;wM I) bͱf(#:ś #7+oD25 hRDu+ޢ? >pE:tljѱ'`I*+^zY6 Cf?>BD_uU/'4-"?tW".J~m.$e_U=0#_ AFnT?|?y^GQq]( KhV@ pu%owq>ؗjkA 008y. KzWy PXAAP3"D}ڋR /iŪ6s1k*Xfܦ6ԐUΈnAe=*0B@<  ]|Rj>ou.O !TTϾz0ŜhyՕ{!U2^ŧJG)L\fw3[M^W5(dj6/6񞝘V-^vXESh5zGF\Z =t3 Y a"e2߳{Cg`W2e`Yɍ>4bD!hb//D؆*I3꯾vʓ zoS=N\D睛2m|!1+=̏i0GŲ c}ac-?s+ev'M7wاHXǘ.oBlW"~4hѩ7Bc\k6?F)mo*u^j/#R4N1~~]׿unïk+~1I)uu XcֆL6PLz#rнpf Yd!ӈZLVycdvImAavDzͷ d9! :'|<|]B8]k$ 6v2}G!;z:U{@Of>to{Sb{Cڑ]]o9jduCq.gy AٷJ_ >ן7iS^"ܫG|Ş3y>sg%rhzYȊP#[4Z]5AfN w$)QB9R|ĒF:QSM@T/&Xܶt{ # ;Ybgs 5W}6gIc0=v6<NlK6t OiwQ2߰H/霥8A>j 6weW%7-PlyfyKxKz2ЧngPVZhb9v%iޜ1[x9LbLͩo! Z~Rۮ? sxf)WX|-64͡PmɮD$< LrՋd3@UgqX h2-ݟ-HS B)UfMWr$#_XeX^LO8 c ] ιK;RzY>S :wFsҪөy@M}3]`&]M|-h]@]{wP}_;'U5D#+oJ'$ņf?A(!#VWh#4yڽ&z;'@)=[^9hf1iK3h -K{TOnN|PmCUO*,|rvr Jqs*mvWYk"{~D#7Pߕ@-ܺ" ΫXb)㼑jMIXٓy =⏍`N8k{ (7~5-Arȇ`ߣH͚oY4ގW$Q(|"[ pg>t%O.pwQ:oHeO><W $SMK_@ N|DYHk&) ~|m5 ?y"zQB ӻ5X>O+{76w<(Atƾ+$Pr ߎ^_X|os>qNd"7޵ -.'i&!mB0YqXwoIbNh\p |透( yOk>v8' FrB+`⥍#Z7 ?I䗷S^hYU6tA/2PAZ~^ӑi0:&߄\9XpuNMoՌ/~z^w>kDeG5,[a:Hoiep&h۴޼:lp,Z[9 {[0N=%Ii}q:c`z4ouO>z|EMB 'K[דPyB'"ҟP񾼡uܣ0J7bPc׭UUEGk8PaesNWnyX kXyVtmYSP3ZIѪ+75/sACb}F:a|m~.Eq2boCm4,s5eBУs gY2-}"~3' : FKݫ6Zo`E7o@ƴPahP+q]t)mfA2ΩggWFhTpE$-"GBj9iW-ڃRixUÐb3Up4n-k <&s_bήd_ S@vQ1Jx[zRূ0"`cam.&Fw;Z߾nhGޣ_y߱xӺ=~ĨEؠc=$½!7Flڒa>OK;26Wlk[³i3O|>e3t/gɚ,K7Utù`cFZr"vc66MP\6TCwtuZWb`>0V<2e܂(\ X[6V?oɶIf;?$x?ӴŶc Ʌecm`[!f v ~sMu}WyeqwAC[Er6]8gN>NF;tif ,?d:Ո'`w;C.T]-cjJLmK-78?mayGao~Z`'"1#nOCA18(KH ϑM uń>eDȰV+n9`q,{kG7jJefAa,14m30˨ tIT\v5D :wՅc'<aXxYuC/>*wtu^oW2D\5P`jn-~#eʑ&eՠs(eo{X@2W4=ZW dH=v@VmSɽ̥7%+Iؠf tg=3u2zp5a@@r{ƅ.,}H';10a,L}b+{7O&$zYoIeB-XN1 Fⰰ R.[`m 8E ZI^'+> Rߓ`cGB.2/w .xRs> ) *ȵ\!Նlh> | )fHg1X}ܷw$ _ j:{.:zs~ 9X **Kffg g!){#gHW q-Od/tsA?}~'͍zfrٶ F]_4}Yb쳵'*Ubw2lld' 4IVK.8ಾ)}'+L[Հ(8T8 sƳ NԼa61Ubpd%яՈ?) Lmm"?뵵BDPlޅfkD>JyNT#"HaN/:!8\9RfOE fEu|׶;5 >  6o7gŊlO*F6FY.n6m.7q8:_o[Chpͷ9d;33 E54rG XT46YIqbkňvQjS׻:uڢJO-(X8Ka(naƿeJ \3/ל!}limd%cHuo0g\4͋.|`qƭ^k92MWɁN_g{O*((H﹞AN8ke/a:pJkѻU㐷|zu;:Ɂ^<kނvF`*)v k譙UgZYA:xZ1DZa8e[~[P"v 򰁶{ %kKa1wk !d 8<=3 ՔJf CyӰQ.Z|r/ƅTcQz/ؕ媿9IJ-9H2ZLJ`O@U`P({6~݉D>iȠw/п]r}p"IB(&`7Ke*SSJIv}qQ_:2m`CoiHo>~AaGæ%XztX齷cz{d="]}ƛ/1 8BYz Ox~bއ,BrG R۶r/;TNZԏH1v2"DJpd.Du4(r^1}cF#?Tî(#g,եUP /XQx V}#U>؄s޴ԏIjB= ty6 flg_N+7Z5Y`h7V-@V& Q (""ʘr6}M 1vWN*||pd>q+[Uy\рI48};n':( c<WT BTv\nbt[ LUNk"`J1\z-n< v*ס1z4ƌZ]㲘|Cvs۷XQȸQq@N¯VZ-t nU{~1PqF!^IV%9w04 fw\q2[1Bqp',e} @21]Y+.ӛAwb Uf4fhz"wr,*9Ajz\w[|}hs hj**۬e&"Bzuq_9qPW؛e69 S90q%E\bRx(=fe}4jDсa'>Ws^6qĊ86o&*ᣒ׺iE 0ß4Vm#gA#(&ɯr*g74M!̤R+Pnp Bdv@4lJH W!k'л,L-u'>/JHu3c"c)$oKYk$5zHoq v>/x \T7I3y̼pG&2R,|:n8oY\jЊ93KӤV*Im/o;`XrRuUQ#Gn\yX_8A'2~7ǰ4:m64iع졘 u++%iu>`\5 ͵*;z[ʗ;l!U3Q16e88LGZ>V}jy_Y)a`˙nDxRu1[ܛ0L 9 {xFЅNÚu2LzE!D뤥I>uP ?*+J ʿ 9,A?NlBa?^@ }ʟr|7#FR u$I&Z"2's|oklvuÀjQ6)%墥/JMew RRp4J"Œ  4M ?ɫkŤK&5Hu`|$ѮN. v bchda%]!ͼ&.to'{/v[^ަu@9RG6wd1 NtyA߇8+//NEBtH b`zh&S/m>S}>C s4 %^89DDM۾iPpX^]Z֚";O>q7tV߾'=rjbay|tκ  3^IUmg)v_E7xvcq|:W L?;MrBg_DJ@8z*r&/Q?,Bt8竎ر/]]@ vVww)֩!oM&ssɃg㤸i0򖐫EFɠfJeޕre0.O! )Fsbีs."omn2`@C\G HR쮨0L@}ulV鴩d ȅ\91 3?Y=8z~2S>-[œI!WIlR?ܸmiAw:VO;ml̈, 73iqa ܨWrcD.A4 x j&=wFz 9n1Uao+ނ ffXwPDY-ߢ/-p*zbMOPW^cf/Ld=Y]sES]9- ֛Yƙg_/HSѨk%@^ ^fū'eL4^"qʆ(SMߜ*?qDE`bGfq+qU qkI(%Za6L8Tjct“/MMV1usH7$ToDO81="QT*׏p_Ly?2FV9]HzM-L8Y*KQ $m, )/m_ݙ-5="?|ә{=Qfyڶ]eF`7 V-tyhV5<0 I1ڼdPZ&eeU4omB"vGܦ/Ϣ/DbV YzKT^sI 1@Ue9lN_\_̤!|ut6`dN bd l: w_ɖtR&anpiJ:]U=MW|`1n1 &P|!SXpEHFmQ1%\՗$^U5 [ `rHH+. :o_77 CES@:ђE#( Ƿw(U:GtxWbA?>?Jf]T57D1|=UF޾r]i_]j|.+eX2v靑U78g. 7Rv%vհ?BÃ.7 [|T@mf{_$.xNoW Q*QN0e=}kz}. l M>K&a^d0_RZN}D>V8wax{\حX5`o@m;Lf 7*}ƮȪ/?z" ƿ] X`:]Tt׻ ?,gRAD񘑄8\쭯#ЄY rO\-utz捘LOPcnw;W&f_v6U1auuQU J{ul7~߲D Xy(¼eQL"rw-1i@ 81,$9\0;z;P>ogCl!anځ7!P*`[|C gI>@^Vo?݇T:?S?|/ٖ0;&+6쬲-ih+nu M 2șЙ9~ Dr4D:{HVN/eLY-"̫v:0  v]h 0 ^yɸZ8~~jVҏ$x2AD/$vږOr7T\OT&&U~Ljf nC~>v@p׬e,|q%Fq{?\u_Nz sՓ1MyV˒\%b_H,RW=[w&2D'goNR~xQhu~ *8ܱYZ 2ԗ7B[3ԷRk LKZ=p݁7kBN+$̐I I!uO F] W +\y9V[J_p^._IlB:3AH `|$%B:wld6alX2xgԫ PkEfǚEϷD޲cA)kZl֞fXc;~3-,(7;/́owa\d\0 6l})]~>1vc(^"Dniɦ, ҂΋i3(_[wj֏YRJʸNq)x.vBjego:ZΕrX>OmI@ق'}umQ^ u=ȃ؀ِ֖q݁1K]] –y PV^l2h+x0U-En8) 3^Nc*ie.F`:f2oLR!ŨN1vR#hR\O0N2aT _Cv6_K_xoC.R9]P:H*nяg pn`:Ip$s;b4`;I>"]o .2ЬPI5[Z(Z IY, W: -8 ƪҸSoNH »͆nL aD㖳렢 1DR*`r- ׷߷TgU=l,vښ`{堲Lr X+ۇnw5֔}kޔWW#N8>@SQp"%-@kdɢiPa ҮyJSn[0ldC.~/ĆM6Dnc*Z<+x4!|]8l'hinS5r_ Pz'MMa[;/@`[;)iq6KOkM;ArRb& MCO`*-#%D`o+2JEUد;1\Fvq*#y 5ͱĭ-!肥Q%׉A#٨/XX!7ybi4WorY vRFރE y3r#d X| 9]Fmo]lYP}Iy5bGS@&yկJdsrcdF1w 6kMOP|MƄeHK?gbe(<,ѮvJnҕOѤ;KًM8Y+hKGoO)6d}dLghp=;teLB4cn{Fbl!bd8Wh^O)w:IC m7X^N]/ ǔ +]>Gl.ߔ=lk9V9WŲ_gT$za "EB^<%\6ُI lXFْ% T4-@|IߍEA {-0xtC.6%tu-5 肩zsoL-yGOMUۋdaˇ㴏`@7VTP?]iF7^y:t ./Ɉ6jN3m"2.?7J 1(iE*^ZuM`$Xw۽~1LC;l-ewjEfJ""D/̋w|E[1 ^i^cʇð?f>e)FFh&EM/ƞ.M$o%;h. 2iVӲl |O`Zw&찝ԯ.DŽݬϻ)Ӥ {mOe9>`)!M/pE\?a-`-9W gvV n4j'Z{_7EW X!6^ەLanPySmNY-RM%Wbc-cC +xBd{e*xWbf Q-s&alZMf j{PIeV?ؙ"km޺% G^M?L&EdÕ`&##|:|h:{~p7C~#v"7kɑɢ]RGxzI]5r1<jڋ'[*YLC6+s}7`Ȭ;k1uub .STm]7NF2--4-f|{ZbdڄxX=>H.}OB/ jބޱ6Ր'?׶ Mݫ~~}sYAe&-ע~4õ'DTXC&5SYFlH B;Js{ަPt>s*zzI/;NYfw8v9F"^]9dʭHF_2T1Z,- ?J)GyAJACɼ4?oiy xX;ₓμS#Ҭ:,ki |%x,z<(H9n]IPr|6dgX>HYy 1 .~ՒI87 A{TȆKzFh-̥y6R8~ ᄺn[|D݇:a鍝N%/p~vFG'/Zs2p:#TʆJ礆)oF/ZWo|'~5fѲ>tX`F㴨p[CJZ{7_eY% &)]9 bH9baǥt"ӭV.&=LȲ?9P4:$q2E2;~Ʌsak|䩓<j1W5Oԩ+оھ$g-xc0";"]#}4 M兵b)5@qUMq #eMIdE򀫅/ `t#hz?funp,W{SX}N%z sdzYMFZO(MNܓ(E_@/ڊm+Z0`/QG8'8Y*E"ӧ 孼WշJ6 V;,;C!@K|Ք[Tއg j !Wo$Q}ゕjqĪ7<f`bnw'I-Z18˘0:49Y)#n@ɫv/ * {mG/J@f*K8w/QHiW i=ݛ/h|,"nyXW$DҰk-7%ݸ_aFho-IRh{[ S"d&]\U |8T"RظO0  ֮Wukr՝J/#~VM%I'a*%Kx]W${eSq-bW&bF}ٛKN) 5ƹ1Vb<._ X|IDP2U qwHPB7ߝ^`H¡~(3-gRRPY?6?VIڰ{/@3fvУ|7"xU5D0.lZ/\^Ɠ:-GLWe^VF#"-dT -˼[66we-nпpU~VFնmZs*lޫg7> SOFHto1ø *hH%)`2悑.KjHTd',DROd} ׻Kn@QԚ]Ҍ{LZ-5ӈ< iO*1}90ߛnɔ+ۿD&#c1J6oD:XT1T$ʷRE LCozeۂ_VѺ'm.Pz9LY>2N'Z8R΂aܬ O zϻDOAiP`LV78 Ssxs׉bRtm<'Q Y75)mxkJSҦJm}y»*l"y^z'lʺoj6$y^#q-2Ű]Lv0g 0 ;d4>C c+Tw7c VkjRbr_TtL݈lB9yB"K0 >+k O?(XR@0}^4䗙 }bV dK#es;M- ̸B7Sm5ܖA߯8霊[ 稵Ԣ}\"55̿C3)'$m/bFJFhٺ%v6-kn{ՠǦYc3֦>o)hK7^qٕOœ3`ozW( マU 'TYx[$H Ѝ+AF;ƍ}ߏfc0n,-UF +lQ@P{3<b6 MG]U/$S:hU;p9"( Яa#Lrv9;9\-$)5hVf'eAeM r*qg]UL)`ήYHg7Iq/–! Sg\l+k*j6=UI!Cx @{ga2+lG=C-gAPҩrвsz0'Wti kܡs)W&QN?]DY%GKHHL*5jB:hnt' ϼ+'{Tz1^sA6"e+զ]б[|jj=FptqkY HE~ᜠ]tW(qXcM2G/^(a]?s m-3uPM"%JYPk.!j=z KF y2MHtggM gfߪ LCxhnֻoƁc;$Vgx[u7ّAnP{ q&)0U+3~ & biP"5{bU2ﲓ=/; oN_I [v8wr;h-\Ԓ?e?`ܩ|߿cK^-jxMW{{1-g*'5̖S|Sd,r稪Y`ӵ7>O baӀn8Gui^c [Xz4ұ7Ө xgT`@ Ij#DHۇl%V5p(dM jSJQ>yOj lir~Z,n&NPhTQ#J-RB>+{,Z k/6-iϯ'YhxU_DYΙQA:ȟm]vf$Z:/ B" ]&]Y ouͧLJSԙZEi|m7}ahpX78ȳ2uFo7B[cDɴum]1F%CTFM/;+3B́!&,"f~(uq5:+vY>IOpHvoK*pdFн-9 +] *ovzBLM0eCYL/~E4*|9Zh)/}n1* rp#`:X^ A7bsx*_82Z Uz(dJVg;{q2MT̀-MF);/v};Yw$!Qd(}J|E*QA$cjdђ?,G'$GUlyѫ gјNmq<p9<H$quKsV pHǛEn\JQ&8?Ūݵ&3 A=Ws[!yn E_*"eS"#& Q ; IЙj#j{JvC":݂H2bb(%Vb_cja3 M+nP~U |RN;BZuJuAgݑel1 A?9%Tqyo\ &1$I̜q f1 ŧ]#W| lex y+1цRGx'5OuGjFsa[)O>m!|D^Yf į)@*A(F(Q0LG:P*;OVNu:RDOZE.jq9WE><h=&QDVȢ[A>JPJkŽnŭ|v4YŸe7_)W"__d)dy??>j,vn I5d?&h-#k1 >ݦF3dω*h;AOp̉:<'H2}QΑqk\ٹ?XF%njљDQrJ_9]fmVBLLN{X$!}E; >w`VRYi_N ycuް CĘ⎝cL_^w-SN"K|n4P|q(z+ U,R01Չ?Lʀ&eMbc}#׿K>~[`rjV?j;q!;/R۽򰕜z,_4ִV!?혠 cei=õd/t Os/o:Up__0+4\U(C]}KW ,B`4b2vf.&>+ҮYޕS$ٗf_^z_mj4bdX3 >֭QUnF8M0RQMP77@wBpCcktldWprD)<xM6=UU r'*ggkpØۍYnoe[T.5B{cq?U]~:7^w:SZ>|bJ.tv#WlLySGw]JH_iX P(e1\@d'bJyciQՁD'QvS_'EVOcEF/=fR[Tf-5(?:w$je?ߖLźp? KQdo흮Dp?@KQLR3]yv *0FbJ+0%m^_5hwP_K<w?Y{FZCig٥cJĦf0]BsTxX 71Kpʟ ۶I7I fqf@}cUeޙ)֏~j}xZRo于rƲӥAx]gؔKυYԃGFx5btEV ډ8ZPo.Q~ȅ=$.Xި|$ Ph1mV>ZrY-(1| /ڈ,GӛW*7, E9n|԰c*]ܗ3CyU@ 7ڴ76=!ĊyMԜ/w.s([bf੩5BǧU.[^u\^zy ?ﺂ;J}7zDY"U.ՙxS#1E `XBYyݎPnI#/ύ>eԣmG9Dq4 DZST)[.Mp6| ]mW0z%Q6;v@# ЗM!Wj@Bv:cBλ/c+lEbyc٫qg-N 5G82*y~%du+<\2vثny,gח̈/bD6tUyߚ,JɆ _k<9iG ^_ Q_\n]G5\9+3yk(0"Z!!O/tPaյ` b}چoC</D {tiq` pհQEƋA_e]~8 ttgI 8zj'ILQ V0(;x Eːޕ",L NyKG~6K (—GO049oT~+ٕ*pûRѪHp~{>r?xm_^ :<NɀOSdy;OJy)H'#׀U4~vSFY0$, ๡kbH33s诉,R/?G")~3c[PJ ⊙~n~n߻#)5MߊmGS>C^{i'D`zbdyĚ Wov)UP6sbZ0H'yw}R%W>D1]z(p|x [{LUv1}CO+ Gߺ#? DC2˛t;` @,9o в ?k&g2 Nsx cHEb=^5$廠y^cJЏ1Z,ᩜUY7l@ ﰫXY=uR`xG &V}7Zl-6% IA]!ȱ]j+RS2sQ ՗&h!blc,6$_Ⱦ(\^V+hMh[<AqR1X6J1\hࡺIBr`!, ,bJd~ %؈zE# a A#$B.$7Q2ST_'Syo"0o!~{1VB6=# [Kt"WuLP7" 6;Дekk֨{ȚȮrɇyC#xdՂy]r$D#p'Il%+ E枞/߬`7o;FeTqS0Je=_e[*!]90Eه=ӏ zjEP<-⋅3p`ܶZ%.<jw~\h9׃C`R~O'lS>1}`2M.Qlbdbvm7df VUh^V B&M|҉;GxŃY^ꝇruBeⶪOţf)Q}ëG?[^g~;:d$kF,?v2Y ~5 WJR6EN X$n'$_9zRfjxw01`EJ5 :˻镠>:uncbZ\'p-$ ?&WrHn%o<"Obߠ8HLr_onvz9$%dM|3mO͂lݚXQu7J. GzLYD1 }{!ܹ%svE$a 0 L*@ 6:Dْ pkP%ڕ Z;S6*0GiNzP:t"mQ^ĬVl>Gm\zAKn2/4ӷ*H6IHJB9 B,Gk>5G˰eE-܎( Xa92'b=C]r !s=ZB2ߺ<~Cr ms }m*1IbΡRGOYRk?v:!f*%-V.NEZs\_5~wZR 2ڛ}Ư֟^\wM$ 8K˜,|%,-vp&ho(v1XO۳S#]6?pUg<:IH;(!H ?[sEXS%Au k:-3[?/~̱ow}u -e85-do[}dʾdf68Y|:n# ̥6)j'@rgxVm/)u 6E6xlR>o4k}tajF$%P`b__¬aQ<暞#M+؋ޛ<&`e|:ԬvFkq/}6frJ"B,R6A EPu>X5I!}Ծ6;Pd쾃o%@ҲZ;o JSԣ0Gp/tiټH3r M軀opPic*9<OoѼfLN[ͽz] u1miĴ22Ͷ=-P$xsrƟ4F;hP^7:?o@ u+'X"Unb_q$g.j\N9+mȆ ~ 1.śKpM~ㇺMvb>aFRs5gF}5©IqdP1(:\+Lk1{ܞet Fp>A 3v[lws( }53NmWwĥ8BMao^E{&k#>(1YX9[ J,3!w' `!o(y g fG`qI7xGrAƀR:$K[Nԗq+nd,G(~H+~kgwSf((t@clLA2ۛJ)|,~>ק_vi!S8_ xZS3Z fMݤsɴ@sp`B_6C1pB;xo8}[-H92,[vƯRܖm(6ZD $gtoC,oISȇ $m;&[.u^vd&fr7*!].hw\Ѯy4*8<*6@D%N%D9[D}0š [&F$5o bzEN4<@1)n >م\>z D!9f;\ $7t%;|?F+0Ϝyp{污zc7£’,"\ŒKvM%Տ(0*8ʶ{q7 sZOt(E.2m;YSd;Tfg,7۶C,`I;MYxywÛ-})8jjn^WZj^+kWy93X[T^U?6.䋻1[ֻ@ȕQ;cQշNr"H|z{ LKdl˞Vq| 3wGLC;oww@=S+|?%ߖ w X^wA_pc_׹%#eyIX`H/=VA%0,w=PK;D ?8|RY.2jX5$`O bX %E;ǨTJOH-'pC%bŤryrhg` >;S晒z!Yzq8g}ÔKՆBF;d1sLJ<<}"%V 6VqYILLhQI>"x#/>.$N.TNC<sn/t~a8;)aOzMmmYdY:Wk)<ޘ^rF";~faR z'r7K6ghl~2yOuc"JBp8eM~!)g!v0JsW=rt?* jٛ}Hk5!e6+|EI[U*Lhjêmje]dɚ#*T)[3mK Xm)U`;~ 3>:P1a2)G x5.8-?Pvf%g{jyW(k?&oA]Aʯ̢HlV@M[&jj LK8VVc?c k]3KC0!G{lE%}g:*ͥhߺ-U.mgc Xz1'`~6sDk}VLn2vL%6dqrAFK=։su|VgUYtuTA"[;ջVDF_JS-Mk-e,%ubѸBf ^Gɹ4U$IRFUK-[TWM41806,Z?s[tI>X #TjKq4T'SLt}]_@~ҙɎI/9cao6q=ƳԸ^^`).:-ʽ*>IpYT+0O=| $2.s3;0"b ^Gs 9-wUHh%: #st3 *9;xcU_mߑDB2wDceݜ"4>~CoИêS9lrw.ȿJiZFX"b~7}S~VҐM1 7Tţ•k 0"nk<{(/ ȓvJ<`EIZGˋU`r5]7Qld<~jHr֙TtTٍYλ3f#V^!<rF @?-3k@GBKjRE?NKS.gLp"u\q-Wui^pKR%Aw4}4T91Jra{{}:i1<n٣oTDb57?^>kfG ]~UU]+QsJfNěgɪdԼIfoUlm>g[ ֕oORػ>݌/"˱r ӹW[qDas׺aڢFצNC1Uٺݱ^NZ2SR–Gϱ>kU߀vfi(rg_e&֝Kr_׎Y p*yS牙wi!9wWAu8ФGkP~=iz \zNŽ_̃۸gtZbof=|S-Xt4nZD1xs[9iJƍS:DL?&y'5-M[# cW{rfEu;N8qa-JrCBߦ.MSEvh6 ZT B&!(<;̯8:EyhwP IWp?rQ`[cZ61]J|檧qShW#Nqk%J=Tb+::@Z™tf]hDRi+y䘼Zz/09$A}7CԤ+V/6g]Y_ed[B!r;+7qkᾶ+lن4}o աo=h$/G9W7 S ^HC+Ɠ귱d읬1C  :<Ǒdl.qpcq9Ly%J֤*y]r.]؎k4=sBd!֬a<t(D?jԝu[#◊Xڨd ҁ?{@0i&kpƓ4":Z](,XOXsfEK8(.75qAoԐR1^ie|8iyT.JT0βWcfAB4l#eX(_|*;j@)b0ll1IU ;n7_piu_fx8`EP x?߉z=_z-;.wS0خEѱXd5yI?$ۃ(z&_M6NK,]|6 F+ڶnJ1|>JՈ𨕳hiD+ر 0ɍb%D'QqL2~nS0CSs2,!9MtSM!lq@يẄ,Th%.cDN" W$ Y^X3՘v,4qɻ҅> kXvv,։7{L gH(grjZ* 6#(N7S7R,cf I,U.9Bb3avPNtj[\婯.Dlbm:*\h0qe6Fcs[H5EU|vP}LwXhIbDm6QfŠd R>N%쁾~*Q!>57_~ir/y|ic%L7*j>ki%apl_3diR736h=w$d{$BD bFdۓ:ش[el82'TK#eˣY۴x𔚟ֽ}ءI46+*7i[^Ni +un>ԐzlSTtDKմ=*-fҎ+'TQ& gW3J:GFU!6. EG}][E\2yZ~w)`ioU'9Q 'M$!{oFM]dj&?؊&:\K ! %+}ѵ/k(2|IP7oMZǯor!CJ!Iux7`lv2)gu E$r6Y~π)lz,[?>~SUG}h}߈7u=D6@+5180 ^6;c-Z׮41;ˀ8# )i,|1t{|L.WnTXl* pwG q{5Z[E)ћtLG]ٶK7.5up_$} PRRS.AMY}K <A%Lti BtjPrN s wH\]\;' ͉z`30BBc@^zYĚ|@Gnj9 d(WYđ v /A&(\@;*>Y[TOyފW|(œKJXT Ǡ]~0 PzS[*}J-xW8B?ksI>&ӿ~/_D"T W/ZC0Q([ZM`성Xr,TG`>N;%Iޓo,W5&`_*_0s嬆< 0BupS~#&bt^Kf!TxWy@,s{3"BG _7.ѧ w(D@} ջ$P*'`UA igI) 5^W$u-%K!P`[)lJʠKeZٴ #յ7SfVqvqL,]uMyMiãY0qSTdɚ(>oxۯطJG ݂w-gr~TzRtK^-UaeVxY` ȢVlSWJ;D=^ҐnVMgVUGzm(c6/:bw6ֹbfynS).4\}Hv=n_~a:Ne_ÂVwZ:#{zS 7Ō r}8:%Ga(~ r𒜳;09Cϲ\n$;Rs6 y)hkU%熑ƙ hmE  co\MJMQ8I$Cvaz}zaeH6k-`T`W1 qޝ^^P[~(^OR,ĔU<֡t)yv7uoZIP= |P'#aXJ֠t_.Dsrt+5XgĠW%$~h ռ^ڙ"8S?d1$IaUB _jKNáҕq_8ujK"!:(Dž>K3LB.>5:>Hzk5 qi9Kϸ]Uӏqwڎxr;d,9yLSߩ!+%;9zއ4yyߏ{ _yz9<lo 6ϐZz% n `wܖHbIP{vF Gg =Up+.[v9ʔ)!~m)<2 D~1 D^`oGr]l`W5ˁI$)d(Kͬ@l78K7tqT۔^won!Ss=;tZ)֊-4ӊgG$˧76ǵ&FEja(-W]m!WCORcs%{(،|=O/VN'$XjSDMC8l_4wEqZ ծ9`-]BHU'%NX /j7H<$!dZ+_WzOWBxyOl͑}n7$hf7+gvV:ފ.f~cE(64sVꢖ(Cq=ǵov-.0nqk]#sf= 7P_0bG;žAtgLXM~n["Bl#]1hےFl ^ Yɤ 숻舊Z)5b? irw"n/ ݖ &mc՝zE^~jM{jGL}dqź5Ji: ZU{N bF@HF(Пf&,֔TD_6{< LaD.e#Yqܗ'A7eY9*U%14w˯E^Å$cqGX Ћ-]fӡ\Dع2G69h#(sp'Xޮw^}p1'^l*{n`bEk? [JU#NdO0EU t+LT%Wиiw]גgоr:1az +yj!;B x[vͯ> K>}(t榅pS&Aγ!ߐSϜ1=o cɁ,qڪ!q6ӌRƠKEU48 _fiBHY#TWb;=`S^$hT_q3nXjTiyO2i;}W]Km71dU|8,``ǜ~^]=|”TȞGoë['lj`-{M Ú\9C>˼ł Pfr/qpgJfvFY!O.sWnKKUjt3;ou?J3is9.tdW FzCEq[HNBQ-=RHy hrӾgU~זi{QDF+ !b~V[>nBlŇPP|6ׁ'XTm}W޶9]L +>J12?AଡRLꘃ7"֗hK=ȶ_0cUǑ7)gVKo7_qyڵoq`1|2#Z͚ti< /pd!oB`fb{TJ ' "_HbۏU G58VhY|5^k [mp<:?/UW ,ߖ8E6On~|P,<:kHm6{k7Wkvx'?hpެ͒=ҧDNޕLy]\Bimf+J̽R'<*wImySN-.[JךMSR9|!MIog=gHЂ+j8]˓+[wJBVċhĿ=Ps/7>1Oi^gPso S/}my?ۤ@4sr8y2hCؙjyZ/x -*)L_!h QEzɾ(ED1RW?s=OU m{lb 9^e*);]%혷_eY1,7{Ϫ?؜EYR%Z? 6ez  C~./7i Y)Bvۿoe{{w ĤLw TBX7w֍ gb9|Ce,4|wsh<,y1L-t`h z-CsDKjjQ~u(O\Wq7_8qOrݒ`>IX">W޹7%4{SxC>9ŒC߈32/]n0SUl6m Ԋ }M1۟+HZVTo#K#,% AJ6Z\pT%ɚH dTA.KUvh/Ӫ~t8B_Z"{u|BSK[lAҳ^^x; _f #,d-7rmioKr0E\1/ _/7{ ;V_]EX R̉WfpSaP `=8Q ͵jH=f3oЭݽhev3:;"h/Dͪ﷏ͳ&`DL aу.fa [<?Q FVչM]npj[׾#DžZQ">CeH8n̼z\SKh=N9˄7[5teh&Pꢶ_NyPes mFHv˛1Bv@rޫ|/6.G+d᫏C6tK[jxʷ?InHeҼs[AN:33\UpSԓJs@1kgkcMVX͘ p#*Y#Ua$0PS'aJ52TI LH2,K&}9;  a8F%D9;0L5m.iJ6'*7:a(, Bw/Kٸ pG6[?F3;jCq|7=s* zweM}PW1ϣi!;"%]NvME Y8OHl7'ow\vkuAVR^XMO{ċ,BysX'q,ӗ\#i\;s#./#PDnI轇 ڴmr7Q'NZ|1Mr WndVΤHKk<ӣR.Ҡ-?٤{Q^x bYgh0z!llxfŊNr k*]Hy"f 4 M@ =G9c4CV[NFEW1>'ߊ#.]6h FQH㩢&H5×YZ9Ձr։IavnJd^zL]%ٶXZ|Qy|K/+t$rqs"-~ _)"uG |!C LbEGIt|N{>JYgs`9\cK/c󿑫Nz*;$ 쪆vrcg*. )6q,n49|9.$$SX9`c &}>}J~Oҭ2WL#+ صY>HW#=:o[H͑( #~#l4m|) c{~͎Q}.#2x2!dA,jG4OrVT~gR65'lolrM{܀6g%gAXo#y#,3:6&tFId/ԎPx#.߯X /\/mŮNfhfSa8Y/KgƟ~vi4=.PQaSǶxfs3& ȍt9p=fhJsA/$}3Sf,i07&a.W5Af̶^P%(p BQK#x 94(IzZGDcbw{&t(w~mCE+L )0-lڎ]8w֢qo Q-PYe{[{,kƜ.UQXIsGq _a߬$`ѿ/S-?Wsd.?/6~Rȱl0-|/sDUl#o>E.{A;&D:CC6dcUl@q3SyY áIm( }s\VFٞ[QPMw W5]zI Q sJY-mM5XL.0P~^}ނz~10(Է7)G-mz)%w=d8 `0ѓU /- =d{캰[vÂsg48>?A}\ͥb2~cHkb ㊵o_2S)qlu#C>4 qS+אYr }M4ݠvZFHjeUΔ|gKhi3޵&UoC u6-ݦ6-@a]V5)IԴdiܺkl[hQNVά1@ϵ7q.Bo|StxERjt$y ļd]jvUr68ϛkPk1B*Thrk<l(a8f#RJ<q0@J:8xgŘO?]f%C9m;?B¾KAVun>>q;ǣLk;kGbI0E*DZ ̏]=}OWSyRնnٛJ%'IG&ZVY%t/ܫ>;ZAl}- ܭY]4dH#ɶ֌(QGc+ \4N4]v W|Rƽ,:_8N}T?O䪺MZ^ra;gh&2}]͈!L38(2j&1Pf!/m6EKߟ*M՞ "jk^kF_E]K{nF{:[!o+ ]A"&+YZT#og6=MQ'T M&:1("|zt=϶;1jqy?>r2vX3ǢY`}v)w)n*^ 韓8C1xKd^gNOUkvXs>-+5v@ێz/(8@Vj&t'9rptsucrJq3Gu0.PM`N\43=ub bWVun FQӓqKސeg-K6URkHt\mP6 gQ&ar5U Vu˚=nr.Z5!iq|h9bj&(U+ũ({d*)I=N}Uxlsaq^n.޾ " #M-"78m-|~NmlUnD5n#tu˱1ے\.+ƬLGD gJ@x* tEdn{zK(fV"@hYuC9xObq<;])& 6IB@`HJ,;o4\fzR5x q*Bq1B/.rm6. .TŚ.d_vo.c|4g=03uuqJ6F8&X(GuR7+Eu:˯W.F(V P ?.Eꨕ$^M{٧SCJ*omMe; 0.3v rxKG335:{4p+6 o9~tEpm?]Ws 賰%s$)Hb`vG9` -|:Vxd+YQ 4ƥSgVE탚)>}xʕ~O0s2;g7WRRV9>F2'7h  kj 4/kdL%KRLsxϦil'I54U++:I2MJgF_ڇ5xB5'1 wɲf[OזAdi(_Z+Y)9{=|[4+M.6J-SPJϮ=2OcH{Po0`U|4 $EI"j26/ kZ{3i/h llخ;Mݢ8 $V\mV&'Z(^?o^GBؠs?j̛}*ܞ9@3c[JH(4G鶾VVt*Ԕxh  jO058邪KK]8Ӵ}IA:Pwsgg'Ǥ];:Dko9JtMUtUF][ϝQIݧyskS0VhFÔ"0N|>;kSQ#dB#ED @{PwW-V3F0KahR7o 2 Q+ UGt7Sy0{sivp+yٶ? v-%e.\#V/[zbݓê_gm7#Y_*zTZkɐ y,&/#zD+at9/ECjٕGrZ8gWG#fc`FFƄ;`(;YP'u8`SՖ.q_k&blw3;\=ӑDTkhʺI$K .0rvLLmFR|&Ly s{dd]^7pBPQ|"{%\d*NSo=?j~m=*6qC'uz؅u͵煄> 6O}Y`ɵc7»``k9j[B{̈́fBoЫ}hh WEys;*_wg=CݽPcroa}'HcT.*oP.ƸXlXj=ø -,9B=k͂ۼ6&xcϕdB*~d_|2HRlc[9x1py~ P(G-,_ϫh_( #\j'!tmɆ3?; nv}"Gr<})L|墥N`z2|RS,Rz|'W饆"F4r]`.b"8sJʮ\\@$U]w$t ͡!t!OQYHO/NC@.VZVm $RIֺ,(̀E_3; /0$O6%“qDKD{e;xDm)ecXS>ƺ\_@tIs!Zr=i'I CB<^fn\#fX LhCJOL SXzGurþ0pZ$)P1g(Lƚ|]GǁPet3 6n D%ǻاqh҄U( :_h\!AY4p6`; #Y;j'dUoUT.Һrمs}9UoۓՋZEBFn L[Fසӈӊ~y( B}-9?d`*gw'_ͻ7a8HJ}9lY&x|[Zcq"}{PoŠ0KbiZ1+ uet&-IߦaoRrVE:L ;Ϊ!MO8 >Vx%IU=%'ۯe~Aa> U5C,X*ΗV=ϊFRx.^}wR$1h% >=p䝅's}Տ]Ng=oEd,mnB;XӰ*.yZȜL!?DJc .OGY+jm'J%|6S>hl@&F (*%b%@5 (ъNHw},uWEo(x|ܛ#?#*[_Ku2+Dn˷<;n)AvCN?Cy6)+xEI 2&)$R͆ ykiJS Z͡b[tV>d ȍkeW4ec⭻+!U5>s"B0^5?AζݐYOa9hVf",oeZze&74uDwuJ; $ &/~tq):#ӎWQKM~%&;CJoI`/^lxI1|0|TJcD{!޽Oa|6-Z/K>)zv#$iAtz~6|T Zw@\U>O8=ː} Ɨ(v4JKþC_P_hC2 &F c}dsUmrZuF%N[\eĸ0E)!.BT:wo7ȴ%~̡<ݖuk,dI?R`P\tIR"%۲}a(x\\$tG)5@2{֤\lq"*YM-sw'ҥ/=/j@kIE‹/řћ2~j/· BwZ]zx竈6Cie=|ز kDV́IC*ΊVW%y] E* qYE`R(m(lh:a5mz 򱕏pNȥ¼5(!^#95^fK_L9hK6F46:ǵCև>C^kαXJ|5&!]D ۞\he16VsU~;hWtᐓLTSo6ܨ h`0fEya4qtّA< [o{4O{ 2G<uhkeSL\a7 Bǧf$ȱ{{X h1g~O`_ZW S;%, 2Z)d?" pPI\KҘΝ'oe =wC؆u= b9<0ZY? ;";]pb\J<.;&ֵ[m`VrO-]jM:.,Xi/Hʨd2t<ΣsnM[C[hM6lSeIL 'L|1 aVuOoυSߟ@ع|nZ'JM!jپi(HʻuI?RNA3JS %ttӁFMt^uԲUܕJ)QYJ3 Gn=9[zoTzv ,{j1L_W.(KՎ[.wUj=f]Ƅ'0k3T5>vLIYzc?K~KωI tY4WQQy;TEX^f.C :@.8k-!&j-zL߰3%#Q88GbB3S;|,X7/^ =Bc߾.!8>J&9ԙF߈X#`Ж90[a' E+57I 3pxVI WGD]pe JX&2װ__mNc|6;^m ?V^b $nT׷ 47hRo*V He 4 grp$?yflzi3o!t!M(l 6a,PVU!F>y+% -ݑT[.H _wԕRrVNO~7L#,U{9Dzl7NnX%xC=pD!K "Oα,İƀ :0yET+u,_ۂ6EZko'0sJ\=ѫz)ǜEx?FhjO5z?-oqsm݌EV?{B/9ؤ/\)}La`!M/_Ko Gcl"?K,gar?Ae5^n`<pp`44LZh@e(gb^Vzj.س*\%@J33q|ŲQ}hjV\gH6fp Nx d*i}BAqKN;jβr\6Ȃ-|7d-?ы,p kѴq~;BkfcCryfWIWSWO=XZ݄"/4;3s+J 1L,0z~l) epW(EX$mpK1p}R]A(B]hӝ-=3;#0e=rF5'lOVB/Xet̬rҋbZ{wd\z'Ed^Vgq|ԧRk)X ) 1nlh06j$ZWa{91"S`I b=bt&s6f~ _ZGr{u`q<_j YX0ȬJ#mg.5UnR+P)K?c;Qo~gJ.I՛8uf!mρ,8Ne h1›dPdMTY7P>)hܠ"sJpu6NwIpۿk1'{SN }Aܶ)b*Ccoh0&DY/SAQ2y傊mS Sv8'Il2$p_6?f}NxZ/"1j2 C(Y| z<4FgD.Iޒ|2m%eq@/+l|awP~ڴQ(T$Vpn{iW*8T'T F9w~3fAQȰ0mOi TDow:\vJުEĞ6r9p'e1ܤf'b_10.8;ўMNrG$o)P *I:݄=FX}Qum$tzM#/e1mtT OLa*"]Ll9*u4 C;)nZlQf,~M'&mWr׷e?@ULD*a="O>-;ٳ 5 BxҁY Q`jܨ@˒. |D]uBU2_DT iBAagO隢5˟ %B`[q X݋!v] _Sgx 4MRx"&Q}|մyKǝ|QG|W2Uㆎ"5|#)1]qpJP9v)տn` "æ_U~DSlj_F"VQsH*OMUft3J w7*nԬxH䫺 j)jXtc{w)/Zs秣`T-N +]m ҕȭ쨏 @* /_R.7wq7.n9G ?Tzh? V#;_:[:Lm )\LcqzsKj;zz"dC6£0|HUg##=|%ff_L,Wa/v3.bJ~-XZzB~cΞ^0@h^n1.r6xj٣/Y*&ܼ3E,WDb(R@nW$L0OZ)x)~~4/H'qx5'X9/ej@F+" gB|G!{ovV5~Ȧ9@9~ M~y6jDdMcyPڎ}iI/u{I\9㧁j[d\I3"DLg[\tPh,XnSZȧiSq1lG ;֜@ߗ MɀjTf"Tgm[uQ 4a`u dE Q.^Y3ޚ`]pyp3I䐟~ٛxV땾;qrskS*}D!P7kɌalDFY`̦ߩ$L\m;:ڎ:K{]$gCUʥlt>uIN`ٶ̯u8VyC~uEW&rk߸>ޢ2h;WJ7^ACWp;JfH4$ `Z() },%|lpXHh/@IUb~4moPLE ϣyYT! 2ӴtO$9]}%gӷ7+jӇuXY.3^6:Eb1)חk8˩*&8"hWC!o&->k1o\g%}unx@֓lD e6LrŧrN2cDM JJUlњ_,¹v8 4[PeCxEj ^,yi}<; 5~pcRpC[8\RnK*Y];ZOLQݟя&>oPtN>fWĶ~bޮ`ڗB kMڗB>5{AT1[~Rψ)o 3y܉S#b1fmnFWžog]mi_=hNvDvbXkŦV}Z[hxjBJoo#6Kij{"4)$FA ?ֺ*N6>$lD־n~'狀c 䏔z|(|o lmsT[ҁl0Vm V gwñfI6{\Ԍul^P~I,% Vs:0=y9zD%J P-%V3ܰHb>ځL?t4ù;hmlufKga>$.WL%k8I&2U?In\V@yӅg)WԿ$) M]^/t c+,'KYq< _[EǾ`SCxG\r=xmD W*A$~G)Vuwz ݣf;cݻ J"HycW·-#ef-?L92 ݖ)KoE;=c.&G[VO\.=mcK u_} ƨ *L4!~~1LjUϏ,Z=]/\ld]TAK?*Xr_.@$R@Leo2= /"ůFU0÷쭖Wy9z&6^CC5J< ]nj*hMMq1C~%y4ݱ®>fixmJρ*݋%),~m~ijKQDd6+iP${1C ~Ey0 L_6}0S4`QoznVQMAGBeYۙ0D?6\MTxdcGqIO)1vrhϑ,Ho3Ӝ ZxdOD =Ky%y‘E /tX;v +PK^~j"`ϔ!ij͙,mΉy0&](Y2w;cu }Cޥwq:1Bsry̒0L6$s-OA?|fS= ^If*A#+|2 '7=QT{t3(W+<'C^1 @ ~)*Bڮkrq`jyB`,ظCj7~9X a?iB;I-̗δ`}3CEJhE? ;N u Uʕ7Ͽl5tbH#hFH6I`j%26Vd%oз,ǶD.Ә;*VaAH}K:BHAy>\%H'N腒eOA^Qʬ/}^0$R m]eH4BL~"\7_?@sÉ Ea㝕̥ϋv!`lY~;*S#3l|,{dMmIGl’h+;1kse糒 UB97 !JɵrCaVi{?"M pe8hױͺ3zyUR`kcꆤcrR2F u9-|ȲL""`|׭^=5QivkJ}O2M}7rjܛ,vNMȗF,X]S}!M\jztUm$2# u/ ƪp~LSy|T&7bg8s;%M#2?N҆6iI|Z*Cv*Ĭ7r+c{4Bzo$-|`<-յ1$z7=~vDx -D6#Ճ%M=K1-9mK_by9eɢM?q[8tokZ+HUBxA#}KO!٘_mq́F5 qM)|#^>W+* k&rTbXЋOg26 դbuC4|rdp8y>͹QW[›b&Om|SĊʒ@ƺ6r<3\6{2dhL@#(*87Pr:Y{#瓿䙤p<ϙZgѓwޓs8wУq4UU,~Z"|u,epe5Q~/5- ԬB܉噶vOL[3j|ABg90<?s7h})B#'77嶄6gq#ƻ)(@?ԼKF# SasIu$,,F{9Ih̯k l}׳3CN!Ӂ0TuMs~~eY )nnl GnȈ;-՘Js2&&rIqĿ0CɃ{+e!G{ XIMMͱX*PbV= 0Ei#:۽Kt|lO"E*@IgVnQoj^.D2ϻ* v8jNa A萾y {TsLVn膧A\]jgLAnpyp Ў9#cg} hb9βJh7 f Ŗ"gøC݁3`gjS|~ϟ ψߪ_Y#=p#I*=Ucy?Jv;yCq nmNkb|{&1@}'bHoqDAD8ӷⰏ:G70(|gŞ!5*NAezbHQmI .Qw\q'c IpvfEq "7b+KRk&Tz `aU,sF'iwm5׷w1?~gu tFc/> +4ց&ei{h)V#۱k-T |(>Va7hT= X_QϾgNnI$ᾈJ_d6U:'bhxW0寈K(:xR1[8J1`_mȻH  _@DI7#cd% _CN;-(S,N<^荷9Bu}K5y)BXPo_m~NV/9}@\1v#XG = PUUi9?:=l{TaV\ƾ|֫Ыo1)FS.B[6iʘtM'mZuH}k?7lSU&e>ipv^kH]7Y;oHL$UOT9 \CFEp2ٵo|hs#CzgOIXXPˊGxfX|-^B'.mM=ۖKtP9>ƲHrAHݡ~@!"UDk#%4-,6szdb(? aĨf//m\^.I6EvCӨTq\=EUXeDƈ;$|crޣuL_+Qk˚<׬Ҳl馞N̆0W5$湵i`mmPmMh9)IXbou9D~ u,Ց%hkڵ8#ҳOjN7i3)9jA3Iɘ`"SGǛHC)?9~xbnNSY<. "9 @g 簫w j8[eDH27|!bWBHm#EG3&߀@QM4 |RK_von9 VԫڷҞp]!2]վ|xG1O =Kد+P̋]_M (n{ )߽XhqybK6J߹zIIvarDwbeCyKE^!<1*ȟ]UJկͣ\ T}_Uj}!C0včK9W+>m SWp;aKQ-OPzw7ߘ'v3VK̥u 04ήQАMܡF׾HsYXmԗXmʵQu]j 2Qץ"4),_pv7¹eN@b"L]nȉKr+$ ]fS ʿw+Gg;>rL8waصyBأkI%va%^gvTE&rn3t[C>]\TJ'A 1e˒ 60_#%nّ5CX~R.QH`~19ɶd2VB&_of̗}Of ƒYS9KxZ#wǂ "pAv[n("{mqO'RWx[2UO/M! ?&:ҝV}°@0l YVdB,k $XT"qtcaW[a^/nþ;Z05Wk5EJ2$LJ/UWjwk]XvHjwq6[5Go.$:c.jֵ٪h(MQH2c,=R&Rrtu4Ug HJo$F{yNX+Ժ!wkwD4T@eY]K˴'%BJ26fja֔˛'!ü>UPO>¤R,jϿwч;r-,RXM喩?ad i`#t&TUX'JUo f5? gy>Ǔ}}#%yVQ䈿'oo >B0l$a {1߫U.8G|7+:h1iw`'x̤gM/O/fU;"?6?XG ŎRΊW:E+b\{J|=rW.ϼj Y"453Fs;* /lR~rb}k1bR`?E9VFݷaQ*`\ݖ\L3p:&&D[:t5 E媪՞@hH m%X`Ʊh3HJ&Q-Pݡ0@C}M2${o7XMVh&z++@K~6V~Z 67>Ŀ>:qΌ=Ytc)BhPi4OQRhfwҪhƙAΖy|YVG ~wg/ôpsGħ/BZ(xo|'834"Bq%oT"birl8Nd8V&NivC67m>n+aX{֤*A4YOˈ)F'N~ K3 xvb֯l b͗DGv*o()9xX] a`MNC>@W="Ox( e7qo[HRJf-*fd[o T|$? p|kk`qQ+& O8%G.HŘ3_h#L1N"jEgu (ϙ2tw4,(;N)+]EEh]ǍXe榮P5@')bx9P.,gQ&R[\NI2WYٙ>|n^ε Vz fṾeJ6k fqzz\2G5#A\Ir! ..>$H3P@+=My;C)xrg~Yoн"-?Ӎr^>LFn>Sp܊Y{b͛w%#Wq[0tZShhSCP_Qz-`YRv,1ǿc / idp](C`ˋ(ܞG݉nD`E7㋋r H^=p9fey5#n?!єk^ rW.7_"'Vn 1݌;G B't=pÊ ;=>&:ЂORW}M'bS!Z> z1gǚOOw>if NҮ,ۺe|ȷma[F_1 .̱ ;&.Poc.lbli`ߞVsind4iz!I9g {&32'οa GEBΪ^a.Y;mE c;|EU+OlG3q@jDfnn)<󷽿< cubW\aX+Ap$Wgaeyfa7GS08Z8Dë6 \BDfLKbGuZev:=9lfe9k~v V|.8ĽQ^X ~4#VLaT8 M)iEV2;-5L^DmLҤ&\%d4vj&Jh@f[z2 cTnF,^PυQr%b4 CMtgː+lnՅxkF3Ի}>Io(q}̜7W3ف2 z&xŞ`49tIf1E>8P;}<1|Ȍֽm+ ۈ €&R<m[>*>0-p; MNK@?oۻL:xjMYw,("{JЂ\IlBv|p T3χߡ+`H^t{sNb:ƑN٥c9~ O^4F&FL+Cx Sɵ?xMDA*HybL0"{9]6TaܼX6in:sdV _Kq!3K$0 B"TȖb )veQ(Rm0-Q_Z?<$մr=A(crd@6Pd2BVtk[R$syaĎ-n_gI/R5+kCXEo~yyPqr@02K=hto؜%+L4ܓ/(mғe1δ K}ɭ*{*uLV\ǻMhLE{y+70֑d*[1y¾nY;jjҲҀfɉ 0;9k%3W郞!Y8 2.ʵXަtoLq:>_԰;+;ʷ -2t#+׾cH N)b"fzK *0{y-ڙF=}m٦՗gZL^U`o~}%rV'yx{Wm÷$  |: ^/ž{P`L9.Ɨ"ԂV1kQh_tӘlABmvONhj+>?v.]m !-"0lyI'Ӏ=LΔ9Ll?> };<mja4c+_FXx# ,N[~=4$1n0]5VץwHAzVP8!/,l|UyccAbG 7Q뭒(&:#CoQKc;0 %[Z#gz'yQ9QGŮ^<&M| W*}$hh.9w>؜G©I+wos|r0U~ >];XoO TۀeI=?:7Z>m)2:fkiZ\H"}O=mPiWk<(ӌ`o|LFFaPkޞ(霡##w7;˴KMw3$I'[p2-M`痱ɳvu:N$,}"qslSnSD2gy5 ^RM>.8DcB!oOb߽ʫ]1o;c,-pej SY:!WDu=4iXH&9AR~+HajH` yclGnl5 FY-}!Զ kρ +E6uU}Gn՗ X.8lKۻx7 -? QߒT/|!\D[fnU!^a@т*k&ER:/5^TRTpV;ODHͯ|p+1fi 4Ţkݦ_;Ɛ.)1p2ʭyZcvkzO ]:TyTn {y!J#ȋ1M3u4d=gbKwIΡ0%庣}C[RE#sv$A%s -4\p]l^=; >+$hC& h!>ZVbb/ ۜod !WW(ʊp$3!9/B/^VGͧI}[|ifXx&M!gSMH~fp娖zS/`=3[raKn !9S8a-_cj?%iLB|3S+پ &>"׳l~ӎPK>]1 Y $ [5{$[V(sVXl i!ɧiz̥jpu8l,mLMcpƆg__^[WϯѠecr\zJmxO7YO7g̐*\艉c;7% t1I);{&qPrk~8~Hi/EFo"t?AQи%_/nY-XEk[yƊAѢ5/Yl~.U$W$:M3S Ҟ)ګk6-G:lvԛ4 jlpծȭ[K7Xi-d0.yˏi *Sj*+Gx DbcڪCDW{K "wsU (Mu 2DN }kg`[,qԒSu EKdԚdn:D/G$3&PF1]Y4,83xu SlTk0бs7mVCRTh *Ѧ?-чk*WKǼvs^&>7D,׌dbE 6۸ߵ?+ER؁ߍ RHp''Pb7өΌXmt>~&ɜ!~PD|\kcugFeJŝ#KD\j ×{2&NBDd8hrY4Dn4E<9;2yWs@%|4>'dsDJNq v֗L٥.: *hC9pZmp=eI66KM73bGVk3ľCkbG? Fy2>[0[kge|>>DAX rbGXk1OWٿ)mwwgl@i=Y{+u <3W, $AU:&sE DO__ϿSnlǴ.n.Mn(NM3M{99Gm}4h Og׽t-`Z`jg}_e-KE5N= is?+ʃ;9]SAI|ۅfy[whI˩B:m cxbFY#jJ&%\Cc@=/Jf^xO[4į~/1 %K MٳV+N}9:E[O %ס- Ϩ힧eɍ6e,S n~7xj`i)b$Ayu8fdA%ɩ%h@S\>_Z"ɪ/îyI$d}C} wM05U`_p匜yQ^5*׳kQv\(;N73tsC@:MSש'FfHjX'^ Ʋ24f-≯B Fk9W~M&l"̱/EJ:c%qތw& U !Otz{RBqfYZ3 ? 90+XX*;.)>e؁7SR#w~QR\/"VkT^F&4ج_``:kjkʖp 5bʻJJX2eE@pfe`q5l0S5Q_JBQ#S65$24q$l4?#f;!t.E,xBz6Ҹhh֯mXS뤣O~|QŠ& wU,8ACQg# r̪{yEd XAo-Qh m$J1>O鑳` UAF62YNcWC?.2m]ByJ)Ϥ$hDD3 7Ya˟jcr0aă,o9g=M[k >!IP :K>-k*,0&;8f`H3U* /ŁsV(}7c6RMzZՌGh4qB^' 32Sw'3 `hp?7ׇ>=!\$$ ϡZR aM/f]ƨQS r$Mu1V-239HyUk4ϯ4&T-/-d. )MMh[\UgwʤU$ F<4[cƛ^{~T+(iZu\z6y5"=Qu>= D>Ô6{"vuu'dP,2GS/McD*|083J2δaFέl&M dS3J87jrỶڷMw6 mw>% { _A~j8Ab~hq6HҜ)ڂ,|jȜ5; ǩIy{;u4!'4֮BLmu^j/\bגQeݍ|ߘ@t={i':'8'ԳyԥgTq!W>E89+b̳/'XiI+, 'P^[_U7ERYZtU,h_ἎkNZ<5a (FNEDD;X\x|a',N2dp.L4_: &2=S?&SدW.+@ z^֌ keXλCo]`*eX;0/<|Gk-,Id[̣ԵY ,<ĺ lv"ox8OЃ#!ZҵϿ.?tw5LF&jq%l{h&7OEƗ&hL`Xu;odEO4e]jjqmUJH_=Ԉ%­Dd Ai΢? n y'0; Tڽj8c^W], [Z!uUAO`ӮWqO:G4Zǡ{i*>C}4>Կ#*0q"U P゙@%Wtt_OZ$v\/I #^cepѾsG&qDM)p,_Mme1шh-o{)^~7L3l `noVc!n9#G^).j !("9wsLkrb#hpG\Ze$$yz>1oV<cn6CL;]I𳳦-Jb3+bfG2yK( "q%n?7ͪaR΀+TPffr V :~Snޥ=ksE߱j弚1ۊAO]x@g`r~r|=J/ D+R4Y-uhS>5᫙uv+Ti7-i}Oŏ򧥢*00 +nB @0AR'^M9xmb䁳lnVHdSPrMi@eJxaMo è'1 QW}KImÇ+u %a:} 1g1B/o-˧>/ekY;"CJ6?Uu vW~uƎ>xD|6r' lQW"lXRk7b_F`3x)G6 N@5\YU+|iN|5ub c$=-qpfW~|hBʐAW#7|:-a2!!f$6Xi$1AD0=y-K$EKa >)K7e&=bx o[a2_$_i^|?iAYs\*UqQRM9u /ܴ¿v\ BDzF;Y"0DqyTf֠,/b*q{Se͙W:wZ* 6=߳SgUXQV |/Dw*Ap@)!QU9^jr0W"=Z͒T} /R9N ^<滵+MUH}PbYyi7ý͎CePoY#~NwPT.PѸ~$O@}\$)g-\!t~I*h!g܅Jyy#`.d^jOuxPT?,@ JؽM~rbKM7U߃ѴV ͠S(^%"<>A&MFMBQ$j役 IO`'?(mLJi}8H&k7Fjnc /7l"E58iHn}RăE0,Z@iٌQfvIt w <܄ `NH*aD ;`L`˜ 8lm0t,DruъN3z SyL))z;=H AwM-FG# ǿQy7.CFowq:͡eC)jhu4`;rj~h8 e6UP^P**˩Q&ș%+䰰fj*X-sCSUHغ*8 AiO=ӤWG$E5unh-I6Di%T]GQN$wWeX#5͠[N1Oqc@ȳd&aFf(k)1Y+oT}1x3L=+q~G}hMT\&z݄8z>mV䠥>߈ZA龁,`xXEuL(FĖHLP6o<0Ω &{8=˴(txDlM8jY](DȽuTb{{'wƅDT~m ѲTtqFiis}ݣ m"JBk+UM JuR<Z"/҉]3/8 mpxbk˝-WӂfH)[~~I'=5blhN EjѨ#~1g]-]L5u_Go/heFV\at˹CF{"򓋛"mqd7\`Pؚ[(ĘI\0{Ub/.sT&CEك[f k Y w_o2Iѓ_OG½2&;yo6zSm}. u|TӴ&@d0S.|Es ;PX[J3}^eE{ nnﮭ0k̵IRNf5B௉FdWf>냙mZ(pVj/邝,߰-3cHo9x]h=;,V4}F.bYyÇګ{9{p^ dEaɕ{(_ʜm$N6|/~3Ǭ^"n\$,j9.$W"ƥ࣬e)ǜ eAvB?R"LY~[I_֋k sgWYo>4Ayʚnrwe%ܟ;&:AMUk Q rw6J$z5z'~U갗]kQ <˧~SҸh@aTP#[*"0 :F  LBi%T8qX 1FMPZ+ް<(A,iI _?,iw^ Hǁ֕WWӐsz-EZ;w%߲o}wXŬǧ`>LjZēR΍>$ٞb%ǶpOa]Tt56^3s!W{,=坌1@d4KWIv%YDWD ;2[U&J~d MZmFtd?<_dBy [F;/zwFttfMV1Ͳɩ~AB528-: OzsDtM6H:xbaVmP+ґV3U ԇъ (dQȺZ!0ƕRdd ?L2e"+%{p<[Dn4u = |y2wA[¾J\0\ {+l|_U%sr[BR.Cj_d) |n#)CYs@黝J3;wT3 jQ vfyk@SVw⸀y'E gN(sP1X4.ÈlqO-nB-&~-ò-DrIK,Z&v` /"Nj"fl5-xr{yR+l5֬Ne v ^[)FRi\^_+gQ j\ɿ]m|vO&~0\:K6x8k?%&zXP&@BNL>`2V"QDщ7[|ise` Y[LߺO;ׂ˴r]u@LeU6I DiN|$Fc,>dEو3"R|X1gj߁hjx=jK9% vC ~—Dˊ1Hr} I`} װJ֖1<+'31P) :$&E7EwrH61e-01Q&I9 GULyyT |!ѯK7D,Y (}aX-~Q7Dۘ3rB,#0^!_{轡b|4WߨiF#)ߧZO{+0 3$=UQP(Q~~n(3࢚XL]P} T7JLZZw<_NV+ }{B\wQ޺A˙GR2תּS].}aa? }N3,i[x>~I2?:@IOpm?^淉M\ MndT<ʶ j;T[nV{QшDTQE07l)ǯ wZiŻWdNeD[XZKi47oZ|Dv*k.݇\9ekwFu/T'Ю2y< lw1W}^DLX;D*:0%HV '!o5Ch"A0#`pxŀV8|<^cܑ\QIW&j\ Wk[*\AʚDD43F֞^Ǫ}`oDE6y/<4aײ탕mrk;λ^X<Z`;fy(\>s B,9>S`ݼKǑ]1[urׯꤏra/ӡ1i3RD՛._Q6wvZ1Gf^25*>BW!-.KD*aܻɳiƭ*2Ch}>q%0uK >o$d 䝴*ٔ*饧⚹ :\ 8N 5eLGnQ5j3rP^돉.8Є6g11K1ogFc 0A P6E:G ˰[.6AJx" Vg`9mFP yIJ_YzֆiƪBYWʗ_wRf ZgW^DNA_jr/Qh??J߸Jch+}!JY*ʰlv꘵EFvSX̾Tz7ej i8Ɂ!@Ñ 5җ{hVtw%,;yyqޮKAN͙20F3Aԟ/\bE)2I5|QOwS;oo|ׅڢGܮqfX4^oΖ:.˞u›ZS^ T2a-đ13$6܅L Ԋznm aznc^yMwl+`D1>w7Kgۖ_\u%XHz? PI}-6)BCH o]MNbv>^^[vc^UT^],8$۩(^Bh GN_ChʁQzp=Mj?;R~jULtE A? ꦁey>U.ow`WJM.CM-=ύv<0܉tb 7YrdAr߮('JcfVT~_6O eHaH;`?aV?BArMR';uFz^؛{"\=K¾%Vvݸi wQ+)Zߠ.)s$xMԢDOXʁ TUwqkxL|wnR^ebPI>+_k#$eY]# bYfQ❷܊Ɲ؍, 0a,1 OJo=3/%v*׵%k]f*c$ͮd0HB -aQJ; 2B0VW-x m9Ģ]LOu||iѠE{b{0NۖQ&ZY ),/,ѡ%LNSYM^s_"0LOÐ)%mU5"FR1܋R1mWx` c$8 'cI +ra]0&*{_!qz]մgjtPdxn#ݒD\(?|19:c[TK0v(H,"=Rc|s kX6D.[JI:P_z:_ܽj.kJ"f!&X%~+߇,h{q~NܩXzv |w%I]1 Ƈ~ǚ?k6n&2-`|9ΈnȬ1v%Tfy8۷YμqupZ^-.et]B?,׽[Z񻪿qsiIx3_r`} mZ8ga2,fV" dX>SeBP/ #Ȉda=7ּtwrCd!` ĒL^TCw& 1ш3.mãPERyYUoL" A,mwg͈UAдo g{ˎ }Bg^^ψВ#߹I9&G&@q;xo*ē jiȥS}X >R(̈ꝡyz0P74C(HZf"Z@DvbftAW9;Rt{J@C~Bo?U5R27'|n'wPMf7a 0F.x W S' }iep6M.yz@_AR\}I_T^FW_ZpIX$)юKх'$g۲e9ԩ:(V#v$Q*Il}Rh"j,TwaUbŇu(>VK[XLso$ѽaP^C'.`pڱש#A*tcSH~eLjnK0~wlN0}mq8|~AG* r; 9h4콤Is<$m6b'|?EQ"K3lS堟_'?)dozHf|vz1=1E xuр#iv~sɁחE2z36- #)0̵ +=׌j$J v?ODl[9Q$BU?ȗ_K P n:D).aZp=b׳g${Ҍmy`UZ`.TDSώqgԒq_S~. K"@t ' 6? Bgק5xWk5y9`ol81VU `)V&by-S-lN~ouހ9Id:g]owE#U=ZN0 Xe mji|洽+q"6z~U%pbF 1p(+Jq`臏6C``KP W2!]#暹ۖ#oI3UuY(E#~?OlHwcVJxJv;Mr4@<OuVXK On$1Yxi Phrmqf:992~c=dkMoMsu" Imv`6V ϡX|_ H&cbD`NǥFKWn O7ˊ~Eyԡ+0ܰͫMwn,qW2Ga+}\ F,hQ.]$iqRI3\M_!T3,{CF@.쮑&J@Zjν땇=I.z{ @>o 3nTЉPG-~RDK6!)[F2WcŁ-˴u^dրRWJ[HԦB( B GDC+- D%(?+t%dqFl;V}KԖz6|1`T{tdNm^ ~`$~,0`1VѪ'@4?dyʛrq'"nRSP]t֗@=tEGbRGF>O$ATS^el_J=5,Cqrؠ؛4y4!Y'H NOji[x~^pJc hɚn, ? jHkcA,ubf`1]9 |xE ҥl""ʲ%oN%[@Tzp >p>k؝S o~#B=C H~^cڿW4k':J 9i+.LWe!ɭ+[y mB"v3@Va14YӶM|hC nM፟00rE*R&ݏkX^_OG,]@N tVtү =AЍ>2'کio*tgѱ'Vl C8oU MM$;2*v9֭kc 2ʥ৮!EU7M1ɍ$ XO}}bP5;_# 4X;(Īc[5o6Ȉj:zU9sS]HKQlt12iӎFNczI-y]]=Oʻ:7>8q%3iȉ Y`t2?)5xkq`C 2,E׳賋>XŤӍ\b[xT9I8 ZZEXMׄޖx xeYfO 9o3~Aό+:A ȐTIgUʎ;Vc>-]UXbIv]R-[91Mj}5HO}ES?? tTc |YiZ9[]7$pKp{7"oawpB(=4z`+y{פxrU-(W-c32^ݲ2QeN٦\E`~8u`RO^n}~ggw#/  ]v | gnGtxC_Nyt}㑩m\POذco]"𵉅ur(VSڹ_ kdvm]}6n,rkW+Tsύc1d% nsk Qɋ>o dF >PxiwG%u8r!,7z.6lX]|S]A'-KVA*n tFm:uWB-l&yquR8̬%EeN^:XS gX]zĆdR#ĝD߸{0&J!DyJrO[!XPq-nȝ4ɦ #,FcZNTr(,H/cȎGW:F &5 B:YӼ ^ؼK//K.`X7**la£1! a{Nm}+T$ǧ4LH{Yn0ۄ j`p?43?Dc%8?4Z5VoIe5w*?} _ &4:Tc@_Y G$6م"G;O I!C%۩r`~/+cۨZ$6BsP$SsޙnN՚Yd=_3'>¨jzer|h*l598[Y .d^Ūw+㵒طa VgaAeGtuP]DÆ'.m,2ߺ:QكÞYts *F;Biޓ;9&w(@\_佘ɘQEwT]?7gV@<n>f9$mkx<C}:Y1̏ k*C9VKS @z9C6J ;:0hކBeGyJ 3rx1$8}_(Bq?b6Ӻ%G/sDyR:τ:\cj!'xxuϜy*d8iXpWn|Q΅f o`l+6 Jm[{%9{Х ql{,޺\5NDoY!]|͔a0Àt^Gorr S#oh!7Ijm_3L~S#vTvSߧ>r@^ιDŽ ?6)x0f|~]D68L[ٜ`\#J#P~92rn@0=Q:I&|\I_KI5k>4{O^z?n4(ȯ)\GjiGo3BI:;F|enȨ1ΔmWu$l%=-hi(#b  8lz>Rgh5.(`&+'ѓ8ɽn9`@hXz[f ]K5-D8|jm@O锑`7ݸU[(!^ 3&3[ $0_xgvr2vhXH^qGis N(M XJCRS`1mۡeԈې]{!,]-zAݢєg;7&M#\`,rM|Si$1OcQi@eGD: ra:( Qv ykܕv馰 )In7VHlh<k}k^AKʷ'!9.NC&?#t-o3CFI!]J0nWIEˮѯ]5YM.⑼4"wΪGVk?"1B bݝ 2CU t/%"\5x!nKj4?'!:!f+pkFUmUUZ{ k$O#pC0*~(HG]ݨu}={ C*[%%#f@] ^d7`bM_6(G+/O^Mxœ*2nQA0&@r̆hr7'/WeXtDTOQ_]N˜nRẇ:N_hwmqI0 ޮJbaB'|KP+*@$HI&+& ΕA߽bW ,^v? Rh'mOA20ǫ0/k^ѿ0;`٭$ҫePv*+k~'[HUH$MuqQ7QFJg\?X 9X$|h4D;& ] 1-T2*9/n`λso |ڶ߼!ZƁJ9~S f5K?'ҫͻ6^ 2N Iu\LPk#V`qLjVu|m[94FGy <١j'z |x=헡٥7߇EDm*[b.w̿A9nzw}vxj;|%қ7(?a7hW L>1^Ō I9*׾F! N͂zONsK{(^\^l?1txU'9 {R ,vLnk3;3Ԝ<98sS7t6̧8TNDBPxx!l iNY|& [Z(V@S{K\by~kjs`iJ]]MdehfzJ\ ,Sn5TkHre%bܮ6V%w^l, ;(OL'KDkb@,>ӿInmH 5zv7|+GJ9`!Dp2e՚:xSn2Z 2x*kY 9(N(e8c*~aje1j eEpIWylGe{%J >.Hbէ_y>:L|}NVYW PNau_Q<8׵4rƺaQw2*p >nd$~du&Ve9^)S|N%~:@3 L:|M t~f\z+"w2Y7,9uiP̩4*kKrޕ+"3!Tg77s##lnV.lMJ쏟w?3!hLNxjC!X`+גxg(U͋<9ٮ g~ %mtT# FYg7W7Wc*BG;/kqHA#Qnja*u]tS%򪧻t&?0=[q֢v摒VQͧݺO<:0s*O*_+'[[xDk#3Y8L/%Mͷ׺6k1qOFndGɢw& mfp4s97.'mFp3#Ԇ]ȦNJ}ʖaY(֬7 e]:ѵ$n@p=>ٸÞ=ҽ CJ("3 9-:haNk"rJ?3^c12*i_$)vW3Gfܫ`#d֊tVF284Uif}#cWF2'T౿ ~YLD#`KvΉޟN#!84 gji*AOOj؝ՕNM_ăpfwu>{$Bor]pe>KfWvGWp| *OZGGk^YզMY~F|DIeԦL;zEr4娓(ܑT?qpV /Orp,;|qz5"%Yڝ7NJwiTp -#q2o9PƇG`®ctOFXfd;J?ፔK[a{/Ku7k(F!Έ ɀ ѽݐV ZC냤Ras ,(vdm'ϋ/ߦ_]#Ak,|-r|![PvXPU=`T{A@{e ֤@J \r4B12+E 5DZنVҽHSDPH0sw(mB''.o[j]1+IRlԃ/rxyFE_Q]e/qS][ OΛx *VKNrKjd4̎ 3$D>=XzxGgS}¦v2xq 7: =vMU<=o9a=JjrW4t u5/d[]1 ճ0jpfôIÛ9[fJ05u$;nI1\ YEYX_dIKmq+m y =PpYZzv+'P8CsT2u⁕.iG97PM<TcˊQe: c#Yuw7btzj(u ?ez ׎q<޿P!xSvlP~}t\ԉMy)!q$ {uL_nVj5F |Gu<0 Xz(iX2FrqUa:CN.jx4Ќ[?@k\1k+N QR뉀,}N::v|"^hgb,V/>#۵ H>f|VJ?N12@ %@!T:A}\-Rm4|{7 ,jQ8!9wS3 mD@MB6xX X5<9a}x߂D'\1mA64P7#4{[}:fv~qllºbBYL.lk${ 6JX﷠SFa 7*,}l|'vV*f.9%:Px.tYֶ/ʮxxX^.&M P|- pKWd,B>JoŸkv)xЕ:a UMJ^wh'Py$l!M}ˮbc@dܖVI5_o[W-%Hvan<a%|C S'hJFDVMss:)ٰ^D(;p4[P%G#|I{8^}\fZn:E/N{rYe4c9BB 6>`j1% lNj|!@ShFw4e?]H_?q!u`|ݦ'E9+kolοY鬨Krqu7 gWQzg ׻We'k ]c(9Tꅄ{ +e 9;"Ugب, w]ĠsubDzPEhYQλݭ6υ+j$>tjf/&hW6^=WdkCThm1ܖ/iut;7 .;zBFIe4GvoA6ϟ$.vd'Zjj?[9pvm'%,dW觼c^dya0-ipޘ爍%ϕ"Dt;ŤՂ-'>b&g$BKZ$GoAD O.hQhu'w&$M`'dj.,:o80G R;$"#cD.k ]XTujFh7ɑ=mѮmÜEIR{G<˜hٝz&XsU{{N@eQ Q ګdY1.$J >(Cn-d<-*XHɄ m|vBdZ;l18 gLtJ{b[ѓ4~u; 9j@kavv尝,ÌI-2#mcz IKUh]}+uHJXlkGnug?ճCj0ݚlBY ,1>e`ejv(%x!O_w2=7Mv_ȳ'>4]o `2/[} (&ֹ<3>۱BX '"r"\o'qO RCBb+XDޢP_Ҷ\϶vR Rł7祮T oVp9)kS"$!ϩ{VPL%1od&G`EfO(@D~C|&!v&|_ uD-">x2mOH~+ <g|'t/J6>`2!lŬ"-#!Wx>PcӸ7"S%9@ ǿH˒фpcD.bQL7p=MǦb P3FY @ט[}7ok`4cƓYЬ\Oֻ}cF|UZKі)xR l$G~}nI%}~KXx [, 󦵝o6.K0#K'Vq4-UdbMN)36f$@_*'獬Fc8CZEL)/ݶ4-qH;hx8l3̍${بhB=%qȂ|.Usl U: [sߣ'}{ߟ}|צO0xz=Fq1kV ]z#XJM=4ERIfL$GUn/VȫgRGNa;ۉo$a>CTl?Ȑ\m{r% Ov^>EqyoΆY~23A@EcR7d85k-G] rebT׽۽#V%|(sYh6xMay?18gb[?dbg"@sJ-oZ@5qM@GŧR %>a`㣊rN!:@) J $lI䔵>SN'?Ե~nso8}\g=pV _Y/ѲsređЈ-㪄n;\-iK{*7;M'!`謣 @0;~|5|]s'gjLõ@Lt|Z4(VjĻg=ub}VbTR>  p~Ք4Ca)L% m0'@T3Ҿ$AD[]Lʧ֧%ƴ mubfRဥ)h3d,K;@>UB-0HNX|$aT5vqRyg O,fj +Ёhb\^\ xL v@,uQ6$}(*_o2=q 'ĺBJk>G2> \*eDѺfE8#[L<(y@r8;K&[p8~~ LHjh]!ͬQn,<,Z5t?>F55WѸ{/&.4&0 Dv׬[&eq] rX!߰ܚ2$` \mW6uF[l/ph VVeYw/Y.E2@ڛ S\ [C'@%_qO:v='&,t!_ 4i/ Q[Ά0 K tŜ2$ʫRvU]k<ئ\,_FE8Xd2(flPX+\満)oKbJ?wRK-@̔U7pqemvjITTZ Gk]7ZJؗ8d0;>η5uRlJoD>Yۀ.cאcd统PlOđm@ nHty^砧KUuj&'0t_ Mf;%1A,A|1r=B12i,gq5Ü$ĸra<}ʏR8IL#Zvg1BAsV(]#TU@>9z|/.Z,DQ@aPhn߳ij"k7ku~.gi=vn]Ư(["ȳWκKm`GM$j|H+z nE P 'PApKuB~p*K}^ΧyQ$DE^0{ϲCgo% L`]PD rk_ ¥S+ƭq5 ϴOLՔ~* t5"bP}<޲zZY5o ~2iO N7=3a"=<)+1|DYcI eNOGʤ yrjz#(TfdVl QD,9g:Iį_.\I3sϑ=ɟt↺~aa!+n&7 c5;w кDRdK<=5 OJ_EI%U!uPX1yߚR25;tb|7d*4 @I~tV[ԅO[+wDzB uSDqX9'ܯ`Ҩ-#^=a2'^g;:450FxL{cߺ 57[ίN4rl;e㑛 5ԉ=KOCNg(Llnm&J"R~T;s l$O/aTrPhziy#͢rufVA5T_G!p(G(4b*+>Q,uww&V-feM5V _Cx%n|iu&ھ*_rl̆1'{w҈yE327Mx@᧯5a33|~ԴN4UI?wG=<ܟ] d\ VG:@jluË<}:ʘOVԗmfz0O@pKCyI|*Z;[汬޺ o{AH_QGgۖx*8ԖNځjlȯNW,:9#<5؄5X&DX8#⋀%PW^-ynN,XLjw6mJn &hImtG?iBJ[6aMӵ.I, 𧮛eaw1d]xRecn[^fD\00%{hP&71c |  PBo rLKG'Dp&67_ /gdZ5Ӌyҥt?~o PAìdk}:K) s0Vx &3Q6Z>Ҁ=qkVG!+: "&+K+Zmn .RoVgdfq:F}|z1~MsVypż_ o12O#$ߨ.^cRc XQx HpDcG(ԙnn %mX v y;ރ(d>?ϑ9/~ҼlVrm{0-_FYWϨ7跉[84(\'PD?f(i*:N#81=:i:ΐ"!;n3t]7!7Dg&BJۥL|eh5j< c8 "O^Վ[гFhb(¸D#s5.n 7Bֻejl x3.I %P'ko~m)Cro\׻ȏX)l(@T0v*lI%F5Bt"R6!fnD`M s4Cɿc83IkYQY.݋SdEwѮHYV/V) ĆDTWjfra->D@džM1D䵖~2fc[V%y] awh C #Z~.k .Xp@+}!rdiOn4]o׋U.{fZٝ%֔xo 2<Z8j~󓯘>2*>sI4=Dj,~}yu ߸%j%mɷ_lq7+ebQQ-2+b3dyw#CjX|~nt|'Y%,R7`a~PzF1DʮhSJUߗPOŞb?G.qgbZ6+ B*N}ICǸ*12S!` *T^\`MŃsp~ CmLo}97yth&V)pR aҴ pwko2;MH.w LҺ9eIN |<3~LwMyUTk0Q?& U mPy]$$$+Nr+ w0vZ%%G~rSQj!!~3d(nƂ5kN]~*XVF 6Cec#}(^y;[@>đ#NJ(nl&NM~ЏJe>!Һg' Gx^v],JWd4_E^e_ X7g75;3^ֻ\Aёf PpGÿ}L!c2uf8 EōlGv,^bgbk)}.zuIX{򢧵 $ߨ[o]f|E)tD0!/I]VƲa'Lma3snb}oϡfZ6OwSbөXGs*"I}k;85[DR=)9s FD[1EZn\c([,ֻU_{co++Trvk\aUM1Wڏ/ΒWՆ. .l:J\FrD#pͱ6pmAƐ`9:e ۮGz3y'\Bҁ6Eea|B- HΣT0 #n~BR ZAaUYr$*O}ks&!U8$ک>O7 %̏׵ gtI\[M65%nOH)>m^?m >p \*Ř7 U vl 4B@}Hm;kq?i(Gm>҉KI8)vMcP V,Toݻk1 sDs=y 9X+,7fA4XklUb9nG^ɌdiLe^RUg0mC5w(+`2yFۗ bB5-R~X&bvXKJ QkNL|~׵\ Qyp7ݾ e #lli={ Q!BE` ; fq(s=irXYw`}APmG,l]6YeYJjUwTlvgr$0"{;zi(ztŰ fcFa~Fiu]:RĞ1ZJųʊ m)D(]ifh=?cm6xn/ñ}iQ8[r^[jYK!!@uLT(OQΒL2 4ޚqN|NDi[:q5Iȏ~Vhid">pi?e;|[~ܐ%pEFȍgs̚0B,eZ=CN1"r?nT=}0%}=W(YSb*z 4{z{a}Qvo=l)_e9>M0Sʝ ~VDY~ YKaV ”Eݔ;|>:;i1<#Gz 7cH:g22-ݮls8-]-LI2F/ >Y7>3P+@&ƽsp$Y8Zv,fΓɟ`Zr ?Ric&[K @ 9+$pK$2u&h^<$3iXΌ҇ ظǷD|$dbߖy_&fJ.g}8Tqz:o#Vۨ:2'\o TrYIPY+Z7Kx{ǎNmO+0T+ֹ;QZ y׍f_ָyMJgl_ =шA "b |!)!=H'ZGkb>:3/nwϪ-]UaW| 雋WXHcfČ0XYڒxhN21k{&1O~2lܒlLGԩ( qS,g׹&˲7$K]q4x~&hE}Kh➊ږ0@i.1IpÌϙ( .ܦj3.6/?RhnQLVni3o~@_\^,o}c$3C5l)N;75hڹyZO ݏw:1 ѫ3>G-߳5 kJbekWR%pih&q!K 5m[S)„Tn@7K(WzEUT9-BZ韽'k?%o$KF}C:M^e/ǹ3ݜ0 }ذ[+SE'FNΩ ĀhV";z:}0sNԋ}cvbBeR& Pf2&-@ӹ:-gxȤR8]G 6| \vtw%q%JY:v9g}9%ĸ0m,}*$.Lhش BsrVb w8j]&๝koD zo0\_&_7;lj.5ĘlC`:83Q\j-í+UNBVy 2O(%AҶN rXܼ?5U3:O?/%t^r^M_Bj5c(c:e_oygEܢy[]Qs AV~YXa{@aW*Y(C%#Lk9r1>_E@hcQQ`R Aw @Ӝ:ZVꈲ4q{"dR xno&oAF%v>t]Y<܇ B: ׁc6S8 ԂfBϯ -~BO a >q|IPwBdDͻ~'WY< 7m-T9 8/Zx+&=C8.ٱIXJ.SO5o3 n 9<IpE_`U!CVu72.dgɖMR"Mt=-F-:]㟊O:F2$5SJ5Xv{*n]Q%~ M,;:6zQ]e$q`q$>{`J_, n0)U(5Լ +ze[2dkX|qҖkζ@1 RVb)k/ZƬD ޼LOk{=:_y{?1V)3=S{͠.7=6fCkRJL! mM=&qB`Ɗo{ͧ/ ֩3(b*ąZqvw-ՠe"#GP(`g5o2흣[íI>.LP_%.nv$ E>_n{c[gws(/6 uvu@+=b)zHJN! HjnEWtP)F Xz9HC*LZO;]Xl,~ UVř*lydJ:E~+ɤ5ewl1֯oM+W#r[ĉjiuxhh?pĜu.TI)y&3OHP/Kd{."s6úȊ&*r ˮ_ #VC3漟גy0L9QFk~| }8x XnN6f@hXb 4ok1ճ`lTlw&ܥ]Vk&(C8UҶ4gUrp\KC1I'7u7~ [k`nEqP׳Jl*Dž}JaE>egWpޭҽ$UW(q5 \'IM0--LD ->ٻG-K:/NG]!&b$&(JαԲ`6](c|c΁& o-W }Βp(Ǔ ,K_qab@"8`RySe@t @JV @A^78n-YE$Ȭ-j!r-b|1i6,/BиӡRA xM16B]npjZvHef}> t@󹕬Η8i2A{,i76q Ð*S#>TZ=h4,D JgNԠlTz_hYOpiyv<V`6Q9?(Du%`!Uڝ+"!_'s˪AF}JUY{U96#E]x!\ԃbA5C!X7@ 2j8Zsq+ ,rޅ̃E/}qNAOiDd{m$xR އJ+}kX_ERJҌ.Ij^;ҭkĦ':I 27o\s ˽ n3ScUq%FD.";?\/ 003EF=ˊ=i8%="`Tѹ#B"|#EhPTw#QLraRUkv) Hk9X;krY|O͏Z(T?+2^n<sP7.~Wg▶HFs LJ_[fpXj3I1ibiSڬi|u@E;WwNLoWԅ*/ұ‡ |>NB5GJ|o.  E{ X5&їLO~LJ|ĮvX!aR4:!I.S-OTJo5 E+ŝ ?#Ԟa<̖D;viV]|>.pBBլřRJ4Dbi%X +lF9}_/bxͬr@+ʱ !j%8*ԥDF[5|XÖn)@`܈,ݿ-_VԅwF 2UqzFJ!o}}92(z- AP4jQ 3j#E[5FSG@cF= USEyKQh^9l̤oa|_]~Q>~" ~ l13[oX놎$Půϧ^/ oH6~6$ ˷K"' B#Yߴ1#}̚37ĥ$ ٶ<ԥ~ _u\.mzg~/B#WcO5`:h{7O褁׵1$ ?znWDF4&Y/fs=-ΛʘŐ *amɑf=-= r5ᶢ 2tU}3dfP>Ic##s?R@gs!ZK~ Qwo=!f$ SrW,YƽKU\;~TTN/ծuFOK0hocH-f:XՀ!y?ݙw<4g!/ya jQ{+Eaz` 9GYNF-sܐFM)e^c=( d".plRРmFTb"{hpRXZEURAʏw0z0WIrKʣ$嬦NT;';k}i>=,l.dJ=WǞџrjCp\>$:p[z-W\ mеAe̝$\f-بJ?usqm$5Ĥ-LpY+ҌkAFAf,# N}Ğ㰟?XR7V&cg2iqe1l|ohS9hT}%/7j/ì(/ 8)+e8c.yFUjwN6}b}ݕ=Es}{)/:'!$[-HCQ<Կ2T9ܨ)0 CޑUJu4lb'쬚\7^.mk\Z4S uZ#P͝(j[N-CF%-0QmcQ.['Z]R\E'?tASpiq&z[XD7>' 3No8ʥNPW§Arsmy:.hF Tp/ŇzY#.TUZESPs;c]<9y*I ؎Ji_@[")iyD2uḾMKonʳ|(-]2ڃ0Ӏ]d) X "myM01`@uy.[{!2@Y"R>"PG}nЀRY`)KZEqc.6?yf=I6 {4Edq o.D]r eMqjKAeӎ`3 W1J!~F'&Qim#e4-Xu߿dOBJ9S\EńsCYsH[p*sX7믽}YUs%z{i]ޜ[/-X6# u4jj,tƤIky3MonV)q K0 yrh XC8npȏ~ct)Fbe RHM31jl\'XhcnKz7N.:k_-KpE+ u!Mfj@stwpYA؆DC j\A,*&޺ (G|,|;ϿnxGK ҖwO|E$gЊ'v3RZonֳ`[BPybRe3jK5>0H|{%G{VaSvkƝ_"eZ-8&aR 󶗎>B9oy%jsK3s0M{'* (:x$s7eׯ|߳OT>[jNB4|K^%@#OW^{{2c ~W׈,ǒPE?9-ADّ3"7㲫G^&f&wqjLήԪ ᤅ/ڻJ X2ഀ, U$44,>-\<&4iEbp+u _bVَn O@&uzY3;G5}I;GnU;2p^aj&u]y1_ktx,jSaU8ei7'X|&SH.jVya9/*jE=v"܂I|Ca=k0:Z2<|>\ӛS̨buL@qg_3>pb8R@G~K?AV7z9[UIG91fوw4W~B5S'߂k;b l+k]'ڜ$^^~Y0P=a>pkVH6w񼗝4j|:{hįww:^ XF'_*jľkߞ 4\һ5y=NK6-]X8k!z+k>j<×_C Av4΢x~Yktwpʪb鴪*5 <NաHo(P×HH#꼯ā%6͟J&62m%bhg,XxH4-;Jj$8 Q8@k*Q ck!ߘʒ|;IiG[ϡ7Od!9PL^Q}h9[y`Wˬd3;}4ߠLYϩO׃4_[ U}JHSQp}N 5oѽ!( RM!P1RP?/qR7aZF|$b}:od@fz$20#7;{MoV|Z b7$v&l U.o͟mZv֨W(Ԗ{dYkAiHh27ӗohKX5 rT96X2VC(qX3Q*<->$Py\LsH:Ṽ#c-E;n*kϑ{|,`26:\NdM hHS  4՗i䢯hqwwYfݛ9{5Dw 0) h=o7ZEdO}h$`5Fqǯ/;xYߘ CMcCvaȹ{: Х@BD@B=DPٴ_4+=I5.L)EHi!Y1cKt#p2|nx6{|-?p 7T܊>ˮ̔_Ӌ0g"\.˔:yͼĤd][>D yRs|oofʗJvO;JlS ێ =G9,ܗU`GBy%fdnGituE5bd[GGaKb Dsߥ} ~1J&^;5l:4õˏ2LciD,l1L JyFo~ôR+a3RRƒE3U=s[]ldgwiu_&rܗf)l.ߟē0ey/wRD>W|OL |u༊sAIBt,ʞ:i~y=b]1~ /6~,1/lv>S2#K}?eͽK|@^?m~k*_I9Ùï &5'{kM\Goq4|ɠ+?|>AVP?OqߨLHL7fm{edXh5e^*vby[p}y؎]{{]ʾ*oFN(AfY (_k@Yu؟`^dyKp~ ŐzDp6|߯M/9Ix/ߣI2!jar+XcFńJuqnZ{>lUA", =m=t=~@ >l,q4B)qʎp e}i&)%DbEl8dq>OF]_0g;SGwI iOvwS_j$O9Zi1jHn1u%s_ʃ<ۗ\joa &*R0 >pHfd"Gan3\qt^9:1jeZwh%.> uw%pM2*&D]Jv-/qRTGܬ+S)貜"-ǣ?>~8n~pU^ P^_|>FI^iE0Jxc:8J9sǥlw&ݹsG=mdwH_r}:VV`^8v<]jH.ɒS׊d / vrDKLk=37ԍk$ն֕##m<@}q?\`]k թh0zݢP]VH}:!=TuDL-Ҵ(_%ܷFCNI4`a.p[QTUG甦 5"=Hx$$u?(cw Vd62u= %=D=JeSr9/܎TzUl00r29BM" &W1F(P?(2UH-"6CגļkYQuXUzIR0XFT=(5\Y+`?I)An"75#&,H v~8o03Qc4vqpa0zզ9q԰ jnJ1iᱶ <x()c,RV5{@Qh=vKb`>Z7v<('@mpxt C Z3#pS| A-f\r^|ה÷8r䞢I KuXcD/ɲ{`WQ|f{<˄E6!.ʈ JiSyH/ ¯l~zo޴IW:#g3}GJuv:݇lnenޙDwpz~UV3MO{f+ Fl&ܬ[ggTveUM,;#{h(zU?WzzʺiNgO 4QMp;Aׁ%c5(|f|L:CK`MP"+OY2Y]Zx/NF8+X]QU61*M :Y /l_ 5{Zo3g2t}N)1RT9O;߾5r+>YxOgԚDofSݼ!Z15$4>R MeI%`?D"%2&?^F5bG$i3&VlKg:h͹JTĢ(F?*3s4"XDWv̾%׾ ɥՏ6}5DU,b'1~X{EaVQa@qi %n*Ë(ͻW&j}|I.ɡĚb j~춨)Wx^^ՒzM:v6҉cYB#?jC7%Q_,̇^^&\UT&׳j]f'7Viֆ75 ]CAVj[v_7Ze@o'3$rF$j0F rt HBzЍ +}&\ּ@ n[:yz,* T,=~CQ 6 d]1\!quhD1CWvrUyB:c Y$#|̖6H[l4,Љs2* : /-UC@0!^X4`i;3b'GT\u\Pߋq=,%o03B 9k )=a;.1V?>ckHЖ+p ύCU*^oRLR6Zx ӡuY+e+ӌ^[;m_4b4ftݟ,T 䑿YbW>lDH@*mŖ`,ka)$e}*!6e_}=V)G [,axhɹԼ=  roԟg@Et\9R҉u׿ގ ]$}%0 E5ҏ䩿PqȤ]'neW2\K֋%&R7UQ\̤Vd o0c%JlGQ%0Vji 267ͬ0/ ?n}@0/9lc.#=DV;+K7LoUt⫇a5^QM؂r_VۥBKy){ "AY\YX{EJM3KYLU[|k.oKaCw˪%7ҺE"㴾#1tHT=?J]H#EP/:\qr$Uڙ H^ ° @m,٧`N:*6V=~Q ե21=5Fn  r@ 3Lߩ|^-2QqXۅOLR %nuc'O&v}[r&a|A8(pn1-LEgB; OF)MBc`J[_nc_TCdxY)ya5az+iS9KÆȱվf,XQUQ/mcє־ b' cig>$;In淦aڐF &Ua `R3>jz(Jz]i.TL-uvZ@7mɁWCHSO1ly[1%~L4۝3'T+<Ȑgo%3#qO[jS*#Ǻܸw:ЫUY08 G Mq~(=[dwybNZv6mBx$a;F-QBzaG~:`Tܧ1d w,ymw| F% %+{^d2b0KpP!GO܎?/6n uyM$DZfFg:W)j1.cX.Nڠc{& MP!(oXM zV\l&"5τh>mDBQkG ) :zjGwkE+ vgۯM,8 4Aq}ssPPRڥPSdtGVvDl p12 X(E Rxise@MTp_kWUB74/mo> 4?: =_aX<@nT,8߱}"%=#]pae˚mH|G_m'lPy;tQd ǁ,':H%"#QcSźۨrޖ,@x(`יAa~B l6Ъ1~hFN`dTq}3X)JZ Gu(lJͰc$߂{Xm9B7!o[bp)環J71򇒿x]8@qk MQ.Ȩ҆Q0dNznSlm \׷+R_ЄAG3 0?݌nZ]jfu*f_ns),` mju 8Τ:g呼(&Om++p`O߳U;4ܼζhĈVoOtBHu%(}Ғ Ηd./J!,7RI":$&m?WxN>?/K}xpG78By"Cl~u6*AUW Ң'd_#YbP&xJʞJ{TjL-fi'GգIx?HIBl#ypx4n lƬ9҄6(vۺIÞڎ*ݩ2wk6)0t)^I%ٻ/Eck<^^d cQL)bM$=G$m9n`bĺs+5"?Q*imk*q-s?LY.LiGy@KQʷ#]D >,5dۛjR֍YUթ~:=鱶A敄[2{0R%!|7wWQ^:ec$I`z S]r]zϽp TUÀkyW'T [y<\>>YYm&d), [d61o*eHS>X3hb9c+oEa )Yy^1!*4A;- 8} =($c0h|yB~㙺a)I^I7~&=LcA'3DcTя5HܣfnDP?N}BK~)9|y( BL5,=V5@3U2aGfiHT 95j9E_pVv3yi*k8\\IkN=n~>OتRN 6ʩEs_jeлz%l-\f/=ZFK)`*{J, Հ,hwaMvp @ME.JySc7L] R$e)8Q\VI˸=pդ7`W3t*5qeB+xwe7ua5{,pGJ`dGʁrIQ&o Ax7$ vkT-]g_!U(w@xYM 21b^'t4JTQ>AF{O[T$9(9{IZۧ?F({UǑԶ~AsR~p(gz;&'k"~Cvlj5keL&jج #}l!@(ޖx ]07,=+/%w68;6W~*}m Pl}T~mlfʽo 5>Mo8F{xcx#Wahgo xD gsO*a§LjNB1ijы|$gLӌi}}C75F؁75ǀuCU5v]brC 4xt<uVM$5]q.ɨu*}iFӷnRhpJfhw%Sp$-ϯE濍̃{P+Jf +k$hM'XG-CبQcNd2 v6! _I3$^?'/1 N _(z?ugy[A蹃E!1nkm/XT]v$'F񾳅7ŗƋWBOܨTcDnA ] `9o/p?տJ[ud20CۯX/o ӪO9uDؤ)7kq^,Ȓ@mjޠ';p6.m,a "-{8N+Eoso@/| $kEV\]{.O/tAyl̸ $~Ȯ;r?dnz-DيT8Brbp:N&Veo2A M#LC~cŅ8%CCn |~+!Ǟ/xLed2{Ro#*+V_hfll/Ơd Zo}+'T⛍rI׸otj2J$"u' #c}׷7퀯v]L۰ ={*ƶ3ZRȏv?] #bIRԬ?&L֍Y~W3h+OpuoYU5_f25s$B͍60hm`)MJE)hiV5i |DʞoZ;Vȷ5t#@ٟʃ(L/m=:YGrs#J@s۹]*@>co2FAڕ9.U * i#<)l̓7ui7X|a$Zv;"9~=JgenTO~jQ&!;mk“/"sʙw1H*//bL[J9RF#` |[@U7u"t ؛N*йz1V nr*T﹟tTVfRWCH$NnwUY -qɫ4n^VՊc,Lipd rHc ·z+Pו+e'؁I!.H@LQa2Ж0.כtKZ&k i1Y'.ڑD\5G-`Tqy0x'M'}ϟfM`6&0Ѿ'd[4I2{|ziq_guɦmR iY9F'8l}$oM.$^ z@Y~_jDcdD.w'["oZXk'ݫoU0$b#<Ձ(@,i &vdd2]LՄ,Va;Jj"cjk˒j.}W]xx'i3NCӶqk2|JTX\dO҇c)C؟tA۸ơ^?ա|-$ޠuÆzM󨸍Ԥ =-CtKWXbM}G۪i=9lgl(` J}?x2\%gQlD*Edç02vݜ,f:7(BvDtw_=ҮCm/5E/-vgH~d_c$`BZ8?whJv".j}4p^>&y(ɛڋ8OrߗǠgNp &,#f4]_ǗY53 Ѯ{ /{54]#j,:jx1<`ޭFLNRAg-Wx]b_F?,LjvRj=w5ÁFI|g$$x>/@~pwU2Ý*#7+K)5]fmm9ld|4Lb-wdĜ$`erZnQosz FJ-|JSVh|j\|}Gv~;fٿ>#&1_A|$P7tD[ p1Acz *_r}AEz1P<E5얹L|$Sl-[}&eQ~QnYX#ؽ"[4 L 4Fj"mL5b/9T"/ُY2r@PC{XN9j{w]n-/UfLI@Q菶΂2WUgdYP{cjl#*؍_( .sNmj|z.j`p'>_8^;,J%6?zQno'mzR>RMl Lт;U1"*Ȣخ#(-bu\[nn*80/~w; X%HPEX:1c6hy^kQ!Z{Ihnh}ݪ`0+&,FBFj&lCДxy\0rj9?SޅIjZMilXmejuLߒ/EFs'|N֊v['t$j ik!?;bSPI9NQXԢIը|4r_Cc"HzdCdg_rSh rq_G\Q6`7Ãmy`/8EDa%2Ay*?Il}sZX>O\6~mnUpז pLIm|g<ן"r8?՗-g4'o fc:PqАuQ2fbasט2wL-Db${( o&2$xτ'x<]pIZe5a0k -\xGz0a$Ӂ M,2RXJԐj^bs#.FP6;`dFp0ʀGճɱuw|4VQ-[sOAAk'Ow|rN^eCΥ-.1**P <*)9,Y&e \_Azk =R'fpr!\I7~4N I8K zqͽ0>+nsC2A/yFm o'`H ? SO(ҋo 4u_-sw,B,B,PY(Mp7b0Mb|cM 0-ي:i /cZ+[tuz!)/\E 3mg&s$xsRxP  ]9D25A``T HNN`6"SxW_gO4Z脭V1"2ɺfj u$Ֆg g" V3zyy~HKÓP m bx]+TfQS}|SSgilf>OK,;FuE q%NGֺqh_3s]D"܂mo'}tN#"bsJ_q7["ݬ~b `<ðcW{"qV-g5mŶiշ I_DćV 39+^x»I׆]8+<INi`D; RӝRT$Ulnˈ;Ƽ"]0DWE8En2nάdJ`Aox1ġKQZ/4٢N' KβIV_/H1}V &}D'bʛ I2}q_CĤn<"Qޠˬ% VW\mFgRO ·ÆK{ ơJ4gawz""[#B o$eπ0U\q&HAIq(F҅q#+4?| unP ͼbS+3#N^_ZC1n>FBG"k̮n MP7O P+ W],<<|cEg\Q5p2څO쌗wJ1cG")-' ZàBAer3o#Z.w߼( 8?Oh@UД< x]^%8nLjK#KʭhaUdhӢBUͭqՒBGھX' b^^%vy ɉ HDAxX<8(EЖ@Z teVrG)pL:~5QH_1=zI68m!IKnkYֆqe=X#b Q.,7o{3!WPE6R+ Uq;Bp&PɋpIq)X5K_cp2>#n0ۋFe0BuiHxY'q- 1#IM5'8|9)w6cd VÅ[3ɶ6v &4=y KK^=̈́6ot0@16cf1{g ae_yDfx?댛+~!Oii>Џuebzzzr^$RyKdNe "ޢ(4K '؅ayA"1r <ÿkb!+1%$G Rv,GcKICF޳uGA&_`.ѓl ; 0Ҫ>gDFb|WGP4#6`:~} g"hyy$A><շ2`%1|3dD?DwP1N|p|,36cл7׾NRwۏ<< Ҏ#mb1W3'Uߍ Zt_yjHL\g5$7F[ P8L-XO& vFQQ`}l 6-y` ӥsU$XWlF?Z8 ^zUF7!3pP^5m2 w")t@~"C"Td/EaC>"2D^VE}9ߦD;:ۓB*ZԾ&Q f:R~hM<b}ׄ%RfSN h?;)-I@d-9 mf[5FfR呙 $kMe{NE^V,?|͛g=f`YH[3sI@P7's{/g&CH_d!4?u) Púy]ϗ/a0"wc].qA2+ 0!Ȱ3| Card2Wv]e=bja 91(eu4 5.r_+Tǧ8R pvw||ߛgRdMk$4ZVx<~d2,RUNzbFv#ܡ6<8ĭ{aQ=D߼D ]!^bHGB'weZM2#j< Պu iQJ^ë>StU4HS+Z‘X@~pN.luJ 'U##v|.*b;=s\=I cyťBh0Ї7[?57VkMzLGAl3lCR$;F>B]׾J +)̪tJۡS>0=LgG R#]@ ݇Fԗ1]w!9Gq!:b6h{0[T%K i3m!@=EvMgaz#j3;q? 'A?}2=bZs"pܐ4>$5K>Uڹzvɽڨj蓬/d`0G*ݗ_c>dGQ $fp. zguzZ1]Iy_++u\q(>WX|JO ㆠOgj>+m5"c&)9A)iRwq8G#`o"w;}2V|$V"1sOv`ۊ3 e< gꤌ9_eJ+5skʪ @>z,)jbgh}/~f}xڏL:\yn +FCY&R{fg=Azo)G tsh|R5\\sM]; Gfkᘜ:9t'#ngdm{`/0𖾟l)bowMmwC9hY6Z15}Չ`3q_u Qv7 J Nv*PmoDss5@n;<}2}^!;V}'әa.\q2Y5JOi qS|4/TE(шʿÈ\\S=ԉ4y\whikR >jr$ +ŵn11_?2uA")eg4ۖPQ KhوnjDy,"èbcOkVl`,"$ZgrUgt%*!3cx4]48j"]%?Tfٵߠ@e~\Jetα/o~VVъ=8K/]?AD3#J1Rpߐdtͧ1QonE%ǿ;䨅S]k0YY 1dfΥmsjTќjo| +]='$` ͩŏ2xz[S)QKmwv#& O-jVGly##=X=茲 טMPp+s =p(ldQ'TXB?I4T&&\Nfbyrog5]dGfR)Q#uNkM=YVr<QT:~jVs-9.3+ h m} TXֺ-D/%1⥔5Kp: K_ E;\QZqp`3%!ĵYSw,tg[W}EF ܾL|?) =0Bg/h9d?;JDs D ~pIq..dV^Av=ۜ|{b/1>h[1B7idv.ȧn;BVZk/&aWea*^DW1ZӐѳ'ګK:n- 6O $&97;V,ht\|<, :cXֹO^E=>-rL;/PsN};/n}`!g(ٽ{ ku`>\b1;ګ]Ԟ^ Oe t2.FUO"Y?Vպ_.i@^C:׵/p,\+rr '@;2KǔC,.]tKUVfo:q|t*&͇{HXu´::䥗v|;ⴹ_GK+@Hk+N:o2ڿǙݵ@kGl ߝdQ\?ayOfʛs4 (w&;lTPsX8$^~n6YXz0j3\yP.z^ml`Μ=S.Rnj"!V8oޘৰ|:pzE*'Q='i |-XEadMхSTRK}˩1O{vͣ˄{w^efT4n؉n@^{YY]Sg)$HEH#&~Hɗ#DH ;d&AsxzY:]DqSvaԠc~c"#X2PC8SY  (. W}B3(E>ט+ū#PD&K+L AF V$\֯ Α( a5͗eAHT*D%"ajקni7m#v,KˍNkܢ?dh加K)3wN?5lmg61&t2q3\YZ'1~qcd ߜU6x?\Ha* `_gG  ?7*UC$=AϾo3ή@YbF{{g|(TE2 7TQ덋:]՗](#F=ȾpGyՍ\nVi)_#b_/HӛV)k}kz_7 rIPEIr6-W^Aq3{0$YcN=T ag ^HPpY\!kX1 z'\xsɲDЪꆊ"p-@z}% &?\w2g}QQ+=]"le9kO@Y$P6hh~﯋ kKbwxη%B7k=RwΥ_+e5v WR@W(کVYdNUҒT 2fT +@c+HZ¸QFaʐ0 R"`.3lեmiDqvd`[Kcʙ ~q P>sy PW'-yn>,OFp(l `ܷ8``aݎ sd=c:O&uVE>G [͍ȚJkjRHG.bwR+f*Nź/Y8aLvBW}p~ll7e+d[&]C~ D)( 6%:፵Ts b h#zs h 5Z}tHuJ<+s) 9wQ 93Sp-H]4)Q !,}5|I>ߥ%ir:k<8C7\d&iBl<0ɮz78Yo3:<7aP{Ѿ`g?8:MEztcM+0A`9 eggxbjùK#!&|kW"i+X6QϺ{pY~y; 9ʉ5mI/-BE-h:aP8/<%FM@0=w͒!睮k~xL_eYLDz5OB~BV-Vk.ȨbK5rcqm)ZQbueh\NrJnE╨;p=\AgTd7]>V2Yڍ ' Keۭ^Ҧ*)d!5~lW2 xĝYv4b3\VR Nwň.7eC *D_hdE~@d,hҁ)930)UiEnd SxDQta$RӜ(pvEH Ơ2M.e ȱ?u4A +ClQNKAJ7ʸD1"EͿl.a/ ZD-s^?VC"ɫNLqH_4'JkS}TY#lRL^ϥ2A+I%/Y~ʋ1kQe@&oT4l={5:AGb|7_]6V) + ؔ ON8!ҧ!HY - K:+tE_:;0K0Ոt3B% U0?uFJ8!DPЬ{[Ovqqe^'Y(M&/d(]T<ڸ'G_%UƔuU] A!0JT\kW$[UmVjF_W4tzaLue^/'#nPf(@p/:Vm b|])B 1?O;FT<5? bSV :%(Rn (&YĶak$3 nMYߴ团@>GIH -6wp0&xvGo<Ur3wf)31N[M*?̈́)`Py3>"L zkPǎpWrTmqC T6n 2?3̱<n[ULEtGC7TØ 1ʉeuh\-fUH2V QUK 'KB]Ie9;z4Bt}-l'Q:=A#E+d$@Pm0v? ,qK.pc_Akb!{FjP. G9 BIf'ɳmJI_^;EW}ɋch}$-AWmu&=%X*ݠI  ISa?.Io3nMaz͇ʻ:%@EcYv=l)Se_mw=:.RҤ dE(kϖD6酋pz][+an?G 7;PM!]>LKh}7R-\I<*aZ"`tCB.l-xLP39 } EM[ $3X^Q+pFRXKO~!ŁP7'QVlhc Y+GaQ',5:HEQpBYoo=*O 0~um#ՌA@^/S[J%.T!Gn5AcQP\$7^^ο.i#uIon\^ǔ2 L? 7Ty،ZbkT1IezKGy!u_{j%ZNJ+ms6qtˑA 9܀{o~!44]ݵ#7vp?j=1۩Ԋ "k'`ˣΨ;>zC=Sqz0 " Ae)&z 'y]Gq<`f۫y12q e[_NeO9­Ř+6P 2 wd4MrrejQu[LGBn5 ճN8s%c%pPLpsʨ,C-Вܰ|Wn~E@6z8T㺖E7E}uFNl2f"]3ԱK=>6tҶk₩@*NLGX%zd-+XyⓜAtE~Mksy%ff6]k m&`Jt|+'N>$ 0CAPuç}Suf6o %tKhxͶ]6[5aTxۡdN]ΒRH r/֓W㜪q`q%Ӓ,# xϘ+X_ 䉐Lt.K{H&u%6p]\-k܇ǣ-C'؇" ]T"b;8;{l۪1>FثZ )D0&=|&2jFr+k9bO W5h54EB$9vxR8J ?SkDsq(͚ SOߺQ޹ξ8k[-G_5푣5c}*o 9.ʱ"2ra (=fPOGq>Ծ z@0X&׼7*u[L{/Ia2@J҇l; - h⫠P2R`/IݐYDi rzj2\{:zE~&]PqqDuOL_Ի@JPCQ |v;r ǏƋͦ$Anu)/*#J矔uuKl~pF9᲏WJؗmMu/c$4;ΛoIj +?֧m9'v˅_ ,Wj$ʛmQ5N|W[OY2 1z.1EopuNm8pKKa^0KQ ߫T5}9XkVPFEseˢ&CaX\WG]h%Pۖ>M5ƛÿcHԦt_UG3%Sߛs#זʭf#)JDL2E^N~[=##NCutoj%o IZ2-i"|x-(gr -Mjw_|<ȟHn®c7v#SzSHsq-1{D3(r*e˶*l7 ޢeKIv-8S)glQ97V`o֎`8Wz;3w7CkZ9}HWEWlwםJn{+ESQ~~VKW% Q`*TG+ !4Y<Wנqa{%ѥ:Fo9z|HB1._bO>Eۈ!%kD&iwԨ,S1CF =J Q.E/]J^Wm^R__IjC`7YV"t=+X']84 NQUTJMwl1FmlwԵNZ_bƼH7UŖ.Dug4T ;:b&uynZ7bg*0'@irtڹ U)o6Ĭ z V)H1 I 'zi~K|%}Ԟr"MjTܾ;J`XXpi+J|R.|CWɡx`C!7.Bνoּy(Nv HsZËR'{6NvbcزqtAej-0+Lv^﯅ |}ʕlPXJywZbT)Lքb߹~zkG3Eʸe}Ɯ>Wn$k_tWՖ\Ġ9F@<;̓<[ -'TGe6=b)HrLkI9,rֆG~fPR(ãn]猇ьҶe#Z-t@`yX}DŽzl%K_xmZ&~ܝfz؝&Ii UdRь䯉+Ľr#!$'E֫)a/*7sì. QzUV~f^K!șH 'o7m塶U8@!%r9聙9uK{צ> H0t[ahE`s9C>H2-,:hw}#OQMoBή> [e>2Ans2=TŲ߯pu[L/X^ok._6<2$A='_ƍwZ.'8-&>\:`Sı8t_97R[Sd*ؓ@Ct0۝y6e~jGLO|=>ŸE<>*YpX]<0*oU7 =@B2Yځb0w0KVgs-h9^Vq;v R>B(ChDmFNQy:GmW4lCb^x,8<~ $2^k9lXxճs`,Y/+M ' ,DKv8kQWޤ^ϡg~x/aG׫R*N04?=Ds$ d?YbM 8b{L(ʿ*'b`Tl:8]{@]_"NN{Vh-JSi?Wut}6bK,ΰ K F}hعi|Iۮ!m*JeDXy7 'bҰm*AXOa_[p:Uv(f0hiYx 2פ tD/#"x#!Zz&+mpRiIZ=5idV;*^~ZȱT 4OS޽U .gQjC5~< (7̨*}S^A|o\drY ›i>Ŗ&Qj!b_F_ adS|CkRn(oUC]ʼn(sLO+3*MӭfAvTuQ[[;Gv4TYʬPns Tx,6 )yg[~D+^[Nx}kOEhoiQ-jvu#^XRQ,+GՋ?ݚ-D:vSR~{<,d="tj)Cз7VPPr4e'U֝~w,[hxl_C ;.[rA`9\5ڬt8(lqk4o=CoF<THQr9JX|bNu^)84_>I.xMIFVջu0#'N-{W}֘B:VdiK`:vz>V2ZЮ%6mJJ+>[I=I9.j2_ JB>0WT`ܯW+T7k*8W xrNVRb"A4IF")E_e4sr:a^Ǽ=0@iܦSM$({g.H6eq"_ VZcGɖ⿅jE &G׃LKFM=F::__Fʉ8CÑf mً-f r|$'QR Е 0XbB"EBI,6.R-@qd/H͕Zo.dg`.򚘉 (6Kdo__&:q,z1Joϳ׺Y&I}N8HU"U=7Κ~c"+\##N/ k0`:bǛgkFԓcD XV"l"W8nW̦gǑ[Ɔ%9=C//+~5g!J0qxYGR%{C?9%#$J%}lM ojDG R_ruuSX̥ ,;<@ c47A\P8Y Z{D_V{_@ `67gFd, kZTɋ#QTVՐ@T&'FgsdcR &*֝ⱨC$'p戄C^ǔ{j=.vYj3e넙a #΂(l"BR ^؀WRbބj6TM٭;pblD<9KLdeQ&'\(4c+ k/X)E#J*fO8$:Z ?+!hP5ߩM_ د[ {RqiK2;ݾghQs] Q:Cvnی[C|1B(kk!\2,j[qbY$ˣ4zɧJVÕ{S1X IC/VO4{jr|xGZ8mv׻/&1#V#-~r=_Ts",듊ӝS`; sV/HnƬwj!)? ^&[GB'!y;Y!-G;%XbrVB‰L{'s2;pIO8y Yl~9DKΖmzkQ) Yd"9*ME+9ׂ޽}.g \\y OEvH~T(n,`\qޮ7L_=[ TpO[#~z̾͋!4=7FLT?&%7xXE /Kacqɹ!U4ajE1r֝Wؕ`^{tfC)f'xiX!]@rAk Ȕ,ujw XRWn[qO<6vI~pdžoB-ޮk~8^x2 ㋵~+>_b_e;Lwaiqk ?_e/e9WRӬ2ĨLLxFT9u'8p58 8GunBI&f}%eﮌ9ವ4(,U 9a>"x3p#85GAj1W0$wa#+xl`3 -5,fRٴNL6!.VZɨgM㿮m\dĥ"̈́D׳swrHM=b&uS %P[FGXh G _̈́ȄUcև{kn1ѥiU70a:MSq;bE5 o?4%8y։̏4$ËZ|caP:~Dvvܖw=WillC{{y m]DG}`/;5jH@3Xqw=A(,dMF)aoF Y4_ d*Fi7N3 AE`HA:܋+m&̯DPo|HLQrG50I4om$FD{19TևyD*K?Q$@]]v"F@/zti 3ZI7G࿸udzc7d]x@Sy Zu(ʤhmW➍~e$)%̭ռ1xF6SQo4Q'kȿ= KY=}ծ0>D89eإn[HYD3[PӲd.\~Kfm5k,/{ႼIɐbJ ]@}3~qochFtiOTMԧ GtT@ⵤ|>++L ȉRy]Jem@7G.u|ܽ+bT=-RxR| cHY[m=N*eRCIaכ\[6p]_I QX4 `˔Xװ[쉭00ٜp:!#t!Ė;зsϔ;ghRȻ¬L,5tc(BnTiS>1-Q &/n㤲 S} #?x~'}>G #N=I5i!G214.OorKt3tΫr"XVCBg-Tg~܉mtqw. '2y`Pk+׆_Ӓ?#FۄkEaNUh̰3k̴ldC 9cyï%ldv~=YS5Zʽ! 899U|:Pci|' _B<)%aHԝ,(06&#ClT r!iW 7ɴb{NiT;nvLlyNs} / }qTPpe>PhںeH92ؚIw!)sg'!JC-nXY6M_{%9Mv;.q%⯉A-)r.0L+0BW[^ ).UWdFp_„ó&*a9B>6?!ҏ?J|# p'eE-&Bף 8 q9(-cypɵ!4ltP>ta S `,ͱog@hX\o{* P>sy NWA,#$kWsxQ# 'dP;s%Ql$\&s3)- =/ټ\IGU}]D|bnC^]kZC,Dm ߵ6:)cDy`〝;vo)^lE[? 8+ nΈ9V񁕵&qƶ "=㤽D urHd"Z@J T+/ynC+jL6{EL̼XT=Medxs|bՐ*n\\".#omo4e/փ^(c@?`Fp=VbGBL䰿ٵu0X6 7..&69M9q>,<Mчk ^q\ƲOY"5Vh˟X . `<\ϣNj}7ةW9Q>̓W-Q γPQ;SCl(g_mgJHsl;8 M$-\NdR~516DVC`LLw g'uYT$cסUޕ#é-kҭ<&Mm"- 2Xqo#`=uٗgBL|1 L)cGY"q:J4'xU,+ fVmܛr<7[/o.)z2qd!=b?V֙%zfz&j&HdJǶWGяCrR Jіez,n8FF둞D`Q3N`;2ӵk<٣%_b@#%Ce%RZ` 6ghK/CJIVh*dXpߣ sx_fjT]~kiJLXh B$$psc٨=dyÚ:jҿSΏ%maz$G]'pLNDbQy=Uܛr2APaBڕ]s<A8Zޭ{"Y|>Uz 3ɲ$1ڶ59.kLNLPVH5BT7TaR,ŵ]8M&փ+G]oO::FZ%.؇mdF`jaQ( \ /,qj\%޲ޝdN siڵ%+8幏 *ːgV oƼpQ2ʻ_*'H$F܋S~5w6'~#4ܦ b5)*鮎vAo(W:owa.{M?<#/4.{Wc7z⑖@D:TzYDbPi[]ϯs(%1,HƑ}[8zHd%o+{mW;k],TMN)qNι { $:jVN .UֺԱpvfnW%/ Q4tjVZMۭv#bق} d9d TQ1P ʠjH79z%#hf_ K^0X g[q U6QHHC(屓*#$I@0hJ6Ti4\Y2@Xw[L·;-U{؋&Jue&`50$ndcݥ;(\߃&Ƨ(xlAY|uVR{^uIN,8EIC׳ &54\'(4E -sL|گ3Xhf<ԛv ;fڣf> 9y^6H=L[?!LѰ!\/\S"vf:#AR^;Y,r3=ԃŊinulU{јWCl;GU{"8 q`F 2FoJ Q,?ཙp窼5eh@?K$H-TLu=գ"6%(Y7DEФEԧᓜ&qS-4Tmw <>yWzP,>ǚظ9ч9^_N Șڞj2SS3ߵΨA`Ń{s2`ύUX#q..k)=.@e}%E$+6qNDMpܟP.1Τ_gp;>#Bj.d;2]ʸ3ά^}N84O̔'+ԛaa&m_tN{O;=#w1B1SˉTvEإܿ0E|o11u[K0.UݔpPw0-YNQm:p]/]v݌TG!>)cZ -jm8leaQzdM4-H#/V֛gf)+%J +,^YQuݙ~q ?~J*yf;"A>%l2}8޸|]Ertˣ:3kƱ LPud>I9RLAu8.=+p/a5_~߃-YW< _YQrI[`6?`*fj r,oQr!V7Ԩ84 !Ci9PBѐ#QmeWi5+bI]'r҉j8Xn &boD&ji$38". 8A @_OJi`f>bdayn ;M$4Ϟ?KLTcF~o񱫱/_Œ7BVb0B6s++A]\I.+ [Y#iCE45{_mW+#rm\1qD&]mARUFy}[%DM7$59SȒ.PM@2zͅ Y}Sw}!ܯgǟJA7XBvMXXMiZo]h~E@ۚ_PE&+]mL4[H}/дo_ Z! lUjV~/ wܚvOD 7g,^Y{A&U.[D~L5U+뽵  ek1Q̯+f6̔9|I%[T BFk"WG6lv?'y͠d8+_k$MoT=X_TШwR3ִIFy|1q`k ߨNJF_/o{(s.hjD?@biih*]Rո+e ୐`VfE)!R ;BfYp>U[-h_=^.S P5<Լ'+xKiBX_ԝa'?e;ț_μק}C8?'?^2MTlm[,Y )E?See "k>%*#w/\O7+$P^Vpw5@g{M MGkM=B0~/ ˯q!mu{۷V7QŎf]l03TH^LNV]0W *C0pŝs mAUuq[cK4N*PJT}Le˔|Ke/wڄX)BhM,:xP7  mv e&0Ԩr`"bٶudA0,ڤ )ًd=T(o=5`Vgs_m d2K+(P<f,7~[o<:luM.A[FB+X"lDj0>tZG8YndQxV#CSV4,trf4JN/Ycj ~i"])g%vΒ-'GdktZ8aX؄«}X_KObbVlf_"rlיV-t} $n¾җ]ϟ-^e?jn8OG1Bؓ$eN?7[7Z]tV`WsX|HD%d:0f¾[}5{v?k1zo"QG*S'` f\d*9@ },:Ȟ5`=Ս,} K%Yݓ@|2Oԫ\Oݻk5۪]L1Jg~?-."OFKQ,Ciْw0 gMOoҹt5*@{Y%mop5o*'vꮀPk`iE(bvW}†w&>K,iS3}4__iHWR=Dki~\9#sQ?-iZ~>65 J@x$3:SZdpR0mۼu:o"Fs[ ul2 @ͯuK1aT͑mFUʥh6[or# 55)R^mtlY~ aE7*z[п2B+Crd@IXyu}B F؇(aJ z `Cm4:%,vg`⼏ GN %MyC1#_ m5˺( FhcR@5W7Y˩h,9J,xBV BU?aosOzСocOcDRJlm*du?)nϨQf8cԟŰtq/7f Ĝ/M0@}eui_ķPXr>E=aBjݧ-fʈ.MW)i9\3;6(mR̬'y0!)7ʛB00o:cxs= !ƹnMc,:s&-|ـbem6G-],~h} JWC=2p/Z>Gvի9,/hK#x]1 T@{#%K7.&"[ mH97ӥ?úAJ~P'H>&wJn"0RqDi1LgWVÁbTSv62:$[$HGQ0|Yϳ5E}k#<cW99ܷԮ·0l:I9Oߟ7O3|'u n}N$]5鋌[7Qo~r#Ǹ}S)s呎rAwE3䁫VGB̨uST5]$7HCP7}xI@&? JMQ+vlOS79̜?# P[~4i 4~sZߤ!oqxRijR"hHp[M=K]^2嚃 )GM h3k3n; xbg$g=E{h&P~>SfԒs` Mx'HLG/0$!lwTp*d?}a\'!ٔv+@̌Xqmq@8ĊnOJ&}}ES+B ܒ݄V&v8R_ӓg?f3]ο#{!mctX\Gg٣SY oZD}$G9t6if;i}y^<ߟIzG^δ$ e%&~Tz^wb -#"fir/~{7 V,NOx2uaӶp'U }g&.ngr[DFOKwUe"@:ҝ, r+d׆7E~{K\*h| T2}O~~HͰh%}e5aӫG/(Dk$ř+I?"W˧+]|AF ZV;Ӽ-s+14h>9OQ!zRlKh9)4*E@ޝ+)\خ>5Ugj+C㯵]э)!8 E1p^5OhvDey4ݗ#|٥~7F=5mr#h,,pTkL$`c,;j=?APo|[kX_ iH32(ug{Ю};/wE&t0>RGf%,edÆ&R_ %>&F@%W!'oXVѴq_Mpat >m=ڞh6z!ԺGQ3yk#0s6T++ g3I#H;1bhGi#gJv`,+5j5⋙AdAjohy`%ҎX3`$!&TuhUb۝y8j 13S޽t +Mc,:3JD-OX"BZ 8KN)GFv)_.س z&Nю6w,%*vq6)Eo2;YVvx3LjkdGiu&ַ _+7mnSUY8y ]rwU VILGd%Ⱦ) j-@aL>UλO * ESF<m}ʮEXro%C>t2bq֗?\tHʞxl 8ԭ]l+D'Yř7 1eۄG0,>U1@Co[ N~5kMRKq47a ˳cB|RҸmWY+/@~kۋfx߸Л5IgL+a^>B;'jm O={E )-#2oY6c-c|MB(uxsױM"Γ%7T4Ym1PE@87hQlI.|jav4yn`ץ/1Q3j^9o`d3218{U![ѪjvPpA;)=(T;M38kJd`?/o;w4#9=:Q ),yфLat~8+QoJ[Eg-zOE* }[^eiᄠHڻD7 $1"Ϸ#lYH!qsq-ƓWųd.xMXJԢ7m-nȏ"h1 q ARC7+vkZyFo5^+N]JZpg4*p͊~P=**S~ gGvfgRY&w_c<~5HaI! t7Y[%  ˣ^&"Ovj]("U7M.=^.\ ;eA!c|83rf͎Yz.~y~~>)#xfP}ڒwzK|ɞmnݢQ/囐tV 9Ѧ/3)+w곱~,踣<-K`ET0L2X!u2gHg qjsoCc#qs\!喢~EAܡW?{7` c#cWūY.}GãT/)oS{( IhEt]w0(`!p;d!\=K|ghsJ+C 1΀G!p[g h8X;O8R~uaM7ݤޯԟ=[X8t Tq -ggN6!`l&K-O:gY.X5L@?fhc=yz64O5PÆ Yy(Ҥ0n*ֻ6ewѶ:K1؋55<+do'd̷e)\-7DjuM?_r2Icggi߃UQԳ2i@5J.5}p=j(V%{lcCӐl+^y(dUL,GGBW%d$#Vja~( ,'huv snoWăBRf#uh_9D[7E\sB}0P )޲w(a}"wqUJf/UN_gНYngɹ^,UFװ}rURcw|04p8|PZ'y1sg$!@y *  7*DOiW4wсٱЙZ6d,o<^PkMHHIB희n#hfD)zto_^l[dB+.ySe]v&\lU(ЙҦ`7k DH Yh -#o6.1[0PW HQdWu./4mo5sϲ^ s_Vmu+, [@Xz#pga₄ԫOyqŌqYl=JxMh oH12vDP")4o5(hX+0:xi92Lj";SY7|,̗Y)i,L7k3E۞lXLF$Rؓd3vrjE1< - 6 vsqCq9GӮz͵ٛTܧ)-# b%" 3MX\Y۔@SϼL1Z?Vj͞Ycvg\uG!r bF1K:\13ۨr8+frC퀄u.t X٥B1N<)N 8RDW#L-KԌ=PĀ|.SoF)g*Sxk]Q5i5U~ N54}ۄf?BJbak\˶/wZ{Pb\h*խSQ9b*W/ )N -M3[d`wu j@3z#dNL#IF̲agYڔ)(b/z&9؋ej,"S?מU@]r!0T. R('1 ea~/JG@|%!yT dh1Ylvwp44XR2wP@6f CSƃq,8e)>d X? ! t<ۈjv}i+߾Na/>^V}L61 )(ܗ(30^fB7i+'tgK۠$0\#}[de M۱) ےAZz! 9>]h祘4Mrk֗jMB YA2]mxVH,[3zU?tpe"`F+(||\[B"?iOv|Lc 3hpE8E``)zl^X"vlu(.+tcb8`?a}̅-ozw88TjC?.̈́ks5:`45Ooh{s),kRvtpmݸcAI%AC e!ywBUa Dyl?Da ; faPEϿP"i,ﲻZtPM<ԃ8$xxt^eN[Qs^*=Je-'#|W)9eXٮaAa"H}>nXe[]ÈX/,R '[_ƃHDLdT. 5ҴPE%0QL>h|LweL(4-UOu},֐PMKxBQF0ʕ=܈3rR,K_ /aDD"w`J¿Xb#G{#{;P1#x F̯Ǝ5Ί_Z) 7 "Y*&U2ɻWuz XuzG#u0~ s=(fZ%XCǹA ldԆ|(#{LHICzp F֘$﬊FzYCպ46gMŎ{Q| QDۜ+v&0*NshʗճΟ .2f+bB煮7BEJ+}gNO; ;O%]c=gTjTr1&٣_-Ax@ >ZтVԹRͨI%'GノMhk/2ؖh =ٛ$iE\1ZNz~>,/de{g <.(.t '@=3%Lxd=XBZ\Pctc*'>TW_~R/]SY8[n-23aH =$,m/LyxI>B3&( ;!]藥f=lMܻ Y{L98D, 駕&8.$L!7dW`+7np*R{Ch̓i+aBqC>CCR%wyOLw HiT5sla.}WIY~E% 0mt)nN궳P=D$Ě0^EWcU qV=D r셃: jtOm?I7m`t _YUA\ ѶID r{]ui>.!Cl E(vS)ٲj$ËoQ(TswDq~Jkq&I˔e6Q5[٦]gA v,Lb?`p~.Xă4 hC ɿVVg6=_14n)3"fHTًK]k:Q~uZnl⸙R`kHf5z"#Tt3UM' }Nm~"UMf:ϧOnjs8:il%YO b,A]ܤSu4>9p>l"!A{iR§GCU*7&4s]w掻 ^yg3v&X8nCAR 2oyfc0\PtpSo7]&­/OLIծdSu,gɉ.N ()y@G,fi[a 9y;T9S'9 sZqm"ٰz˘5ОwĴHlw/@.|ZRTϵxE'a+_z%o)o /\omZH[TMpV7g\SsƇeYBB_ma}ZGU]>TI_*ư߼{>gD #W>B}/ԘżF':\SQן= bZG x|?Q@&;,)¡Ig&sf3tER: xy |ro%y,e}q |Թ\۶fG% ގ[~`T#KS/=\E}Wӵ@+Y>%r}A^uȬ! :a)I]@rj2ZۉT ̺hf߫#m.`7 b8PH M!:K5_v)Q8F@Ý 'iXZ_ڤmKRVv˝.>O;B]xpXˀd5KЫSnt 3^&%5 r.X^7%nWˢl"+d5˲䒾߆Kūyo)/y,el-}ĖG14n@D? 3-c?g"E2HUu ̩dNʭ2-,u&#O4{o;:F}aȱH &7i^XmŹ߀>gwےI(k5_<ٵVY|h.g=C*,XI-=Bcx %[sȟ$LmIفO -uSwB+f]PPk  ׯgwEb%:ݳ^ihp*"/ TZe11PM᭞PxIޡ)9j%~+:\GMD>/vV)qTafUCJz*لqưtl;TWYAe.>Q>"` K*:w1+B!Ym<3NTE\#W=l= bk-Fh,[=uP~j`tvay!K:'7^H ټ$8')}eg"L ٧PƇ\͵Is=5.$ºE"} zY@A|Ac\õvPG0fv{ɊSu \/~(Jq!t1 ONQ 4*MAVV~0Fg)Z7H ha5:+IRew\W8/bU-rʀmeFm#[ eQ֖ TSe!ZSbE۶[59{bZ+ RSbbK\ٓ~FtR`QfÆO>€plZ?|3a~c !R,hGUA%el޿'3ga܋̑Otm@d2yjm45VVCpAx1SI Sը.*k[ܕ|XG`f3ʋWD( ^~3x߲j '!5e! ע |}$♺ދ㜂nUZ /ɝ淪Ô(B]v݈c UYT6_}/Y뢟f oXtÊ?$q snvU dV\G.u{DU>©x Ȉ\^͡O)&C%>U@0Nrjcyd H U{^WL` )u9@/{);H TvLV2RInRy`S/*gn]u/bIveA;&V^5o';yr $奨I/'E`^n9Ǎk%RJ|iغ0}y(c"䚒TaZGqf3okWJL~ߛ 5ĀP\YO !O^)Ez]FC}3Cs`*LTvb$"yЦvxxq}Ta .BS=/߯Mcxά}ۥ5Â)Ϊn6u١GVBh"jpׅB"|EuCunh5Q )n%4 V 1TsHŔPUB\|X~ğ&tՇ\JpV[q7k7Hz3 dӼeª')'#`RܹHD?lIJYk6CWu&.\YY}%@LYDb%G,[I@1'+Jx'|ԉcS=\MR\b˂g]x/M4YG"v9i[JwQkT=v!)#^J2 uԀ;']YcL r =ʶ?fRBFa^*EFoOT+I~ϼՏAƾT[ Ri~I-+t)PX2_ȸ[P>?/ 9!b|^r|_xI=(VyX#ET7K6V|η,rFt *Pi1IP EWQ~v}^}DqZHyzq*C젵_Zڰ5 Rt[&6EuԴmv`w&&rA ,@=C7rflcPra2ޤygHc!ڥo LHjUej1z!)sB?m=(m~x;1݈GyzO=ռQT)fG8u+%`>߀GLۂRo@[fGs¡_]?z^7ٲo3ƗIzn{>F;V_= G6WBEqz/ ʮ.usHL_sP̉W]GRe/U|j*\|`v7 y5PSR[AFέh29a|(Zo,@;4'<ײl豠Y`޿$m4''eVP3)+lIiO ]0yeEl'7H҈Yuav$H)OZo޿iTNQX;BrIwn ˮ0?r v¬.dD]􅍵P`>a;=?H7] yPbn#v`) pc: ]C%2SРEq|lPJ`C[C~"UV^FΥv!hb%/l& _6W~cS^w1Ǭ l&0R.IG{Yѳd B 6r%KHۂ(o:SKw}s;Ct|Ox8p GpHlrYd2Bv*t?obC$+|2Ĉ#ސs6| vO_\2>$o|?n-!Y8 뽄!DWE"=g10|:58K䴍) &#uFjiߵjƒ̖:; JHz;R"H3&*Ms%%#tY.K}"_Lmz6F#v" jV7aï6 l@9{/ϒ`{Emx8tٖl!J (da^9Kqh?o9|l'ʮJn[66V~eOC'v%{ r_ۭ 1>)6r#KҼ9cZx~?t`l5: |sjPStCPx3]E->RZ'Hᓱ:Zmh̛C ]H' xq䮫ftӁle[wO w~ʒ{c 3N-8h e?Ty@(K5]UL|c ay16?0u,ta+x;v.; HektN-)cHN.5t5mty6YW5uu#I!2Rj~5bZTxJb Qp(c\XyZ^Od̢磍lily堥jXǔ-ɺϠ]& b,QE<z@29U@ W!<_H"%(˞$m_ehfޮދRo(ܠzC}WA`p08bϧ Ó OmE!yؗ=T_1LӓN5.~if+8}V|f!!zGo7˷,LU_F 7L~`?mhࢌN@m;/;z}cUE1l; z_fO[,z~Ol7Ī@4.ڶ PT0ga=\޽1*'Ҋo:bq+PI>֢0>s0ނع0J\& 6h10xP'_NyossdEW_Nҙ$˼Cu\BC:kkyMGM踛\7'2†Csjzf|? }C\%*C$M?Ҩa әFzO[.3AUFۦ8 }e v?hfa> d |AvN)IL~ظiۨoyЯ+Ud/j::Ml8EX_2B:| etQ"Hn}謪*pN=;#z6$FC+'l!D9"W3U/HjJʏE!vk{\ch1$6,sve'Z❶{ȌQۊ#X"?q#Dv np15ҿxut{4Fs8-]zś֝d[$F8/"%U_y6&f+֖ yZޑ b['Mk |i#)s~8|&HdYB~ҦS# 3O oGJi䲡k_ֺyV/,7hFYH߂E|KH4$;Lvےd)$.&6m pi4| ub&]!bg6]婗 m oav08;ҥY% (0V#2 Ru[)U3Ѷ/h НP@e}6¨1o˫Ěћ7AF,WSѡaAxD*y>VH&.`؛}~À!n-(8+x)>iFAG8̸ܑiAGuov\nj)>6 hօ`M=ZVN;OtNwƏ*WOde@ 2*Jwm/Ȼ͌DLvߌ3{7\x>ͲԐf!1ϱx<1Yb? zO_nH!A=Oь21C#Y/wKWՇמZoNNX$ Ցu\0Ԕf&(2P_oʡRXzH @ k <>>MP:!ftI5ULZɱ75u|ڟ B wzd.B&#l,!%P">G6mJCX./"Z=CZ$Osř{Բh}w@H*q|w[PqngS.5q"Y4GmŒ[?Ӈ?A+ 4GOAy5fN)5\j4G#.4}ljl)L ȓjnk jy?8 _`뺆UZ7A謹%JnX#9Od5} ŏHDUq"/ػ["aj:(WJg9'd8 \r@_Jf^QZKAA%C 2D4;& Q@&ҏA#c3%b yK޼2= QyY=·(wv(?ve}OĨ6%>{Q\h>Zd%=ߟϋ/Wҙf_2ʧc#[S&#sxWi)0'PQƖ(1p2b;1ӗSd#1Um`#EdA$a"8X{3&񷒜ப !/{"zPLOL{+(\xǍ-$疯sI"T5l_@+):8'KgHpCQ$ܯ1Cf w3c34t!fJIf⦻ E[{:TՋ[7(~/:/D{ʨ5|8n$0x$< /y B6gxH=B/Iuce4@ /|){CUK=V쑿 8xW~cX-뷜7`7B>x6ZZ~7˗jvUޥ=>r^ajʠ64x#y&y?sT( tUaE,T 愣35a'Dg}0̥{43>pK@uaǓpȍ SQHQqtTG5h6dC#oxm[ `L1 5D:Cc]v'oZ_p U 5dw99 m{weȑ8xPnWV/^T}K *ove+Ƚ1;7;I?M[9C:H@K/l1x'%{q3cԄ;Ionx (k7˶?W0; pgup?iP#חdg#;IvHXpǁuM;YWgBߪ@2Ʃ/3}qڠ &# ,~,Fwk$ֆ).9^[+DŶ]hN.TyyJ>!y4̡*CʵC-eT^n~[[Gg{mS8ϰ`Y+y3}G^v:.Yadc$fZ}Me596.p|ܑM3C<#PXɱz_TSN#qrxEEcC雚t+Xx0ip9J-S-½΋#2f[!)ؐqυj?z9zlYAK&ۆQpNV=fD]fsuL ݼ8 Vgf#3$qM=[;Zqp 1G^F4*!?dL0eڷ̈́T YrK=/]3'BW^R ?LQjXi .ӆ }cp]ÚbyU:Gj[TlV!e\{5M3brZI/گX_6R^ @=2$ } WH/\ ] [a/"=[Ƈ a[}QX筀!+oݥ ƹ)a訦T7Sz?7upI*.{w6.C xĮ/W$*R$s tYHa iS.@םHH^L| x72 ۥ/W '$hv#YwkQ6T)/.2kR@y;6<lH- )w/(hd64 ~€ǯ_u9a huKKMr[x(/%.)}߫r)(J%_2/yvP )ӒC6lPC004bCi6_wk$iª;$ci@r28~%\tTRWzIֆ!SIT2ΈZ3!8 n2$Y868mLp^&"e}֯ Â2*c}rWɤ]y!&p ۬D' 9=/l5NHzKS260 H УzJAo=-ʼnx*0x'YM??*axg[E n.aZ)v%['qnNVҡވ:O?E,}[nDʨ\k 4];mŚ@Rf{92 TD XoȖ쬓ݫ%rCyw!1=@C[)^̚dr4zߜ^\v(EމA1:\].0S"Ø|]ޛ[UY+;p:vGeq;N e/RlN~|(U_ř}B +'Z!L j@IR*>ϔ7HI1$jt WjiL%hwW9 p^|Z9Eܨ[_!cygw33 !1`+@wl%Z&JG('R ?sPT送/T/jG.9^AɆE žuۯ 5(>UWҠ r=ECjE=,3j%C9@Y {G xh HY.ٯW#P*jžSS2̝_Inexdj(e w(Y<LW,Jܡ-+>@x~+݂~TDԏC.>U9%>Oˊ /9M91H^qt0$1tn!k)h_ȨJy. "=\Ae%qB%H*X;"S&3.vq]`<;}*[;χ#C#R();xaO@=' lf?v~6pD6wrv3(>a579c@] yODmq\)8lNoc~Ovܺȋ<?SV3ݑm5O2fH:UN~<꽉 \B8"3i@ЅlU+З4i?r-wwB8ޥ9&3[޻)N.*Rc:nV!3[B!b?!<ޟW];e+hr1*mO)iRm.bѡnc첿&KhVO`;QC) ='Y]FӥK-P++zSܠ-;j9w5x6A-tȾі"Ml@i~t~C=zGO훝]Hn:~P7Ԃ9`j%" _ۻ m`>TϦ_t6eVG3.6 9ͬs!9\P<04~n7+ +z]OI[*[՜baf[drbd z3crZ:R̿MEYLLf5jZbhA=1`c/]թJ;Ϳgڭ_|%4}0+I6T^H 06>rվ NbTE@ƾ dJGϫOOq>`6Oο?e~*sx"1Ʉ9ҥyke(R5ɮ.&KoF1L#JM}]!u,'VP^B'lLos#aY*M|C=m倸;´8UDNuݦ1ڼ(+jB/ T(h؝-d{ʖw9`[}9>G4J`DwpzJаRF9PlE7231-,.p,XƯ;-Z6kތ]5\*y"o/+jyq)1[W#f Ƹx*67,>n(Az&|rc&Y ػԆWnŪ{jq[4p/Q3vDT`| X4!fS~q)HHs\ Ʌufh`t|*6B4;W}pYe7ph ~HE1 єJnx\t@sP5IkCC6BfZ#-z(N/  `?0XÁow~68p#SeO.֜_n>%yTyE%a Ekpŗ,ƹ@A DHiOtҀ'(m˓{ZEqH/$8W#W%ҳ{YR&a1r7[(LӊH ͏"YM~smbh"e"Heŋ`F_kC?J"t?熀&Ui= \+ I_׷fƴ$Do1@ ef5|=q ShiQ鱮7b>S (x$8xҦAx/$vږOr7T\OT&&UzLjf nC~ ; W1k-,b%;4 xi\ev1(n=ᤷXݐM%icbT:tļrQObӀ п= ' GRY HԡBJzWJfVU>!+k T?Ä^fHZ+;,,zGT- m:o)iΈ=71~P‚rB<` l 2 E*ce`mTǰK@%bKM6eI]t^DLA)7;S\~ W@Uu+vNs8 W-;{`\)ɡmWؠ= ([μ->kyP0=;0} DRr^Q2£jc&& 1E9ٟdƋplfBHS xluKBAn 4nԛӨ-&pZ s"qYuQr")c0vTK[D*3K*OkL;mnm͉ =rPY:94X+ۇjw5֔}kޔ1F8q<9|<٧"?3J;Q[&EӶPa ҮyJn[0lDC,~/ĆM6xnc*Zy蟣Wm?Ddlus {YM2c'Rx'MMa[[bvS~A-=y5R@&f:-0ɥÕLB1XGBU[G!D Jpf߮#JEUد;1\Fvq*#Qy ]5!XC|-!肥Q%׉A#٨.XX!7ybi4 (u?ncm.%5@ƽWfGȊFa msLٍɻ86SEN8-bIy5bGS@&yUTC%2eڹxԱP#;Bb}'}d`i~cB2f iY}2b{AhW;%'(CZ%Ŧnw j^[VNnN7n >_2&}g#)p=;teLB4̣o{Fbl!bd8Wh^O)w :IC m7X^N]N cʂtήFxI4oJd `bO/cV}=jsϰr"s!)Q.R{ُI lXFْ% T4-@|IDD r ٽl0},kFh҅M3nW̓סUfsyߙHIl^O46+(C9sPCPD@JMlUT Mb%|[!!}?D2 bakѿE,CU/"kP"h!za^+׍)Wu5|> oSbd$f]b҄Ozf* v0@s`Nbd Ȱg|%hzc\J/yLh͚ 8MO߰&dfC! 枢*rل !]]{ XJ*srf7Jn`EPI~^yIq`{z/2(,2ڮdm up տț7^Bhv4jpHo*.wظkGЏ|X '+Sù7M lYU %0 fК-n2k Pۃ4H*[7 Xk_+/Wbh\D+lv{sQʞ'܍ǐ]*EZb$/p$Acb\\JwoCJ/;_.'sCyquK0  Th32wc*Ϲ1?m]W,|eRW`l 0߶@KEoOAl#ÐQi믧Ʌ4 E]M{k˜4v=&Qt>sŋU^vxSȳ.f8vS|vO/"VADBFywh-ږNlBͣlՀGRO)$'hbc}os wi_h=./Kޯi:FMGQ G D) 鯶?ǵQqB1Dn򒙱ZG|{)n'8?CN,$~[q2@{9"fzkZNw#(9f﷫>; }7L*c] }<1,*^[24^X=Q%-q*ܸ7$)[g٪@ibcS9U(o5U`0myA˲3Ah(} WM5oL~}(Xq96_rzF+/ܧ=.XɯG}ye90Ǝvn j$ٷhż^H'.cŁa7ק9o/dwqŷ&& v\v~QHA|{%ޫ:Ǘg*Ǩ8w/QnW igО|,"nxXWE԰k-7%ݸ_aF($){[̆ɩ_Yby11U 0F*lyU)}O ֮j?F9䮫;^*FxKO&BWT%W+ LXe틲4 ݩ{a1 tf m1# TmM[K@}'W) 5ƹ1Vb<._ X0"R (G*{xnwWe5!"sPXD?LمT2To*m͏k2 /+/Ɵ(̽;FjhE2&e<}q^ee4","NF0Ѣn}ywf^ 7_o=֨ڶ ޽b\|MMlf0gA{>}N-iwAE o0;<4Uf\0H0ԙXJEY} J+D`z+(Da/ZsWq/Ic ўVa6q_%9i閞Lj- +aкM3"d>, ֌yP񮘼}iB&1PL-r` M `iKP-xe{B~& ;C#$zZY0QS/_P]"MAiPMV7?qSsxs׉bRtm<ܓ珌65))iSCh%af'u0ux ~6Pq&q8ۆڇ uŸ@v_q B1eSݾDILB8iP56 }(:$8՚{CFg)Ru11/*a:n`6e!v%&:*uC%0V l\ŷ$ efC_Ձ!-'8hYDINlw=bKg83P#F[kˠWTN 稵Ԣ[q!i14aE(kbkpgXSXOH._Ō[xϔΆkٺ%v6-kn{ՠǦY3&?o)hK+'/gxI$F(֠/=%}AzO-DIWZwh-cߏΣ/nzXZYF |#WX3@_er p_ޛiqX4uIhJ?J|ID&*W0F 4rl,߉ϩAm2Xҕpٷl\Dt<^o ƣY i5QOӋtQhh)Eu]Wƶҥ^A]o d, –! Sg$]h+k2j6=U&I!Cx @{ga2+lG=C7<'3Se`aZO1-(qϥ\! ؚDS @H{Qߜ["I&S)aE]UU'_6*Q+WUETY G X34_ifz6~Pu~^kYD*hu~tjGڟ^ӺL+x{x]WBJ=zsZ_n>K )f1+@]Y++s}~aJ$MUj,Մu<^yO/s~W@;N~$,c&G/mwlFEVM JbՀ{&}^g3&29AP~2=XICL]fZgޠoxƂL1Swb{~~^_U[tcXr z76v/?~l3j5}_GHxh~[+172IfM*jmƥö zh?px:H %X̻dKc3p$׮#\E9(rE%>߯%D`?oE ^\tˁCz w T:_z,)iKsTլFڛuO baӀn8Gui^c [Xz4±7Өw$+;Ί면F nm/G$<[/Sgk|h͢K6!6|򺙟\A&دz:)C +QEj`* (J go; Q =r͵:A c_la!ZӞ_# Oë>ɿkó#t? mrH4uu^ .`B.{ 1fD= ]&]Y ouͧtJSԙZEi06Ƃ;k4x/ȳ2uFo3MER?EsW,f+butY۟H; u+~$w(P e'1bOS)*na"[/.Nj%48dgqdZB+%3vmiXj]Py m}Ebj)uvbz񋥟,V)˹XBKA]$xsӏQiu>x>N?ˊZPTzc*<Pe]W4f H}!dՙeF9^,<(L$(/U3 EKm)+PR ]& Ce1n:CdJ|訿E&nCUWO Yx8A~-b}t\B~[ŖhQ (. x@wy |{ksͣۈxWXl4:{Y4eSja] h2C;t#{5}&PRAݯV</zFc5Q݌ʷбӐɶ,?'Em7)ܭ- ,!R\l%>v+bLn2lFaҽTi !\*OZiCHi~NI.r wwd[ }>jďjNE=Y1vޛ4ȁITe$(՝]C(d11c<䐨TΦ0Wd(J%H)J1GK}ȥiSo]TѤae7ceM9ǞQ9 )ف`Mbozc~Sd .C3y_{Fn މ䨜>VNu:xOZE.j|r< 0 +6@e~TN?[1 tT] xUg n>IԈ~m߽+Hf+nI~diG0RE>gsS2jW~ EXH2-2'٬ymJg9EP.{а3d^MWOur o!psl>i!Sd)1E#`١{(ۤ'VI5H!5oWE <ny@@ՀVpFVp{8`L艥G$prOp̉:<'H2}Qqk\ٹwnjљDQrJ_9硻R۔5PLN{X8!}E; :w`VRYi_N4?07ꊽa'1o;{;ǘrm-+Z<:D| h E#)PvxbhuSC [wzؽWǫ E8s^g%vTqN=hMΥJ|2(+1b~tVNZy̯knex'6ydIn)S&3GԹ7} qmm,cF#z9\kHBL'4N뛎bq5d !L*Og?]}CW ,L`4b2vf.&>+ҮYޕS$2K_^z_mj4bxX3 T֨qz#&@lwƛ t0^8롱L:kO+I8q`X)<@{M6;=UU r'*gg\1ճdZ]8j=C UѯjL6o;7^w:SZ>Nuy1%|ЇgtUnu6);.%U4y0 [|ie qI4ӣZ BGR R#CΨ}Md+:=|M&Sϫeִ:fFAچa{,Gj#Ç%u5Vvξ:pB"͒>5;F6­ԘRosoCv!Ğ7FpUpԪq*5k7ubz\o4YdDߚ]ݓh&Eo֒ZS"<(c0}GPMtӐےb)XE9vt%mas/ybG1I8dMt$U` S7dzY-9V`Kڒ[TkрV🖨9! y(0#Y{FZCng٥cJĦfL_TYqkme>pDFdy>ԏ^8h,v̺y?5Sʡׅ}9:j|m`6MlŁc6hxg٢yc,IYEO$)IcQ8*Ae@_2R hw%i"e>C=siWoن`%p4,ty}3]1o%[`1bvTzxWr>ZNo/\G=^]K@_綂yQ 8"q|RKA <E$5|H‡!`9PO jv-/)z7>3yw5a6%_3r$@79q#؂"VOW̬t 3R 8Hi†v|noULlM% y廦k2/,_mXI~TB 6Yj 1hXmI^C0n91]z(p m˅=l|LUb,)&H+ GߺAN瑁b!Y: Y O7\hYzcq vS1YaoV2`,aAFO{Wy}uMD*Iw.(u^R$l%Kh*gfUgrPE;*G|C6oY*/A`BlEwM}ŚܦDV!)Go9ww!"5(3uP}Hl&"6MlCGErR_ZtE N&hF޺Q#W>(Ehk$4+ qbb-ZD7pY +Y4 vaDWnEꢎ+AQ4ofAN-7Qe36hztr4A!3$"!,;p~-"|(h:[@nƘ[8%^c`KjU11Ӣ{Ր"T&0@S+06c#5DbywrQ@D_:%hL\F>0 W**?[A DA(9g:rFƥ ؝=GlǦ?I"#KI$zr8,D@ܷKr%8EȎp1W7_$&bqJ鷸l%kCP~oS3,n_,#7Qӟzoя=۹zpXo7U4IZRrj'/ZFIw3Ml5L̮톬l*Jѫ8aAhݤoP:1?Q~Ѷcx0+KPN|s[,CVIx37 ;>%ڟoxU?Wg˫,/_}R,sh'Վ_>+O@]Qo~F _6CRIʦ(Iz?dKC>QOrLMLg/d`{ 5GǛaˊZQZr*+A/ü N-wc;'sM㨺 yKJ` "[cƋ9OE[(|oڵI /ؗ0h}Xn &8(|Y*15뤝Z˲`\)w8LJ.y:}Mp;>T6Vk+zMR=hH߈j_TD(No2vAjo%@ҲZ8o-JSԣ0GZy\o4ATl^y\f&]@7t(s~˴1 hxBgσl4/ASƩVsǯoWY:=W4<~&FqHسmZ]ͣZrvȴtCAu*ݴ5Oӛ|-Wz- jΞ=( ruB`a뺥 XO ̎~ O"`w~ ƹ q [u#%QԎ2SR3`= Q-N?bj5zqW ȋ{(Q9ұEr1miĴ22Ͷ=-P$xsrƟ4F;hP^7:?o@ u+'X"Unb_q$g.j\N9+mȆ ~ 1.śKpM~뇺Mvb>aFRs5gF}5©IqdP1(:\+Lk1{ܞet Fp>A 3v[lws( }53NmWwĥ8BMa=ej5Q,,ڜsv%M껓Ɔ>J^5șBƒّj*k\<8q 8Q`1;Ī=9ƖS`u߸72#Nu;f)@zO:GAVFxۛJ)|,~>ק_vi!S8_ xZS3Z fMݤsɴ@sp`B_6C1pB;xo8}[-H92,[vƯRܖm(670`HS^C,oISȇ $m;&[.u؍MhkoTB*]r |])uiTpx^pU2lP+=2]K'"&Kr(бTaDsCA3'MXIkhi!xz5bR4<}Z )0}v D!9f;\ $7t%W[gvBL8qZ=~P=O^QwaI~.aF%&D&Տ(0*8ʶ{q7 sZOt(X^wA_pc_׹/%#eyIX`HoK{|J`F/%Xfz%z$w%D  BXq`hճ2]heհjHİCd\R)9>"N 4oKI~&hO@|vͧ@3%Bq^ ( "o)͋ b=wb{y$y4GUDZ[)K^lZm688AG?X(c Ѣ`|ZE1G^|\Iv_]TLJx Iݠ_tq_v{oS|zITwpUdY:Wk)<ޘ^rF";~faR z'r7K6ghl~2yOuc"JBp8eM~ݐߋkgkl٫ΞE9:zUCLp앲stC5Zm2a"*PM&hjêmje]dɚ#*T)[3mK Xm)U`;~ 3>:P1a2)G x5.8-?Pvf%g{jyW(k?& TwPfQ$Zs+ J&-QG5W%+⇃۵.%!GM^ע3bpDJEoݖbTi6ij,g0?^N95>w+cM7drA;Ac8 {RĹ:Av~@˳ry B^X٭]+"# mwvdጦ͵NjMӒe1hsgN!3{#\*b$)*֥C-&OUeqv-|$h*wӥ8Bܿ\)dBTؾ./ idG79cao6q=ƳԸ^^`).:-ʽ*>IpYT+0O=| $2.s3;0"b ^7rh[KtF@#d#g^UrvF y n4]}i|L]BN뫾2χ۾#7^e;^75*ce9)Dh|bޠ1Ur\ ҴDbySI ZO3uKXICW&b@9 o."Gw*+;`D:*Ux.Qz_'xyT{)8 (סjn>SgH,xZ|3;[I.Fy+ zλ3f#V^!<rF @?-3k@GBKjRE?NKS.gLp"u\q-Wui^pKR%Aw4}4T91Jra{{}:i1<l٣oTDb57?^>kfG ]~UU]+QsJfN+߳dy2XdjޤG׷*mu6X-] `׉') ]n—XR9ssuPnB+ڂ-UPYb"̛as׺aڢFצNC1Uٺݱ^NZ2SR–Gϱ>kU߀vfi(rg_e&֝Kr_׎Y7AT24 3MҼ9BXsگ #qfI*4z:FS _>/@?t6(2:o~n~r+oh1 {WB kXt4nZD1xsk4\HqFS:DL?&y'5-M[# c{rfEu;N8qa-JrCBߦ.Mݩ" vh6 -̆_ `M RP?WVLx"Yi DK+EuQ`[cZ61]J|7$BUOAo)]ДG* J{Vut7)3̺B^W1y2'^`rH~+nIW^l nId҅R'CvVnhX}mWг i ުzC{2?I_(Tso\^.'V.'7oc;YE-,3"c釺Hu|y(#K6j]2&csʙB/̙KzG啬IU*v[Y_ta;qA*$ fƐC1$hYWC3B?OT,ZF\<$CmO?TYf g `n l_ 7jZ􊥆,@)j7N+Iȣ*uYVzq 3[OR` 4a]|}e PQ7L}Hqʾ}{}AI4<ď'|S!V̂ `5Nվq8$4V]XOˉ7 &hy;('4v<=UhY?f1ĝV '4 ~FniK$EDɹqḛ , :%\@2Y'U 誃ɗ hkt@i:N3Fm(&!GۈW>%߃y2\\IK'0To`mbH1' @_߰tu RvF:'JwUQ*wv(,M$~ۭHՙ;"IA<ܳr7GS Ѕt~njh<:"f2/IǕd{EbiE=˞&A׈xwAPM)G rtъ>%3vlLrEa9QtIgTSD[{ AԜ KnN=dS<Ak'96BPb. Uf?x!Z ӅH>?2:ĊD5bv, r\0eunt!zυBz+9u"}gD S@»3Է#ʙ(7"09F.ʡ`D?`ԍsBKw?9Xeƌbşq;ݱ&Wy ?X.oNd⡊`3 :!n㽿p/qr~#ɪ||vP}LwXhIbDm6QfŠd R>N%쁾~*Q!>57_~ir/y|ic%L7*j>ki%apl_3di^ 4K~Jyۻ?SM2=!"h}1#IlZuY"۳> RH(x6->(e=xsltn^?0LN!pCΆ5o2fwβWj">CV>3 Z)Ayyٹk׺GGtv}a١^ILHM`ዡCcuDwTr4f0V/mso)}hˆKP;Rꓚ,bG^3;6?K^t}Ō2Q}l Dfi{<>P}zWJe3*$-b?)##$ڠJ8յb4 l1MIt]L55tf۬*n®88.!@#")OS)~xT4k?fOb:0SH ZXuxx[%ի'dڄc] H<n'F[zo ਫ਼`Cy̺}.M71b=""@ݖLqv:b!x .c9@-hڗ)L: G8f&2vt2L-.r&XPO'E7YYfu bk,j6{CsE- otVoYE~Ī<6ha#vG`pkkcp.ތo6RH!Gn37#~P)zXN"TOp4rGX?͓C6?|)?1P::Sd Ծѫ=#s&PVEᾨ2o"JZK 󺼉O"7!46ʺ[uUlJoXt:ۃEY"-FEH_P ݈ Wt7 as~L@lv/eً x"IzC*PCβ%bf(;01fχQZ#k컻Nhk)Tl#;)CW +u{~oHXn-N]>17[ԯ@?I ׉s)\9%2ه3=1+1\l[W)%d*Ǭ#S*t=T5' hmC  [}nbUJMYQ]wf.!T7*23Ze73ty fny}@luJ.Qr h2)m釛Spiط>ZD,zߩƏgŏk~o@9 ]6@De|U5ڞϵh/2rNHhyJ,LI2Wz$p!jZj!1d_85bou׃yޖEҁHFEHFZZ&J{!5JRstܳLXՎնwَ ?ڣkto 6@gHiV-lVi?qgr(6`R=7쿴7,%TQjsTxc8E\.3J.G?b/xN +QZ0E.6pxaA PJrN}_&:o'e]犠mC.ĤĎvK'%użo8 Z{bjEɋ3Hs-_͹Y?mqd2Ք$ N rPsqtaa܋D?—A'G5^ Q'18KVEވ S g!I!@ȏűʡ[Fk"HC,}Z{!:ui 9mJeۗSsS|hŷ|zLJqf zwoLFt=89}bC Rt<>+ D%/W:xlה?CG} G1C8Gvt9s  Ӧ7tvZm*R[[\)u+'u2k$} >TƦp+*B̳.ݐiOwT8^FYi):/ CYNr & $u*<`{U,X aQJpd%SxDX92fz;VLLMV!p\ƙvr~\-rKt괺'鋪7OgAozjcC;QVrT2SuI Gcv7S_\9z aJO"dΣ~mjM b[`Xj1DSЯv1 f [@ϫ/qipoE&#L*soSMj5?>V`ж~ '}1\j0BGIIc6O < #9 ,箦*MMf+D Lt>mY-)"3ㆠiCtP:.]De j!ơo+X#d* ˢ6;A%1F?tj˵%ELhKpdf3t_ 02mQ|D7ˮ̌~`.\ڬ/tqX['{4Ѥ+!@Ђ8܌@׫VIIz+_qV;/ܣ?EWx")H-hBr C1?ص6.PyZAbobSwVheː7xv!b])0\WSb=]֐@q^MY}h^ͷ2UNx>)s3_'>Nj k :yYGLDmf3JܹĽc6.(&03("Y)iMyʥ]7gbR CV@.!U㘡vKUVuF3$#-cBHj}SB }9iIZ26 bdjYe9ԙ>>&Ơ/.׾8k VErV60F$-#\O'=eʼs>p+A D6(/9!'-y{aJ'VZPxft}n 2Fk PQQ.T}C%ҾBh<}+nƏb -ݣag{xIusC;+ڼ2| ,뼅 S"겢!]4hgwT/V"XE[-3haۙ~ԝ7D^OEsĝIid1E,bY; 2o7w%HQr6FcC6mp[`{J=Kd>P^֑ i+k)ۣR/MA[a0Vu&ESM&^瀉0~!lngNz SJHuf 4)C~A @xc,CZNF`V5GؓOp!|4!]O=n^hJ]XlRVSsDfڱusUh{JДxmL׃Oq[Z폈52aj TVhњI l^a'{ /vKnJgpڂH_;uPG%Y|h(&/u'f䰞#8bLեMC$*zp'TQ}EbjM rފ>,+l"Hs5v2dd +&:e\j`ot6$@gQ()Kx?A2j3,>ŵ˞ V?ژ|/q?|5†Odp:,!HK5f;7) .UfK5 OokruFBOjݼ;{y`T>+Ɋ_3u#(Ҽ_+?]etl \E`x6C?T Lt\py#J9 ت1&qPӡ^r9<9Xc 2wS^}m:=ꡝ&C89bgfN6u{BNz`ʛeg]ew3w)ݟ`cTtqrГLkWߓidb!^6;jl긖S~D$V8NJ,b/Hշ%qf~ Ì% c<<>4*o;j۝v.*ն5"ԫN!V`}W@ ӃPa3;,{S눈Lpl,>COhˇ |u1yTYϵ7a#P1GsO;ݵl\cڪ󽭭AMiVtDgOJk$$H 8JW7;:}:i~Ӷ_ m9O AWDݸ8mz9.ٖpq[.PxF* Z7W4»װso"]1!k:h:Ǜ* ~"WtA20KH}iyS~vVg&Rۯ&/#e(I9c 趦lCUz(8>YoQu>~͎qW΅/cdAeq'? YQPX:Gd{uጷE8 K?J8p:}aӞ1ቁL9Tcfr{Su)tp7^2[5qlq*F ӱ4 Pֈ18r!c5, 6ߠ~|:I YѿOQ`:W_s ;Ѭ$2̽}h7OuGD8w%juj-$ N܉萐TS8d Tp}XĘ\hއ^ٯ4~:S&M{]km;Sqd[Rsq䵓*ĨȳT^7UW5עznێ3u@}#X\k?H,`gV扦 *z[@Z) PkoJ ]D8svTzwv3n!'*_hF +a u.=$rSw䫯16V{&*YiPdP VTUa7׼I0|L0pXb( * \ hۄ9aL.B,xNVe]Ե~ލgu-5qE>0"H܄=?X~KUΦg9jDf{'V|_aRo.ȧ_H;}Scg}D"c>l45zA EMKJn^^bAKr`p{gdU ;9󙖓v@ێ7,y@QzUբFN a@J% *ޱʪoގ '0}9 f- 9\:_t(p&>|OZ,Wr=u`,aGQsn AQ7ҝ*BT$C!RkgHz|\mE((p09%DLJ6eO.79&KB #a j7qT**ԉӽeqX7MҪxlsq_n5R>> "#C-?}8+~NmlUn% n#lu/1ۊ\\.XTƼXKTD gFgHTt*ULdn脉{fK8g V"wDE{:ȥ\@ T A dZe!05W]A5+~7o4\nzR=&}<4Z?6Wo#UU <9&ݛ CR6aV㮲/8W>/G+B#jR/({W"w*39a&}{)%W}&߲C5יy;wye♝y}xJl@!#~&F[..zZϋVUn*.6#<(/y 7WTMu;j{ZC6{χ Ccg WFTv1ƌVEڽcDn˺m7q;}6 g4eHL~el Ƽɿs7 9? X~sAAYZ9v߁(?Z@{!H9VG+rhq1'*_ˑ]yd < >R>U-R@hسDh50_~Lexmh.𣻐Y2CITXQ AN=7& Jf<@VTD\^_.o?nIOQ(Jm\͹FM5RU>E寑.:gbs9ʇM[>ysR!35: # $ U'iHf8\i]r@h֤? [|1Uؤy,j&kч+{*?BwN~grHV+&~M .? t\ohkU&]C>ϩ;ͳ-dJj`rv;NUivqjp;ʹ4L'xm.I|Rh;kt^uBم]j;W"r? vbBB̯oHm=]0:]OP # |ump;C7"NṳF |o8%G^\Ó~'=gd;i\5qnxœ=q@anMuO GνȔDIXߩ7s'-&6 ơ>mø5&v|-(L2דӵT|Qh^PۛeMAKTvwO&}P@!"O;6 GyZ@,Ɉ7)%~hqg0m DDnS0TϧÐ%GI5?0GcP}j!c_)_a >||q3i.+>-e6vR7K<8a^`?1"O o]}CI& pk{3i ӷNI[շbenu\6_#gh1ƨY9&Z ZA0>!9/w^ ',Sq!K(ՔZ/8Vs?\J^emhaX+b̆o~x'7FuCgWؤ#j~4FkIUȈNJJK,!/A}=œ(\PM*ɔ[ni8}>g11#cs]GaFwt gʴMj׼d@{qmڲ{\cuYDNd},'u'/zq v:W.oR}Y`sW6ҿp`õ]=fBs.7zUlV6H C;%%vږy|;ÝnANq{8;٘KG2k23򕋖8 THsuvϼϲ: =ID0YׁvYˉ\;|N"&J1."~sxA(0O ]aY gd[% [H5S6Ӆm8.}D~?ah8b-6N 랦o+J,5SPC"7Ԩ3S <)ɝ$BUjT*\mLW?ZzP8K'cϑ30d]; D=)BW\OHDRx"OkWqL0. Fk?!Ɣ?2,PF cHCA #`gBdU{*6DW$ttibXpAbK"?tv}6%- 4F?g80ƙa X8)wI48YV-$>>g"S H7[\[%2f^m D {g1j@FF\;$5Lв|[W0_|6kge2$nt6RwXd)78d/QzrҎG^M57a|~^4>Ӹpvq˱D( dBh~wpqF4ʮ`+Ì$/NqT[ i?jt"0<>yy( }-9ch eq:@0iw:W.[]p0]$#+h>[^5Մtk]Ndo:~jF̳Y Z<, E/gU*52)p8Yb L M5j)6+0K*.:GH7TRH.Y>DUZwh/dkEP*cYZZ1ِ}< D U׏e³"ټwW=׹+MM|BHdyGɽ@㔣!itxuӜc̄-({oe.2N*2S}Be~(Žve,iW&' Zl5pR -UM`?~\X!D%2ms*~@ϗ1ℨ#l}Y.e.eFUlXAD?e?@M.yۤɕi6_Mt6َaT;do7ݒ׷ & W@m0?5UDa^x=Boݍ~U <#[ZE)gv$A c-/lt!(dl,p޸ LG/0.ˀlHzqqQ%yDLΠ;{ta|6=FG~i`bUpTƲ0VJjgMZvW!Xl]; œX8^ ܞcɾD@M߇ueťc/Ev<![Ն+vc D]2J9I>Jq62/C2\y!jP}vǹ7ǛEKb%ZA£VvׅY7Jà^{5fGjڷUr=q,чŹxH2莪Sf߁uUu,%q"j]-.sN^$O{^j$v$Ϝ'-~ /?ooZ5y[;rRK#rW?pQONWljm.FFcho\\0\y921JXmi9UXmWQ wB4VVyd0=*3q3^+p^vEXQxmτ⣸k\d"}% `cr5W[jT4BF7&R0JY#E&7 CS Md7>.&F¥ˀKV3Ve R~~7 mvt2a-RGum]'(WE6En@kˎ_R#%RAdj錄# \CAQ s5{rR``p c2ӿ.ڐ*Wx*rO%V$* OO:|7#@F{.F Je_/r(OaJK JB =cɰCEC~4 x5DdL,FFkIVH!q&Z9LS:~{:5,]4$k!7Uo[4 ry G^G[ˆbE[= bp Z{|~9Vro AXAq! 'Oy씰(h馐D@j᠒\{1;Oʖz0||S[ _ {+ryړa滵[Xp.t1. %F-Bְp5849n7=cPS8g!Y$wfrv޸=Bv؟_ = q/]Tm6fͤͪcn9Lm_aW~MyLYoLpg]*uK~}3G8 VY 2*Y ':n[V1cb ,ĠT u>wY2e.SFi#_ HmEsP(x;"p禵qb'7 P{.|6G>|&Sɷ`n:ȼNK#lwՇRoJT.hl,.EO@V[&U]KvLEYzI1Tҟ%YDl A_َpB@TES:,kF֨;T̐] @bu]pxeEZ$ MD7KdT<LwiLuX0Sjletm!s"ʘoޢ{Ntr m_hmuȓ_({BXQ>伧Cy/)Ap4-, Ȇ#8osZ'dFrkj hgHr,z,aөZ?0'ư$$:UF9mSn 1Dk`,.~BhȗXG<ńf8vh+|XܿY/aűov8>*&9ԙFbDHx0hKvNaOVjn(g+@{HX :@4"Le>aE_oNc|gwX e+Yf/wA7nAh6>n\=Rߖwjf4Z|"a/tZf= I&?8Rqw65P*60BbZ¶l3feUbDꓛgo%W]E;*a˥ WyjSl0˳W%/@2fu8eoX/v% Yeyre!5lЁ+Zf)R'\{ WmҬ( + qA50jPiܒӻZ_W  B Mw;Y8=<A itb. fBBnz4mΦ*ؐ\ހD㵫sRxT%=ՠ-SCKW&sgfnpwYwB S> ̇_1[ H'g*(I[::i*}ruWP<FtgKrόLu|D܁Q>Y|bhdaX0@)YVA̪&!ǘ~!PIٟUYFF\7i'!#2DzarCuJ'iFڷe=0k㜘@~r){1:93/×VѢ\d^}7>z)!ϗibDV1֥ 2HKMn[= TT҂챝(W_7LߙR>ExlRO׺\[6@,8Ne h1›dPdMTY7P>)UhܠDmXٓtG}y7CpXh d1u>E~*anZ_ó G$M`櫦mV 20rŷAoƈ[O8דb$,.YhwљbewoZ{+LI#Tρ=MkkJ5ΩJ䖕$"2Ct0zd1szqe/%[~B0#Y.?23Wƥ^ց3Wޓ&5X8Nh~s38('LɮH>G@ |y(|3te[&\ױ]q6U1?\F!Yf6KdNRonsRu^~bSbbSI֩[m_vnqy[Br5ƽ/Y*_=\P{p4c 8T`u^ћKEnU SX 8(gc~ -`jPP['̈buP^I4cIJ&}hb)&# ߡ2ӧ^͌؞'ƙ{po.9۹ĥ hX*f2Z7)/mG(,|Ui(3e89,o܊v̤2/bTT_L__?xv;9nKS98#y}fyÆj&kz"]];E2d=wtuAۅ^#aveFmġODQym]8ޝ[m~@R0D?5dz5( z "Tw<jyUZ(R:ƬV!aT~lU)-u['?ǖD;C}}3ݵɪ ptvh5;i*ׂSk"6q $A&8b,g\~K{Ae''o |9nEq]}(AnѨWfW  "L!xjXx2cf&~a[],zk`o5tnaD߉ n0X%it:0NJ F*k'qD:W**0xi+f̖Ɍd h ,3lA{szorKIj|*NV'% `flQc)Ll\xUyQﵯ^{7}]|7!teY %yBɦ1CMhbp_rPk1B/YOa"htO~ @}5[JhpUI<_3.Q"^mLnfSK4;Ps>0N>7e1ETv.Y}nO eŝMyuf3\ BV\\3 O_f| @QuԜ{m|h֠U$A;:YPB05C9BvbFмҠeϋ usyGƧC P{Z&m1@1,ˈ`2D4A5H "< :CCQTc<5Sߛ b˸p~wډh֦#t Y%@sd֠Ղ, 6)wn\۪D{a탲^="IW>m9KBL&`dKTZa舡T'"Ҿo9s󑰕9&5w;l$7vCrf@dM]l*N9i\z_b~`SvڛRݣ"X%\ 1EV# 9b}R8CzuW:s޸>Z"(;WWJ豇~k^m+I-"*w0TYjd˫Ɉ( ,%|l1Oh.T#=FiޠLAZUuץgdJX׃D#&hHӖ,.];s=JϦmoVpd .Q0A-+ⳬjLg\f BR/5Fk]t ,R "1]ᦣzQ6=x+n.﫳?_d\V6~Ƿ0Pu.xSf_e`mJ9ӵ[vSNIJ|%60cř`V8D4q[ 1=H.D e&oo&S>ҫq$"Q7DĊg!@"h48 rgsOJyaZ[5R|ỳC\NU~fL n8+-!UyQaՑSd83ѤEoߌNN SR؂+XqCtI7BR*}0@{Fo*#EmyςQףRS9 7%C(]Ufca۞8GtZ0[ [TA檛h@&86f.W$Ԁ>!pvxy/,Y6Hh\WN֧ @D?N$7vTvt2?SaeJGp0t`GN[fP% fI6i_l\PyTU"29`L=X<\}M|DR PL9V՝ !h cg{{g#|.썠Hg~>$VT!~& NInl@y Ӆ0kW6EeWpԦԠq]忳hu2U_( 1FKAMesnR;&ǒ&0 pиx_Y;:B@`vYZ5a.j) jۡHgT%ڔ0̅ [bf3/)oyWa(% s 6A>cq v\}QR5k_3E֬v GbN5Tu0ZnӼm:~rDMAM'{=mtmZn -ZІO%eH{ - CE1I~7r;q "$hc[]W]Oܼ 'PB!nZa玵 WQzb [WڐY_9Z*pTP`K`^T D7Ɣaµ= l%}iø5c=L~ F{&b&_pI~ufͺe1iC4#ъ1|r>wU8#Mv"=>L̷c, 7s)PL_VٗL_2 V>nǽ,ڜuNH\]a1۽(%[ptBCKů:9 Q (\bB΁L9e$ڌܣV%Ut COaMA`4#s5D.ri\]TY) X&¨#UZF>7NEB%J\+.qdB8ZoCU=l}̐bnKTG {׬1Sd{(⽘̐^Q"x.x?ʗH%qgfm@GT/JUIlx5C a~̇Y8sZxM߇:q{hHLh0PMȅN4אThDRw: \T* Q2ؖWxp}rm6IQSٔ-1׉jUDܨ'0y0eAAt%vV=%:p_@FNFOjϵ=əh 9hb;@]~vgiYFl,$^70C>l\Uxĥ03Bw-%OS| Df8cAu p\c5 h&:7?_~:ӂv#uNc[^'Z9N+;V<{x8@omC1U'1TD(ɻ_[aa ۫5#3PN $MZO Ĕ{ o=cU ftև6 o̱yR&[bb &9,uk(^#>F:(fH$(B= MڕB&;l;f2BjYz}d>ˈ,^׽6ia1 )t*mnͺs7%M!AZeAۇ)k5|ZtO +FKqCbٕ1.f|DzID$O;t%t"._+ "c;d]ۙdz.bx'n՚JM^K%Ek@IIb-fd5L Gwv#yݚ]݅aL<祕8ˁYH8D*Ĵ29Gq7C|=#\>on HfwI:ɸO :~eꎚ>/lH$GKy<Wv5dut[Cv ~譟/&ؔOr@}1H';mUB7d@^?_6l3 3iƟ|N=⑸ue 僖"(hTvŇD1h#ްRѲ,z7;v̍~yܓ^MUġgŪ)Lk#>>LЦ ts+}(ovpQ_;pҠJ#%|C"XLAԖIE>fdZ" B4K0?|tR}N"2r(d gZ=V}ܩK<3¥f%zAx7C 'SY}6,=V3 `7oh6`v90d-SNY2 jrqTӮrf^aXb$LwВġƌiY 08.H·SFQ5l0aHsAA3+f;yeBZמ77 t[/"*qw=C/BhkCoHPq }{6f9P6>uG sq5az֒Gzs 2o&x_`r )Û^k  c~[I{&ԋ9W צ4x"U)5W8#lDB ޡvũ$lf( 5Z]~h| Qm ,*rVb 5%s3xu;ylHBOɇѸV _Te] 6GVeBEo AX񹃊DNɄH E?N|;m0@ +%]~% *An|lG!yCs5ʆ_#თ !o+z T@>oگA54 rBϗ,M2s`IaUF}~iy{0ʕVk-ӵ!} xfSl8}amk* "#u3.8?OYE~'sP (M ܷxx.B3\ݷ #t6E̟_Bh4>$ ,˲B0[}K4!I$X.iT{bqr&ЌztQx7FλU3 ;Bk3mQLCew`a"@҈}v?,5Ħ`aԒ>E_bh7%sZ2iR^1 {[Cپ/OljỪk*In:qoQ@D3@Q6'zG2H)YTF9Z&Rjsf-~IpE)ĞZ|LVcp/pun^0ߏ'lMs4 3TyF5^˹WnšPmQO;Æd϶׶2 \,b(ʄq0yFu! eEmM/g`56@n[EkUBD+Dk[,o v.-kf1A 9Y͕~NSYq/,\ioU1>-@n+Qd)/6Q sʻW^q6B;P}_չFY(()To)a,J۰c,|OW/Ɨw~:yf-܈pY)۸;f؟O,?  KuN%&%4 8<>{Q]Qn(_̶U4b]{ᶨ'7\DNsh ]*ܧ^ޓe&I`$h6 =0C%.9v7 I=&Pfh œS!#J(a.&6#y +^퉐ĪϹIf+~ V[7u[h^^zۉf @kׅ&;(ki%Y;w83t>9MNli>mikټ׏B0l$wCUSߣu-8Gnp/-J 2xkIOn#470^<;T.yqBO8!e'SP6 n\9I:+g޻<96Y$(oZ3JqA^;Ә ƴ 3fעixR"Td6֚d Ż t=iRQqJ6=Ч|ĖwM0i6:i=-.=Xr@l@5e}}tL7DqϼK18EZyZLɝ%Zv&WK"@IIȻcu1}KK67: D2lF/{2 E0>p+ӏlǽm!:,6^K)5k bm!K1PM.~@k`v?V8,& ۍ8%G.HØ3fşi AHsFT'TgZ uqw -44KS +뮢"ZYzoڟx7]M]~3J3y|vE.%(J$sőе}m`+4b(sXxX1 ӛ{4\ _5h3I6@KG.v>$=H3P@+=u;C)xrgL~oߌlO߾"-OC#內WۿX}왌| !#4{bMw&#Wq̘G: EXۄZZu%g %%lg.Kz(e9SD{ǐ7hCq_D1$PRt'{rMJ4g:4;y7MkG0ܠ!؊jʵk/GT9?n.U~j܀/`]d+6 xސnF_o*XN$tQ_v{VCꢟ60ҁD|Rk:"-VBOK, nHw){(k?MD.h{>if NҬ,_unk EwmaSFW1 ̱v #vPob.clnإoOnʩ0>nd4i|\ s2]F] ߰0{I+' xE#KNV,\x7v5x}<뾙#lO"k7cYSY;UW߷޿|!XkX"sZ4s? k6;dj>L< 4[w8Sf$C}=^~s ng@+S20im1Xh"8NfHlH ?{jC xױbߡ+`H^lt{sNb*ƑNٹ#c9~ӽX4F&L3t!eP&6v. [^Z|jS+>}'iVύ1X-IlɞPyyf7О.M{vا StM8Rmb}ft{EMzԽ,ƙquP sOɽjQrW0zw=Ҭ ^3zMd?Ĭ5u/JFL" ڦ454Yr=̎jtNZu ǕS|ΐ _r7Vn1 NǛvp\veGjw ]8DRX Z@r &"+a7^VNLԘn! BP #G <.ʝYG-۴L㐩x۫ 6''4xZjρ]#KWa*H@ ,[\I39k0wC3%cYzhh'^pgAbDd< !`,UKk }`1ŏ?O4 FIt̬jhWmx}uǻ5e*7z k_U@^d#)Ɵ(R@!G: w6꟯:#6CvPKc;0s%#g+:'iA9A$ %]]5{ -M b={Tꤻft lcECRՐYəwS5m_ܬotW8 w>7V'J3%n%$,F*+ NzӕmV%5h__jW"ph sh$~l{{VXr!艄 CЭZSncMz%h.CyֳAj x dwTȢs*9s(y+W,XcXx=|,ِn_rIWެS'2#Z<(\N4-Y+9-(4HXn|:(GҲRGOiIo7ԟ#q'޶49 >`:7Y6!F de ?l@u]ۣ~ nn62qk ܊YEylfG aV3àlx1C'c'XZ&حVToJAm( h?boᨮ?1)c&2R&QxK޶ 5%P8.*KPO}֐oeD(_Tbi[_$`ՙf!;?Jq Ŷagq[90#JAG:ڱx|3k+x3`zZܛ*Kʍ(9q$EVRlU[ LE![ ʶi^r h?nF 伶LQqVFto2{=3Dj`cHC*Hvu9l2C\y6L[?* @FB2vCW\7C GҔ|Ƙ'pĈI^Eې]y3D]ϐ: ;gKX^*[SˑB-ѷmqP|0hFfTHR*Ͳѧ^sAƠ嶂ecAԩ h1:>P]pJ"@]ȚjiЮڵ[iQ~sR,f~TV;za%{i9+W U*7O-մ _Ɯ4kjs˞Ydjf"` O'o}Pc!2%^Ϛ: % 7 8>3YL=n*Pҗ n0R +ݺKӽLVs)z1sEbB܊W:s ܇-n" `o;J`kŅ?x_'Dնl.?-_o/Ӹˇ,G/_ӧn_c~L.QUukVXnh?^8t,x閩-_%_?hO?a_SWUFފq<7ܾzx6__?'<_KMv}l^9o޴iwMPB_U_8ɻÀtwO ''a~|~_O1?'}ձtg?,"f9slEvVIєI==)DΟͰؿ^_}RPIEKYEUA¤Mno_Ytr92O[͖JNJMɠL)ע+Ihz9NmrUZi¥qZ)hbEXmoۮ xQT~1峔;yTǐO{ΒL)ʢ]ӵ@ۘ]S:%H˽^j*LT\غyjEb'R/ÙEEG|)YaNrەiFJ;eтwNǸ) }Nl`QY0{g6q+hcWo% $ϣDdx-'=%)ӻ>gڎff_-65訯AŮC9Dk P̖$N5֥whǧY!j8rn?c*TBVD^9۶ŕ$Yפ%BD *E1(@S<%ξ| m?@[HR{g_"CՇ=Sx!458fI<~/஑XD; :ԉXu>!|n*GFjj x[(XQI9?LNr_p#o0aa7t^y򎜹h|UKLhl1 ɠGۖC?;Bpfi]P':>d_IF̥?C%=9F^63-{bMսr';'{q<{QS5W.zS*<Ӿօz̐K i+)-ISگXb1mbLy;ˑt$|I(e[%:N!_5ꜽMIϬd,}(D2hf܊y{cMQү>֖s0xgu''J3 ?:,H?/}Ȕ7 P`G_6EաmQ}V`Vm(WMWu~ Zg톳e5`[`lVQmM{3 S~H[СP gHGtn2x 'Sm[5*s:YI"0F|퉤]y>c #ѽ(at7~Tk.fZLGo|3ҍI.\i)e(Lhj9Y/ASɖB2/J-$*+4 <ȵ ϝ؂Q D45zo%$| `~3`[ȴ  ,^B";v}jBnh̲ i$ כmraFN"Lh1t%Ix-,)/L sC*n\\$e:6񶹶'neV̺jkWyR3s7IjfUVN|җ,H^VusDBl}X>UQqx!O`%nqfiIZ؟ ۱!&Kc\M1szC[BFa6|#¶7" xNS61o- k)lYjgɀjͧ*_p}f?e$`ÿZf#l}m\Jui }Pi,pnMݜPJW' ` xrO-%~ٞKnOw9nO):Fxy V/g[@U$Q>Nh-Q-IՆStnm1Iϲa|))#(YS|+R?l $zvm d`4#"S_7cY e,Jk;/%ɟܑ0Qƭ&*ν>+dD-< ;#Bp8dE`ڷK r7h5 Vѡ_ gZLIdS#b\G$$>3P\?/fݯC9!] ֤mjz+}1e\rDp"f {1z jG9g irS ٍQ΍(aiiF6TLWpЬ=ĉGD\T#m;FXΠM%-d@{0+CXt(^AQϗxM*PQz̤ @FU7L4MB>DVWsHH4>@7~z] |Yk(Z< ro/ˏ4 {-kh.VX45IX5. u {6SCe+4˜e,gEO&5RbH&{_~t)e˩Ld2ߧ|ܤ ~ bʲ* ),DdZN }}`'{%_ȌZp$Y P_Q4i/ z9[Oѭ:7:ogt͢4B a SHc~{ę#?!e 5,'U ox#^/JmA*^ -v5A tmuh: O?⟟ǁ $^@d1;[DkAQQgӛo) >DϵMH7mެUthb LtqKAl-5x 'զ"ݕƑu q"X滟D /2 LR~ d'FMY#-\ʭYRS[pK%F~NAZ>*sDnYXUsrM.rBļ;Y%sL 3}r+6Q¹}g{k^A2ax<Ӳ;ޏx ŸIY W֋k=WߥYo2{!<%E5$9o%}_sTb2|ɩn^w/Ԇ)ԎI|!syd8ufӱd). [V6(K 8NoJ,hoVd_ÐP|aiͳ$ W^kXŔSݡӪ7l#() 屑qٸ } pX @5pnl[$[ʣT_]<\Dpv{.ncbBFC9 %?0̼I++)v G]»p?k`yS'ȹfQ/y@뾄*/!8`<4g[=v g.ڵ$NJPQ ^#-i={l(8||4B艺{=cPBˀq#Erl`W.&WK]Υ]o0J1ǐ~ɼ١K9*i ~5rA{EVF:KkD0FU,'{=.|ww T_,¬zܗ1z(fFp r/(?-SPl _HoW%Ep@c$JR۰8̷.LnK,BB_pCuR"xkRfO+$u1s:SE*W|ihriY܏&DZK[EJ(vAۥgB'ƚ2%~4/KK]/ gſ_ہ<[_ؘ+Z5pPn󅝵ؒfM#9jT;jtnawrdj G96聽9zzULe{Zр}? U!"2u<쁝r3]Y p<;q *YLE܄[whhg]?- vJJ#`.!A={C꯬1hE;s%F(!b64q$crGVmGN!{U 5]SIS"iB'[pnQo&n$R~V[sRU\d ξʀq8QD)mؑHG6ulnJ?Q=ȦGM[X#5 8}جbIGzQa{\8]xa!(݉|h(ëGiUç}퇂zN>2my}9ڃR/ ga 0"q: ȝ(30x\ %Xglhrx[u7m}6,e)ݡ/ ~qn ]t -wxxbiZ|ĬSW ,&}KLʼDpޞ -vEq+[rj(LJhb-Z`E5/Vcɥc#ߦ\1,Ek *9@lzQ)+jt䍛 bkz-}\LI,o_Lf&xd8}kGԆlQ;S)(/GkUp+8w-IOFug /#-x ?eRk#huI,QLUdz]w-XV0 !l.b3)7w68BH n:nu# *𨼏m>qlm}`r6t1=Cx͊R)hݡ5|Rv^~ a&iV_7J,Z*T֗Mt2Cql_>sj?fi;OR[TWB>T?CT%|w^4ʴTφ3w*6 hEv1s B,9>S`ݼKǑ]1[urׯꤏra/ӡ1i 3SD՛._Q6wvZ1Gf^25*>BW!-.KD*aܻɳiƭ*2Ch}>q%0uK >o$d 䝴*ٔ*饧⚹ :\ 8N 5eLGnQ5j3rP^돉.8Є6g11K1ogFc 0A P6E G ˰[.6AJx" Vg`9iFP yIJ_YzֆiƪBYWʗ_wRf ZgW^DNA^5MŨ ͟ZoH{%O1羐V,@eX^6@; u"s#EW)x,if_s*2 4@Ȅm؎MB=4+`Ļb`[ kr<N<9dXՆlϲ'zE\So#6Ɏxf]6{Qhl,-Gxod"l7l0y}Jʷ7hx)ehK}G6=^-l/g9rU<;]&}<:;&W .T{ ׄ."IYV`W;HXpTx-3q'vc% H+"&-LؼA>KSh[KI#d)umfDX s+ (¥KlclƲN 1=hfUC H4iwN (ts]*_Z4h2sLEdhIaAVDv (˅ dt(f3tTtVc>ܗ>30 0~srɿ]ex[bQbD3Tgrr 3TLpꕨ(#"yXRÊ\XW3WHw\^#u5m;+*tQ7 2utL3?A)o5aO*Ok)VĢZ~S;!c)WFdwTSѾ3GMDaӯ>I&ÐB.=|92iA\xܡB-Vű '-V'Fh`n)TN(rWq5wZRY/E iI_!! ^4wju8֤#^E*|ݤi1uI4sWB݂ⱦAϚLmq pN3b7v=2k]1C~3oF]#@W|f -uVἁV`o\~~nc<̗Zx B > \Ҷc-ݳ0Ykkb3WHqe2,Y2!P(u^zdD[de yDكΎk^:T;ONnLRF bI&/*LXܻpt]hDQHDoS*A7 BBDk.AͳfĪPh7Bx3eGF>gFc/gDGhɑܤ P #owsXFV 8e sx Il4bҩ>,jKfDŽ]XмOM(}ӛR!$-3kt-yC "A1Vu3:׉Ŝs F=Q{N\x\!?!uhm ˷IqQwE)eirtNAQ}d;R&uJc{h#x<y+`s)}ϓUrߴb8[[zjW}L<= / H).UDAƯP\/h+/- , ^h̥v\o$<,̠sVQ<Y )Aץ _|@q|l<[i)2>>poMig<8),s+%xqU>s><=]\m Unv~x$SY5wkML MMz}6? ;SST.L7~4Qw "d3bYEmdM禍_w}ߖuzxWuKtjHIhLkV7r% \cNE;7a pŢ T~bfT,;m~;rǤnZ5w ^bJXiXM[OلqǮa6{pأD#ͫRyLƧQd]ȣ:{Xpԯ_M{-VΑ3?Lu_t|0ԭfnkr#mC`~. pR:|TPHrV!QξB^*Rx=#z\ ipX mYTFUq];($>u){a4Gfջ}*Yún J +ե-UC,7 0(IUPuM8C eT1zZ$yc@7n?Al6'پ8vXG> #˄ݎd`v@}^Ҥ 9 f O1>Ku r6)fMDֳ3k9 (?LzU_XkQGd rϯ7=$3> ];ne}ИアwMh ɑ4Yv;J ϹJ"vIvrÔoovNZO kE5%F]ЅTx'g6-׎XmQ!窟~ˊ毥h f}aGa7`z{0Z-d8 TY3YT=iF6zXVcc)?X !>-Ta0czd03 o P"r?.oC|mQ^!9r,~,]Tcw}gLMB\YU;<;_ Lږԧil17{䃹r2TP]38*OiQ$k'Gy{@HU %J'U=dVJnDKZ@B|yA y)y 34#z1Z}į+B5N,%W &Tb"uD:o%;m@ GC (ZKIpa/a} CW }lmǃhvk䳉PiuVszaOϛz [*U9t"xK._Tem8#钍J႐ ƤЊh 8!Q?J+JimI#Y>ޜ̶Dm}ms֏L}GG;t68 F"xK!'cjJ.H|RiD_/@xݟ7)oh|R|!)7Eg} cHWt$֭ +%>qdT@L;UŪSr1' ڌIGsE{{ԠOpv{#Ux Ni,Q-YSލ?A7rm,"y#HeNXU[ ,+'^=|P(Cq@MDDYvmtu JΠA tՑg `P^$ `RȺgHwvIB¯ë`LWqv^G "@6' q7}%sC,8z|+0 TtMU<<@tj7,&+Uyma!í)fF^Euxu k+k(;K2rH{ڪ\.B{:ՇzXFD;6M%v<,:vWj"}gJɓ``s^AF.ߺu<{rp"ZFB5Ѱ;C3&>K] SyK>rDkXul!4=Q ]GO2j!^sJqJ //5]WS2.[r}qP R)tCʈMi:.;8"Pp=KS)ӞޝR:`R\{W(]*d<9io!Q^rp{wFKө i-hҩ?4 SSV1ƶ9A r&)po,, &owUUn%r< lU1ArzG*Qcçz K,K%C~CDdZn)!Sc_~g?:nV9iڤVeWƍ: )[?(JO t^5)uu2{ ʕCb˘-DLW"lTSi(W_>0=%_e+N]2ԓW}&xٙ]K2CBC*_b`+0݆w=PצSD]0xdjSq?:6,wjlk}ȫ2D0|mba%u!'ys>vY~烴>}[W_!˅ j/gsX F 夼[\Z>ȯ,eE"'- j >9{Yn0ۄ j`p?43?Dc%8?4Z5VoIe5w*?} _ &4:Tc@_Y G՘S`ūi\nCheltmt˶0 p!ٍ)ӓ *|4,M2poDޜ-Y 6CwV#d- *zY)&G 3@Q(,5 ۛp (<0'6ghG;̿?* #h@DѨ=K EwBp v#_৆A֒T90E1mTu-ycwx!RRx^s[te9Lyj,r2 枯X`{ XqQ_aT529>4hfuZb2bՎZ J~Icr `؄ޅogaAeGtuP]DÆ'.m,2ߺ:QكÞYts *F;Biޓ;9&w(@\_佘ɘQEwT]?7gV@<n>f9$mkx<C}:Y1̏ k*C9VKS @z9C6J ;:0hކBeGyJ 3rx1$8}_(Bq?b6Ӻ%G/sDyR:τ:\cj!'xxuϜy*d8iXpWn|Q΅f o`l+6 Jm[{%9{Х ql{,޺\5[NDoY!]|͔a0Àt^Gorr S#oh!7Ijm_3L~S#vTvSߧ>r@^ιDŽ ?6)x0f|~]D68L[ٜ`\#J#P~92rn@0=Q:I&|\I_KI5k>4{O^z?n4(ȯ)\GjiGo3BI:;F|enȨ1ΔmWu$l%=-hi(#b  8lz>Rgh5.(`&+'ѓ8ɽn9`@hXz[f ]K5-D8|jm@O锑`7ݸU[(!^ 3&3[ $0_xgvr2vhXH^qGis N(M XJCRS`1mۡeԈې]{!,]-=zAݢєg;7&M#\`,rM|Si$1OcQi@eGD: ra:( Qv ykܕv馰 )In7VHlh<k}k^AKʷ'!9.NC&?#t-o3CFI!]J0nWIEˮѯ]5YM.⑼4"wΪGVkߺ/%Zoq&FӅxe6ڛ1Lɬ[o9 ,_oetQevу-RFT?w \{C6}ju}?UvKJD8X?#Qoy.Al5Qݡ¾2ZwO*do{)iG昖T6~mU)b P(BUU3r鿋k=<+|~`Վg}cDMU S=ԅtI *?r,~^&]Qru{[ːmDWLB&#tzO}"^1x=xJA0O(a AǛ8g[^1up5S@tձ(v"jN&/<*k8{ʿ̠ބR|{J"qU3ܰmCkOyHKؙ&6ym)+$ƿA/gh (ڶO7OJwҒws >(Au_5imN3ccf+iWU!;C BT?u ̙|A2$9)C7'S56ޒxAmb"GHUM Rӆ_`#`Se90Dpp)OJm*x2b٨elUXy}g }n?c߯2Tx"@"/xÂdZ"$f7[|On Ӂg'یHwp ]o2 6J@8k:- U ShNW݊bMҪApbS g*"tЋޓ3<>>Uݻ7z>c7Y/.yT`1ܽYk%\D,ʊԳRKt%-I2\P;Gj[)<~6QpJρUpOdes0auŖ'1*ZcX;rZmK099 2)Xqv*Y}>Wy#kT]ڤb=pNg0/Ml.P{ $!ǻOT2P=?qKĊ9<7g ҵ\i,XUlY3gT~^S#Ƶ^_Ig`@^  ϠYU`n4 I^rWlQ["n$}+Z*Z710*pBXUj?VJ&[u;Pm3$;aKԕ%R,ll&fBSJekyW iP#<;rSis [3LDgou>x2Gn:$A .I:2Wұ `7.9'*qFB:8 ָ"rQJL[ quYòe5u)0/qo:u|Al+ЖϨYa _d AF> }목R"pnu*(pМ)2sɞ/FTȚ_]6pG6϶9#zFBa^ëP=z?I -`$NLQڷbIq_ Hjoxjm1}NOA^K=&"pm_fq&fK$$^y\}]ct2DƮ_κB7 ݰ4o2 ĬJ֪0 ej^9E9zZy.4){28[7t>fZ 6 ,Ad;ԼK",:Y|Z6;'I ۤd= X7%nU:d]ŦwYJ?皩߼8v3oѢYEKխ cJTu^XFt6~ jךhgY]iQqHF[70[YD'P<ݛrk;. եvA] 9Ěg9 מ2!9KmQ!95jkVVdȑoaOLgIZFզao}&\DUxs^/^a&6MS{Հ)NꭺvexWkzjG7tnɵ{)rxgQ N VόY`bG*)y@"~pG/CZͣ14uzs_s]am61FGM@`b zXS<n_K[DyY { lĐ>yjs'7$/U9*SM #֯25|`]xr|>j"x슸ib297V4P-+C^s2Ojpax-u ? P9ZRZĦ{#{C~P I~&>E`>ݷF%B*mfxx7Ԯ%S Qu4 ̚6ˏ z}4%E׼Ⱥn`$h"~0dn~ Nvr:s +be 0o8&/~}CoBRѦCM$Η<8Ӭ:ǮeןkFjzU-bR(,t82%Ȏ|QY 2VUXƙUTMٓS 62_Y~s-VG[r-*W;&"&rWǿ]pk$ :>HR?Zsi [B ܋h'=StHD a{P+(d$ϋ/y[)+~VGVHC=r%_,qEOS/`5g D J_@l(W 6OPTYcQfca%'e7ukS"jydKT9{ Ÿַ,N^(ߘUY~R4 ڢmʲL[6݇s_N23򶎤iVѹ̂xCNd.a5'A<*/% 2:Dt`Rql|pGos?a۸M[M n]U 7:-Q%j]q>Im߬뵬-TWm}2iJ?9low}'.ΈXU%V+_{V,>!{/ 8[J7f_LQI6p2w_7̚Kkx !/y4tZ8 u4Sߪ 1 5x1VV(3 r|-`g O.CsXzϩGZ#MX`zKB.[R(*_j>1aņ3d1j^&zELWy@(P7:σ{Sy%h jú@:X#7S34s{i'vx[ ވBŢ**%1HlxAoFj\CVm:. e ?ͽCכM5'o`b's"ʺ~hy\3V i4a{' GY .z4Њ8@֝kZWkag4vL53 Mt<Ygdv8 #@{nD#DYX;j}ƛVf,k`s PK|ƴWZiH]~2 3XWy6O!%@0>'gn%[v7>h3~i +5S`]4^ag_ӜKҢ.LMln x ѮW~mʬ}=Z/acs#zğ}7CxFx1.aHG8͗\s'SR,E6_?4P$!k͒}إÞQ>Zl6x[ޜ&uQ?^3jDteߓoB球S3iϻ|0,bPIlԊ-蝅12ՙ_1{G3q"'^oK0PU'k=pr%/aRD-*p|lj\x5CÖhdHKB% Յ:\ԍq-3p{^}M$I?77^UgOeľzL_^~$=Э(V?:ȗ~JE,ɏ q/S Źa@$c_iی˵;M՚Ju ڐ\p+-׽?$Z([:S4r?/ND U5C[I?.;–(/$GI8*q~o8.q3ž"`.oQ:}791uo"Gܭ;p|'ۆg(~6'{:r~ |WtΨ&V#5c]襂ϚۼF

+[')j"ԣI>-1W/΁Vh`؂?h'P(!e:C*\ϫfTbD‘6Yt@V/P5uGUMZ@Fd>%ޭӓ_k^ K궽yRl.P@R]YqU"J?qߐ:;`B%!ғݍ;Bp @PۖLV6Y{z7`YO慡I~3avu o}1Są t څ;gL0:צRZgФ~q zg{)ZdKuQ3:Q֢/!X 8Z|=XI@(Q!,8J<L0d4sAe?*=VB$]~߰(BS硷(d$\E7~r!0<'o@dyaZWE)Kuە9Ig,V9EӯyQĝ_?uO˅K^_Wjme e-g= c0]+ >TRpo #M:ZQ-ZĘ=գz+z npH17]_P#Y%잴:H|R(D|`& Z+?#L`yI˚O8]|PgGu-{6VrM&IKyBcLz* I&v1+ܗ6} $V}I{MXSGëMg947C0G^VlB] m)pr^3-A{TS?4)NGbvz@# |F#։WMnڧ^˨E!~? p`[([ߺ!(&?RXv>|ȅfFram_ *&v?)KszOi2ȟDk`oU@`Qw䓽48ǮFU#gϡf<󝠓(a  wXrk{b4/z%\yD˲>)b|16-xF1/*5) .>O~ ܉J& aKIWzSG9ְxÓ,[ 2:T\:CW:w*oA Wp׳ϼ 9cҸvu,L~{3rՠɱ<ɠ?*@BVO[H#܌sIŔ:x8/8tt$ xXRv=EՈ@鏘T7/}^^4cslhQ>f=>)#qԎoÒrr` c~4V>)$sw2}skXt6섇VV}[n[ߐ0+.3^Лغ*&A [&;;vK`TR˝eP1/vj)+tȃo9R.V<:c$gc20:kDYT]ldyY\S;6Q%#]U:^vdʏ~2p~8xDz3fZb&e.VvflU(3k5He飠0ɛ<7G[]StvJݣ@^"6pdL.q>z%˚SƯ{NQ>Uޕ@'^gV.A">yVnAn6W[׍ uT`0>w33AGkQ"꿳6 lʦ??=d;b{M#ˏdJ g;b{6bTV{`eQ]<6wjFȡJ9L#WP d%4xYa#m7q٫XױBiC6:oPӒGŠ#񩜑2X5N\Q ʣ=a-8;K6ی r~,L*±<|Hh -ZI~pDŽFM)cȉ3Έ\pB9fvl@I9=ezaCpb>|:kBU R4EDM4anWA߰ [nt-R^CN!zށh)0]La*"K/#*(hL\ݵ/r齩'UVND , tmwڊ_F^IzLpգ)'r`D3EAfMSѕL>u8yċ/ ֚䟈+`OvYTH+#cU#ͣ_ CqmS>ŸY/0YJVX)C?geh^(9 |i۵/Nw '\y-)\a2Ҙ9`' nގY%gh%!E߁i| G'TcpX8A I޼; /b1Lgy՗i|WZElU@xݏ{nI١GzYy~ =ARx|+ 1PjJ%, .qYg`iݸK%oo⊲ ^*|t_ $][u( xmE47{wq 8O$/Z,5 V=87ꓜ [z<Ȱ?oB)(툱T{>_ݢ "=&cN38FKQnE䕼@Rt05<Fז:K1-~zWPf9WDQ6OxKvLs%5vkHpcX*sMG]5u-E Oז%@Vq^:getЗu#*=gNۃIl;ёظH(DS(5"UBE@j&n9IZB t%d~.xY iBG\2Ƙ-Pnzt}zRQ]A B~_GQLET?CFt,0ypAފcjB?"?5K`Wx‚AξW(ш븛`&cm8vZezfNp%4?7CɋJ0Y}M a l62Y=Q& TV&eՇp&8v){@+?t=R` Pyw&Ğ'Dx"!~65[Q;NCc)Sf?3PMi-P1b6@fToʦg۾Ect 'WJӐ.>˒cDu,$R9`҉-aٸތl%U*`Cc{̖9,iuTe% ]UW苶9I wW㯈{|`.o!gGLh"p‡1??"<]DG<6j*|-#C2;I*FOLl[Ln]SaV#V|lZo ~|ִYJwQ")SaĈIŲ4'e^%=]1.l^*=y!G@ S ㆾvqdz嫩^.7,5?&p^s3;CjwΉ<5ywgc^>O$/Eͅŋ}%'S3pC'E#TpCb@,tZԷfKC<pvV(E~ 7@t<I{:]nz`qkpjI\#ъ?phW K '!uh$DHBq0n=v?|ꉳ~ԉ~!BSw(jڇ P%?sQv54a%^[Cq_2%Imβou]]Q$:~Q~} &VV%hTfT\# o%Hz;`u4gբұ2#dE!Y{7 \BwuܙM1xg\7ޥod$. PICTs [lSw,`-#^?N<]AE aq,DгYP9:4qƶ|,gcDغ u7[ί  b oG5r##ndm|'2/,? u'g`W9$l:lDR5kd6NH/ð]9mh,tc>+aruf߅ls-ޠo7B3Ji4 :zS{OڋMխ cOb9T547 >?"iuI%G[1}WI=h3bg!j܃W3B $RΰMK65gx7\Ƽ$**V^/H>䭺d<~;`I?GWd"4/Uݔ9 lL7P(As^.ΗavPY 1~paX8iK{X\{:.sDick3s'6Gd e@™.D;|%XJpxgnᬓ|Ln'?9{㙩PnjARg{,4X;$,VyNtE#҆L ~5Byឋ7 Ӻ6A0CIy=/7 !SKǫG z(!_EQz'@T=We Yӫp8q5#^foaYf{J*3eJ9ꪾASiJe ɱ$4ѕmƈkOb3q)+kƬV ~~)xYg렺aY%j7f+X|xrwg8Fky˫.kSDH vc5y{NXx=coйzh ց}H?켦ήqsBGv3aEe~"9~)hQ-y5#68Q6A űؽ~No4&vt!_i^\N/h6Lެ.9_BT_!&c(_pr y؋7@|:XŜѠoJ’2CGoA{x9#Dz^]{Xu9\1fmeY&iD-%4,K[X}LDk)$1# S,=ĶWa w߯Jp5_ʟw[_ЯrQ .G+Exm#vsV2`AvsXsaoS&RI !fWy.̾a)ntS[b1P ul<.T!'󿐕v 2 ´Yl9 aXÃ[Чzz1gUݛ?HC\`` @wb8X(0+C Y2->mB ,?ܼ1$k>iL/Kv͋.>YMt S:a(a$Lfl>jIHR9Z2BVtDHg1DV'W |U]痫hk \T>9.p9tb~礭( x}5yab2O#8ߨ.^c@RcJ2[:S:>!CPw32@JhGUpSnFGx^;(>GRlKسm[sU ߚBdܖ|)by̯`WȨ7跉[84O0s{5Nr-f9#f(i*:N#81=:i:ΐc%ECvf躺oO!.nNW35L0P4=p%E&bY߽yghb(BD#s5.n a͂׻ejl hGg\J.6O8RqnwVeKjr^n ?bR2 Q`:UI%†a5aBt"R2?NFj6ph~:? %J~ގDǼqfֲ(F \<.7Go] u^C['ڃQ)'c_!NɅUR6u fjZV~dMvӷ J,}6T<[7kY<,Ͳ.k3`hmx矻۳i$\>!>ʹ;KFNJuLNѱf=vJDK>;M;4je8VvEUʮllT)&Nytw&Uirݧ4 4tk,31z~A K )_6x0ud<A2 831/NͤЊ5NzB4Yz|ϻ57&$ ;vwaa&@iݜeIN |<3~\Z<ΪP 5 P?& UmPy]$$N&R$W @w=`xd ϵJK`5/"jB&NCgϧQzǍs֜89 $+Z U~#\mGb+P:w# A=#G4lQ4MV%ŕ|BIu5N5Xhʾ,f! +o#:ߴCpdHGx֮[s 0S 7 3C_7qE)~B eB)p(pٖ wiYjMdbk)!zuIH{򢧵 $ߨ[o]f|)tD0!/I]VƲa'Dma3snb}ao͡fZ6OwSbөXGs*"I}k;(5[DR=a)9s FX[1UeMȑNyҭ ү^>ャBK6 KnG~ hdrokw8KJ4$cWCQMθ~n+R;d҂̠/|%3Ȧ+10憥VQ sg1x utȽb i\XCZ"ꐄK=ƶFnrm$87?LjkܕU`+n7|;^1>Ğ1ZJųʊ m)D(]i ^{ͱCV4M͗ؾ4( q^[jYK>B>1\.2 T+OQΒL2 4ޚqN|NXi[:v5ɏKInXȄ}:Ҹ$vF4! J, Й5azYʴz`߇wbD<<~z}R}Lk\tfMTc8,@Cܣ#{xaKM*nbWLZe5,f/Y,$A~Yŧ숧0#F%P|Ǐ"ȴnjcUȜ Uؚ)"g^Wo6;xjaY0Eex*&"U}{@2F/ KϬț{H orx;Ԋ& q)'} G˖sڎ̡yg'\p?(}TژO^YNiK%Lb wl:kzFSVy4ZgF{ȸ>㣏oI;ľ-Lf1d%\3>8=J7mTN'PaOݾ[4$qW@o5u4ӟ4VO0GZ>Di%kUt_7~Y7R+ [dl_{i%ŬC,SK{H*j$ZGk0& :3/nwϪ-B]U+>E۫Ux,1cb"1ci3=V$0H<©\&fu/pO>Mq[mI7[ Mrvq[m9,}|~d2$ZQ%c|]~cr?#ș( .Ԧj3(]m^~$ݢh_Xg|qm{ݎ d"e+(~8܌֠iӵ"`jЬ|w~T Xi-^tG?*n^S+]x*K;E3YBlF,>5,DH_F tiQ$rWPXuKYޒG+DT}G=sbڨ?_oHɫl8zpS/V~#~weh9u!c p ne+Gy:@J7f)F+T&eҸe&c4 2 yL-3u$jbN(#׾+{o8.IT ҁ+\̑?;4!rJq0m,}*$.Lhش BsrVb w8j]&๝koD zo0\_&_7;lj.5Ęl`a:83Q\j-í+UNVy ϟPKmZy78M~8kf@1ut0"/%t^r^M_Bj5c(c:e_oy 0gEܢy[]QD} AV~YXa{@aW*Y(C%#Dk9|1>_E@hcQQ R Aw @Ӝ:ZVꈲ4q=2|M҄\<7n7YoAF% !F]W֢+0UAHOZ!St:R>xZ{ ÜZ+ȽtK_ГD6|XøO=vR3]2 RX?}+,VOSB_Yx+&=C8.ٱIXJ. QO5o3 n9Gy>'9U@W@!ne\Β- MR"Mt=-F-:]HE'Ùd)ij%[=ODyq(hp?&sΝ@}cp288PR:fzC[0L MG}Eڂw+BV}}/<_r!ٖOU1XJ(֪?CuucV"޼LOk{3nR˃:_y{?1V)3=)ݽfP{3j㡵D)%`&LSp8F:k^4E:u傭Z۞@+NLb~4Q2'ؙy <=nL{hV>p+FK+(ԯK7rm@"w/;\dM؅~:I`uҕ=F%'Ȑr$Znj+\tUK #nm$P ѢV(NPWE3[% H#'U{9sqJaxwޥR8ǣ;lc?dޚ;bW۷^y^n9[ĉjiuxhh?pĜu.TI)y&3O0HP/GחZ-"%R/\v5Xmчu-"%MT =]fy?- %(ar%`/=2pW)dPi&fl؍W4ok1ճ`lTlw&ܥ]Vk&(C8'bhyTi{ aw*PW߿ơ[hκڄw q"8w%6 R'$tXnS"\wkt/IU(J\MahI}R2h&17GWҎe{"z{ݣEb%#S K1Z%nYjY0Z UV.}tLw1?@yم+XrM>gIb(UՈI|g% ⯸01p|[0NB5GJ o. O¹ȯ b{kyk7M/ELJ|خvX?aR4:C\R-OTJo5 E+ŝ ?#Ԟ!<̖D;vnV]|>.pBBլř??*iJR؆Sэ9>!%^PYV3ciB+j%8K k8-Rlsdks#tZw.#%xe=0"Pi+4\x @ɭ  E: +_¬pp&Hvzq/NG>6WzIޏS]-HN}ٞgo ,[(2E: Y 3 4[ =V45r^&.@"t̬|~tHa78%wŒiܻT7ML$2YzQ7hbRolL"8~#"Zaޝy7=8e1O8,BDt61jz(L,!(ɨ%pΚڨ)%+cgE!LdР݅(& fD+!(|%jU$-^@.UXpcphQz<$.Ha`ЫȞ{Z";n6DvdҶbЦ %w $JިٞZ; J7 h䧬8GHSW9,~PUuWZ>Ud<Ꜭbsp$y hE/⹿?C 2#xR>OW`{HN?agpi[ J񴞺&?M"og@QhrjYcTbMla Ֆ;qյ_+-ε]xrC4 _iUE=qJkAq 9It.Ywp~3VqV.u,6 > T'mp1xG=@7B`xx)>˪U\uX RJfTyk M%"8V@#ͅWqtt-?c&% $G}(Ӱ [_@7Ey4QI75V6-_Һ)ςPL["c}eA!`^ߗӀ]Ǻ5"R=h!0cc aY [/l&e Kڬ<&czKq_*8s3sW.IbYݣ9/"_:BE[Y{r⃃=_"C-Q ^9hy> N rEh{्ɰHThdpk"YQ؛9!9L9aݞ\NӂQ[At?p)| Ap}\q"5 9u{ۗU5^X%"݂jq_:M~'K.ZOdڛ>KwmH1E[3țnѪ76N\(=~0P= myׄWD9I"zxo7Xa=k :zAU+T!xg(֩[.U6ѡWmɼfu0foh 8l N3wԸKL5$R}#sG9Ǔ-X:}עB8 !W4[a^n?{ܴWqb0DӐ )~ϐ|^! u\)+=hL]J1TK4GE<^y=S94h9]]ò[&j1&{IKX<*r!"cvhg2 vMSm>;{AYn~gf(L/t-b.dg!Y*K_4kl ܇Mps0|Rn Ngqb|G%{I;GvS:\apbe&v]Sk]^}w݊?fTcఱ:J('AksB\#`j-6s9^)T(]pzXαw}{$N/ 40kjIbȱQqS̸w8t:Mɸs62FM.-J WQFrg+<˟6FdE2pȫl8j"fFā D| r}+Wm=ߔ(ڬN]^=ϟ/n zJL061muh}3uCC?;0d]?ʀ\|ogh\%+1M]9*(j?H^?mf 07o GeYyOor ۵.  _>t|dKЀ%!y>H "r2M-Q{4;HƟ)Q yC|%eOUL(V]gl`J ^\^%`%<81`⟉I!R@FQh6yJF~bcQH[EC>> AQMZ E/2΢Eg)] d2ӥWlDjJ7W@s+>Uu}Uwa/ȕˆ74["" ` uN`?J8/P.'}a(b?£x}F+IxeU\* 2}u^d@f~$6iQN9_V\xJƆ^;g@vI. fUiou|t[ z~5߬",xtx{^J}XlL?z?hdeM#&p#r$ˈڛ"Z=WVZshTR] 8}CghTQ?%T.JG+=ep%|Wz8f3]Cw0D )R*TЄ!ې,A/ Ho-rMZ}F!4I'7J޽$ۢӁk$Pz/RelWq'=Y# o<%ғwXZNBF`tB v{0({>J#A@\9ɴ_5+; %)`%_c,X5a(]ZfBHԞŔ U^M(X-N$r,8N?AF?y.S^OM*ohݻlkopX[2{Sx쮀PVEީKvGhUm&!m 1(Ewy0S'!ՌIxL~]byvԌyi1K>>J[4VǛu1H|\Lvr֙lhk/MY׮fӂrV,xhѝ !(+?<^*4^o?UJor~4 ae LJCEG? t#S_g}9ݏw| 0] 4rJْ0GU $}k+U8Vr%}盶up-0U|L֖пSz%f]-g4Q]֜lF߷t (wj DXEsz| ٍ1czpBrFD^˸}"m= w)SA 9l0i,͑69I}c1@Z؊3 V{DG}v}s *+}:3G`LvXqt'M.%ϧZOE;}|Ң;`Lz!o!EkM `}`I*Ȁ e#!RfalBstb|vk T|twͳM:@^:hʳ JRV\Z)T!OMUm5-:޻uH/4fơ+&n_eJ=Yb)bkl@@V=n=wd AF6<50cdmZB+ǮX FuJ5y"}*wV ma@`'Ŕ;FU=3wqxÛ6Һj$G>)NeCraTB%OY3Oֿ-l)9eEd?.^։H5V'S:'8$ZeYE(0m|DG[1Fm{^\O?(8:H ~ rZChŽsl˒mWU\W'IJJl~8 d%t(Y#)Nl*_Ý]`,'ܗYv+j䔥j 1J>(hg*T %{vnuncrZXֿvvb_WdQ" /dN0fOg]ķX5aA1 _`@bb۸u\bPe%ztw(5ؗjYHn5'$k{qf /忱6G}Kf  յdrL^T[J@q0P|e# -ZD$5Lm0uJQ%xYҼl5fXUjh0HT=5\YK= .9RDnj8G$I vE_8R/֙ F1Zw8I}87+*Ӝ8 jnJI8(cm0UAy&%QRX(rž2z 7 ب<|vnOۀ­т YH4h͌-N^y/2'Bpqhym^SvmÀ'Mrg\m%|hΜ,[ vuO5L[sQpH~uˬ2RT\4$$;/cߡ=B@ X |ḝ(W,/}-b'# MX.m)iK*Mb@Ne'lcdV=7 ֛»3Զ>'{*_/}Hs4'FjLg7)vt-_L ȇn NT@M3nQ]|O7kwPB!ǵ^<kc6} 0T xɓorgp٧` C!`2qYD@TP\be^]Cw.=t5$oχ6gKDeȉ>KU(,("2u.m{>DUCEp!e+~jioz0X\ y*[÷jIx=u|U ԡ(LaKH0/dlb=2,Yh܎iѲN@aMMCW,a[J4F]˸VtЭ`F - H~N.tYCSIHOsQbOIAXV;$5nD{"Bê3ɑ9=y^|CP)Mx(HܑO M*]kD75*l6cY6@-Vy=֬Hw%u!C^^uY*[X$uHU JN DB} fw@IVPA$ۑ&jHI1E>\Mcʉ"FBVD>FQ:&#p[(ȰDC,P &T1אUJׄU@]WKnU @>_wUy] ªz=#ҝ1AD)\tu3xP<QGe| @:ӿcITbѓrK 6o' =yMĊy~CT\U`d+QEGBu6eM. K!tbokAA'1}7Ro_;V ƔL2bsL3praLP e`h/'d)QU}AYkM *]x?:lMRxA湡AJ b\† O:T>klE xk2FJ-HՃ6tS$АGĮ|~?s?X"\VIM$`ԾSH`,ᄼ0DsJ `)]NJ@}u~CH f,XaY&$Q?t ?`?̚ʠW5(pZբ|d9=OP+VKE\#'ƶJmyTohr ]y}qAq&@ݒ C :h7CpqWmL#M9m ֖| ;fz~c h6@\,Ki2ǰ ꄨd{-5ן_ͮEU%c琯+ &!FPmu j(#GTo^k<kJ^ڐI+9ƙ"~`"y%Fxq}Θ*ĕ ]''W`ؚ WC`#o76Cu تf\=Yjj{.ޤ5޴wDJ\~\|lF(mk(uC05T^ Ytܷ3q @tKԫ<,_C:liB׿[*X>`e܋\g q1͋~?b[BF8^ .$򸖙љk[#*Q E}%)Yjbs]8![i(u5 mC\[?Xq/%M%R5Z)GO^-..f=>kUЇv:"ϰ߫J]݌{QǾ#_f J=[H6VhR*ڬ=F&Cp'b̮dbEuR\_@:zaj"P[d @J?W P${/C[{GKMx(L\wyNTA!~eb7M#k`ļ::kY;.Ûhx>o ڪ///H<qbC W: s[X6`?G+|R` 4Y xkH?_?Af0St1HrDzھ~Y&!Ւd\܃l~R{ee`u[ O7fqDՌ  (sV^W_Ln;HbLrs۶jz5wUPEFd_vl" eFՎNiSTbk;n x[~p㡀]gz  ,h0C+` EN`dTqy}(Ȅ`q%Y͑<L/| [%f IPx,7?Vf$z&q. ۯdSH_#{(荧 sQrAF6u6ͤ6%](U`MFژQ6F4Lb3Ă\w=iEw-;3dO­\ 20@q-!i)b%3iΙkypqįEF^U}++Qkoi['/]^4[B9XDoDxHM.(o9Nz5zz-~a9~o vZV́\wVڜɄ/!񎯃ߜ)).˘[Ak m4Ov3y:8YJdjoNס."7+'y뗿|gJeaֶ5ZO"myz8 l[E_0}ꌌTJ.DBAm$obąȄ04*,_-9݄NeAʎdPG@2ǖXW5撊\x_&;|ZђV=Ǘa=WU`yF$D:J1#{78t@I[HP3*kțR]|OCTsc$8W?m2WC`\T*X2{IG~0S1K_$c94Wq,..vsqj\s鰧ceJw pu4wM  mWPwK ps` 8)XSȬt:IJG~N>v#ReosREjlR\STpBվ;q)#TcnFc;#%]OgؿݬvP6&c&a?ңFDkql}۳:gTAEROF+zY~6yoPpz#>e(/?},*kzM_4{c.CT˰N (deAIk4Z9>)<@V*{R+2g <Ǝ?Ң/Ԯq7e4H|0* rMEXHYp10xЪLlHEBmdbzzS̡ԯ<َ}x1a|`r_"2 np z02삪.h1=TWC~vs:|~Ou9*a@5ލL(h<.sT~cVonx br 0V/Mo Ϋ[<$a-1uku$3q,`M(ҟ~QY~^sil]ˏHa\r>sv/\H#T5KMj !tc4eyVϠ>BQ#)G`nO}R2ZbysB{5,=@f'?XXX</]5?{NFbӇF|qFQe4Fv +Ā3PF(CGKR^9.o#KSv*:E<+C4Hy-zEP\5__\/GVi|Y gOa䖂`jpmJQn?~a l9@ҧŧ"}ZyS5Bz}jl>~s?MYMd.ape'39# 8t7?]mJ1- '] f`h@F/MM((RDCk_j (rQ2˘ X={9r.EbZj;6RH\D́&{>eFkˤ$)x7qa5{6,p#e)Mh2187|j- q#E$|+6#rzZ[K]Eq| dK@Z^RuSt:6Vz_~-2{z2_g%3g/ߠ]ktǀ^'X} Lm='{ת7= |ᒱ#?|&rK7Џo&ZFYɸDQNdHT<t@# r_kͣ" l1GLRﵱe>hݾUQ2B $_Vİ'l0U mTl^.Լ iZ4< 0_}Q)Nf??bLz$a˷b~d@7gWm.Wg ^0N31zeenvk3c*OxB%А5]_ȯҤ%D$>jsMFGS2m4y&FpĮS(4C#o9pW2I҂G( sm3:r C~0@VѼZv~t"zοYPH>k1Y`{5*ɌSQ:aÝMo=rkGB2Ta @ EAOǰ.kr8 =wԱ.B$ ;M&*75x4v뱑`G^|!`xd K|##r% m4zgW(m5PJU=o%v߆ji4 x!L{WL+w:髛>b $H8Ko6~ȹzk KnzʟhsSY㺴Hq2R7Z+z=~ЗH{׊,r= j]T! |1_肃,V3jT1P*@v0IUҺ5e+9Ɉ8H>"+_ $tf=„>]opߑs?4^]=覊Bqr)M,^Lgs_mTe* 1ތ[d97([E뇭0OrI?v_ǟ62R$_Mӗ*"'*~A:=M>/ٵmIg 򕤐5hG]#dkI*G~Ԭ?[M1[fEޚAc%SmqB$߀OQUsiwL`&|?NZ ~jx3&wr4[,GQ <\ѣ*uau'WyGըٶb (\^qIg|8Tj.w< D2O[%ǘKU(h=S2ǥ@A{m.>廞dvQ?4E ]ɩV 6CimÎHsiΟ^={o%2~,x/1dpO޶5Iq ɌrpDd$ppeד'UŘb).i1%rJFB0@Z+oD^iN׹zјA?9 (*/ Ŀ-{[ JKx3Γ } bo] 7RrnttVᰍ*[s/-+E0?GY9w·z#PW+a'؞H!*m(Mi9ä-A0]0)7p7 9jiM,]1Urmz3N\R6 jΑ-`T~y0x-''M'}fM`60ѼO?B Q%4d@g=tF M jӲ2q-q ⬎78hٿF(}ūgcxslܭhoiAnRMe S+Z.Tv-$2Ps.oY%DͶ0$`QS,E$s(MÖ&$Zo뭺7U$<:L`&&,z{J`C8Gb, rݻ"?ʿg Ik qdF҉p 52BI6 ojߕ2^.s'qU 5!vNIU?:VO*k{noBFO3.fڻ2x4Ϣ4k:$ՒhB#<Ƅ'e!  ::ٕ進HvMX~2hL}ok^[LnHzdWC bLZ)҇p%\>Q71F J,@iT.Yw?YOJJ_ey6Cqc$I'J5ǁ-H}?Ay|ߋ! N8PU&' hB[([(Zvz6l DtI )Gx 6'\xMZ)5kAo21śsܖB);̥.l~Ȕq.qWwXҔcZ҇-<.Y9]v(-ҕ [iѨ)$ʤ;LH0YB[5Sgж>ߑeWGh'{pJ5Ea4^\z jdiz5vne6x>޼<ΌREgW3t}=Q3"M7Ǒ#T>˪|c j" #EM@9,UjUMp+Oj:X1]ammxl|9iw(ٚ}PsG'8d:ݐt\5VhhQnTF l%YuP:ģAo SKv/cƃiw-P .bAf`9( )dOߕ;w'}6RrgwԥtC-'ж5 p=g6r| 9s?;7ܗ+?S{1Q5 ܙ]+J9(4j6[&YAyp5},oÇmܷ ) 2]sUs}N4lAGz!6R)`&2W9zn#Txa)0Gps+1XfF/T;KfRJHGV@Wz4Y|)ePj[ lCQ,7g#a|~4i_ X ׉JLNoh̽vNDW#EQJ #" 5#[oH!h<.`EO>?ߙIjXM;mmStkt~ڷO~2wVK:k+SO[= 8SJukCMe`0FaI :=9I *$ Bbu־fQi߯E=ˀʴc.ij[`xgHee2^}>Ezv&]9 Mڶ̽MbnEfYp(P8OH59xvQYLukۦy>5tVc:Pq\PtP2&b"W~s֐2wM-%b _[vP8B8&Gf߅T>+G<p7āHZv. B75yv`u^L $4t_HZCsb*S},~e6+Ci\?F7#жGC?i,TpQP!h]à Ho5!呹yˤ, 55si7FubT7E#eӇ ƯE?$FE-J~ӛCO ,p_sΊ|uJ tг|_B߈|+De$h/@+ bQת1Pe,5̝\ aAI{V4]({@~٨BF$&_xgj2*\cV ~xQ ʊ}eEL3.QCs}9"PGX:(2.D2%AB&bكa7gM@( dOfY= :ae@eZ5}HA2Sj=kn˲b5peNoG9| B[`.hrֻK%OTvcd6rqʹZVf)ok:=!}CճoD.8_Yk8v^_ϧGe XFeJA+ޯ`ܺN*kk_+zӹE _a FtmzSig&VtP7hB;m!zl$40^EQpGNT **6eĝGc^! ˯WE8En2思nάdJ`Aox1ġKQZ/4٢N'n KͲIV_/H1}V &}D'bʛ I2}q_CĤ_(oe+ H`AE[jt{saåEqYP¨n 9wY:0ưiZ+.)({^z<ta\v, pA bWlJ}?tevfi+1~׏>Doc/tJ rejvpc*4A߀>5ç>3x *{v)[8#vx2E穻pҔg?3+›-IbiQcIuZX$,c!Y/ڴ(PgvDs/padѩo.V?W,e^7{rbQr%?52J%ւfOW2+_)pL:)2z Xwf5'}=4&/nege{ƕz)ApaYYۓ =%bzPHtTuDž23H^KK:xmuXZ ߚAmtDi-^.6*>?Cnj.dhe  1~bWbʫ 3ґԤǜo5'Eñ͘($Up!Lݽ]c{½f1'OAP!viɛn 5n/&(& B~#v~#Wasq }U+=FL#2sθgHa/zLL]`/{oyWGP4#6`:~} g"hyy$A><շ2`%w~q r;s]qedW|'\af[1o_'eRjxCiv⫋c qhyFĠt_yjH Ͱ/kkH:*&B5A p0FZLK0R`}z|lv-ya ӥsU$XWF?Z8 ^zUF7!3pP^\2 st")t@ѮȐ0U7QТ!UW"2D^VE}9ߦv34uV'!rudUյ}M<(0Pu hM<b}ׄ%RfSN h?)-I@d-ۤ9 mf[jǥ_f2o5yrq61yYQ7zgn *sG/g!C$ /[2!4?u) Púy]ϗ/a0"wc].qA2 0!Ȱ3| Card2Wvod%žRpmscPHDij^ٰC|34C塿W~ZK+W5}}'㬯Τ>ȚWIh7<~d2,cM D'R1#H5<8ĭ(P" a_M|ŮZR1_B'weZM2#z< Նn'jQJZë>StM4HS+Z‘X@~pN*luJ 'U##w|.U(vzV$/nVKЎao)@knxmWP=z(/06 Ѭ/ɎϽ|ǵsJʅg :8%vVmarcS "!;ov.nkA,C.B{΁*bmWJyY?4Ɣ>R,SS}WK0 XC")Ytx#mmYdΰf| '=CV];`/QI*p/D0уXl;Êc=K8w3290kXvoY3w[𮩍[$,LelHv("y R eo+I6/',rYݑl }.ȭb 0L)~`@"ȱ4 Ȟk=0ձ*R~gyzh՘baSa߻ Oy<zQLRzo+>k- }A|fb1/ OM|)<&-q-PZࠆ\&^&K`!RqE1m&#;Z 0%h Hw)t~S_ƤwޅKqDžbċQڠ)leR()2K4|Lضe\'?E@~/+h: ['7;QߙI8'>:)ߜP,PVk.@У5' INRS mgk> ١rL |T}u 8F($P NeAONO5+)aCҽĵ~7U,!x7ȸ!("әJr`MȘ-41xJ_о"%M9rT3g]z-h f+`g)s Y`Gb +3dH:P&ʳp}N(8lPiu{MYG͒vvv׺ vGodo0ʥ/u32yڳ7(>);Bd*K/K׮"IxԀJG_ɩ?HD_^65ub8?zd0~]'d3bhX' '[ n;ث7=.Yfxw?Sَ屛m Pޜ6c9O$M'a~]CJv`+ŒR*UR%ޏTHJXML^4u/ ׎>fu-|dj$ݜp7=q;a, ܱHLgs=s˄-Ǖ̪QbjO0hk_BEY~NFNϭvݐE{MK]c/ _iLˑ,:׺h(z(ixͷ-K* KhىnjDx,'EQPǞz=$XD4IFVWK~UB mg/<'7r̵i&i8qD`KVTfٵuP3LV2[:uq緈/~VVъ=8K/]?AD3#J1Rpߐ||}mO*cLO,_-ğ:j6@uʚGf$0s.--w[Lͩى;mۣVa#kĕ@М.~ăwߚJ CoM/۝ XX>1vNӷǪ9vJZ̲ٚ卌`3ʊ*0ΡV)eCzcƲ9DߜR`& $[_Pp_^8[{˞{s&o,6AtVdYɅ;D@GQ|Y͵lb@Ϭ0^64V(nP²m!2~T(.)'/Y…i5{Tf(~Q"5?mhp| 9SBAe 0; I u^έfW` Dm#t? 0: ǣBH#rN=(2 ژBf5d׳߱ͩ η{=G۲IK'Cs)@>p?(P ]{0 #, SI%"؈׶NCb FB>^m]q6/i-|b% -ι!ylbA WpP̳0fd茝bi[>Ƚxq{|>Z${v^箝$^? }`!g(}x ku`>\b1;]Ԟ^ Oe t2.NUO"YVպ7_ӀhVuk_õ@csq=d:ˁaox/S֊Yo]2} -L5@%$ mTL-o-iQ-uuK/Bxy\4&V6^4.Idu^1ڿǙݵ@kHӡ" Fc**WayOfʛs4 (&;~aRBUwjc'b^nce%9Ԟg\"o[Ml`Μ9S.REBp^ݘ`U؀Όg> @pzE*'Q='i |-DȚ ˩1O{vͣö́{w^efT4n؉n@~C_/ j)$HEH#&~Hɗ#DH ;d&AszY:]DqWvԠc~g"_6d*(q %f2Q$] W}B3(E>ט+ś#PD&KL AF@fH4{#/b_U #Q@ 4_~bFI"IX HSAX^iݴ[JX6 E1׊?dh加K)3sN%*lPc$L d Oq3\YZ'oea~cm ,U0pɎT|Hz?Iuv6<_ywLHV$F]O ~CZvreĨ?l*o)\=QDg{}#4ۡh5-kDepzF}"t-@nCN:ITBcM5O e|w]wr2 tLߐjە=+mDEIXJ Nw +嬅>e@٠ͿkQ6tgŞoKn1*Ao#]z_>Kko㲚pE\)y BdT, 2`| @iW:*< i#0n熑l2d@Wf!CJd,Wc&-͗hu⻯o]'53sX>xlwcTT9_y375x{›Z쓙a:a$ WKʶ VcOV90G3 mBndUdtQْRIqsAM(p,q1/*bH=$ `X7%+=LY?N(Zu ;*~)#] |-ۚ7zìS JAɿal#_oX@8 fP6r7m-HGW:RKvJ<sD(3grn%[<;hdSBXj|v-yKKbtxNcq4n92ɀ]҈YSjy`@],:8YaP#n hci0lbZ#򏲇"N}޸):X6 ÜنO2s V<1iZ 洏,wDJ;?gx ,d~r!G9N^mSgMF~i*jdDsK@45qva ~D=9k =tGܺ73g:՚e1R?(}RiYCtpAF5)7# <AS.<KѸcDqkyע}؎pՠn|Coen?dU ɵOp8D˨[MUShBP18klW2 x*ى; pifqY1J1*6Pzň-7eC *DlMxN&Bۚߖau[b{a!gu$.^u= 3ҽ_Ks BU(N {1)ei+VҢTg⪋.HҽJ~7pv67s?[M|%^p~80Ϊ{W&Vm_GJ臲ֵY^,64:Bb )oIj}a{βZ"hʱwk>3\LȪm,Xl@[S6ڡ3d&8&GzvM!Eh ]WLI"l-_d~"g ,O4v1c~~ d4& ~fF E}jWL ݣiP̝tA1,E4 {h3IOO]ĉ'ezf 20&>ӧ c5cbt5qTJ"wу ?~6K:QBGL*T״p7P d SxDQta$RӜ(pvEH jcLúKo3rlw ~ClQNKAF7ʸDc*E\¬5 ZD=s^?6!UG@ոO/Q`5ש>I6i)L^ϥ2A+I%/Y~ʋ1kQe@&o7T4li?~uेl SVy}?okŦ6Q< - K:+Rtv 0K0Ո{e ߙuZh!P*K :v#b#c"(h6ѽuZB\d٬I2Jz% X3@&™-xz%= =*m2Dl2\/1 nRDuw튜dtJ PѨWtPs9V1̋Ed`pm HV܋U[#9qWov`B &KP*Uxn)+EJxLH0R6&YĶa+$3 nMYߴ廢@>GIH -6wp0Lz'JoT'.Ia:dcwݟi7[W1e x 2U^jQKl*=Q\G{uDV­%Mi sw=@6A7VR~0OW_ tԾ.q/9u?v)`czc q *+KIԎ: PW}}14/;m[m_l;\$)^gUcQ.ilmRnK=0!8-\ٸk&kG*kFcWw肚r8&&4Z  K(L3yq網X-_ÓEcyRDrZoj9o/.+j3"E\QKoH-{uǣ}Ud{yn]u<׸ &G ߺ=ACG}QC)e\g5Pl>|.Iup9KcFۖ?'PmzZ͈kX"߆DW'˝2ȗ4">`kw #c=VS1*䮵z c(VT?H%[ >+lc?[5dzo4.^(IweS(i+^6(;,d4?}8UZ$ɑ^y&tY4];$AL/泜5I2~Yک(ʖDy56:i > C 6hͳ.λ}јѯB"p!#m`+ߞgzwOtV6E^F҂4UH8[7 }k_?%g(eaO,U{kw!=~z WŏvN\ o_p1B^Vf&q(w’ˇE2TF( *3;h[{"Cg\ws%EUg 96粺fHaо|KV]J* Z)$?_k^FLw$NL/Gv u]sh9Lk9"*5| >${u00[pqz93ӭ1]T6,Nf=tU7 ^L{KKv<*XO>6ۿh_hF r0A.HKl@gж~*9"vIv#60C|9<\~B瞄i_]<45,ד֩FFok5Kt$If^:MXK,_`"87ils]y{kS1h~cKO>V<ղw}U+QD'W@Yzc zOǴ~#lC e 7b}+8~ }3|5(|s 4O 0׷Z16z/k'IcN,L%1pPJuE1"J!5j^>GPc3Cy΍j먾s;oJn8eӹK+Ϗ3 ofg.^r߸ 7tBN'j[ҕ(=uieA Xg\blsc^.QSt񄸷os`Od=9?8S؜+[7u@hQ\3dvYϓEU"ѸX>STKR5QzZwQl! ֈ5 x;={ymk1&d#C\^5 dvePQ{%X6Iwpb,x,9U9<"_Z B[Jo%H1r7\fSw@缟~6P}vuB! rL*=KadpaAZ6[_5և7ǒ _CYҰ{L Ak07: Tr@$qa#flQW^!o- ~}~ c:jN~m 3|r~9Zau;A?OӺݮ(6S8` Vvq !0buXМTev$?iC7Iu粣1sҺ7reQn0TIH9O0۟e>m+bTnQAwE>uw~ڈ(<[=~{IHOS)-OT;\B}Md|lCw]?긃~GOaE( E10!9̌sf?>n![FzFm\ o\f?Tb ~T,l% jg(2vv+f>Ǩd QNswlFD㯘mkJyq@QlKiřz3Fl{M*&jVG=꽈>,_oK(|vrUw7!$!H-7sdHכP(_*0wDCP *tur7JD9|4*t p9 ys\ކ˛fBqu{z҉NY2{J\egAf%0{(Bxج0かa4WPu^w텯WDV5;e Bd[,3:B]GPe΅bNY9-j7yt6/}^>x:$]pMI1<c3pq̙\/d:C~Xj t_Avo^/9\.Mw8oE V T8SamqZe?~^p\`h'gumIeMs$,ˆr9>T~>.Θ2[!}&d>ћ $:FKuPtghSp=o[L,\{xz\(߲uEcvf ɇ'WwﱉNi/͐HD#"a{|ƭqr~؎!/%^0f*AE!d`pA$i\Bf7|#B|_[x.Ys\4ո֫*gs8SԹ!=P/.7&۝wO IҐS^\YS+A>5wx{X%G%>G$mSmYe>K}8`3 {'bm јGa]YV /%w.`\EnSm5MpI'0bRNa0yr | RaOy]q>U~һ5(}Kٖ4&LcDPʩҌHL3*10֑ђ[tj+E^byy"8hmwR?P&:D GXY߀|C`2Q7K]QʇNj\&OĿL+%y/8AoYJI9uUI2pZĵ8ν/![j[*NIYw[%g_AW(jUԣBU.;5|%9L'C& ܬOB#WGBe[0Ûb5yA[T$BH]G%i YV}xlAv*M#>8"n(f/,nIDkp<2֭k'Rbr[Tg ,h .,wjc| X- /W =R&)-$]QRj@Zb).mldlu0{0!l~O E +qzM;w_aq~PP k zdqX~C R4+_$0MKQ{p:/I?YDafS,!s\sN<6sLbj<R%_C`(Q^e!LQ]g/JSPZ!kk6Fs}!>& <l5uPyKx_q8iWJC9~+ љŧF~C@$Q| %oWq004|5 k՘:׺YA?Pןj<-7k_&-N/mEuDi{jcuHWBt"VXj|GH+3 kK-eQ/l(Ko،ޚps}Tͤ0</#P`۠% qRO0Z%}bH]%ܤ(,QEDZ7QҮN/"߿5/Ac|#BO@q0 ÚKw?*H H^Ee4QŮoq`.}^PS=5)I2j@I z A-"Qp1Dɉ4X$J8j1IڬnSo15xImaYEA,,ـ4 VOm| Rlw1Dy%)]I EhNcsrf40|'_+@*zԿ(vy u<ߤN`~WuR҄:;֬fy4\ur4;t`r` ͊% ).١-7 v ̰mu[Fz,쩶^%E_ɶi;(ai($91o3#oYf⎲\,J u5ɷ2B6Dѷ[\`bVjXRfQ`I٪\n|kL:|{kk؞X%1JônI&K%Ձz3nv/8@QE*00!92ӶGa΍N)D93ؤK;g+KȒ{Ƿp~4U= ].C2&0rF-X_E+PÃ4pٴYFPRM|M%W%K[^Z\^û%] Nc'"[{@3..Y_i#[5*+Y!O[I@kѓoLy=%oVXx {pVp]apۯǓν/?ݿ]zjdy ~uO=kU_ͽ*E)|TqwT<̆soV2Os_G6;uN0!RX `Z#~P`׻n˞U^ .2/ldDr41>˭V!YN݉?Y, %qszy5M4@D٬!ݕ \: <<&Z!Zl+pю5CY!3~D7\\M~߶ I8r 9l2 h݄k65!Ub0˾e3 Ir,+zӁGL,"Ɉ9Kd=;g7HP,fgj I:J7*D104-\սjE½u*mD4K5"F$-[xwCL4O=D949kT0vO;rڻN̢3l(7lC'O{ ZqZAGO\}S5id &U-_|]&(Z8|3;8s1];E!WISQJOqAnҬ<˚ƫDF:4"ؙ+hK#rzUk}MB )Atu-[]%8o԰`-}֖ЏUE| 7L?%"WYH9I;-CM Ƅ U/.uUM=7!:><"O쯂K&3 Q.oN<+g=e upcz%里9T,FCI=dMߓy@A!FkO*ƤUBP̅I?Mŷx[,33~q_BnoTMjקtOµ$|>F~DHb|?Wi14J` lqjeE)5ݗjJ5ޤU%B ht_FL~t} Ś itq{NN^nPb8Mî -x֞"f{48&[ -cluMкoDd~bI _d׋qR|,gՂL=cȬpܳ>`vRIP Xb@th`/[I-)yGܭx|y; "m3G\G#ȪOkA:Is[aɶgUvD@.S']Ѿ1tdMKޜ/F zfK;-W5:o\vX3CЮ=SF)/ع9_iݫDtdxf"ղ~|9C1Za_HC1J2;'o#mrd$ĶP'k'vѥȏU@椇G4!%;}BS5eϴBM<螓*َwɭS[˞\@Lz6NshRl. Fh\%T7=VҴPĴVa8]0kv(Ma&WmzNҦ},YAr]!ͺ&"٥0ApI&EiOª.VNRV9>` ZW8@q-,2)*^KôN_RN9u6bee%.n"&*6ҏCAu'劆l~"-Ik_>xEgv~7F\&5]d[!q-OJs:| Tiq>p sfMc'Z$R=X\/=x8B{qh,dE UW]¶dE[shQVtG=иr9t$\B' hsR1M \t^G.?ZOwo]s7쀥\1uBmև Zd xXoak;vo ^lE[0?`.O;9-hUGZj~NdD5۪%O'-ltʍ {Iߢ5E|Hy+Rpu8KDQDyOsߔ_z/c#lW˒ L sZ@mCIoڧ cB߳bKfj[Ѷ3< BWjQ]1WT>Bj#nX2`g[2yl(pWA|19LeKjmZ<ҖH>ŲaӃw/?UX[ ԙ1k/)3ZW%~\gV/(qY_(\bM6* hJ&_0Y0-_9ZBW3|HTìD oay~GM»qc| 拿į@`)XnHt] YQW3`u=RG݂t琷Yy ,HA~b'Χ6ҁ9 91?:Eak Grh"mӲ]y w|X%/o"GHp\<^rs}73T'`_ݣp*ձ# eƪd[ [#-A7;֊KHlHz_Ɂqo$l;ȋ_$:3xOOIYMTxlsa+$-+mYMΠMhTs0`\ϵv8-C8-ۦ*rN`tZ4[={lG?{ĠK)$%{t6TҞ&hѠL!i eޒ~U;<  9弼ʏ6j\!)nRH}hRP}R/#iw1.KK(U3sUh^8\+!@v>ͬ~n;Ӆ1ꯅkfy5Xhk(RHo Ewrc=h`8oCJܿSΏDua|lΗ+oVA m9Xf̓5Xm5tmK_Tāu<=m4 c*Z݆s %Ihiۚ]TK ;ݴID-ĚBgHK* ݊"Nbl`b$9?7V~zí}p"64rl#0͑ݨ$iG.mIY ZDJwYftQ эiJo/j4Nb?;m (!ES#q^qWr[~(!F>>_d?vn[ndx',*yA*گ)Oꮨ6n3!G'U6M=قƈ |?1j诬u'M_zm1+ʷ5Ny!̮CXŌę˘&ZWyK%w$qbXzYX.0KZ>–%7^/zy釞{x@_.Y MeӧZ߸' #7ƞ㏸72B{A`w9v=tGKl3#5P<ݑ)QBBƮufѧ%c?QP&\]L@RЫfMGܬ|t0p>癅c@ k[VDQ `Aڪ$\v9ZHny/y!Vvz|I7ذz`,FR=P>(VrΈ=K n0ȭK*[G,zV).<8;VW_vRHI>&\EtsRȞb୸_7UHfS2}xuGxL4;HZ.`bے7To\G9k9Fغ7C{wKJeߋtsI- g?!7MkoI6~t#++u0oQv!4!^*%#3Ѭ(m}{CqLZᑸx͑|8DD `TaAjd}<ʎ܋ ԉZMG"+.yvΪZC.;z*_>!biBwhE݋aCuxu}t3)|hqSCd<) o]ZmgZ: n/)t]F@,Re֝gzH3DRxQ&'/8L/_%?<[Vi-?~- 0QmL∬ښ5m[aˋ2߸ϡ>tAu0Y5+]CSHB[ ^9#$%SF$wu_;ܼPm6^ EɲW[Q?2/C%Gdc) ueyEk mG7G7dl3!)wA߼.JRWW(!K9'^aq߾Źpv v<+yU<.Mbߢϒ̠řM0$2L7qfMEY~4vBJ5&}>좑cN/}G_dȷt ɥ_vҴwhL ]1ޡb\\"SWHqr?%-" qv*-]9Ům=TCTImiģeq%h}UnJYhX(mp.= v GP0K D?{rV?FGw`/7j!-x[C(Ux2ލ D c_xD a {Uo:}HtGmnj|AH_fn%c*2ee 399QI7qF97Jjzs_~|O) ᇂw_wܕ[6/5Qߩ$޷i|PT?Q3~!)h4E\b9En=>#ùonC*{5dA\cdC8`E 䟗+ZSnOK9M\_-Jٵl/Y[cpy3YbT{B) ">5;-!Pu4olo rI\8Lt%F!C4%W6&wRMOPQ>˛"pf}#B6S"z!aOXc&]w7Fݍkw<%`˳ ynIA_#I,tV6qB\~xӤt{7kSaW<09RU^ ߘ)2$˟*qna:` Ś/ٺp4t2ƳdL#+ K͋r>ቦRt:D6[KX(=tVk/GF{(Lyqƣ*һcVdQ4lLi_oS =!%F0PB7(w\V+2\k=) >Eڭ-Db.pEV[;Yz7"Jp뾦`E(!{we$֖; xدXEܬ4^< $EO ˁEKt#%\>'sSû(XnT)s ;{0,^o}]ӺD5׉ӊMpOŕA۩tce0Tۀ|CSL;uW^0[Cw7"Z8l)pyb͗;dTDT짇<@)dM`6-zPٺ%w'?K0$XmD:?)B~mD0wJrp%1*j8$j#Ip׆0~?pDN3EP՜cWfKnY9~-/OXO]w~##)EҡngUc7nI~ %h&Lf,lۛLH*lXWN5<`DG6u[=E n JASWΚoX#d հ x phBU@!bғmj}>k5Mrg݊J|+vu)FXW0U~ Ȼg5YYeڶ `Ĩ+%"T@֪םρ{RyWQ[c5N4Yd\UDASVy"~#|hD-MJscΓ[U !Xg'x˫}o÷+WN||{hߏ byV¶Xl\`-ƋuemOB4뀾ȔzjՈU;ܲPcX_I AꮔbN5,Jb3!B 9Z׌?d6ĩ^f KΛ5r-Pfn4+ܐFq_͋EbAr;-X`fhk%P0/#GF֬\O-π+&~,lrU CXiaoֈ!A~9E5U2t$ Je%%J(x+$"Yoσ"3 U8O~*`/) Il^{\Ã--!&0}_μ0~w7yէ}??'>ϷV|fiM$TLmS,&Q )JE?Sei "k>%̶ʘ#w/l~k-O"O/M+ Z;wԈ;2MGM>B71C^Aqha6[H_NbGf.cizd(^LyNFY~ZkܫRO Dι6 C*0u2nq"鯓J>\a@?USi%-`{&r|aݮ6 C }|0"~gDBu[_ـ;t%*XmTx6 h6xCJ"I eۭfll^tIv9Se&͡Ci7 ? ֚"![])ХV% q~K6"O]&IhޟHД){W`JJ%iqL u/-[xy"֕RVi a߼8 =cҩa~cabLi>gZ kʎ&.}ve:nղkCǸ@"Io붞o({6}dm*lU2fㅹ}:*!.ޮɔ.=bs3u |IΓkw=i•4+;%3v+.fI6~!so#eV̒:1H&X̨_:]pcύw"<>Cv"-yGҹIYضJSTr~,7||EeSxISVmEgh!6KfE>VSY͋OW^REmGKA)uϕ1s^dw}bp1ij56+߼~oN|ݔ]*Jb[f+31, foLk\xJɇ+ ?%'%X}Z!"PT`;CeT{LyrOiW6t*ҕC ZG);sFH_$iOq깤ϴMM5R^ ,c!Zɇ?$o?F»pK{O)#ƵǜNʍQt P tLgG!ۜ䀤fƲyM'bCכ% 1jQCc0QF"M7?GGr\b n' _A>DmhOG26B|kYQUrbk+$ #a*[0Ї 7f93ڏ|=p>B@nOM|N?);D8 DBI$s %'[eM:hW&Vh$.e@Qp 5X FU3}_'39(M_.%mFmX%ePAbr\-ȕ'#k{bhӿzYU§s:eHPa ]4ّD'%]}o';&$CXŸm )RND͚au!޷Eq 9UT]U ;B7*}PvFQ|(X;I'm9j'+w87lH1 ~ ֱl'-"'7-xSc7G?@T)TB(_[ ezYhT%df LtN!GW77.)!T}f 6t۶/ZSh[bwv8`^p4|@9qؖ4 !4T߿oYEQ5@xZNubK"Engkm'NV$~{?Yc?F]ONKYB2;qKnx@al.@-OoQOZo,kK2"KuaEqʪrjvAN{$8N~ xc0\R&}:ΜIh _6` xYkMQK}9>imjLm7Z`fᆳai+ "Ntz5g1liSW21Em-%PyH@fɦXQЭtPP#RtŰ.@dyܽ - ˝(F*<' B\9+>-SltCzưbn=iDX;&I98!Xi&3H) An 'Lo{:}b8r\jc[FT="]edDH:JfϞBS2y~meJ9'vҐڵVm%L,5[NRS|'8}g'u n}N$]5鋎[7 *i9zc>DHǸhϙVGBʨuST5]$7|֯Qoj#Mȕ7WԞ"n/ s9G+N)aiź,\-( Aj5dξKVKx"mi4,Ywy͚hNk)/ħ5)ά͸m4Љ;8I\{{+{X&p~>SfԒs/ MN*5f4|ÄFQyS5KKcUms؆dSڭW33naƵ+f?)MhuQ{OGpOx Os$ts>&԰2y? g{ƑJA::=y;m6J%v[x;}U:?$Mẁ Y<{=b#KRZM63fz@a6! jZnwَfZ_F—;I["+ ܙd@wm?~ ehm 3K3~{[_|Wdbt~q ;RO+>3wq?ÔZ$"4|Z*ʧ-7ž^H D_^sAOhl5Q(oϟvK^4sU/65m/10ޞwF9z>KԿOR` D^u;o>M8Xjk2N^ҷځmn#TAQyZ E|d$0ԓb[BѧMAW)\Ibw(vA:S] ȏn\ Ə$hJY"yJE3#*c!9RZ{:&Mnmθs&xeG'*-oZ<+=s(5!LcQJ0doq%ڄ.>"YjVp{DlV8(di.#_>4֖滐[9p“}E.I3$.k^jbT LB(zڛrReuMKՄ6M|WS}VlsO{|4;qb3gk5eePr&ih0fZ ( zԑ=W.ܗEwţFF|c&`YФۆ;!UļPk|1Ą[t*}9Jl3GB9FtfʻtiEq]V E.Z*(Aʡm/rzjk:l%Yr)=7$hsP2R+agcVt_~q'KJޮ?0bfIms(.=w#uk1Bu*/Pm/w`)w^.ϟ$Q+atJVKb`R 4A3Q[ Ώϝ_45`]'YD%* pFPl>$ UFpK?gMB(ux}M"Γ%7T4Ym1PEoF ْ\ka'$h K]_vE)S{Q0vf2qfo v,xFa|u),y,8q1ڣLIR.#bk#yf}F8.M+c-W: 5\Ύ[u Y2lrAP<˦ "DiQӛI6FCi7$b7d;8`H 'Z褬VwdxB}:~ТSҹ\ ZL /-Բ߂:x#]+ٙT;^@#Io!vsNP%% ϠQ^p!l;Uɼv9cG&nN$Z fx"+QD| uj#qAfZ& kn"p>dXڍ.'Mo]`JG _o}#QgڲktQ"{n] >I!guj.!!)L a0:!Gr|Q:X0Y]oPtkeb;WN_ eXRhi:M.dV9V gyjh7C;BȓfZ"@&ȷ+ɥЁ} 7x̳o۬q_uKx޹OEoؔOfP}ڒwzbK|ɞmnݢQ/困tV 9Ѧ/3) w⳱~,踣:-K`ŶTpL2X!u2B*ކFnGޣp: w^ZO_a.4@]inSBvy8ɠzVO+kP^QdhY;D:qةCq2d⟫~zU#ܭʐB%0({Bn,A ǀ`p`vD@.p?ܡF2~xW^(F&|E X*83'06֥',j&l`MI'ZxdO^'5HϦF;o6|aBT־~lʣ4)[jئlq}|ݢv-㮎hR bM0O8 gY-WD ֡,%\+v ժ!u]o9LwYcZfU.ikkp 86t c\Wɞ52<[fG8?iH:h+4c̳SتdL}2j|l&HMW)=Aodu}$%lON':p7)xԡ}PmϿOr5]| @i*S>eQ#k0 VV)ZTv:Lr;Х;zT=^ËkU JmޅD҈!vwյN <[c<4xg[[ҐWؼADb$V(V)B3"Mu~Z$qΗ:0:;:ףYF#^ 7(}ѵ&, kNVq3/G-ǃ{2+.v uJYEJt.>(Й_Ӧ`k `DI]h -W=#fj4tz  EU#Hu@)Ҝ E]#O/9,襑H9WzyjEk['10i(\z +]/,r,̏ 2S*k1ʸ6]xw%G<[& oX12vD1"ShKQ(W0`v7!r>Y"2ěaRCo}Gj,M 4Ei˔ T ZJ3kshY*W]aD\©B(ByI+nfUWv}Cl]BRnzH> ^vPj!^Ȕ|L 'x,'@epj5^frI Gp#S#Ǚ%HoYV[=:.N]fAFN_-d.˖Yڝ3ZIz`"ʚhj#>5|?y:FjdO+1756%o}5w"E\% ovе+&mᆆw3uo0vPHiZ `Lp`rwtE>}6Ȯ,Ex =U3&+PҐ"v_hi%S`'U@&vfrM2P CyMN)6Wn\Pu(WV⹯no1cyHW/p !|,̏%^(A3)xIHS;8Z:G g 6 > aDGH*PD 3傡P!8#d T? ˡt<ۈjv}i+_ SV&N YIMd (a$XiMC#&ϻR0}OzD{H&߃Ȉ&7Ɩ^ _,C1k-J#ѯx18 G^P~(m,ˏm퀶TOLiHhPZMg,^%c2xA>)(7Pg X#`.0„n ӟCGN?V<GfeIaj#vi;SD%Y5cAj)jKzM1i8֬ob[Mx4 %(6Lg 7rHYҲl iWTkwѲT_#PוWh pr>W@?PHo:"RɎS>pta a0 E}^c?ߝr~e? Uۏt$>2bرZc!`|vćY|UP"i,ﲻZlPu<ԃ8Iz};oQGyQO>(-J$̏>s J=ϙ~2&KyS֠C`)h5(6}PAK4o )Ŷ\L.)h VʄQCqNi g"J_ 1E HmsJԾbnYY;)}i=сEL[@ʜaj[ (3EJ=Ue3IѱG?55,8L13ۍk~h֨cp"!֥ Tɢ֗|zKjץہ!c\2_d+@*aϫm<lPgofO另oaK56Ld7")xoPQrelgc?7'x-Ki|1:?Hg9g/؃ʑއ@ 2? 2؆F̯Ǝ5Ί_Z)΍4 *Y*槫ewaG"N3n%<-d $@5GU/`dqHE1 GԒ. ~8΅v _`-$6 dq!& .#^[crT*Kg Uxڜ5?:fEiqTks¢B"zگv¨8![:/g .貏鏵WdU7)ͅU9odwVp9=d'r&:v#QʋRɵǘg!|-^ķx@ >ZтWԹVͨI%'GノMhk/2ؖh =$iE\1ZNz~>"/de;3zPLHAD:rwFOڙ~ wd&<,k cQ-I.1O 9~TK2lTp9drLKvԌ){4sCSpHVZ᜺p(е\mCNJ_WmD5BT|'"æ i0~*c!a~wTFUZ?g[pS^.O>;w)KݼO#-*1%oJn; ITMBC0*څz,mh]!pؗc/IxXU0oK>$'A$|eVsu"Dv'F/lZc˅!-|\X]C·D0x]S)ېٲj$ b&~/pnaP.V]K)}ř$-SvD1l]'g w~>z=`(7ڱ3a>$? ^α $Ч iц0\c|\\~Ҹh4Έ"Q!Vf/.qwt,AC;h zNjofJAӏբ."p[艌R}ȼYkpSلyRѠө-OJдLt&.<3MAQ]OP5T ^,t.]'gWn1!&z&E)=Ɣ/?R0a뺓5wmϻyv/7j }`Io2ȼ4MxhrưwNߌt[_6 r]7Q xHWwϒ]B/#PRxX'&,r$wrNr"Id 7_]C#%@cdrz+:'nW_C-q꣪. Uuײ179PO0y5.B] ikT>Dr 9ySQKvaV gbF4<^t(%Y!)$\Ni('q曔xVs絳Mz8f狦Εڶ76'&Nt*B\ToK ,} G&(%^vvӵ+Y>%r}A^utodVq.]gzPvRyD[f]4L6DN1 H4Pm~/;(C# Nʓ4,/mҶ% trB38O;B]xpXˀf5KSnt 3 `o&%5Q9Yk,o7%iWˢl"+d5e;%}Kŋyo)o[Y ZM&/EϏcSeUfjث6).byɶQ]։6:LJm] |q3:7*|G1x.u%AEBɂsfGN+( "US[h8 텸뀵~.Tm^cY[y{v5ƶZsl:UR5x'K%HbG%_qR' Ůwė.+.gLzbua%[<+Gm'@M:8Ӈ"ʶlSzos;oF-AWw2Pkus844Nna==%pi!ǀW?խFrdx8!Θ@>*w/Y/L"5 הdZI2-cev\ ȗ/i%ybWߙ`McŻ{85^|k^a# Zp^~ڹ &{œrI`['I~HSo4js [4j_Q+}`Liw:})"dlZx|M\tHiUPHov~v4n qFWox4;$vO##3xN ળ_Хtn8NR x_z(pcw!*3I} N )66'g^biΦZRqi^0E*I \vcLU=`oG=XS6w I-|cl AmˣS>0Ta" ::Ӿq7$X9XRK}fMkj]j'O/vx h$L&}0^ʧ_f ȳ:TMdI%&5%`|x@Oed2THR`X(Mh42#,2){vq( S.Q\imQ Q~S.͸L4n_\Tl]3B"Ѝ%)Na$Hݗi]GI,}*uщKeJ>r* ҸshDsx I ~U`' WCVǷ4?$vT]Vb+4x\N?xrwt=:*}^njEx1vIOm݌PY޻BRd AJ|/Y-,'d9cD 1hyj9)ymDKV$W[4>tSiu4jN7HۖؕW+\˿23FD?4Jn]64%NV- *T*> zB|Ƴ*lV_^v)I%жʊ!kM}H @ysAEb pC"8 MO'%+Z%ZٛCx|[(R$8w"[M|*­ۅx?`#Ҁh+2)qfܱc&iqf>"Ѭ%LI:Z$-b(BXp'{7oNDm.f.x~]ņ  2E=ixy*]3V8svjG{*f :i:o儲+dW_*_å_ۄ1SAWmL WTU9![$i r60MѲw'N?R<֣r~{#d 7gbg}|- ?;〔yɦ"*1$p#T̼XE@js]o#<@~wۅr,CtH_xMX)dJ7ML|ؿobnGy QXdXsș&5,lɒ@Usyc= _X7BٴI^p* :M[^ۧ@JQ1Cɵ { K"@J=tV0?fdQG OLDȿED?&j."ׁ_3xl z?rnBEdR8z1Avʶ&CD%CK2@G6( \Բ:?_mD[ z#i]d=*έ `2h#"u˵ɣWȻn~5x.-gnS\?jBa_,zیr4!jQGyw k1a:;BJ։ւ"ESy<>ޗ $}"UΑdIrcE$y f4d\ ]?خ -ef7p D\7jm!E,bO){)18ע!YϽ ןiO(?D3W(Y{4Oݷ0\u,K|;Z"-_n5r\򫮝t_漛BAU_CuM&ֿ0+5-AL;!~֎ꋦ<1,Dj=}E'Eu;DoOl&fv ,mdH4{ Yt$OV~{1n=PTo} |m{=pDJa'G}90lD늾ޭT^Utt\r} qmhdϏơaQ&Jm{*tϩ06ԬIpaΟYRA+/wAȊ3A tEax;m>?i~ X'p30km ouԵn&=%, ËYyKA'3D0"y3k&ߚf (fYBlO' n1 "@HoxmM8*cH-Q=Vy*%}jiT(n1{w{ԕ1|wuM4W:*[>a}g|#.-4E՝SkQm6#A@C@&R||̆?4*M6~F'iKjL7Ť 1@b!Fˡ zYP&x謫JFxS"ob3"@ץ[L wʔ:oϬ# B,] DԜNҏG!xR7݈x C:圕;]wJ@25yZ[#:gswi,?S~J6%d4i&^W 7qeG0'O SrgDS 9EBo* m3)diqOXBMj>2 rɺ oo9PRKw4d3`Ra)ag(MBެz X),_<4̘II>#ǷZM_gڮ󂷾/D50k쟮-'п5wb 4|lE=}$B8i#dN"p?77;56dI@׏nĊ,#}C7sF΂v#: s@nȌUYy=c>]t?ci`TYj+o?%W$SIK^AOl) ry?AAD ڟٛM;vv0,P^D=_Ȍ~WN?M3/$;z}c!ڸZ; v5*&+šm%ĚQP{oBcqgN{'9逎5/zsGF+S# bZ})d0v̛;z|ӊ)]\H}lIzl'aO]Ƃ}k1#Ȫ0&;:f/M?*#jW?s}gZX=1Bp @mf˥HpW^Іn_Xrڮ)m=-WG{hn lJU>( 0^2K`}d7f˷N_XU_ fWa=qK=zb&'CC :N֗szb1Բ[&*}E5i07ҫe_7(9۝E_Ln߆x^>n?wXJw_(Sbjw,\_l㠶ioGڜo^%f[F ͍$HFCn/Mj>W$G;|}au'үofXD>⯫UNFɇXQ6c m h䐔գ{y֭w<;hK~,H}\]YO4\f\4> i&090\TǗ2,C$P}2 *Gϣbd$ ЮE&qG[6wKZar w# Jo+oRS3ʿ=GCMoAFOcz|Ki֬A}d5Zg׿@רL) ɺ!.nO$ P'+R͵$62%H䱖w>sLRat/NEu(KǘF0{'m2URPy^)%)hr! O_֧ܕ'QmzPSr<+q gFPp@G߂z\C4 0c=tݴw&ᗅv:M Is 5|&]!bgy텶_?gN:VBZp(bp4cyrb=@;]JȪrTC+mDrJT,Kv%?CFZS3P߳ 9+tK)& l+(,ՐC$v1/#L *if^v4#[(GIS{@4gt-HˆwTXI-Q>cPa鈗xqa]'gZ?FN! 5G^u0cط-k⺖GS 5Ruu"6vLL7T:[UATm:ι vEJ8W`X5chq:|#ѱ4 <,]L Q[ќ^ C?Ib"ɇ.oPˤ6̓tG@T;I-Uv'qur<24Bؙm'^ڎbH%L KM{X>PlaR.́9`gEs=+^F4[3)i1UZRPTDC[g<p8H Nq H D^wH|97YtJuklj\'Az[3ZQ(4k%@X[?ȝF+$W}l"s6M?n oak;0 <"l ȭaxشIV&7D6p㗇,N٧P0xWq+M0|S []͔7kT&R-r1LabNJ/#_+Et+XN?.[i0_ݳbe< }Gs-1zi'ː VRL&,4'N6KQrz y%V}"E'qLh3u {(w/F4VC+"*X<{UK)Vc5ޗ-\sbCQ 21'%ef.$pD+2D'hT `tԌ&(n0@SLOv|1G=7zKձĴ]We1γ1o\Uitg+tGw[OA8nhU%IZfzr2,L3OtTAzpÃ#7Ï珑–?nFD\UG u$ 8izQtTא"hzkVGrRoi:mEwfE~ؽҊ{*C O1GGJ=̛t'3}5vY(BPl!/imbʠP5p7t=ᣍuY9H{TCRgo1GN i@9L] W>L6o+'0 hP O$}oȷ]S]SÄO0e c0 I8^`hMn0%{[t*4τ2(:PKTR8#tr6ivQUG LjR=8]?z!w/Xo~* ķ_~X\Mߘ7hҨq}a-Vݾ[la:qD6_QL&_/3<ɑAoI'-{3xt݆ 9>Prroo $ #aV0lhmShP{xP&LjM69Hnqfb敋Q&pV91)!*|`;U%K %75Vm]R R>7\eGy845W|AY~;Kb I%Ֆ2=.3 _+R'c7O@9iʁEW< 1Y xߤh^S',y]aO2qc/H@B* 6 WR*aZ*H@W"[}B*3,yBm<iR=Oj 0lht_߱8U 3}Dyd m<ՅGQ:et |tg^7Pmطwn ]+b{.;, Дڿn 5zdpo25+K&H[4rV ۻh˽GhEA<|8㲕!#lѵp:+{~$3z); whIשߗ% lIg(qkl̋k;<@qzou"IYOO#u$2;cu(5>U XR 'Sk^2f,´}m%R.c%r4 zh}ƂH6X``\Im`4&v,kYq%<¼,j٢MH}%'@-f$~[G8Me龱*a[Xvo X0k/ӧЏ{ -OicҟeZ^o&i630X*[zo]o`m$+կ<,uy9e|G'k eh'y˨d*A}rF2'd寵2ꢈOɝh_X /nl!ڻ%C2:KݨZ3yl@S&˂pW9flXY34Th`(hqFfԺB#Damkgm{¿mR@^G| FY{gTYdRy致#VEe'137Q*H]wM< / pwUQbaܕj4yt$ȦSG ڴ,Wc&!~]RAiC<ˈ Y%Kj]hEuvi*J06FQàj"GcK1? 4/0H:oLhGPM62% 4eCޫ>PKV5}nEszЁȰq;::`*CNrOu[vỦYP{9 0JD\cny |%=OgoP P!Ԗxd~+`%KRKh +R!hzB29ԯäUZQ>c@v,B>f%}X$89W^7'8/U&רgi  [w<&8!NUnZ9.~ٮY >)`ՒCE"EJ9V9šZvuboS5A!fNy (7+ ]^Pcp䪳[!cxqXR ݇"qb&Gru 2TAԗȊ);;Ș(O(}a_g8n~(>3qmi@ eRv9朷dRWrSd<̰f݁a_֊R$joh՜88mtr^8*j Ek7"dW]ڭ8̀"u[dA'Uٕyl۬1' OcPU<0[{B ]j0HAfɪ9JNVՀ0_X߶sg|jTzցg1:].ܠdu(˩Hc̤Gr>ԷO'CydT޴3*M"oS )4j&&;8d_<3}TDk4tx^.x1v \J5*5doy̏x F{[|/^p8I{=%B8#zn!ȅL$9N0J@fUuY\ViB{CV01Y6H,|zԘƃ7)9֚C ޣS(;^BipĜd[k|B|-´V5vx07q;t iK42II rU ۶V/5N78 U6۝[Zz>ѺҶ&R0?hgb#,~Q:54d G1~ZsŢ+ 6^Lh`'P 04am9ߐ|7;0E8YB[Z.*#N}Ԇ{M ~z`vKXb5Hxb iVoWJB@Mz2]GgɊ]3M|A(K9!ymqᏩ;aӚ: bmET]` [BvㆰchכOޚda1ʉdeuQwQ Ȟӝ1p]Wz QQyOAFJ?F^i]Y`.PZ"0`l yri-…O9pr.!SFL)ytS拏O(dܬ*d'^'z8:qߍɱKh*337/8LyPҍ/? ӂ}(HYe4!)DLL9,DFgyJKχG p XwF&ÚLSMV|N@8IWnh[7p7瘴vOҏ=W;TΌڃOmV4OM~\dݣ8a%[5i=ʘX48%A9j$;MBs4]'}li2H'%048\ HP z:ߦ#>rP Ȥ3ܰ]}H,سKʽbR i?.:wm%L?%)B+dX9RhU^9L)n"<=/ݜ^4)hZvIZ G%9x4sBeۚ5߁{܈|:T"YJi&_-QoJX <8?H*`^%c"*b: P,JG>^}:ЛϑS.nfB6gBڅD<^1nԯx׵M"+D<u >6wNXv)"_x#ԥiQ3,P1Sv pgPLrUС7mp.M=v (t h0kP2g򁬷 -Ž𾚆fWV'^MɼiK,KA3ݷ[adH4]x2DU;? h]/8@e>ȴ mݹx!% DPYnb֘qH>%,xBSC8y p,~$G u b5ٷdr=Oi晿mfź.Y@*b37D/>]R_2YÝcl]F6!z@5y^n"'8N]TMVT]$Xwyi6p.}Wxo*d$ y3h@yڌS4\^u I!|<0ߢ8w!wbP̳3X⠊ ܃KMhakUop}u!Usۄ%Cz*Lf00%! 0~-/٬ L^5E79 #<;uTR^b\Gv/4<(~JKLM (( G]ꮌuhO-bnqjٍ>$fa.ZgFSJ;TrhNL<zN}=^EP/+պEq90:4-zD&r}?1$Ea r-3$j=)skD!߰zުnژQnTL}3u= !\|CF;V$K?cioRR9 ^J};=97=rŀ^J^;̏|orD"/y2I&j䊩1~%M!]a9jYwFP+XLR7#s|`>&;0Xɞ']xt70lϷQ8ް\ =J򒾱 0gͺ"M .Z{v2\0·ctf`Rx7{v6 7^)bN{ė닊bCUo*uWUZznd+Vs:UQ$ݶ&~ӣҚ ΐ[v-*D+oCYj n1Ecznas5 5}aTL 8+(h-}Ma U!`ɮ崀ocgi[P󛗏,4_0`"w5ZW+s!{5Cjms `A6uxօp&ɷ&xmrY슍tVdzrn \O|Q0oäF[j~)ӳv%cT8wv5_G#p8^.<. [o1CREjAIeB* b! 5lC u鈖.9jٛ'|a 4ҊP$榆Z($a kCzb}כK|.\BbeLy<`\.Պေ:]~)]}>1_2gXH/"@VeVp- kY_f+%P&M ;Cն w1 Rav~ߜ#ww TxWo6յB}?(KX-ya]~24blma=hEޡ`5,vSZFɡZNWsEZh5|r<~T. b~86`<&KP*InN;d2f~g^? jh )Qsґ]5͕ف2"^5t[JLAY+yb< Cۈ %q*`y^uL@. Wk̆i$@ZM[\@mngh"<fF,QXG.Kn0.˵Ib,uYoAYn_2`H-|^TyQ̝ayq>XzZFb# }[ PEb1d }M(7BkH/nrf`[7'; ؾ &Spxi6bey &aZgn&lS1rm)`ܽۻ8SKS1"Y!8c駯v V*]K.4v^y:d q./6jf!)!M/pEȿ}.HvP P0G0߬.9W gvZ n4j'z^7EW X:^ەLanPy7קڮ Z6;RKk\ɏ؎#f>y합\ًݛM lYU %P fК-n2k Pۃ4H*[7F+/Wbh\X++LL6;\qz=9q w17.R"o-18 Qk1.b.; |{0[U/'sCyquK_ \&P5Ϙ{G0dVԝ~h{:gQI]Y*e]7NZ2--4-z|kZd ڄM{h=>H.}O@/b oBǯ6@jNRx@n#n*_ߜ2y0\;:x0r-/I9\qMT@J%xNQU'No9vo$u @lqXVdn|CeC$sC~̔7_L7F*_ YO&]ǗeqZT 8{1ލԤB,"atT܄ h; 6s!`:p\R.2zh^)Vo#͸,Eß#K'./ZT+|:N\17c$OW.&k7\ɑ:ULbXH.#SXHZP&Z'B̥ BЛsՔUeRBG~Vݸut%ya.(AAlviPk2vQi`0Ox5MHhUm߉XJ3P x޷HJ)ԴMt= 7>xcPC#="]#|$ M兵bI5< Zǰݨ)H}<1$!(QE!ն67c3N([-T^23ZO M|b`i䂝X!CJIXϙj/˱FP[Ӛt$఍_PrPMIB[^\du|] }<1,*^[4^X=Q%-q*"ܸ7$.[g٪@i}UV)$Ni KH9Z* U*^[R%Lc lQrP:]PbI~P56(GO7+6;Z5Bmzp2w]Y.blDec!-P:oR"*\-n~zڮ.@sR|H#b;i5%J0ͱ4wfPRJH.Bd=W)*P4Z '%IQ@<iEg6w}~GOf,U"SV^[^X5 V,;CAK`xՔ[Tއg j !Wo$}*Vo0<jbnPT$ @zieL1v |},rpfz7P|;bKlEl- H^ķY9~`<0Tn?F}851^BXt XH;ToM󱌋⿺' ."^kq) 3E0&CQ3$I)Jw{ S"xE&21U 08D"RؘO ֮UuڏQ~Fu5N`&^Ƥ ӕ05D]up׫Ce&^,EY|\ U@uɶ}_&K@}'WG ܊-QJՁ?mB?F> f7ӫaҹC*rv!& J5c`cE + 4fG"q= s)W5^$ "gze<}Dq^ee$","NF0n̻ec}|W /P/pw[eyo{Qm{EV?7$|)~FB'}B#wo1M "HH)\eӺ\Ր:K:QϯxA:J?A(^ "J.Q, ڌyP񮘼}#iB&1PL-rTя `iM-xe{B~& ;C#$zˊ),K_Lo@yHq`)( 1ɗ& '.xvNou]}.,0$",#å]㚔q40͓w ?~ȗq&q8ۆڇ uŸ@v_q BPo)~ݾDHTB8iP56 }(:o5vCFg)Ru11P@7bc0P|޲`qkdvuey\E(+B}\ 0  2/Z@xizAww"ߐoI%pA3W栊#2Gu_*';9j-j .$-F&leMl  m 勣{p-[7tݿv˚^D5h-9DhLϛʧ0^R7{#B マU 'T-D )C7ha$Z72ǴEǝGnzXZYF `+al@P{3<b6 MG^U/]:hY;!p9"( FMR9;ݜ.kkMx4 &jXizQz9 _ 8ųV9kYM8 xHIW! AEO=FCPP^B?^Y-ẙ=+86 /QyPEgdwW֓+lt{A^i k!s)WlM"yҩxG =Y o-eXE0"ު*]骓/#X'6!uŮb[ol>xCk(n+z6֌l-FT>fg{ 6,I @-<|]WWkZwiSoQVG<tNx˭g D:E-qhuYK6aeb>Cv!ރ׬%$8}Sj5wx4W7ut\ߕd*~= Q}sA6#"i+զ]P~Հ{*a|سFAE~ᜠ]TW(qX׏ӱ&Y/aЮT9F閙:Pc,#B,}mrg5t ՞[JF y2EaLKtega_h4(3ߟ%D zN?_?SR;q3>E md.@[~=rqwJ=U5kWtuŽ'ۧQi@7#:~ˊ4/TxQل-?߂JI,=؛iT[< z*mr0 $"8C蒄gve v &,dbzpJ)'I͕{m jb;MO dI2U`J|lA÷\dayP=ŦE?5RI^yx'|}yxszr'ø3ݺX+َl݁DQ_XUt|]P.ĘI0jvtM&g-_}3Z:[|[@D8EHm![t^ oa,ԅ^c`"4I@&\Eem"ɔum]1&WF#M/;{JM@Vp nmf~(uqwU,q$ qu$;c#ʷR2#lzޒJvWD=\!&]]k,Xy"jBkn-ąÁ>79WqYV@Z/`ؠPQpCuŮhz-*=C"%3ˌs8]Yly2MT̀-MNO !Uタo>Tf3DQd(1T%a"p}J_1 th؂(Hae7ceM9ǞQ9 .فbY,=ԱSKL}3wwGinTGpBZH໋<~/X\ԕ|FaFo)4ZG%C5c_Izb ij:VvO'>R#z}ڮ#&)Q,^oGI>T!YvHrbN&AWb3a!b(dΣJU*(z[CF&tw@! G6hHxӟx8؀cI X%K)b9uxC&%]8~TTRzu]S?0TQ hgd# ^ʄh}W ǽ?Q|4ۖߑ5Xd(^_:ݦF3dω*h;}zqx$O密!"AueS މJb_EgEF!}(~J5oSNgBg:O29ZTM` #yܠ_qLsWfE!ũ1QW 0D8AJ~ۑw˥ȮHpY8< E#ס(Ķ:o%9fS`>^6qB<}{SIrq8hE؛;*)ɠƌY9ii?3C⍟ 5mNɒR&MftPX? `ˏcz/~lM3 TSw yxkOWZgcʛb?RLOJeu(ZIs1=E!dD(452q]1T\@Mתȭ!o2v~^-06 Ґ6}c9UN{8Z?R[7]ceh'-XUYQtGsS_-16>d'JyciQZ5NZf0'Eƪ"#ڗzlOT2YKfhM%|tC5uvMCoKnqb](7iwz+aZ t%O(&)]gnjܧ8]%p-΄O~S+ujJ:˞/KD.uՇ֌XK\߃GN?U/ .(n̾tu(h\xW^Ϩ;L"ٴrHzX2IcXM A62, da3,/:n@b~/!`K|8{ ǘYxu %Zg|%!CrS &RqR#+4/\Qׇ ?!>h]gؔKυՈ;%NtıւzDO.!qGF&Q@0V0al!gږj}G b-S?bzJFe(g͓15pOTmƿ.L˙?yU| 7ڴ76=?_+穟8s4Qsܹ&;[bf੩5B ܪwrH-/:=;r^eF)ϷF(Tj'Ju&ѾkLh,ڪnOnI#/ύ!f{h%hAڑgQ q*`߇n VhK5\:_CWU(j;f gbH˦$+ME5F}v:cBλ/c+lEbJW:[$<Ȩ5a;p:ՙp!Q6cڟ]_Zs2#;vWBySc5Y ֲy5s:ӨwX Z_ _/lG5\9+3yk(P"Z!!O/tPaյ` bmCo|^cQ>`0]w\7XĀ,u}>x5lTeѨ"/ϲE.a@3Y$IR((ǢqTU).?ʎF-eA@qGJ^S|E7ӇzҮ6tXن`%p4,ty}3]1o%[`QbvTzxWr>Z^"Z[{񗮁11綂~Q 8"q|RKA <E$5|H‡!`9PO<7rZ^RĽ߽4f~v|)Bvߌ c h)?A\1/O'[H ^[>tUQ53䵗v"L '.XyaۆqJ)`Vy; ㉆%;q)9oOjLq˹&v#u.1USӧ4au#? DB2˛t;` @,9o в aa~/b陳L;PaXPR{`AFO{Wy}qMD*Iw.(u^!RXq%Kh*gfUgrA 6!6*Gc!S7,vb0!Ogɦ>bMnSH7;qT[^ht$6A flCG!Pz[pM'[4]a.xUJ*ʠ-Ҡ+exp& 邆th(X;+M+\` ,Y =WPaቫ~PuǕ(T7ML PIGHxpqF(MOiy4=2^9 M8  >m4- VL7cLDZ8%^`KjU11Ӣ{Ր"T&0@S+06#5Dbywr擣3/u\K4}`@# vѯTUnَNo,@I5"#KI$q\Y%oՇEKr%8EIT^9_⛱oLx*^kPMm@E–ҿ^`cu+: O7" 6;ekk(=a|LRȚ]VFU ^uɑt$Ŷٜ-hQm9pfU`Ep۾X(Q U\xLUN@`+`:VV*!]90Eه=ӏ=5"P D:O}C-睢W+{sرn,h@Rrj'a_/X:uncbZƿ:_(%P-$ ?"WrHJbX<"Obߠ8HLr77;=JCƒ?c$&|3mO͂lݚ;~=#.n'aP61e0pЎup玖HԽgڙt+aAZTR(%x0ΗgK.]RJ+)rxg(lT`^GiNzP:t"mQ^ĬVl>KmCyQN.w n%VQс2*F:M-iAo&R%ͦruR*}:WeeJ?,H|kaˊZ6`Txg˜3%(~09Qh ߣ.dMq?f[Go\~z9_JDتshSpv'n`Y7L*?(5gɅ}Pw)p-c@O܈iup$|TdR6~v>2g,* *fK<9 )/ C"o=o15:e#u%8!vH"EA=GFJgtx:D+"źz>UT ¹=s-vWB!U}]-w+JfP #{7bl`鸡Ud.IqUW;c}O %fO[cƫ9OV( |oڵIɧ_Pi/.aցр(sMMW77yMTGARtY'D^-l2O9"`+P5 EB4R6A EPu>X5I>C"a_mv>qJbaX%@ҲZ_;o JSԣ#yKy\o4ATl^y\f&]@\'s~˴1=<΃h^3SޏoWbbG:3:XH; y[yTKnvPݸJ7mJ/\%R""A@ٳDV߾*,Xnғ`/#؝s;`AGq~8!:IԿ%QԎ:Sշ aӍf_.HAoa2zeoM?em^m48"R۱EroG6hm_qJX7~ N'̈_:7I]]sfNN%C2WWJEAuZfb^֠۔p랰0A 3v[lws( }53NmWwĥ8BMa,o^Ez&k#`1YX9[ J,3})l'@&_a%/B!H55.Nq\:w-7^jbUd e)_doJx:ҊY|{O:GAV>0ۛJ)J?.<1~2[FֹԌ§YSm7}2-U8ty|?1pB;xo8澎Ek ~2,V;@T9%PO2hg)Do˲9/Gc´f^1dHV<[o%k Yf\|ozF2~GUCh&XVvh~s>yn)mN(劚M;j]ܰ;81VUÞ'M$">ZAq6 xΉ7j]wյ+:uY.WBË$]JRqEidzrjE'2 RuImRc}ɸ3'MhIkhi!jhһ5n7 fRPa֛8jcƻͥ@~(:oab0xwN2f{w |+|̘ g J]oK6?V}X+OAʷa%>}.Maa;mO_ZBn˗>N;}5$l*'zy>g kF$Dv"p5ٹMda5E^w/:wd6.ueÊwRK ]XKB`"mwQpF|lXm(1\HJF{a%(`M2ATH):"NsToSlNne&pONA_xv&_3i4E]mP",e=8g w bf=ɤ:ڕ8$94CDK. N)Z-Y8AC?X a1Ѡ`Y1~]\Tq]m 'X LJx f qU_t)𱉳^w:w=|MTvjKwz% FI$jm|-=ks;أ^^%ҹ#2͌ Vw,%Z-;dsZK)œK{d+Ka'`- 3NR iH) &kFK%]/\U *<^),b=o T֩JAHe2/,Ep2én+ۖlF g&sl@!5vM5)H"P$AThɍh @.F9?:bZ|̏Ae:Evb'vKw)ǣwOJWhoayfv[O++5PcEsU!0(MR߹niD*lR dD`vY(ۛSIL(8KID1቏JCܡn =ΏWłP|Tm>q1ly|H*0r `$OQF]Iv("[%)U:wO&'! +dXjqڦNzzH wU+6j.9JhEW B}W쇙Q]>5]jUr_nʛX8C!Ag,i%el<8-9MAk%!:mڲ>j*ĵ\ץ-H ,tξg'ЎGkI !9Lu~$'G)9ZwiCǸիt?~xdnh7j0J&Qһ Mb !x`hIB"zC6ԛğ6n-z|<~,@CmI, V N7'vSJe-mLJU::5+%Uwn'^!pҜxw( {Gt ! ` Ne@R{F Z_^KsYx) }C\G(O{ ; n$"Z>. KYl(dC߫UNZō/ ئij>ƚjl67UH=.dFQ܇5? xғI'PBr"i5x yaZlŠ W]!CrݗXXS΋h<1NG$WRڃeSҁeWYi<9)|1Q͈c?u0݃Ð{{%җykbOF-T`=3ŗ<$4O_ xq N. LUz' (ѷԩT'Cʩsi4fb [fPLDH1+} V}-R *u0PZGlйZ+^~|VՌH UGDl0d?B[EU3Iv(@ qpz{d<߰gR/\L~-wH#-Y) e6d~ˊ3ů9+`p!lAef*D8 m_)k<_L5N4""8+^dIedF!)S/'J;ab-Bp2n@FxJ!+k"ʈ;E:~ RX:{7]CWz$3dxn\@CFK_#f+B)\(A2'W}2$m+"&ɶ>^a?@AYtz# Cw%#t}nD0iP-n S[ؼITvmm4"E9Wyt%M-6P|TEUZ߸l@y H$)Q#D-a7AgP% ?N삞~2Q&>wܽ j+L4,@4\Erߑ_D굮2t9Y\zn!MNB :i4/4$)H,18"DK7h5+5ˇBiլ#a~8P=`S~%|iznEWMA}),v9I )Nߖ%=H@).M~b:)֣ھYmdSB(ݖHEJoX7v? EbE}yYR MC. RToW ^g*˓zRJ-Xp W}\9 գy&Įb, zf]p/wzU&S2yz+|XOG~vt˾79mk&9;GrZ^$71 t0Qqhjp+`z\ع4+2IQ#,Pm3Ӌ.3a,Iv#8~7{v'GΗݝr$O]w# H8ξ&zh67t8:Z[$ =N}ͺ#Xy8t%s7*$>Ci8Ʃ5 ҹJA~z~ݹ*SCtvm~h^zlQ}k:.&B4-~6j68zmCiLs_G>VLDO[ZA %tjgf+kC[i<+~~@(Đ6*RNgg~E];.I I/bp_8ԹnU.1:oN[rlMۏ=$*/֓:^]i>&!* Ԓo7Wm4#G>m R;5 t@6 pA f1-r$BM/ЎSML#]wKbt~T%RPYF"_(%#/5ѶA5bcv&@~*TJooDjƒ{s"ܢ ЌEoH%S&(ʖ3C%,ggpU-#7{ԩM/z϶zUCl ;P0y&EܟA M4n<)%>ƮrrS&)Ng,E&h*hoJJW/ZAг6a+˛p!Z66M`dR$X`d->Ni+WMT0z\Xf'7OVlz/eZx,zA PAJ%gH=0!롔\)>UlЊ11~# zRSjzWu%hq *D'ψ(Qxr͉JΔmH;(rgmXo*WFQ ։uH\Y!R31!1Â\lSH9KۨBC5-' pmE # moblEMMvݢz6>DK2RZҥ63|p8 8nOlU[Wz=,dHиwSVYđ%I5W" -aS0v=[f@Ĕ3Wei!ߜ6b6-:}J`SqV,10\iAal `/4dEzV*h[{vop_c0Iϛ緸7ɶj +)![<'Xľm/>)z֛yFv'μ,ßwIoDWn5<v L%>y_cӺwZq3eǮ:>RHH5cwGť&d+Zdqb'WZ8~ڡEWIiA۾u ɯ.ڶdrrUy "~AWe<=bvF+0*"n@2tKQ7D˾|vsݲՙЃ[ ˀ%`S\'Ms<\!e~~ 1: z=#~"b7]E[^4w=qI |hZ@F?s WT7"e Qwc2h]rci+:Rj&M},TN bA6e#^QީA;# ,VH%-FlQqn~`aM hl鑡()p#C~&t&RG49F(?}~FC-v߹Uh{|KzN왞W> 0N=Ki;ꏻ-rITQ d:My>7k}}Zν.1ľOߒr82PoHi<9ʐ]qa j`YvV-Tx_lw3q+!8b[("6;ن)A#7dD(bQΞ7@{ƉQM&Tڠ EU4(XwUCV_fIBp#CpeWȔvUbHq[-bCmaLhVjURޓEVjv-мkZ6jʪy0 J),詼a1+jW_*B-vjj(&X ܴ0RfvY"r*ɹK$57^N$Mމ9ds{{s*Q"PjS#&0ZO^.RpO]O|eH@?kK=#RmXylM(@Ԗf:3xx[r-g)n''s’}otz`OFIM *A"a CvbI 8Y ҭsW{s:u3,E_~E"ShY$Pk&X:!Zo8jj`R:$/UDi-m= _ Oޫܝ{ݩRudC|Q6}|z=_= r#RCN?|oU\eTPYlm% }4NgߕgX-ZD7$! @J6XSLZ}08IUdĹa]uƿUf`B)եD|V8r ^E d::![vjr|Ŗ[P!,ywp\!$Sm@,@ѽ>"JYo厸:eXr[$%>(Pj.y8SϟV]N߾]L'yNqYWo209N|O9_흯5Q<е ANe,Nz0l8$Nr}-lv`^(2f{Zbh4mecgYzsHƶSX*s&8SBcfd|!Է%֪-&ԗPf%IdqNy(SebMtOB@O7ЄYݮ`n/tĄ{ ou(S'7d[3a?O̪O5W׮ZW{u]SZ,_Qd}ȴÜGq8ƹWX/IJ[pؘ-ibk}#Z4iН{8ќ`~|MڲȆ~ ol@r!t`.:kz܈ŲZ;Q(I~'efaʎL* ٚIalO@eb,ͧe;T/b5,\ oO,ߨD#C I,*BR.IY~&Q6A,x<SPp?bBڀ"Y˭ZuLl+Ji?AGN|`.7h|,jPUE>_HrqͲ^e2?g[IڞѯH3npϏ`#{6Os|oo=ThTO7$4Gd5f;op|T&oj݂DʜvS_g3t'$Пja@bH5ÖhR=Mg%sKY\q6S. -/A-+ n:j:^y)KI 3K-b.a{lO77${`ϔ# ;W WNx`{ H,FȡE_ɷ\R5{]S"lڭQ^NmoHP`)9-qIӰ-t+5?r,?9ՁԱ;A,wn}8<"!g68U7^jgY9c[g;q5 TV#X_~dk-صHbW#<:o%aFT.P41,SD UmD,.D⻒W3lߩj^4~ƴ6>A{Zf⻨?eO]_ !|׾{oeWgFCgBqq+QLQ8ot/$pmiFۘ&AVf8(iWx*,hPx%v♱YI TqT-̌rH3#-{= Iْƙm 3E2(T qiۛw‰޶"ī|8h!If[2,NBX'd0cqr}XG#å{ƻpH3?I|x*L  Q%hڌ.#X魵h,Ή19ҫlo+}"wE4Qækv{_)4|sW7#:}:iTO:2".~-/Dpm%Yͧ0Dk߫l[Be?*4dC? aM(6ϳߪiJ_?c"LrlpK2!"#{NH>8:oEWa ~9M3|H=3$1QU_#Ǚhvr.d,LSvT bfO ~T͏dE%BucY'օ3IPhGX>7WzAӉot O dm;f.7\^L7W}zutHJE cc}ːُ.jLРs@ַ\#ȅհS'ԯ\~ku2 J7/!%QZQ`:W:W'ƺGD8w)jUj-$ 'DtHHyY)jF2*8όsN,{PUhbLeCCW}b)uTzf\8y21j*,+Mעznێ3U@}#X\kt_ g扦 TdlGTp?*tij0ŷboQ yϸLt~~4r2}D"c>l4zA EM  n^\bAKr`p{gdUTmvXs3-' 5v@ێ7,x@QjUբFN a@ %L{*+ x;&*跷7p /bCs86=r \Q$M\Ee qR#GHwj\+b SQy;^!J!q=%m,~Mvd=d{\ZC. 1 %LQTS'nSL2}cMVz3:2Uǯz" %Tij|}DGZ$~q)"9Wd٫lJjAF-hlKp rٺd}Q)2c/Q)ys "Qҩg8&_pռG'L,3 \$ũ?[&(*KA.=JmXvZ( Fs`LlTSCzUAT_qKCOJd"Wc4P`mt'gT{sAcB:̪vܕ'*;`X`}3c93}tXyr/1@V(Bjwy,rGL j9l7>Qrywk"-1X# q7)-,bï @G0]oܻ!h=/k,nZW1λBیD ~Ƞ@rsKXgʺ5n|>4V?k§X3[ڋd# BU{Lj&ܖun4vl=l4EHL~el Ƽɿs7 9? X~sAA7xZ9v߁(?"9~!r:=XWbn NTV#rɪx|7R>U-:gk`fu~LExmh.𣻐Y2CITXQAN<7& f<@RTD\^:Z(-= S{~UQ9؈_~d (mUCQk$-{3\fa~}^᜼4T;sLÿ-;IkzY)IZ%Y&W-=7j>)5iU9zK<;s2߶ 4ϚEd-0zqOɓGH8UJI_跇QUqO.ʫlkrJtUcaCЬsNln_L^\0ĵب!ݎS#Eq*\8vN3-+Ӧ ^x}[KR3N!{j P!bvaV0XN].QLH  yrv[pW1!B&:̴j.aW' 8_5@;c[jD9(jϧzaHiSSj*O=`~ekH5^p+0U_OX`sLcp~"?;mNכb 0/vI᭫a(5?4$!nm}oFQ!_Vd)8iKVlV1"0 NS|hÛa5rƭ?F90F1] 5Vx8R:Lŭۆ,}CTNnC3oQ(˵Pa_p,kM.~%"6kŰdwUb̆׺Aƨj2&6H.0JQ}Zf2_u%I\.ݏPMJɔ[n&!͏q|g11#cs]GaFyXG'u08`SՖ.'q_kjaxl.8w3!\yuǶ,ij٩ci PԷЬA09+Uh@8C0D֖ B39n7zUX ʗuDf#EݻTcozQK}':kkV!lRzX lچFӁVsy()u"nB6nKJ^j׳0{ؤYpGoL{BHzMEЩ'' !#! d%KYJ2{|DwDKJ$-s ,ShjB%f00At@3A, .\:Hy Ύw=>ձOЦTf(~ |8s",2 '5.F8yU3kƜykk\̫-A–5`|Հ:F ȈшkZVP_]I~ͧkzV&LFg#j'@Oً& O98w^[q~dXz[ifgjwە8VZe 2L8skUT`Oͩ3^`-+1M1e(~SAB3ov08I4OY%wBV~VC5o0!+c _FD4iF;ܾ]|r,.ƥ6JYnв7ZFQ%|>++0#:)j+7!ML' cEuNUXݔDJ=˗BȰ k@E)r߈ N6x ۝ITXmKRbE ܯ3sB^9Թ'eCFCϻZ5E(Dae6O΍4ѱXM|B{kxx6>yy( }-9chMs8 ;+c sL.%4Ae-/j@gU}';~*F̳YxXVU:G<•d0f)0%4`?N1UYRAvW;BpBv)&J.ӟ^xBF༖qQ2 SYjd͆]&5\(+zt.)\Υ]ij2KBl'; O*g, Ió7~Ec&nA{+{wqUR ~5*@fW{-+eH2A|q;V{䓭/:Yg˧|:~!VQw#^i%3:j<$ R51jgb[VU!*vhf4)`1'<5[w_C"msDD/~E3;OtC 1Uz6vdlE1yb40R\bÄc0fuMY{5+.[v[yqCmĂ_٤]pq>Ԉ[N8|ༀ*=lVao#5yr}"]3dOIKR&#Aw 1o;.lz 4WQFH&7*X*4i]b}vvHKOb|xp{%P5~֕. }A},R ٲ6XS. J$M(ux&(my}bdHp?`R#\慨@ oi/mKG-vׅY7Jà^yfGjڷer5q,!Ģ;NWթ&ÞvD6ޣrlj|vvvo#e7mHHTHkX DDQ8s)-R@pɃVnԸ:8W3|/AF0ZM%3u[V#*&\^ߑ4f~hkeSL\a7 Bǧf$ȱ{kX h1g~O`_ZW S;%, 2Z)d?" pPI\KҘΝ'oe =wC؆u= b9<0ZY? ;";]pb\J<.;&ֵ[-`wY"e.SFiª#_ HmEsP>vnu?ƉecS{Zo n]lg폔}Lo=TC tyl#lwRoJ.hVl,.EO@Ζ[&]K-!&j-zL߰3%#Q88GbB3S;|,X7^ =Bc߾.!8>J&9ԙF߈X#`Ж90[a' E+57I 3pxVI WGD]pe JX&2װ__mNc|6;^m ?V^b $nT׷ 47hRo*V He 4 grp$?yflzi3o!t!M(l 6a,PVU!F>y+% -ݑT[.H _ՕRrVNO~7L#,U{9Dzl7NnX%xC=pD!K "Oα,İƀ :0yET+u,_ۂ6EZko'0sJ\=ѫz)ǜEx?FhjO5z?-oqsm݌EV?{B/9ؤ/\)}La`!M/_Ko Gcl"?K,gar?Ae5^n`<pp`44LZh@e(gb^Vzj.س*\%@J33q|ŲQ}hjV\gH6fp Nx d*i}BAqKN;j}βr\6Ȃ-|7d-?ы,p kѴq~;BkfcCryfWIWSWO=oW,-n^̝fx=d2sO+"B{Q,t8% uU8>)ꮠ xx|.42}~CS' ÂJ,u Ȳ :fV9EU 1=T`2rB'Ed^Vgq|ԧRk)^X ) 1nlh06j$ZWa{91"S`I b=bt&s6f~ _ZGr{u`q<_j YX0ȬJ#mg.5UnR+P)K?c;Qo~gJ.I՛8uf!mρ,8Ne h1›dPdMTY7P>)hܠ"sJpu6NwIpۿk1'{SN }Aܶ)b*Ccoh0&DY/SAQ2~傊mS Sv8'Il2$p_6?f}NxZ/"1j2 C(Y| z<4FgD.Iޒ|2-%eq@/+l|aQ~ڴQ(T$Vpn{iW*8T'T F9w~3fAQȰ06FM4 P*"هԷ;] .VI;ho"pb Eu8ϓnRE[@r͘UamhO&'# cJU\Yޤ@KŕoheuRpCeCe/W]Fsi3)9?ȕlo ANuun>#T́=MkY7MD])rJ ]wz5 ;q̀\'m\a\GUTdOHFs$|Zd]ʸTU/eSa{CCФ A> 8]yn%)Uzc0 | K> 7CWF+l5|nc~y ,>l˨:d6X: =̦~IVjph6:*_'0j.&6Ŝnekg!qW1o7`e-L Pc˝1>!eTe"g.:v*/Y"*ENGy@bTydpէtMQٚOVQ!u-I8CtwYl)AXojڼN#>C+qCGxEǂq\8q^ku_uusr{aS*DqNN l/ aze9$h'&*q^%;g7ljVRa$UKK`C5, B뽳ʔDQe0'6JVvGB /`LX웻}t[iܣQyj*j4ڟÝίƭ@zjyY6.m1aez8_W=BY=qԃ~o|celK$*ݿp>3o{U0J`tB\1%B-!1gOLSo T4/7d9QX9xcf$C0+DQ0A=Zs:70 ZDESY0܂@JVʗD KPyӂx.)`V#Ƥj_70c(\TKdA~wj??}vd w|id8<وTXh@j5 fkv3!Vy=I{ \ފ7d;yW5~Ȧ/9@9~ M~y6jDdMcyPڎ}iI/u{I\9㧁j[d\I3"DLg[\tPh,XnSZȧiSq1lG ;֜@ߗ MɀjTf"Tgm[uQ 42Ȋ D\gkz‚wti &C~zbIdo[G媪*Z WUέNgI@~M!=q/DTf?܉^a|U#jNrPApfݷHB+1ZV.^3 :KRcl%PNVy,N."?É x8-((&{&11@ p7<)MHx;+\=BSpj Z_{9֫#3kfڴ+ڐh\cn٘xu]n$'"󲏴Uu+I&BE*fBLAծ!r0۶M[%0RA/C/KI}ԄUj4;~zd.ʉ/2dMUun'2dq)0;%Rm[l+j1_U!YJnml# 5r۔7&.dr_斑U3,ٓqJɿW^ wݧUOWp~&oC(;xHE!Z_:+z' R] k1j5yGv+ BrZ\Uk )hMTIZTږiS\q*t~䮤w.zE}~Nc՛-yu5fznc݊rub>34]n71yuAk,E߇v*trv[aj>C: sZIJ`y;>c@۞XuLE 2{kz%m 9Uˌa*D@7Z15? " $ }:`&u1-iS#3 Û R)~{:9V4~kym$KTR9P Ԣԃ4ِ-cۄ -mQkSx/sIbgrD uxߥ om\]stU:x؟Mެ O=bvgQVkx\dMŤ\_jdf7 v, _)h9H ;OZd(iGp%O]ObYOfTYRMdSЩ}<$Y.ܖa+Sy$p7崬ƷRp=-sƑ(!ܥK3EdAa&_(y|fj?.>;wZ@#jDVT,~P%dbΥ'G q X)1;NLq;g^&Œַ̳@_?&70밅O%K1UShEC~*oF~Mlk'v }i|!T<阸&ۤ}).Sg=Ia{~'/ȑb0g0Ŏn9:-kf ynj~UX{v&&8*V:уpiMl'5vH^loէ; W&tO`>6hhO<ۼ,BBKbcnj?Eg(@b].{o6Ӂ{IͰI6G]w*?tR?. neLJGp0}:m0#HO'X3tIipi.q=jb/v=6W>hos&V &eY`U>&>") (+XNHȐH|?O {=ዑR>\dFP|~9$6T!kN(`W[^!pކjg[p[4|w%TmE Ƣ7>D}!_C'0snR?L%]Lah ~q<8vJu#E_2ا !0 VPd+) 0I8&fs1Kuoe1iC4#ъ1|r>RT}.wi7 a*dnǽ,ڜuNH\a1۽(%[qtBCKů:9 I (\˰a!RKfS$LܣV%UtgCOaMA`oJ[%'/5⮔r"[9R 4bB&Q#U&爑RΩHZDKb崝:MLGm [7H1{%#}[^˩sx(3We7fkYxD.@GT/lGk$l1{ hE:gC tqhHLh0P i<#+!qЈ0pseς tpT(kFZa s$9KNm/ܗC`؜&jbu,?u G qq`H"N?(6x ՛_"RR< UDP0$ȶF"D"$b_s_ٵ4TEoT $ͦwNTP ]Y~͓2 N/`"ʺ[6; >0Ɂk1҅_y~Q?b4¦`&qfIAYRK?ǒn# ,Y4_44璇1X~ߵgl vx$dy|0xD mr>] eU yPEH(yUm>|0 urT{3oVJT>ꅸ{u#1ܯ Ig.["hC.D40|$!0DaLoZR[")AT.ټe"Q{+_ߠ Է5nN0] zc]N-0ߥj4,(!&ۦ.mz;Tܧ+͝9. Ѱڝ[5>ibc"~}Xtl@yX%h; A3'?h&~ 'ː6Mŕ sSBLY+wHI(r -_j{2m6lHtr}qCbƝ؍).|ce$Oo"Wu] @:P ~`eku.gYf%AyLAy rNl3LbSY$/32 CgP؉Y8gioJQ+V.5F h1\)~oFgFLH֌d0ĦA3}X_$V<k&Lf >rC#Jd;B! 2hy/YыE;Z>d>:IVUISp;"[.}0g}M87%j=Hm=[-#Ze!j5uVxٜi%QV?GƄݩNC)6ۊ>y^gd {1Hs,d~;-'n׶՚JM^~ԁ씑5$re[ x(i83]ov^tWGһ g901" 7CşB&#';˄17acz@, ϙ[9/PISeCJ&Y=_xeWltkHҿ{ o'6P_b2Jˆmsf7ag0@x$njE+,{|՝CJ._b"MAvc6*Z5خpCfь=)!=կJׂ8ҡXC;GiMS'݇tnnŵ/\|ԗ펲NTisG;XG9D-jT2lFL5.,DcwfU% \U)Ym gdnX:ώ}p͌GVzzflg[rC;ED p)|Ie1x/Y,ƫ%Fτq}-9#m%5$NK .\~Ͽ O Y]#SFQ5l0cHs?)>#3+f61ˆZמ77 t[/"*qw=C/BhkCoH(G4=tl3( :G? \r׸Kr]]К0c^Um =k#x73/cȗ=.Eiǘ_$j V9+d|kST?t*Z*F6Aq BT zincvG z 0HzVii4eQm *ryb9uM;ytx"!Co-x4×)UYW-À͑UFPBPoAE"'~Ʉf匢[1{(u[' ;|+¯DT<͞ϕ(2$h."waǷHe.B+w<*H67נu 9cz%g.|+ g1&ySh|ťqie|=RX`~ - ren+~赕G uzH,uuGLwSg~4| Ve 2Z7s22} -ʐ?P55AWh'm6:_ģp_tk=a_P4R `bC Vt|[ɲB0[e%$rd G0IJAo7*}pZaNs&Д{tQx7ޗ/MG#w0'F ;B=1mQLCeg`-a"@҄}v#bSr0VjIHzoZNIK4ћzrZ2i2a}{[Cٳr̿P:m]B[6fal3%fz ܘaJXη9}$4EUaYW~mV3D]*\VŘ'HPԝՊ \ =r6j n_ G]Z!&)[SM մ|dPD;Æ׶2 \b(ʄq0 yFu! eEmMXs^[r 䂶CQ2#5ֶ2V2~l[,o _Vg'[f1 hdsavUCc[kVߪO-灈NԂPW-ĭytai y5gTF5aTc\$&\j 3kaA秭>+8p.hK ǏNjHB,XO#lw&t =z8|͕siqSôUO1>={7|ϣRb (9形W^q>A(|>˜NunQ: 3TPK=Ta ƎhB u+ ۗ{K<\tܼPPӀBTnD̦ܜe@y#cԘ)j &&Tϫ=q]yt"fU$x 20$|kH ~)ذ.S/%LtG)oS$ҍgQ zŤlɱg*?%ڟ֠)Xe_.ß,>p?"gC6,(ҀxSM$޽Obԯc2V?>-Îܵt(&M;UTn\(f6y5hK%yW;QY=Rc6mEd;_yAQ#O/q_wR`9w2'!+ `[o,3GbrYRV'R{WZhF~ec0Rc6%hL$P_n,VZ%VvsuRwu)rKW^gi߉ͧ#1\qy%N_w*B}gbוbps&]7oH-}wN9aܿ8(CYjct9)C+qZD< %9ģ@Z=Dh֟fN#j}fNSXv,6))MރZt+E.߁eqV;unzr|+E4ƚ(iߥ}=YVo&Fmɳzy oD[ ؖYUd|}Hok .Sh3tᲽ@P^ZAҞ́2| NL\17HK1I[׎\ȕbXo6ot@?f}6~VH[n`C4=rL4^lBmҤnӞmunÖΘu 09oj=4p&,2xyN Y@gaf?Gxfȱdօ3.0{ې.oտYnhlkPmk[ٽG 9Iwտ)hdZ"n78ȗ}mRVs}V n#470]?Fo]Jo[<W}.RZ?.; F+v暤ry˓sh8/"Ay:c?,(>SܩTH%FGV#>7, 'ke_ko+ xƫ5Ve"o$U`^/ދRMѳ;MQ* i~?QϨ$hC+ڸ}Gl)M1pWmJj#(W {CC#j{X)'FiBj}?PL}Zu̟jgz9?Z6j]6 /OOK`<8'> o1oZ}BřYܝCpR0m^PHdZ,:5 _ lj'j_Ƽ] @[?k6ӰҖt~D:HٞTeG^F4H1bH8J2S^KʊoS a<=bVl bvH~v˦̇1/ywSC|. 0a}[!(P t'< ydwqo_7BKyK f%*fd[o |9OB(b̀r, $At iFcF9xޢ ͢"A_ id,V ALCkuJYa%f&*2E~ox#sW~?Lswˏ|&)bx9>֝,x~|o !#4{bͻ?IMG/`4a3k=h VԕF g,|F0wLQe! nцFbINt]6bk.+jh\/.R=tFi& I{Ue;z7{ٛ`AB Ք맽Q r~л]իOpo@Nu/_zw7.tQ D>>nʾPh1&:ЂOB7}NHKo"Ħ}};lA/R#] >}2ǖ&"W=B3'i6_ˌj{Td sl};03[ [vۓr.a-Y&M=œSݧٮ oY]JXY+' xE#R{HiY&4=o>n%6kxe#lO"k7Sӿv=\ex:.#XkX"7s? kv;dq3Jn{zVfg-}׻O}J~wy2't/vנ*5AU4]flN\&`%c63X]9o3e º1uoڏIDFi%RdM dg$MÅ]BFNGDY u oz:Y{jⶲ:0V2nJ,^V_͹Qp赦@BP*2d< [oB-|Io)qzjN站lY\)=<] bGG'qb0e8P]<1|ޕm*/e3\o"3>D\U6 z0nnXpdx]Daj[}cW3KMkM")bnt/;⫾V Ј"7#ux@ f ^uVbtV֓ɾ?l?R}sc~_P@){ylh,nNH| ;.l#ZӲrV-oAz{M hA.$6πɛ@|]S!+kӛY_$3xaĖYݼd~BNK_Vll0e&^U;[A\x`>4/UZCb}@^^%? Xbᔙ3/Cws"-sYʤ,=,=&Ư2o=_H'ĿO =9UCM8Qmb}f/>6Ig ƥFr枒{jIrW0zw=Ң Rzdf71n c9K{;A+ -k hmV]2q}>gH N̯E[+;n2 NvpϏ?6^Q/vеlNCD/&ڼkI N)b"fzhK *0{y1eV_i+*|_p++Zɍ>q<׀7wdq;|L2(^&gVgFM/ǁU\__d%53溫iH(pEB iJD< 5t+װ $DE\-.k0t CK&̋ШOBfAň?~jb44ފTyǗ2<@bl )FO7$11]-VsH@z6P9!/,}SyccjX!HǁfC돈uVAFo6L|!7T[<)e.EKeNe8 kyŮZi-@k\58-mHb|% G2 Xl}2h]7`0yP/E,??EGүьCEn2vsiG:N*<&3r~K%3myhc > B*_KUA)R Ǧ}ժt794.1^w}_ ^8&9.bzJ0m%Pؐw?Ec&ac.Bm17/,kU7"S \`;[3[|'\8W# ˁ=6EX_iiQ PTdMљ#S{ûfe'i+PLmWAjNO5N"Բu l߼Jem 3%nakb:RDW}=oV1?2]qߵl6`IЊl` cD/XhG?VCėA:9 r1;GHb-W_Ľ? 4H“"w縰*n}ʈ?h[?5hvM!>?\\, 8Afh.d$ a8b0ܕu#x?>3&ر7 pF0$m*X0ſF"V pb߃)$\Z9s>؝G©I9&pwtp|r0UѶug'|H4: tWkٴcn`6V>E˅$Ҹzj\ZkAPsWk&ڂy n߫sOtPϑIxf tu2[8pJ\LKa~sdlFto]GD[~"cTd9{*Ժ%̍:TA.z64?'PomN~'1WfekO1o;e,-perFMf!GU4±M(unÿ|"."ŪBJn3֬1li>-cBsDirpJM]eR[vE  $;Oq}!_!*8t ZODR監eH%Z4bsnm-wmVu8R^fyZc~ ("ȪE&&Au~=R󎖡n {Y"հ7JWȋ1o3;u4d=g`9Iw=IϊPڣyCRÉs$A%s u _p^Ջ; >c<~j2aEE }7ʺuWbe # ۜ77d+EUndEq: @'$\^]"\sj4ɗo/uibqoO ]5]Ǐ;#i7UΚ;8Q 2<p[/T`=38†ܽB2 q4 |nJR;=v YV8[G_abs(h:f+oC;(:X5軔ߐ}LO^,RJ۞vԃl}^[oZ k}4sdSq.ڦ##-f̞X _bKȅ8ɹ3SY@'n3ߝT.N˃X!}%P ^c*w 8<We!*Fc% 1e Z^+cb(D{Չ Z 6":_ AIEpƮyzÑ ׁ4[@3w6E0p*iJbޖx"&|XgؼkboO֡k'>ayݢ2hVUsO s@2\7ktLO~5?\s!:AwB~uUCK8 6?=ʃ eULݼo]iD4]ܡ8KrzM>|$:daXq2$T'UlN/# ai1g E(.vn7ݖ`m(6i3۵X?ϑd|6)?L>AyG= or&_ >y@YfQq뚄pΥhܨbYfT)ҩW/4=岶}|:mYܰSy}\ Cf\KA ŝ}a? 2QJWU-BZxqŽtJuI jk+?ezu$wbme%y755 'OM5>_Ln"{fK}L1~*'\Sb=p;M+R6@ ?o1mAV{~UkiE ΨHLslrG2o WJdv.tżYa7i} v6BuKr5y%+եc^;Y_PAI"+Fb y mv;+#-~SW$%1OO⡚#I]ob';3k06^ prK 䜉qD >16Zkf4~ _e(/5sdkt^;]]($h\`.%Pa˄\9F2Sk_٠.b"%D +gE}f|Nxzg5\Fv2Nzڇ?ѼuB6 POV4P`cTJG-AGxva\&ax~|[~d*?{U"[L{߱c9xRDrxQlQx]Vd5ׄܢ g|_ƽ+gz:t|7LnpE6&k?K96^R;ȳ_x8Wq)ߋ#RA~oʗSeXAއGܶZUt;\o0.S ]ÿtMd|ZTë g{LrUaΌ&4MI9*.b9Y߸ w'@ԣUFد–gZ~B?>k<&@ܐ"wXg;԰<Y"td$n:*'eCo!:K%tC1B]Fv񸳢v["|O?с j/ aU_DwX)_gfi3*5 d`JԹS >vlY(,LVgȄ؄QI>}۫ 6R\NuC@pg#j\10=/'o죎[~253ى"OghE:e~lD,8~=7}m ] Kx &~}߭[=bFǴ7(0[ KoN];^6eK8A}Q!W#,rf|뎨;J4dP(uż $\<Ň[o 2QbJ ]t؍= `t&%4XX!v8jX6lJNVA10]cÿ V>' |  {vIZ?>!Z8j̺TSgC+Iu°0$;ҪB9oՅ4Y=nPﻛS5qu2R.g;D/t1uQ/|ֳ,$_u8-WɾEoةrXrqڌk)Ac32+ bz_kY ;'Cb{Rhf??3p}а`Ulyr[{^a WM<)ABiuÂA%TpyL$t+[bOw4 Qwj-;K>o+;6\'3à#W(7=5~N9kfh<ϰkgRIzUϢ2s8Eb/ȴD1'AV 0zpnRwǹЇs\l!U{wZ(bFMsұ@84LNppŜ[g [򣁿#BAVV Zl0Fe]$fڝ:u`!2 Wa /V++ ~ 74 W9 ;=!41obLwJ<܄uэ퐱`ٖD{>3~LٺIϻcƐXMmzOY7rGړ{(#79#K\Oq!{EptExa\IJ/I!*h]rsDrp/8q?|I*<lZ &Ń ߍG9nPEY"!¹^ִ?ҚI^jYlD_2o,v\;?w<6ߥ__nƟO調SΙemPot.0yGc*=̝I]0H<^Vyק]~<ȔylW:"ÐQyĐ; =b4rdଢl}r^wiLHgYp\U;k;v_zYq$nؘc='7>b k>U+Pd 1 oǀwŒ]0ysY3>ޫ"^Nbws4'y81+};P:"x틗B4?З8=."7Q)y/[-[*a vaB {ǙvZ/ ){AD ֫WW5@]f"̀}kE5FSMCW>!U#)I8Fv7H_҃CWy}ÝGN?ݯKLN3]ROKK"[V"U_eYgcPwmH*LކH2M[h^N`M>-7M%zҜLeY@;YV;HxQke箯IE|Lip{y N۽'jd$/{eEr? E|m>z Ո~,FOQ5%T+_h3 ) IGYpz>zWx;=V m"' 麝ANw}[S&SUm+ r28*GsO%= [=z?$7 :z+PaƂ1[4G @74zز{xS c$w#b)/QTP|HCs63A) vI`BZ:LAkL1,vlwZHK윒 # TXi.xG {cŽ {OY8|# !Mf3rWIͼ0](Y]0[ŔY*JbO o?8L^n?m# 9M4>cd07d;ʂ5`Wq}[pf`:(#믢~'X2zrd{niJ:̣֑% ʘݡ^xMF-a[`Cp':QCмiv…Q* M' }ŦD8h˽gNxp^bn\8k7!.|z#O`1E X`Pָo<% w3,xάr~hBxwIpft%b"h `=B)"Ƈe$yz }b8G+1uT@B'oi|ۺ|Mn$k#Ku위#_%ן\@EkEqmt]u5#3lܞKTQ댺U~mpbo9Z$?Dl6I,*CQ:muC网 xqq/GˉTO J Nfn$DKVuqTSD};ƒmS>30|#xEPq~nw+yFSqHqcx @?R @0AR`u?kt7 iS;CL >|L-[E57'G LtɦdvI5!WJ^|Jog*|٫i2I\'P8k Wn>p[ܝк(.[; JvlalcI[7F 9J9_ .RM{L%YɧNJ@A'?RsEq8Ez"Q1/a&6^.} ͱԚ묲@3k\0q g]|5•c*-`*  $jwXQm$@B>{Ȫ(]b 2ж0oMqK.;zw '*Wa5R2 (_?AQHs"U;]ʬY ^_jI~cdKDH\F|~1R[^CsX^tOLfI %+#8'xɟ;nJhRw |0]kxMtۢ *oush9%!*KT< GG]5v)/zI(:F>Tia=ڭ;FX2.~Yq_9]HDF ^mP+I\+%7EVʛr~4t7bฯHG 'S>&ľD:irPºnhҤ;/|b[3avBa)cUjdH o7DϜ{MT&#(2S᯷ 8w';OGD|+/rRgn/lVgQNdݞ6cL栰]ufOt:|ps?;n5r;oDX/`-`Ø bLlqfY&YRlL 'Zdəo>SuN%v;=HU A][Vx fp/W06BBy"֍r3ᾁ`3ZՌQ׼瘮&DU-"(#FGEy-WZ%3;LN?^ulE'tLt]5 da|@Nptq:iwtQܠ38 %}SY*Isg0g 0%*MU#OBf_Nmw05K'ɎB|Q!*/(F&ˋKv˜$Hd_B7HoF)Yr@pkYWٝDP_sn_@bv]4;݊d82-b%ɝk9'/!^9Ypn9~ 1D>tRskG+4Nd}N+`񚏊kEԲqNS!yzpEzSj>On.\RvoWxL=i]ա c!jU)6&+lAFo /5x XJZaz7Yrr5"_PbQM:E^"@(Pƥ* GGila?#컻wx<a49pwôZmR1NFO/ 9._YƗXDk2alJnAĸ3/=;^_;I*{2#}a7KyR!UW΢=7P `>%_+X<,K\_DM=Y*'7~3JPt=Y;;y &wu68vl&Jo_a(vkZv%hsO9ΥEDG#hތ0n# l;F/L7='j2=H.(@ͱ?RTM"ϑm,̍ ȸ"޵/"<ِrWgw|AsU?QX] ؅>/" B@Tg!5DI i{EP jk&ky{܍1Uɶ8?'{bp!,5fnu(go}Y} DW#S0k!W3ϗͯgA7o1(7<셠I<;b6V˜e^.E}:naޥks֩ZO"$utqmÀjuA|\*t=X>L݊RI̚zuAu) Di/L7"g|5n6f= B_d50}dȽiRtVHufú91 ZzG~/9P ;jNAM|ѧTqoR7boFT-3R`f IG&\J K&.!5T8\yۈ<9sNuPVQsi?췮}C|bi E# NbsSlz҆;}"jϓi1⥦kxߤ!@P]q/#YNJId~#hAͳp#[v%a]c >УVx?gBs2靝0I-B#OI"6R,َ…4y&S~v[HCLJXsG#g+Łl7;p^m:c/Y$P1UDMAq12C0H^b?6 wߟ3;?_NM*AFt?Cu%>M˪)WN!hCcf jO:CL߀ ĶpIQ.^ ?%a* \JA0T#}^v2E(eJ1on!\&l3OIuaJ7wBW,\m1VpYnYެ_;a܄ H;{>M\-MEϋe9u'EZ;w'ߪo}wXŬǧ`>LjZēR΍>$ٞbum)`CŒqnmfBpY{^;cr-h̓\HK.aG[ 2[U&JNDŽ&U-v#~ZO_07΋]]bULlrn/ N“h=y ]SM)-^bUԊmtULU!u""g YT%<e5ۮQ 4O;Xy&XKS.]39}>bai\٬8`.[ ݄ [L [) ŗe[咖YއM$^*D@ELjZHgKX*:-0?NRȐe,8,%"S^ɧnk1}yyP3Gpw^yT@,qI{1c9k&yQ)>7ᵓKQMm]֖L;^ӦuT_aF_ՙ[Bʛc(@yC+ehED_8!fI _χ5#65&P֓fHҞ~Wj?Ӷ1W^6Ơ<^/]G?f |{)hнL/UO`& KxL<Ӧuğ{W͓/;7e#:ψ" Jap}wU}.y)i(sLJ-A_Y1<PNo6I,5'?e L~ TʂIQ|~ݲRM w[tȏ% " {L0a,Qe?Q7Dۘ3rB,#0^!_{轡b|4W_iF#)./|#0 ė3[Ohҷ'ћQ`Ndo3OI1W;+ U 1cLw:=jEgܓ仩UN^P0W /z7WKA^ds1${8%luhGiլbꂒUbrע|9Y&>_gp%O܃6庋Ro$]0$חW jY|)v9T)t`z&HV '!ֹip6Z{~U$m5hz1N6#!jb3w+v3 <7VΤW4Q "7jmK>A+\YH`S֋sXQM0:{%lTZ7}Mnm'Vy?:d `, iM3sBW?CtA#Z\ګqϦq J xNC•̗ˆ վ#,1bWY,wҪ)WTzk>6L2r݃H_J)e0h RHYMhs!A~/;~f48N5aS$1_i8^ݢvwQR»Y[mJMpP b9BjegYzֆezcU,~/IݰT٫|}Uy-"V'c WMŨ O?կH{!O1羐T,@eX^6@; u"s#EW<4EڂuGrypdBǶzlGea]0]I10 5=cd,v) +5?1Zцӗڅr`+ pON:ߧC1lS1]-/~x\/= LmL@p.OP_QT5axKA& JM(٠X;:g=W|zAM(FTjV#VXCȔVaF$_AG~mk0],37a}a vɐ#d3pG"3yՍMR (P̯y>%V\NyUH32(OqNmGFȤ::p9HD~10DsxQ\nx8F^}ҧՙ|C v24S繑ܽl3`K1@ɝH*Ɛ|ߘ%Ivd,<]vD9WöWJ/ub(n|oGr C@ډ3=AXmf* yWA58_Jasgօku $^ xJWpj%k+':J`5R_{2'|M;u7m%z uUܠBgGˤ[GwW#t×*s܅Jx/X^W$!) j'V2ʐaV6ndiE|դ 7gVxMӼ4B@ک"`\זavMԎS $`nv%ERYF=V̆o,+4ӃZo_'Z@m5Ģ]LOu ҢAb{0 nImK(d,PPg&'T&/|й/}fpa&ߧaHuex[bQbD3Tgrr 3Z+Q} <0Q1_MGE~铱gt,FjtI35v9(WaTגDPHO|19b[TK0v(GX9D  {2/VyZH&:뼙 koH~eD&zxWJ5 اp0qtb>+klȤԻ"ƮGf+12sȳܾ"0|tèkȿ"_FKh vp^A+0~WWnu> 1io뻜u-y<c.i۱YVŚR܄D WVcLH' .0x,:CyWGXϏc^:T;)lP?LRFbI&/*LX?l~# 1ш3.mãPER_D*AW BBDkv;@ͳfĪPh7Bx3eGF>gFco4"#H63G9$TB]!Q(y'< QxwY/BApL3/Fn*G\#uŒHq +ۨw݄7)BA2<ȽFUג7"M-^7s_Z9?!H'j鐫 t1'/aSU#).>(,-ss[Η (L>v&lzLb <9 ؜r xdU!Z|zsY1-jw}L7<= / H).UD_GR ~W(UѕhL .K$21s0>qb2'كt10uJ1?ʜ2 $=>KYy~AǶȳϼI"QK V4vshrq]xO|" $OOw5WGeb. stbJ niIIrY䌧B 0Vra;(kT ժ&[aBlyFl8Լ(X6ܴ;."t/^<7%"DD]1rݮ@RR,SĬ"=3\I0zXO"a ;qyl9 QXӒsfLg=tR޽r`pZ T}NG?h! VpM·R|Vq6!wv=8o\EqYY <&k:Yן B#}W_&Ͻ$i+y0S< euY9ۚXD˃/k]m*|(뛂)@ S,Tl4zj#Gt5SV|mYTFUq];R($>u){a4Gfջ}*]Ϻ!n J +ե-UC,70(IUPhڱשcA*tcSH~Ljn|a bfaIR*#h_*  ; 5h4di~d0Hښ5. :F-No/ Bgק5dWk1ߚ?NaR7Ac^D6VT a"69+OGhFﶈ3N}:շk(?-Rz(5u}}(VM,.wk:20cu}/YomiY|洽+q"1z~U%pbF 1p8/Jqg Ge a0%g+.qO YAsm+(෴*:<, y(#~G6JVS@UC\1 +%żA%&9C{ g:˩+eVPPҧF7,웨 Phr%mqfD:992栱5ɦ&VXo6\;0k+vṄPD`NIC A|rΆDk$q11[A0Wc_Ϻ}_tb>rER1%|^mr1vfi{ NQAK$+E4"5G84_[`dr`w(Vw k59W$Xy|\գ7"WgRʡ[BJUֆvD<]'I2l5~.lD͸ ?ƷW"ʐ6G d>bLJ!1 0W L%dqF|{-Ym`T;ygnۆC H od#DY`bBUO&͡hdy*rq& "n`SP]t֗@=tEGbR;|#j' j)e2v V89lfM>,Bܛ RڱCoG^XJ&Z/~@9o:VXD*G$rXwXBWNh??8 }g|! 8 ]&",Qu6(y+o3hXC7]u$QwRL3*+,Ab#B=C H|:ij^<ήp2(M9P" @<7taФ*Rb B5 TtTAvjmەx:_tɯ-0+4';-Τ[ASSi2ν<]uyXŴ_R@2Dâ&͙F\,+}}bPW5G] Di~Ūc[5Og6Ȉj:zQ9sS]HCqbwd|O;9g;O'uuI"-qt ,JNgBa;1Jq F(Sӣ8Uu<* yz(>{v1UNN&Gj8VVV4a%H;mPָS6"NnN_K<E9MnV#^͑UU6 ZU*^=S4|I 1rE\}}cCR'U]V);\^iU!e8%fBTqJ> %y{ \TL2c΅4*8bgYOs{Fr)z0Yz0m+0J LN3dya6"TEܞ݅o&FI 4}QWt )+ۜ 9S7Yxѷ*9 ;ArzG*/XzX_ .Ӈɦȴ93B$~羢)~Ҡ@O5vq.UN6u`ٕqNwwF- Ne@Ule:{ O: J!eBr!PŸ[Vf`Q6,(4~/̯.L+?O_{.]{%yBBC*b37ԣ(Pa zϯͦ<>el6.(~tbX17.VWeaJ:C]Pڹ kd]vm]}6n,~4V@H{9(j2PAʻUuzRAh?ৣe}nb(COP5DU!0FņoWohI˒U-{[`N]ձf2 ^|NU Y boW8'@Y8V` 0!q'*4= 9eRxaާҫ\$“V"}\xr1M)˸mָ>S;!2 */x;Q,Ic/\! ,@7uv16Bȋ#A'Ru3 õ/dͼ [(Dw;Lc)?#m`z$"ULrcPr I)GL07!|&j  EI#,!jӊh/[8[9 Ź' gIq/ P;A  OZ/<#N_K4VC8(˩ת~Kd.3U-LeB0 y:t(zh|=~!tA>ӘS`ū h\oCh6+ `]r v'* %('2P}5I`@UT1yPnJ"v8$'0|-=.0Y8l sݸ]+2=* 6A߂={gKFf͒ȝȾ:Y Jb^Vm)86L,Pd + C9\7# \XF}3c _}G1V{\I "TVh^~҆{>qѝ2P \ȇ'!iP|2Z*wXSޠk8Γ#ۈJZϝ#ݢ+yg;UkfIB۞ozOFU[,cT,/lebu!&*V[ľ4K1ǰ`ƌM];4cP~W_sQ /CE&KKNk}T`騧@&,ABJQ$PNAҌc157y/!R::j2?)CP) :_eih8^ad3BK@V Ypa_U#_y* 7S3n|^^y˥C\PR`jDžL0>G;¸gt. 8k}.L&+U%6c:-]_/YԖ&*yc^o4AknkoKŊUͺ0rrgu};].V`Cy{s;nC*}hdc#П-F.!sdB%dwr*XIb[c'@S [åNowNYq/ +0}L7eAMVfՏwTB´y`TɵOo-<0DyE2zT] >yo/Wt#kzζ<a&tgf0}Tk^Qr8|lJ ;:0l@!²#LB%wt = z@E/Π1ii]ƒc,IyR:KBZ@3F.܁g5Ő_2:ZUgA߰r,fܢ@Ô_4䐛x$t!\*P>&"RjWuxs f"?0HLJ>2pI?a.c&lN0߱he%Y$? Q$mB2=Q:I&|\KK1I5k=4{O\z?n4(ȯΩ57K6Yo3Bi:ŻF|>nȨ1ΕmWu4j%=-li('b 8lvdRgḣ5.(`&9+'ѓ8$ɽn9`&@h'Xz[f ]K59-D46npK_:e, `x7n, }Gk2ČL&~O)X,Z@; 9&x7aW7+$kV)U3\!K\i^J``y&Lsk3 e#[T|M.N|Hx{l"46q΂O{KhƘDH#!7EH[}Ldî 5sŀKQ iװ(Xì箌K7_ːzx۾2v?ZDy}5E/7ؠP$ӓBEGxXz3]K D; #Q2(@!>'?xUҷeW.符DhH^̻|gU}KEWZN[#@b{`oi -q$j B2Oa z_!=S2%۫CæG'm9r!=beN]Qh.YrXh|d7\w(ҮS_R&(c%)ԇuBL$z&Y"Tu jF}2U!}9oNi;2Ǵ|k jv7.OQXT5:OjCL]4\^aӇW;Ci"BrS!ⷫRꡦ.d#MZPE~yt_cTޯ8 i4p%$d2BCO{ xWb]񊡗'S!~BKT!{+kp#){ƺSW\9!-^0_H1:NESsP0B_wΞ3D7Fp,b8?GRŹHRՌ337lfåZ3^fF*vɅM^[ʿ~pаI3@um;'G%yhIeŅy>JEr16'ޙ1ұmoWګ*mO!n]^ ILs>9H2b:={6aqM 6M4o<:H׷MLe]ɰkw؈)r}Y2E8ͧ?6G <lTr*ݢNZu>_#'v̖Z&j9}Z/s^H0K6, I!I!h1.Oj?`09}=fGvpn`xr}*q~;cbמKqGW*z}3X:Gh?E%m{Rw,uO <K10L % 5ͅ4뻠݊bMڪapbMS g*"tЋS0<> >cUE.}0 "t[Nju ֘Tެ."eEd%`״Y_.HCʗV{ 1߰Mq\4[4L^+ 9 <@V]lyR13BxH<5F%AR]X8XN^Ym =GdZ&a/w\p羟s\06(6:^W)ÀFe;]jO$\p4L*ݝ-9ӇXLZ.$QI!u9@ȕJe PbMJ?UF?,Kj4-2[s0(BWCBtݼibD/?/Fm vdtT>XP꺑tF_dkVc^VRĐZg4UsR: ޒyj !MP c^ DB]_"fbvx*d,?TfZOwА ֽ8\|ǎV6WY5D|VSVSjuc896uvĘwDXnS{W^2g΢.c%Q3\tȯd폿QHyFAP#7SpSc+|5A?:a&j A1Gnɶ{>+?{f 񏗑1^NMXc}4r ,T+ 3Kd|jC a~~AV1pg Q\*q)$MNJY:S_yMzX6 ܷ~-U&~S #ٸb E;K,dYnl{Y5 BIwEe6R٩txwq賬~ mi f4IȟBcaup.>,wb8N7%eKh~ĕxq Y5UTh3OǓ9b0p$C!qvIҎm}0Y߸ ПǑ) ',r[BnEYV(1spl-*Mo[֦f%}YkR`Qu v'6 MBP[>f;| 2n>JZ*֩0asvl̽{Sk~tmޜm}9'zF"a^ëH=z}JUAU@iBK*can% 7T!{R׽))06ɴZ[BE(y丹Qtw/3w8}Rety\]cl/2BƮ_λro aiʬG2/2*YU U({IؐT,1-ͫZԣO@O⼭sqS4ŎnLSƤ<6ey~05vv]pM$5߭<@p+'A7g~r~K^N).֍ 3lCK}&>G!#{?*¢'7^bi0YO<]&NBĭJ̨ տ.h}UuHxB3S|L[G۬"eGC[EKt%* :/,SrS:]N_| BZ?2ms3L\7EWmZ*Ea;1t+&s<ʃ'VWځP0p:Yxs{n2;">2 h4nEWEi^,uy<Ԝ>K̲zq"\_u֫m$ 4Bp41h8ȟb cͩWѮBb́H= o.\ɩc 2)Jdx綵޸ZԴ,?I!{NySf e \MLъ 3:ǽdMNt?AAC5ckM n2l:xS ϑ*xR(0վ(./uyVƹIEmy}SUq[[>۔Vyc} mqExE៱{s*rǚuhl I@ގjR;Ї\r"es=W3O sW!9 4j+VVt uaOa/iˈ4gi$<jZ8el66M!bWCN&7Ҫ<sJ^A3[mn{4f##h$s9g| &A.kˑƊBF tŚz[D–yY.{ Ĉ>yj?Y!tGj߸.9éBr)V>vJF/K='.i,vqe(+enIZ^ 47+JՔ-Ű=GEv5\RT~S_A+`pvT,о߻bm tbjh#S>}i⤆_T|BNᵵu^Ce'®llQeQOVYP1՞yxs3ܓ~Q{{,q7LwBo!0y &A>UlLQpz(k=[ђ]8ͺwS;dڨ%_hhy_MqOt:6S^NM{sÅq{'O@~#U'Qm8gDQMP'h1q/[t}qn![ d|iTж4Aаʋe廄XLYrV+t2dy:~* yԁVT8{mB9. '}eMA! pC9uj2(݋AT(/ Y0ɞ'0=,%߉=r<~΍xlygےȢgL / i"6,a`:[?2 <'%8fhRxJ}Sv7hԧ]$Ǧڡ&/w8糌V)Bfǩ߮L26 wE٭2S8oi΀0T w?!#lk"ӷb)Fp.H▓\$YD9E#߉SЕcKB$1q5'MΆtlUJ <.Kq!x :#}Nmdœؠ^4 {󁙿}M,zYث>s}ӂ1W%&e>wsNohZçtz v-} ? P*MVCs"+#M|h]]] U!}mfxj<fjWVό/S #FU]nL`teȶFțrN? t>~Z`F%K]P^v]K/ >hj_s0KpIQ 4/ <?ݒcx;E NJBcפ!`En`BB7mӗ#oB,MM,y)rtqY1t]ˮkFjzSmbA15PHXT˔B+ّh޳,]d / 3 1E;aOJZO1X=ҕ3ښ4wǸf^[=*:V 2tW= t>:6Q/ O sӴ5qp 1.Ocz8/=X+&K|`{J-"ݹ D#[!mp7OAz-#MF-zԷ; iL7>@8ss^-x^yi%-*|-OVwjW6 ɢbc=TϺV|Z;ȖEr4r):">^A 579%'&6`| &w<ͳD hiN6s?4:HU9;b4qP776GjF">:NG *& 8qG7R`O s #uoή8A!ϘZCQLلsɻQ!;S{ QV8P#-yIo_\ >m5du5Gj.Yi[! Q]R;QMJzjr7玐 לvR<(=!Al(W* ,9m7Sȍs;!XQcXצTΚydKT9{ Ÿַ-N^(ߘh.9mootϿ$#KP2ӱdu$M*GN? u;hUh񨼸6X3J }KDž{M2Dm4mɞ4a6hۻыqf (h(PIڎIaj!A֯ײzP]!~I{7*L>gx#q7p)ߢo2@q6&.M[` :#h뀞-/&ɨ>$:^!SYs)}C4$뿼p:-{JJ:Zo dsM15EБRa;dIo,!_ 8UE9"Dw+B̌{]E+P Gl8^<<+}'Opr7SL.bʣ*ǹQ zDh렇:FzϺ@J[cU9k'|;<-Emođbq(As#/^n,Ʉy#`Dz܏Gwe9Nk&?V9VveZHh,$Uf\2ĥŁ,H@L!zMc~$jm#&עR\G{pM ~:\ !!0NUj lڌq}v:dLL=s߹W^ծ{4Mp!wkޤ*MY}4lHvD:_]=mqgy$a|wy2Ī+MkP](|QKd͕@峔4E,ǟhf4=7pUr,, #W[GbDk>ּP1QiAD>4?)r= 2rV3;ΥdC [UVKP. 5SZ*'o>A(6QkJl9KW}nm "Z Y(˹۟.h~HU _ن*T ĉm?R3bZ q-v BաwݏMHP]Ygt_z2K%މҹo9[w[6n4cr>E<>c$sbe6mvԻ .Y|ګ"#aVz|o@5X(PpU ?H;qPXA-#8+Ōl[[0+qy|[tQ *:V>O#G.3|'I>=:1iV`TtK[>SJ$n/5 X ul\'vV񑍠]chtф0u,PvMUGiFԭxEZw~:}+<,YutwM##iQfLRWO콪}`2WlZ T.%SHitYU47*?kzJWQU[PUK򢕨e(diHgW./d%UܬFHZ:@?,G$X,Z/ v:j_gzsEЭЛ3*'}orJ)ڴ*#Dg;^$mHD_?F=N,?O{OwH- 0~. j$տ'vvf$v# 3PiQx|݀f$G=xۋl\^KHQx7)9#8R.$0sL_0jJ#^H^uk 2ub˛܁hJ[ 9+&_'Ty)NªJoJt`qNw+Ms` *z}1%Zˣp2Grȩ)܈}Ot.t>El|rnv5p:' 6:zBSe8-9S PSr0ֶdK\MA+6ѮWpŘ*,7g~k|=EF7vrt0 И\iγzT02[eQ !TѺ@cVF sz<荣 ahi00ގ^<32EVTs|;,ޣR gH[~8KɃXL 7`#si5h׶ZZ "8np/d`ZO.FЏ\'^ٝZe1ڜv|omj lͮ3u4쾣Lf4 I-[ #S3ۏ2 M$@hcXND D#{J%sʭN"g4hlW݉2H "1!DYj0ս0iXcOVuIڦE"W"d\=`x?;; rx|8>,xbK:h漠H].-UO|xAes _{iAe1h}diye88cEJ@Alo{;@P\$hz>lbfAkׯRc]HXØgΖF5J'28>jg\gt48Vd-&P0 fFwD)NsB؉Y(9$ sw C$gyy^|\AB鍅.۱ 6BX2'" "Xr 8"†_oՌ9R\d+ Xx__";j\2wۈoR\ń7Ůob `;.kGE>'{}(A[72#C^3%Qnt_l #"10&Re &<-1]-x"S5$x{Y}?Z~Qo a*h/ j)0dn`@c:Ӹ7"%14O2EPM?1\-}溋E6NjAGC7aEyF,.G6zQ@ ը[}N7_HW0~ҙ&4n| rKq1ZSv-z8₽5chbIlFG85=bAkMYiB io8a9 zd*$+&S:qGWnaOWUd2kވZE)Oii1ږ3; y}62,^wS<{,,ucNGGfh>D1;zǹng 9eaCKIףW[Zڹ>u5YC-Bx^mndXK#]@9Io'J<׺m!U'K@GC"-˅+th]~ZXyGGHd| J{sT:һ7GVWbOϥZl+ ޲~.O'5vnj|F舔m X\)$fƛMnXZO ѭ>DńNbg<@cJ̏oZ@9QRM@֦ R}GD~а[bHwbz)~d{qgb9pGL eh~%hbS8s\)1noV`(<5[XVs* UZ`v֯,NQ )IYpSër3 ?RXct>rPMo IՒܼWgЩ Ќ1̳R& QcU+jLSBGY qrlN2pu &HgAt#T3K_{\ģnS]LƲ駻%&֧) J'/mvlFRjS}S+B(>͜p5ZyGzҵAas5/` orP6d:uCZ+M]fjIbح m!AֵQ,}b0 #\T?A&u,2DUR5Řʲ+T7 рl"xRRF#S8t`jDQ?nZCL}ڈO~;xh;[H@wFWrHuPJ6tFH_Ϳ%Nr3nf\|Pؗ Yb}b0gڬ4zJ$mV_R;^<@0S/U Ǔ>9sKg]CHb0^;QKQ˯¦HVK0u:Nq5JK-!5H .v$iآj3YyaI]JL.l yE~m-N3T .ZګD M (/dsN. O-B)( On3Ic9h^}ʳ4=7.WFcr>얳!a[a *P."٭=a6R܉Pe5/J#?kT?FTYvř(!n|J0fs E:B*o6[j'v LgE8lZIڀ ^C_ )v8t)0e)PZ V6j2Bق__rSfE䫋j+0b.}[⊉j=e rӍ(@d]f7Nde/~h*+΁}(̃-LE_u;D±ȭ9 Z )D.3P+o"ʬ}v Wm2NP: xе!LwrKXT5.V_/ 8!ѱ!Y@o SLss (d` ?{evw+h+NgLW m+w%xٻJp "&uG *q΄"dKpGX`*mJm֌w 2$4 ,u+ѩS;*@Prm Q].)7g v&O8s?'AK~8ͨe,tfwӇl ‘<(I`d$2W;Έs io3ғ'z݅IŐ-13[UUon*[ީ-F==j }2t6].sjފq0e| UDKtV_Lb=+ebs.N=-ũf kb y\z}Mݺ&fx.e =@k~S`V8PYX _}B+X 3ތ҉a-j3y<͂ Hky @6 q0UrA߫ءޤOٟBXS4iH(~uL#I L еZ2ֶ-Uӫ>ErAk gpdF̺jy"Cܜzc_u]|ZJ[XEq~^*bZo W qW66 9#5& [Bg[ [' q؍KW2 *m f,u|KJj!_(J$Mj}g G|1faLGP.h/htU}ˑԬ7[$؂C|v/*z1-=B*=N5N)ydCJkY~e=xi M/fjg>f lH iYŻrʡ!\#a>-PWO-2?%Rq˄쿛PFz1NDԋ'@Voh<^n7_uŅd+Mש$p6ȔJ)`ïwNP ywd%,#답+Qˬ[^ӖR`JY@!%35^!.* "nM4}޴Y@G NcS&׹QcRm%aޟer2}s}kyX9J\!@GESQ)fې ttۗ0Fʱ^.b~b__wpTU24CU1[g?L|]]ϬH@K/RoNαA$!e?IeU 5ع:(}vY)7;,N"]{} lIߍAXe4 %V.v%ED5`̰އI}dAit.7[`ɴD37ey|rPi 顔0Kv# Gnw`c2-dxh|g*C&G*;aD>C>~D.C3+¨k>W)&43dzQ[ső}\STc#Et`p,LˑO % +' 륢LlfIċ]*/As* OZ" U+ZoݡiԤ} 2`T})a0UY 9ʤb$otc;b$0gx6` πֶw{Z1<%EEؔ__C&P=8 6<Wfo6j܇ ]  HB}pXe&PM[4iZn02^pzM1g*BmC`|dTzZNzkS:@YuXiD 4P=6. 휕#={M=_%OibxE@Z?׮n(lk|>k@5l벚h$ >*Mx?NjLd ¹qq>&Ԑj+À0Gɕp50hij,E4"}*4.RdT”<{Kp 1eŖ|߇.nGdMC-25KS WEǐJനOA4nJ'J(ynAtQk>IY_ƹF9(bw1AQvb~5VMd♼ۂC2ʐe[< "pYaIϦ瀻5f$Q E9_bTFYg0AJiU)_T?[2㩐Ȍ\ {imnp '+vOBŷ2ltxL3o.j<])"`9sA2mP,DsvMOVsϤVdœ*N71ȀUX6u ͳz>=K-ZۙYo;V,,[wկܛ)Uݨ#[ giUd(?UUM=6m%w'Ƚ{@ t7E`kItux.gbGo3ɏCo^cfp"zُ5y ?-?kUqoI+[/)sP.z#K*iϾ$ ̶RMk^ ͋DzQCb߁5D1[9QR F0QB_pey?j2LwP|4[a=%rt7W袻"4RcNJkleWO69Y"l2̏xY`Φ\u}<..{y cH1Hҿxwb%UofH:yYփ3g4RfY#H!R[wg'ī.ءGw ]R~3޻9P],J œgY="zwhmRm",pVBagP"yea~sOJx]CÊ(ۯ~un&@v]/P7v7oQh*ea`kR+g-)-h͐?9MgtU5QqNxV}(yFN8C:i =Ct5`cuӢy&]7],pDBMY\(hjx*%"OUne[vnE/߬A̷L~̏_1&ս %l R(u%v&-Lw7SYq-]F6J; Y"=ʮ+# ?=6C6v&|\2JBʗqZv,"<^ɀX̹)ҩckK{no MfakT㱫x S ^2%o'з' Äւwލql;;;4=Ji/%Ɠ@pT Yo0 c,M _(3sHb3N2:4O~@~]E#rˢF' w0fZD!77v ) OJ{ӧeZN5gʀ=KF^.^Xhy#\-LGdJ*uf#}f͏BoɆG0-]_UUREJ֚%.ƵTۊ; :3'/`> #1 ޜ9t|__7}XogGcL֪[k{cɒ {YCЧM"ₒ2˄Taje[.d+yvf1>Q_ۧ si u-EH8^.JjwT'(B'G#)12 p\I9arYw?3yu _={?WP T󞻍VR'NAw@Ļ1ϭ-ܝx4;*S1"VEF$IojC6 ;[ &uNe#;'XqE|o=jƐ.R< ; ( }BGÍ='U6A (eZYt@S Ih7c41T",EJo -4#GaB<ӞD&L^Z'yga"tNCV*.1DA"MW_DR)a9chvboօz8ye]=jL`-nu/'S8? <J *r+ѷKJL;=581h oҷe T;T]dٝ}pOMށ$F~55Knߚ "JI †V<zm"r*ޥ0){-λ&!^jbWw0;i(9mD/rm;?o9U!|!o>I_3~iD9 m5 /p0 #+FWP`5o8, \OV~[7 +-x=OY+O}$Jr{ﯷz g 0 sr(zy Cցj?-K_&X] K! AŴwpMT5U:B44=/9?nv yT ڝ(LOkX&fao(4/:' L0a(Rx 8' ;4HZn LT/ޞu<=a237_s|ĐznQ*d4)@ߤ)c/Jji|^x9a]`h^eNYWƖ`F* :&?Yc۷ӂ'c܄/ʚauOr%;faX;'"7}-L}<$Eb\wys?$4nٖMV/Z`Ӌj'%. JOÍX 0{(ϴ= ֔.pB6PCV RIƟޱ9Ɔ\BKt*/ ),;v{U.)ɇmd0yt-nISgU5C_li=rm Cp %%Я>n8liwy͞0W/Jw")gm^lJY4\0;Ūe<(A,iI99 כW>Hw=Y \KdMܷbp~<;o1>O4UZ!s|'%*Zi/ D q8\__ ;988**KPK]n߫U_v@\o wJ \ ;1BCęrT7+W[QX<]e R8)S⓼OP AhNj͛9SBqg P(f( `ÊLz$O_eu$oh+ ׅXDw eX"U|2I'fjDXi,|M~5i}܅A*ApK<;X~k,ޡs#S4iJ%1auԤ_{rpUmRၗjqR?N1CC>eW}DZ6eOɝ\4/E#i rD˪U/T + , t*hwRbMDy[` r [4 aKSgྋCFRw"ĂU*:ʜq]ф;@GYs4t~G)S&gꗀ]v{<Ϩ OA!R,[VRk %(6ዢ͆}vwi;9r~lkb ςRoKSպpYb]SxoJH&zvswWYڗf9wuY8^Vn;o~@ o/w׳رZ(Dӎb40[mZO Uۏۚv{q13!1G'㱑س5$&~׎58|c\b,s. q07NoM}H&*nA@A2*m,*(| Ӎ@u@95}2Zm*J ӄŦM,lCL=Jz~5Q$$۰ٱc0|I j_Zoj`P e^:S en\ҡPNGlij~(֡/{n$d>+9Jޮh}_3<ڇ(RJZQ>*2+Jmoɝ-N.!V_.-+T>{KwmEKI/#L_Qr>„>F]%F D؁갯?a %$H9aDp&&0}7}(`Vl?v;u*i8>[Z=oFW ؓ[NKuzNlw { ?~ )1,+u(LsS<6.39wa{F"&LeU#Лƒ/в=U+}uZSRCuqK:sN% [Vt1ԕãlUWؒe#T<֟m(,z~^R̋F*Vk wIkCւ'xr7"ӖƿC SO΋ c4D-Y1 |l"#6MKvl2駚A%pX6V2<&Ix TSR= &L ۊ]jKotjwc05Vx2 ʞ6UʤÆĴ_)]cR<܋1[WuQ'CA.F} zɷ+5K.YNz< Ќ{O.~x<_rե(@ڮ]*\{ rgИ6aj3Fs=I<Ȥ=ʻx}3˧ۋ|mGmaq7ï.;MRf C![ }&0A-|, v^4CojGt]~WLPqQ֨|;TX.|8&*~>]:n_^W퓩|Ht:=A.Yc":rhp X65B U<]r@~A9yT@v{>aa@Y]~+]y ]mP­Nd56USDU `vmzC}:PV:Rռ{ΝʥX/"QdKT!R/r[}rI87n\ǒށǗ p|uߞT~ٝy\`bc<絧ѥ}/FirkiԲb]jQ^{O4lm²j!u6ՋladJ\Dž-%ODq%=egР|Hk/臧iU(F^ma#CZ3 &cyG[Dz=1=#N5-R>dS(+5oG饚ts?,X=~h-甁`yns[Uph{.✳,"If&Ww& p B[}-25_ P 4>>">Uۃ* pp¬;)];F͚jmrzqy+ _ zP`:t_u=xګ[: .NEYլϗx g4eQ6.uM䏏#U,bthU_!"[;ZOn]Z=#; b{Y")'@ |4 Ru'1~%מ_<-Qey4w 2vo Eƾhe=V5\̲-#Vj:hrD}U2Ro.E` ݢjoj)&DtJ4ew9 Gc^>$#Ҍ/Do'y1i-~!*U_<{J uYzo//r Iydwcx/@bYp~d]d%2.2X0,M5UR4EڔwDmjTց6sHufEUbOĎXش%a4lF B~($pM0tQS#oOi7KnV ]Sx u߼Qkgǖ1Kp=VS9#nk`&oyKHTDcOQ>S4I=OxfKs?'<>' JҦ+ۧ6&O`rWօj,‡ | ph5O)j4.XHhCU形9k(rA{9|CC\Nĩv59!Aw:C瘦V8\-K3jqgCmسN$sd դ^]-%DڡӖFh Ӿh,1%ۯ.ͤu063 )-P"DH t;]*g4JqLU͗>iQ5| ~ R}Ҽl3 D[*}{  8G?C[3T'Ϳ,jTÐaEW.j*6VA V< )]5]׏ W1uJX6 Y), fBGG+Dę -lXկ7cϋ2yhY5J-:}RtߎÃ'ʼ@s2Dd8%QQ?P |b]ߴb{fYI@,qi)Boo#5q-Obhmx#ePJㅖB=~q"u Ui#KzS6g1]dv%=h#Rp~ (pWkSO5NXwO׵ 覚:LV5r~@뿟"r̪8E{_̍Hwp>ϺBعlHQM;VٳO{orozWUU^~o99%CUQ-?mBxB_&z>Z"$*9zyuS挗|$)ITDK#H:\j>JQ9,$x{nⶔ2ii|TZ2n߷!h2+Tc:^Qt#TQEcc.>LU35ȃ2iiKQ]joA@MtrYjEX<Ȓ{'N|:dÏR !!#`pA)s-e[t.iʄN[h,'ʻu0yJ(o/EV3r`V 8iN&2ܺLD@-8*n3䞂6r.uiΨS3=rdAr.97jUE+8Yݩw0 *Kx 2]ٵ yFjymb5}Վ}UsUǽU,rNOQUo2$kUDh,ȒFSiQ^B+W /~Vmn/ Q.۝LOkk> (x&h U-+G@f%/;u0YmkѮ1/R>Z]؟RnvW4{dUty\Bll-; 3ҽv:I2f 4\:G-xtTA+_ICZ%ՄYJ+rof'^1Ns;iq {zR*!İZ4\o+<AaH\&c|{GA;Do:}{k1i |uFOm8^J)8C}Pko.^JV)3XlTE1[?%IˢWqEovy(dg1r "@ =J+Kv 7MYKm# 9 <^貝 Ȁ_sDMr%{VvZgΟ a;SIB8a /{hs:ߒOJ0C-/L2zEK esO*NW2x2{eׯ|+>y+4bym>0HJ77?rB/Ւ S@@HH|uP_46 ~_׈l1~3LJ2cTb݉LAR [[]pVBBOU%t,<>s[&eq[!tivDbp+m zVٞs~$O @ffp`ѭzI|ωԞ,&4M^PץW3mb1k_ތR>^)K͞ݡ5^貊gK ~\1X;kÒ t 7_Uψʏ{>EQm";wq.su9xh\)V2X_l޹v`~LO(n+FQg2+PZ(g:%"ݠ΅ʪ{1y`/~G !+uO]~0s8\XvFE.(0C aƇѼeu$zՂu'][%=:")<z#[HF|AVL5a߾iߚ |u*ue=4\ԭ>jp"6B+[=j:NK BoH(mYznLoSNMi 4%T-uq'?hJ~Ved=5b*Y]<&yL?Z],T5x}!*Q}tR?Jʒ|7K6$CoF@/ [M#XnyhyۊԜ# 6 f둺 J?P7D0U5Wxؘ;"\^(bcJw%`p$2o[B#>ݧgfjq'mJ $b |AVG]=o&y_o5ի-7} 9|=mTf_zd"{#v޻t_=T~`6ž{su%!D;o ? ȴx%ֶht] 4}q4CM/ɠȎ_|(O6q 9o-Ȳ~{J +u+cd\dueٶ:z:-a8rg5dz a'k//8z\/HG=Ua96pM1& V]@|};GZ#AuHo? bo>[s"JrrU~9ͯI[ ߣI2!jc6!y.6LH!H90z-BnZ>Pm:R8@z8~UE:蛧H'zBup}UQkwo~"uTUG<;/XӐ/tWE+ݩc!1u.D8_sBm (c#kPG*w(#*rBF (XJ),"Q*Ȁ|@CxÝ ۳~2Ũ9iFw_ ߵQ twW1o/,)EDk1򡚮9j::^ ûw _h̦K"Py]+b%y=G343d{|cѲL+4SX oG@.|Bi;wt4 Q߁o Sk` c*+^`H-nOvH̩[MÇ Κ8dVqO ?Knw]D&H?}hgh^""EdOEN1M5#eT?.^։)5Π>`u^gyhS󐉬`0XۮUWp) n X?lFTwԄNiX'1Ҁ}N2"_I VZCSP((_5KW,q}sU.;C.WGYD{S5-@&N;pHDڂIN&r3vSI,<8k^Vk‰$YA4}&C%ˆa:JeYZE$B}/odaퟏܥ(% gVdAN"T˳,` P Ӊh wqtar.rv 7 ྴw MaYqLU/t8k_T99R7 φK?Pv|#~#O~ ~d q 8s]WU_Qx*F83w}Đh }$yby ܏߾Ymd;cK57q҇yd]sCWU>ނC o_dO[Sߖ*m91pNb\]657 +,yA_HnZdբ.^'Md{O\˺י̪ 7맋P>SsJj@` Fó')(pOĆᦦ{;KRyQ >55+mwz6Kѫ_f9`֯V +%(!>S\R/%eEv/'RT&N€Ѷc6`=z7v` t}۸UG||FV@7U9|לmCyrKOTS&&ɲ{`PY~Cf{<͊˅U3wEeDhdI7w~')o-JsQ3~sa h>OQglq7 L%P .T&e[~%Vp6E"BMQi>poM(^7\CͿ}ˮ~+a[(|شj7%(DQpwuNCq=אwRg=+Jn;<Sc;oB+(U [-_59'+X;B /]x,١ jarE/[x[KFI*bS(~MT 4!TD꾆7vݞuRz ꌣޞ_NG\T,#Rc~QXoEaNQaDi' %mL(] ^=_oֲXam7Q9zLaI[ޤyuv-ooܴapzq`S%:U=\#^?t{ 'ab\Tld"S혾-G猘2* KtvMC7la{tFe\;LV0^gӟpD.܄VDk c$'Plڋ$ì*ToRPIf$vA[euY]$QHXu!9RzL]w#Kݟ䟟1|3*cRwDz%s1UcTrS(~ϜpVMPJvSKE!//mH=lz!'I.d}1^ёYJ8M_UG0b.TUy_*}m(b4jE&m g d a{]C_TtS1S^aG6kfeL }C890&z21^uJ>'d+i5}q[+CrlЀm#q-Mc*_/O)-26YyӣM^,z}ob|vì# tQ,+ZF?ϋaH@&Yl]tϊe8PΩh~as@_ Xfe$2.g7=3;>G}.MDXc)sل ,)3md5bW AŪv IÔ#;)=jdo61y{Om6D/эYQRç†&}" UI|zOȈ `~+VWWVkV*m$ؙ#u كeIxE-ZQ9]FwY:jEZm2 p=!Y;0psy,C|Bg.Z+[Tjy]2r[Ege sI;rN~Uw䏴oH8mw"NUI AIah)RFj:ȕ~dm ;Th $M8`}~oba7 1{5R}&S5PSz&o8Ur ޫeo7C0E[\FцS.p) R):|*#_2'%o&Egq:rԴ0I|j9R{ )}{BiTF#;TCV g!ʯ=܈c6H'ߜ2 4 ~49&Me;l1k54 aIf_)[C_矔IEBșJz'B)a78fI|zՍ i%lE(C.@ƯΓxz^*iZ<wO2 bg{9sҔmړO-|Lw.oM3t1&+a076#Z,~[ϯת9%)F}Yc[qtr@ $4v!l[ju=WHjMзL u|o`җ6@R骾CcqM1lu1ȃ#Sv gzgdHq+#vw8ə6{CyWeڗcpQ=JPUp4QF9q%{k[}svri'&!|_H 5u=eCЎa5>\\Z;o0yv!AG\)g}o2l灔3ߋ_wJt.J{Q&$FWaIKtx$A_E̡b~!һഫ\#,l-Tt֑})TQ#_ѺN )OttmZ@~L}4ADxO` `5klSR#VKĸ~a&̍;-ƨP6c6B @n}EWgGA΢5N=>G5T[ζ.{ G2 #a.p@ Ĺ-I` e0)dxQ.A8Hlwªzמ kP\c;.ZrQ5RstMNua$:>a/Y^,-A9/y/cs{:"s0' Rӫ;W73T}3½L"E\uc QkM5hjy vGDx(6쉔u^Uu5"Ǿ*g]u3ǡ5W:P&zc6 c((l)9ϣPWd WVfD7Lp>,c"d ] @{HH2ҥ^ -5~+~pū%j{A lI/L܏#I~Wܗ znjKM6x(LV<'*cA!yeb7M3o`ĺ::oY;.Ûx-rbPgW>{#l4'mK\:z+. #$fhXv3#.#RE fQj]}3q{u^#]|/1IA{oU~֫ټF(2ď h@yE.nͫl(RHfT6E%vi6jwg-1gm8 WXP6۱ 3j-_dFFQ.هLiW90mz+P-6nDcIX]9@?!o[bp){I~BJCm7*i<PܞFN7U" 4۔.[vJTE`isF(Ml2 Kz ˎjU[0vkU߯9߉d`65ZB\VN {wKH^+.OM6zWV` yDiEU*ߩgM&fͣ[ Q&ngGRNHD(e0ZWcuCh]RUjFdy߆q:=)hR1~dm*72pI=˸SC&7YC3bՓvo%`2s GT@~SvwVi~ۣ> Wӱ⽄Sh0oF]RUH$|[8'\͉#j5V8";[CHmQhtD#d T[ '-}r?ˏV.)$y[xN>?/C5i<= C&A}H|s6?m2~G]A&LKdANp)*{*P2]p, }3Q" 1Uwb#Y& qÉ_ %V`7.Vs֯Q\,M( iݯhwPE~nNXGC\?hKx;cO5Dm)˥6Zja垮@%ΪټB 2]%K „xd*:ۃ+. eu!pc5Se[xTJxt=It](Qn09/Dye]#0R,vp!UF\YszWҾdtڤ?Gƻ}vr*,c o-Q`lS\W=@y굛J"W[kvhX8Y_ƃ#j+鶍|Rj&!gR7UWwdJ0&-sl+& EL|#)T&qTQanI=-& *DOVv%k~9 $l\] O߳;=BRK~9q?CpGO+z degT#l4$oGL0' ?;-%]2zҖRibԌ:TDWSoIĬsNUMg` @%K鿦~ڑ9'c*c#yݠiEh1[!5G6.G) +#i{W'FB䵷dɀd[E14@x,urKlKA6Q>D~/f|p@Cfذ%_yZd" ߇Rtt#T_A"N5c(`°Pۢ PDKb]3k\Ⱦ.jPk) -<Êk=wp_K ZgԿݬNF1PTd`Q?ңkylkHKl;Ǫ &"x/\?zFp ZF|P~ThiJM?kzS- n ~ݽ p`.c%~˰N(deAIMktZ18S>):DV_d"'Ȫ^HP{mohE`$JͰa%߯ϗG߁-؅VU.A&nןBuT@'u /;F0JNL U/[!mr DQX3Cs6]k P̎ԕ+{ݥGՀKTWb^<&{亡R88F?7fewP!nwKK(9R Ө}VP2svݴ::*{y^1ZEGA+5gѾ| M#($W3{p|xBFyWۤF0GX&ٚgʼn"z*I_;K uxn䗒jΗcǧGQ`6g2hPrx;S_k:A:%~E!u9^Ss٣-sCe^K"rIF}2+@9ɢ[֨ĚF 8xJ> ,)Oe*tSѱ*Yº(A,j4J3ݶӣJ,q$Wtzt_֟H}6Dk)e?EГD'WŸ'Yʥ@aOok^1Ǧ㰗+M;N=/꿾=|)Jl==tCNӧ $/-GcSy }|/g?Qq5[ߜKWpV2] jWv2sҞ3@OgՎӂ rs yzп:%=\f?}ZK)`*t:J, Y,&\2ߺc7@HLϜSAqbFI˸9pբ{'^R..LzHb/2W~RVSfF߇w}'8H[UDc#)ʉsL^;AdF/$ +T #*߹g3"74U(g@x% ѐj3eg`c'~ _OmK5A9Kh޴W`$9gf[>E>Cp8q0+ Ӳ֬Q6.c2n7QVf`# >RBDwyb{[w>8H~vF (:KK$ 8G)$~$4OEW4  nϚF]̮I;$9`fL5 Kgx?,9ꍱڌ7 g>TSK 8#kJ?qҪwDR-5=pb׭;hMjqFĮ[*4C#o9V2INFx .ڲrgu60 \Q 4 |ueDs1`:k1y`{5؅9 B5tÄ;iXz[due̩ ,%æ"p]p9ze`]GHL7Av8Ms9!U%oևkzi73|G]|)`x%d :H|##rZ% m4z(m5PJ8.{yK rЁ<0@ 12gnHtC*H"yx!ټe˂, ԦF*rñ3Ng"qΙ6ʀ*R^0J *߰7EM8{D;Wd|m^PQ-Bdڌ񏁄d7\󸑴XŮ^ Q>c)X}\UIo}o 2A M#LWB~cŅאجѐuf~TҖFc+LeYde:*AAUV쇢}~[z|11W&%[cX9yp*_V. =UF,IH="zdvH@Bmߍ-ZNίb7.~A:;*ڱ3ͣ$U|rTr_j6&e~kVAޚAc%%PmyB$߀Og|QUkYw,n0UQ rsm_5Zu뙿~Jt5Z-B(%-uq~@ue_n͗F_Ch-H? -Cp~W7k.]ByD)tnZ˷J2З 8Ljv⇴F?zRfz6ޟnEUȲ?X|a$ڡش޶?z{™o2?ZrT1tIgg8:8FdNU4wZhz 2Jb\`)&kU1moJKZ,JHLPa :m:@7ndue ^4F0Hin B U =&?x+)ҫ c =7R.nl:;ChFyu?~c,Lipd rHjF*WʘOz]=B\"QD=j@_p`RxdmҀ窕=фߓnE%4d@g}:i^ guΦmR e9F'8?ּ$M.$^φ z@Y~_jFCǙd>D.w+:["ozXy+'e&^<V㷂A8J8$+3^g?5Yn+/q.;M먞L)>>`{?[cCA"Gp yn}/c`AZ!3:"Wշb2*:+2tR m檢o_Lj6ٰ14RQScMd 6'\x]Z)5oA0şsVBUWy>?Flu].Ww]X.Ƭ>1^x\sNlғîZiѬ)$;,S ezmYC[h[@8IG'pJ5a6^^F~,I Oo2_|ooݍNI>g]t' "+ ̾Q(MوQkuyj15ɍёfg(xE_鸻2Vzu__W׊vaxNPyjak3  5Nq= XwS28Dj},S(- CuQN'N| B},:;ٽQrX` ol &([o: DS2IcUx1*]z@U~0P<y _-u/5"{LHrt*aDcSAa!B$q:5J$6'i40S ]1K 70|~'XNFwZ2ҖsiP\|~@s>|A^3!QD텈w_3re$\9XV_a&X݁l_ܛH`3֌w/drg~'^8Ө(%]/35fݸא Ç ۼ0'wO0dg;K;fES7*j~H= )r ߪ_y>PZjwQᅥ4^;(czbb\~bP#8ܩX5{H YUV|#Yd KA,R*`ޯ,k.yljlBҜDə$`g3w_tl pNT$d*uBD}Fo=G~'t+RIWm1Npn;:eAcmqQ(zkh. ?d,R\זOZ+׏[EJrS럟k .y눮L mD_ O%ŷ]*p.3E Kz։N 4$j2 `KGΥ4J7||/*!_Tsu`MS@xS -ZbɄ.zF] 9R!m{9q=X67S[q(P88όH59UNc3'0_+qD5[ @S1CȜH%B]#ڑ,`aP mAyZH[}i='|^ . u~Fo׫u\7a!&kv8##lIhd龐 UDzT:67ī| eIݔFm~'Y4<ʎN6)mNيOU &XE>Y+At ]j-CJ&@ekTxyYRhSà Hw!㑹yۢl55ғpi1j4fub6O#e3KƯE5eⲖ ٠:͡'U;_g l.7bo x+"G2 6IqSOk*= aAI+nV=`G?l"F$! ^xέg@(Տ}e|EL3.ƛQC}vR9bPGD:(r.?D2A[ B&?a7TMH&(ί dOV{=D QC æU$g 'k!ݖ+_#བྷk^ '(y>AFjLN%ۚٞ+(ZHXFC1۴YZ)-ƨNP^eL/`y /߃7/l\p?I3ŷ9?5qGH6[ӈJO0DCurpd9Hu,AaaE΄b:pGK'MdzZ2Rvow%E0杠{7ŦCW8erFPaU0K4}a1~w(/ԝS@a1hG*K02i %avhnt<(c_垑/:k) jɠavfzx8d%r!=Ճ.: |05PoةYp~Sz1G$# (l :-mpYuR,RjFW 2EL֡gf:=+TVW׋'t mL =xLyϓXUʸ'J P7-v:}H#"|0l7+2V 7ca %&m` Si7-M2A GQ'K>qBܠ$uECVk?~:#o\ !:6#5Q5}[#7c3JËG ,o7FOF>r{ mHBKIvaPokJROo#"H_o^G{rOh@e)'-e Cʺ X fֶ.c) )F$y 4ibdm936<t\$tļ~H۝OFl@#j$!`U A"ih*i%/0iTaSDM/™RDRWN2Vh E2pc߷O>XQ}Š]Sٱ7vo h uNP2~%BQzmPSSᖳL_GdE@\Fy+Җt?%L% s9\gTW?Rr#5e:xR; U|tSGGB`"bvTsu&}%9t(12spCW28 !7 &~r/ Z_2/IM+Ms%?8Y1(yɝ6h45P|cP1(H0vLQr!J @`bWazM{'Rq@Xsp~f;0(h5$"B*K}::DPU7P;B FaxRvd1Y3FHmZUʰ:K}mrtO*I*٦R)6nt}Ac KS]@#8M4fVSU/țe $LY1 }D W~/uUWLV-+lOxzJ$$*9x` \$sa([Ry h2l&eR'KIhtgI$%u4PV&\ɏ@3a΅H-"wQiS0X# LN|ځ_{a(L R|G{~ "86+cl̟[RQ. Pd/Vz^_pCY=1_q8u&A:޲e.ZOs^nJiy{:I%:H\ZW  tq: ¢@I{H`˾d4Z>GaJya s=8lɼB^/k2[O]$J:Gc1~{ɰǛơ$(U'sKs3Hz?ʥ!kRҗ xU_ ;D6XyP㠎\.]j$s`#rQI1m#Z{0h!Hor>("̽s/q?.}+]|hQGM"S@4 ;W;c$rE`aj#*+[qq{G~u_o g"9bZό->Ifʺ=U%\.G֚QQ ǤPo2+RR ۡ(@8R =3`K^L{r.{ĵǍg[Hh*)өMj|[`EȐJ-%4{j&\ж ;%ڃ}z1J;Q+H:-G ~ K^x/?zbi3-ʈU"lE4w,e.. ʲ#L^'Eʅ2W3yF_gJ+5soʪ @>zl3۾?Uh>JGIf@Itazv4eHgnQ|SvLN@bѺZRn;~9y=\f+~GMdh,v >{ժTPfKn]3X(ރҕ $iQT:@;&Mm>Ef Dwj!f뼫]c hZ"*k6lB͹8Zd ''dgoa4GFֈ)8u](+r5e4 x/~^j+Ϸ;4<41zNӷkF9%LMfFFx zeEMטM> aV)eCzܣDz9DߜS`& $>񷾠*4Qڿp23˞{sE?n:$2JQdǽ{}Ye%a3JOheׅzf!zC XȔ%R%,#^JZ kΨ>ȇ?Dnj*Oi80`3%ŭYFSY[j[oV}EFܿ|?)=0Bg_jrj yٴ U e<eH3@J^Yk>c051oalÀUwR6 enj^7Rx*3]蘧SipwxB8|bUb|! 8}jz1p_׾wkg|*_d{u&)ox/]֊|޺d6vZҙj.1 VYKH5ݩt[m>[lQ'LjSct^zi XQqZ˜B:_xuҸ'DxljTTJņ@=&=^5/UQ/ cӌ}"6]ޜi@yP4} .\{~6~/fᅻ Vx`?^&L^Cqp+E-rߍ vԙwO'!o !Z8nA*L@lg,y{?k *ĉ`nTI{nl?adLхӏ˩эOyvͣö́{w^eU4nn@~C_/ j)HK#&~Hɗ#D ;'AszY:]DqWpvԠc~_6d| UPJLAKf&0$0# V5cdPը+ś#PD&Ct AF@Z0iF^D[*:G(4|yc\f ($$ OQD$2ܬM3 "W@㰴Xf-V̎!TJi<Qۿ_"5ZBE N7{k3Kk$_,l/BWL2 R^ @ȍy! !ڿ@ŷJ1f9Qs,=ߺXgWaPo3AW?`d@Ro$H TiQ]M?u*/FNE-8g7Bs̻JF;_RF^67m;+RL>1,:ĤO!$1ڴ|^ P7qug,+@W̓d9!Sk0IYfqmrR?I"LEis0vhwa߫9|&RU7Tiń3 ][כlVMJ<BMV]w2g[( CJᕞ.6a2P',(B4w"B=m-3>JЛ@K9RwlZ=h;&nFHhr2E;ժ" iq0SՆJ_R`QF d)#7 -0iY) )\IR4_ᄒ w$z|6ap-5rf5>|g.oj&5 '3iuHmǞ> vsQ1gL ڸ܀; Bu׽ɪWVs)%bÃT1Q`X ]c^djt%Q{`I(OnKT6=LY?L/vUd)#\ |-ۚ7zìS JAF6>X=1A~~gmWo_Cn 5Zґ_ZsVB٘s֧4x zE)wgΐʅl@(oȦD'0հ%aw-yKKbtxNcq4n9"ɀ]YSzy@],:8YػaP#n o`DaGeE&cڸ);:XC!Üs0 Z<1ciZ 洏,wDH;Ϻ{0Y~y^XOCr|=&OϚtR"TRI: #8\S⏉1Co!w]d/y+8ֽ_9TkxHJ~lHzܦf բW פ8ߠ3h gNЊTo*.F߅)Yon.^c;MW"# edɫk7!(.qVozI$'?%A kpXA< dv3w>j5a҈bb`U8m Đ-7eC *dTBE3Rs]e#\,lGU-~cR^QAkw@L? GqLs>-+ʊUoQ.AOc(.?:1d ]p2z<<ΩU,EU6OSV@>C..bRB)ya ^PF2o"Gt7#qڥq#qg1,@ةmn[@ t: lsO|}PUB4>QlƑ AҔNSSgXc'ݍz^H)ݧm$3Pi7_=VYNDS9m/Ec6]e~v9:{݆Ÿ8F!%Y8 {cxGFtWEga,FP($ѽ^ߔ಴NK\xi 2a Pt ? I}ϧa2_,'UYӄ*W?]qPum'Yc1RņFE2R,43V >I/lYVZMp]áZq},?Gd6w46 ))(ɋ㱫ʺY;tlC^]SHyB*Ih%0rq+ѪlDL, nDS`GX39Җ'0Wg&glմ@hFJQ 2IA4p-6=@5nk#d]R<Ӡ2Q؆4ܥ>ID)Bo 홡;#$ڿw1@DE sd䂤NX*_d$dl1b'*Zh oRoH x,FӉbӵ[SH,e5O/rX |k4y&GL&> Agu]%4I#=epzxT2.h@t'J?0D┰X 0,ӭcX9 dEѤψlHҭBXM) w?;L03HŃ\_ܰG&4&,ٮ)m Z|HR`]&;aߐG%zӒиQM2&"L=FJ_6PkM@(jϜc1H$yQ#Ёi5Kd<؁Dju*5I&%%ϖ  ^3(%iѼ%:]h۪yP?$xm=ͩ34b~ǿ_"1?,W U0D+2 ؤ*'ڣSj;j2\?qaaIg%^T<]QN߱'bb f=ylwf֧d B obp' Mtod'Y6m^Qi pv ^yIO㞸IF}L6U"UD&Wih.)@+z۟vELUE\^iWtP"s9 Vh1 E}208\^eT`J q$+EŪ-d^oU.ĥ}DJSCjh-&e(| \b/YFJx7ּt4جHX{Z s: i=KV|WHIBfFq^/{^fO*b;3틐iłAm[M*+FfB0YO}^ ?O*936uĆԱ]\uzExd*6uH]: #դ }*s,O0x ģV!n q:CV1bs &&ѸDQ]#l\,آK %KB]Ie9)zZN0!#u5FGFb|V\={c5/zBH#83~_?"{k3R 6w1 cyd$ y~J])l~_/ݏ$00V< 2ua=a{Rǎw ߺ&g :K}sopig^NHaH~4==6qL}ӆY.^کt+[,<6Ի3ͨGIF?2Ahyc}1WC[A2ӶŴEۛuF^.XriL۝gk3=u[ꁙ9@ĩn9`2=X;5Xˌf4_*!!6P*<=eQ Iq/=xztّ_lk+$Uki7 +'n9$ůxev0vM+dVSp5Ȼbz~w/6MOm_?E |^WF]@D䜢M];O 9bG k8qaAcE`AC՞ G[o(0nؿ+JA5loBE4"AdB7sawn+n5;$Qn:%f?FCۖ~~O^PmzZMkh"߆DUNu[ln>HƘoX~bZW Ԅ1DAŸ_Yq`- IԚlv^)}O4.^( we_44Bh/F\Қ0NIrW^ ]z(MW,IxS,'aDMR0:ᣖv*f&aJ<Xˮ}ULg D`en<Lby XXvS9(F R.2>VAk0uЍqW;WduRS!!c{.n ]^""TjWvWQt&aZ2z#qbڷF|>SjCˡ[=שpdㅖ܂ι`4`kϔNLkwRIpNW_gX8Av}W 6#'x1u./G{*簱FEC5o0HhO5qwG^b*C;PqK!-i,"{p = 'Ҿ$&yxhDk h'S' mH[Ku P\E%aWOOquO[M$y2x2HRmv:>J:/2 Kgn]刱2`so̦ oq̫JDR@4I01'rn!gk}t+Ӷ`d:{ 1} 5:^:P >JP ^#i`pZ)Idt!]XHצ-R_kpǿ {0aY_ͣiK;K, _ke;#y3 G&EVP0etqεt#\imPzRsdXA',C%/0|7)ts]y{kSQh~KOX+ YkCljYݻnu˪(W@Yzc zOǔ~#lC e 7b}+8~ }3fYn /4AS )#|$8VKcǵ cNݑSLJ@ъ!Aaץ^I c" N8 9G[G{D%a}Pv(/]B)~YX3;uxT=vP.P׼v:QgV8xDE!M Ougcer&=QEO{6LV+۳H9,_ٺ#c\FgoWJ!OZ,UE ңqɱ|0 j"'%aW%XC_ (kkB.@czw{&cdY bNG6d 0-j LcA}d͠Jlp!X3YV;srx|i}J(\TxەS$:4/_}Ky^ pUof9ut.De acB)x\ +$ :>bتKD]ZfNq}]_wTNt~Fˤ,)?"fKɦd(BFLJVХ;5p ]7}[QUI 7K>ڦ1'*/$ʣX`Gbqf'utiiG$ka&tja[pr!%d,6F73V\Zi| S/ fKKGe8!A6ߟ~dEi(o0ϩUB(_ʐOh;BU:;nCҀuG,d:6]ߒ8WcC%S{bq5BJ{nŸst8^Z9[!®>j(.ƤOd`쭖АЇ&"#ybHUqOjY͌ye|GI󔐌v,'*KtÞTJ G$ק j(/3Տ Cあ cQbh|yPo4L14qJ徿"޸>B$J],i>ՑgXj.Uyb'6+O]Y4aeX Pajo\:1.{TU f*$ϱ1 6[^=m~p@)UyAyi' мu_ ZٰF胨Kܺ`2UCHKT}GjvN"m%8[ x؋h?uNTgKEdQʶ "\CXR{jԛ5m^ؤd?߇T_=ϟ`6n{6 7GkQ{\#:VEp)6Bb3 R^eFYƘ]miHΒ{)TtL\G˄K1/j7k55ʯ7Z,uO3w[> ,Q.')y1s/ϫ ˼p m "HW2q&쁥OHOjOhbڎ؆0?at̉o9ihzwuIqi2 V]Gop) O>x#lz 1V;?Odj/{Uc2Ck ,dM3"5+"QsKvȍe"Qv RoE8+6>8\$)ѽM&AW (X^]qgX$M-xαT/?Zkl‡шlьҺwF_-#^6 ./mC0QzߛYwA߄$nX *EnA+ & WaY(*0oݿPϨ/S;y5}rTP*x({ok4Pȏ<2<HVgthm}ӻg?Wf[(ydZ* wC%2d}h`%on<`X{i&ƃb868]|U$-̑@wE~\Y/~@LD 7ApCp0&2';=Ӊ>7%ZBҴ+.w 7:m(l3㚔]qkLqgCϊi%/lؾcuڧbW)Fe9%h exS =}poVNLzWky?n]еo] a2՛Jjl]<tJ9:Oe[hN8}B8,hk0ZlYhIhPE&touK>_wm/ 1޽SV3& Cnia٣4$rX>GYl9QX d;;aINwz0ŅaުǯT_ ~ݚM*ǭ]#|cjLͫ#>);tDd/"~%;JXIhEa9sQBꉹs!Uл+(Q zri)NR wOCn{tFC ?8ylxˢ `T&/y}>PDWd`w)]#M&VoL"+Uo,.y/z@M؃6̇~COXd9u'di*!xK7$ZeXXB2s[wWF,pYd*$RXk,{dhE; e9{xzݜCrAr5_!v~#+hl #' -՗(ޢݦwNT/Z$Ċ&ɱkM1$#@v/ mBUqfwi3DK>$yl(ݨ d LдpUsw ҞժX#/DhֈX^luM 1$Ӕ>Ѐ;/FQyh>i쌓i:1O8 8ܰ>%thmzjqm=sM즑K7W|Xu|k}ͨ\w黧J>Z\^'> hdOE`CG*!$?]T5Z!I,kC!K `gDI/RxW@UUa 7 =.0>Yq46Etlu{\Q [[noOC?V%0@^]zd!#$z 5q 3TZ8,KpU5 ސp\> /~vDr7$D]"S2R;u $HkW~e$HꕼPxG m&a7a'raF5%CמbU(rIgƫA{@P̅I?Mŷx[/33~q_BnoTMjקtOµ$|>F~DHb|?Wi14J` lqjeE)5ݗjJ5ޤU%B ht_FL~t} Ś itq{NN^nPb8Mî -x֞"f{48&[ -cluMкoDd~bI _d׋qR|,gՂL=cȬpܳ>`vRIP Xb@th`/[I-)yGܭx|y; "m3G\G#ȪOkA:Is[aɶgUvD@.S']Ѿ1tdMKޜ/F zfK;-W5:o\vX3CЮ=SF)/ع9_iݫDtdxf"ղ~|9C1Za_HC1J2;'o#mrd$ĶP'k'vѥȏU@椇G4!%;}BS5eϴBM<螓*َwɭS[˞\@Lz6Nsh3-?lf]^ ^]7Oܹ H{9JzwiK5nE{w;i顈i׭+$q5a m7*P**dMaꝤMYB8}k˛u;LE+KaᚓLB3">7/U]Br|$$zq0ZY}eRT| 藆i˝"rm>*J\@DL TMm 3|8O 4"D[z!C|]nqُ^tm Ƶc< +F0PPl֛#kBHP6c ;kHA̶_d`cqu8UD Yơ<2s8 iVV>\zt ے= o ΡGoXAJGBFFБs $-EK<7&p]?kyْ.86Fk=>&߽u̥{p Ĭ h r[&*Wkmc'b待V,_۽%zֲmCpr#OD0%(.k9 %j'p }ϊc/xlE:HK2x _Eu%|_Q'zȏ'S`ɀsoM7\߻oҳM])Jd0#pS/kV򟚗J["+ˆM[I?ڿDWTYGbmG{L[Rg l?\hEx^ɎsOLYMG@=g}p S<5B# ۨH׫b*?=c$c+wI&pgf"~h _ !U3S 7|ՇA^5-n߮q*r96/`Ix /{t1.fEAn_̀5&H~kw .OСCfAo/o *:OJ4_v7mˡmLv/]af9x"fq]$g{JrZ(SKI;JPZfk~x9Іp]*ʶ_V< 'ʮd_rerڰ´ؘ6,v#p`_eQu?öW8G # Jzt02 j[O= P">=SgOSM}mwcé\Tǎ0I`TvoV;'*lpvؗdb<7 ߃[+_.!!EZ~%ƽ="/r==&e5SmUcl+e".65:6|Rq=ZPAxn0o^i;щkl5.(!HRJ{jfgC{уFH3%^–!zKIT 4@X.3+?^ۨqhJ1#^KAUmhKWaŸ,-]Tr`Y$W `xz6pa462DP cx_ fj z8QlKG<ӇDz{M9,дpކ6i/ĝa#$/׷ VA #i=̝r2kHQj>/ۮ9p Vyޥ{i",!6U =E0JҶ5*9&t@vDiZ5EW7XAϐ$FUE칝Hs~n:<[D߇miF`j!#Q%I\ G$Jk_%8U/O XT6T_oST]QGcmgn CNlRza~c_YNO4&TbWokC]3-1/Lӵ JI>5hӱx9!MwvSֲHj RJ3}]`◴~},-m/0Kn^>a=(]@ʦOdqOGn=qoe֛ͅ"Brz7# H3f1SGkvy#Y7!S0N](vG}OA#JǸ0 ,8LawW* Y`|3 \w<J )%.ԃr??U IX r3 "&naW !fXR=zSN}PxH{6,Ma[UķY+oR\yuq wj]FޑDc|LO9ncԥjk=[qn,ͦ0e <.Twiv\%Ixh?YQM2|b!XD)YP-JU7\"r?@,R]'ko߷{9uߠ(GM>03/lín6xZ'P^3y˛BnNY|N8d{1YH+**+vm)#zn=;ѣ$I'EucMMAA+/F- Si&=!pQ=ĄW MQq:Zz oo~>$҂u\S=bCa)\UYn:,pMv"-$ 4djIjqV+ W ~rD޳8cBG-rzR T~m{D5Z=x*ݛK}narrb쾶!2V1M,A(/Y&Is2DBn}䯆4ų'ك .|G څ҄(r{}LЎdD:Z3([>E 3nkGJC7Gh5ďQZ[qˏ w(;gs//P'k)6Lp;j aP\b^~)h}d~ Yiu/R 7֥X=M &,bu6ftQjݶiP;'kP!wQHiZw"̀I3G,aG83~n~dlYV|Y$D7{P3# hk4GwkԴmF./Hr>Bid9xdvY A4N" }Z{nz(x娏L ٓNJʎ~ujpB"`Iۄ{)%^mFɼ `HL1. XVrߐͼ~,hA~ʋ*(I __c,崟8{%_L(JУƝ~Rف9U4vi~Zh:#Bz?K&3nj^gJ7 3ę5e߳: bl )hMkv`rF9킿}!9*'& >0Iޡ154vxqseL^!U|&·ZL; ]/p년=aORvf+U_v7O/GRI𛖀E#F.&%} ڎ$ @Yu= sIeO18[+-NM^^ywK Wol{(|cSLN,Gӏ^aETi&40Gkz^8jbkOg 4BfM3l Uv>2i(Y FPа}2}M1nc<|Ic@ ߠ ܕsiGXsul[/DB+i Ymd_`:(Vsg#!m8o?Rj*߭X[0ecbݦrxmw\d=,q/GᏎpOJb Zb}yjRy3\dhxwz!~w6O+b\'N+7_=I؞KWmvPَqMlPmZU-O1ס_yHTo~|D >ވvj☲Sr x䩣6_~O 쐍RQ]6ڴTCd)c/ c髷2D@ ~leݏkZ<9*yNƨhvn[~$e\W9AUszVI\-RUdlw'Z< c=u}DdI]lV2߸Yg$&p+@<#0FDmo2 b٪;^9֌Rl ^7KeMoubkл&(a(O] 8ka[Ta7PW6#_) U~HWJOIQdEß4ɝw+2*a_?a@wq.[k^2˴mzQ gWJE6NsKoUۯ;U-/,^Pjܗh$x>Rv%E[W4F5ЈZ D綕8Ý'^CN68& WD&oWj *S-}?*ZbRr/וi@QX3YfbĒØ-*yg<|k<6We,'-}ܶu~v]Rem3A1MXلi6. sN-a8eo bsڡM[kqWFh>OB4뀾ȔzjՈU;ܲPcX_I AꮔbN5,Jb3!B 9Z׌?d6ĩ^f KΛ5r-Pfn4+ܐFq;"dj03jmzuRn#E]|kV'~bXвkj"ӏ%{l0Na9áx'BѯB Wy:k uGKG7tZ΅ĵ*y1ZPq(9cMk-鑨7+pQ gn?6BO鄡dƎڎVkĐy }C뢉*zd:wMSp’wD,7Ajb?*}GV ZqV_xT~$6=.Jgx q/ugmgEe;ț?μӏ>P[+a3&y*&ܶ)(uVȩ24zY[f[eb 䧗㦕-ܝ;p jY@QꦣT&!S~/ 8專mM/|'p#Q14=z_2H]/Z&@E[SO|?f3"ldLSX,ٶfrD<ETX!%y2]3 fq6@6/C$y H)l 2! شpukMGRqWh \]]@T %F '.$4 ~$hʊƔÊL+gfN%8M<O)+soz 0pL\ Wqj1É4l K߆}eG>;2Wgjٵc\ 7`u[7=zZ2Զz*>odoڞD1kwrl:v$ɵО{z4JهђoI ;_$rِ7l2+fI|o$,f/.F;]nivg;@ty?xO޼#ܤLlJ\y)Q[*HRi>)H<$I)+6pE3I\%"}MHҧ+^t/)v"?%͠Θ9 F>1Z4xo^]|v'ZnGAGi%O-]Ù3#PQ/uv?5:P{ RE8HWQM(|]9G~g73qS8/Z`h&8+{ODGɵԽ_#݅ϴ#!x~\ AoIxpt87[.A!>r1li-Ytz ^(m/k7y .KLx>eW[a(*l}nr0]Ӈp2u={D-Q"~3'xXx-ohDtNeESF:QxR<vp6E?ݥI;xQT)#< N}IuNډa `u۶9~uFEu[ Huli @ ίu1ad׉ VǛ#ۄu K ^+{%׭ahɍL$V3GPyL")*[M9Uҙjff%\(tcmC8 %j SH%aՍKEb"}*M聘 틒7>B;t>)qߖ4t>d$_F\hUM"I]IQE_=$5';oGeM*; lB 5 E~KB:$N}>yҢKUngsm'NV kv?x4Gr`w̽ uFŌ.ͷM%F/!SC%(X L.s-OoQN[o,kK2Gvժ9,h#ߺ.j}lo^(ɀSF2S2nbMHFDA>RnKȺy<&$˃&[P'H>&urn YSaDiїDeWV͂b'Sdv3&2Rȋ4 v`#Hi.{ UԾ+׉CjZ}7jrĜ#ߣOp񛍧wǩu n}V˩$]U;lcuOjv&S# efW=gZ[MaxWF͛$q@\&113~P8ER߇nk T,bXe(af8Bi ugQ \S AlUd~pK gq+S244V{$fM7f'H5 쓞EN2h3cn; xbg g={h&P~>gEVJI[ث sCQK-,Sb~/$Um Snhsi)[w[O[V/ž^p x}ɿt6< .j< EQݞ?"򫽪u-ifL.i&u3c{%=a.Q>A|ҏUi V?_P&vUxdUo5Jub"i+qp\Om-K6):_{,ȹs%!$gLMweh37+#?16wߕ4I:Ϋ`E׎ OrR{V&׃ gL@=FβpίteYG 5(&J^(\9CnK[Q LxK7TAQa܇!'JciԶBvr#P0]fp\ ŇGD+ʶ7;"Y .lX.2xŹ^h?5Qm !̜fj\վJ#.NYLR;o`̔Q#y']/ Eab&YФۺ|6#w΃>Xy!#Vu bqĀ2zr7Jv%eCc̐v/JUi Q S5T0&H) h#l鑫]rhg%/CJB]Nh}7zzҤŝLE-9B@5l>Iq6BF\U[_v~kۋfߜ)qG7jf{La^>B;'ժm Ქ"喖 W\p>J~$q${fax%x'n;y Qm1PE@_oF%uْ0M/7(: ~D#9'3"7v/.3вa+疝_<ƘwZlf烟pO4_u&j9^O9.0\h$=MK_ V~ϛW/~ϐp̣ cOx~fYhl̶)93Lvts3#^~@+w1nsOPVD fPй^4L3XB|k3.ܹ6}]~Ax7$rJ+@cS„ 2=/ڒ=>ٞX/T)Y9TPW\庶EH+r}WmpBn'8k8g:'[=%P8h:kj́[P!ݭ@BQW~Fɢ`y\"*_ЭdFAξogZHS<`ݯ5~  46D,&3=ީ[ ]0Oy3p>?_Dnmwg\Gϣe+9Ob,D/yQ#CJ(b39" ۨbKu 1}r0Pqvw3E /n6q)n-f 0VαQ:{B¬&>* E:cDu| ۔Dsՙ6ը}*tJɴ<\ e9Rs?s!!f_Zu2[)V=`36 3[J*m"QFSE&Ab <Je\< Isn;UIpF%{yqnZ'򥻀@VA*fRM)_*mgCq :ϳRX/Adzdy*"2gfV^(߶)=P[oz QNh>++pjAuG(g n>yq>ڮj+ V{Zi4%vyzM\w0tr6`LJ{ z)kB;ܑG9WcX9W% U5[^| pe=}S+ʦ+Ir7w ?JJ3n+= W5_.R!0(`Xs}̳}Àw%-DLHQE &*%84 5SfkQO ~%.n5J@guIu(΂l-6n9nVwP>?WPb|K!cbY'EĦ[gcM{ /Kzy"r׶-;C>C C4I%UXټZ] ӼE%l 3ù|P Rhn) i{ɓ=sfieࣞ+37:hG9 _4M. D".ʘBT*ZxT ̅rJg;T3GW %X|"^2ØAwB V?.-A{ wA&3v 77`\i=6@e5dm)QV&9- _۠ǗO6;(VD'b,xY*˳"ɹ$;S@GRP$RB&ܽvaY)J*1=T1țC `Ty<]4^!a]9]#Ąiñ zw֓YPh23/5ٳo5~__QDk^⩂ba4&}V7ѨzC[ܻ3~ZfLWރnZh-d2#_6S醲@΃M^=T^2vhxzq<ض6\#>wA̴Ԡ^Q-?g&0%o烩< kՊSBf2=E3̟\PibDnׂiOlE=,r\< }Zڅk~jh2fA1c)y^3/~P@*$nm|0>~tN\)ʚQYa ِ.^imIOS=},H 3 z#*dMTco1Ԧ?'oCKW͸>67bojM"ж7r s>|M\U ifJ5^JaL)P}+&Bx?ZRR@>u 67zċ\1CA)[GLq ԵOp*"8.Id yTG4iA 76i WM =^ՕXKs.b"pKDt  )66eQs}ꑜ1-s Iȉ&_0TERz7zOkGa t[]~z { _U2Pn z :Z? Sg$飝#y bbrX*Ʉn"@Ӽ-l a6Br,Ѱy *ˆU_2)n4eHG)|>8K_ FG5g6:;EXL1ގ)ua$kle!bӟ):*txs MHY:Cr G98_7^ Z΄T=A)Sh39h}F!u${^c?2(|RjʱlQ' $pfdܯF>VQ Dʶ=Dwo'C#|P\1pcV䛚4h?}QY_!lZR4i.lgoft|G׹J5w~*36T 3&ihHR uw/0\ T6Nf (X11/>x8X\xf .ȑ! z1m,<:f?LJ~LY^o'7UQKqU 6$GeeûM)c*Qm!k=z\ɕ~ US c#h:T]: (y/T†!awЌ5.wA \tা\nCRu~d%0tTWINi#-cFj Ьe %GW@\P/cQsmMC+_90j[ko!?tf].Rgk&u9bMRŎXxmk; VzL{ =,i.>woAZ:w\9vDw WG10&6j8D r'M"|<=a~bs^*3GH(ÔLjAHY*SÉ'<{:Qye ;~Va kHg%J#UR.{:%|Y($ ۞{ Dh6#̚hfOfuSlO_gF,L pvL{ n[C9&[AD0~([phjMrp7qwac3QrDn'\͟ ^A߅JGEPݾ1Z|B( n~n;}.¯㷀O瓉J k}B7d,TXSb/#rѶ%V1&E'4Tr G)ݑ[ӰT'E=oL8[##a`DYxEr1ڴ@ղ~/{i n^2",}K,K,?@4 Kwuq{&E8ԘzR >noeiTl _#OGOH>kY \hj3 !ߔGSq*a5B԰)%?̸?+ `(R=fpɀM{Cڱ/+/4ZNi'M*)pJj.Y5!]+EǎArGe Ĉ^EHn@fnQ̿@_t-\J6EU!IqDWL *JVdY^ iuV߈U/W9nɟpa>i2nC)T$(4""kB$G bad>I>T82DtA6yr瑇L`\^MNieDe㩰Caa0Ơ7~37{:2wm3ou Gkmq:UMJܯ pF1ż7y".͇\#FS))~ZeSN*"Cw"024}?8O[΍7V% a%w +ozUXs~{:"Uû9oAQb ~PBcU^TKD aK@۔o+UvtUNXu*?,*FqKd9ܫB,l;BhiMA`DT#\ ^ 0zoqt/ҥQSiStp}9YV>Nk%%U@oT=JĀac+!ة-EΏ~mBP3bBvw78f6D`6D \ =fԯ$IJER}j:^N&'Sf=i\aT9,voCs҄ 8ժGh[.RI y DD޳I8bБwVs' E-ƌp\wQ^:bd`+lVybv3dx2'˥.Ϯ.#냧KEpnnY ,H(BiBH o|4l 3/ 1C Џ9DLZ:gn&vPғ>^(^wkf-uACW_{lȈT"֛cCU<]Q̅?`Ʊ tDy6PPI"֦BH)h5zX Nxڗ/v`Hk$Ds*^UL.v" )g`~6PTN'yJ`#S `NHT؋^`"km[3qѴo8x/mѻr9nƗO]ʴxIőS׮do&Oc& nݹl8v)qcK%)OGQ^w&\9KLFc1ڒ ;zTYwUl%u u*|(6 FS'CЕg[w}A 347@gCI,=;CTTI>o,w$dnH&ÊE1J1-| R ..E./2Ɖ vElp%o *P7uїEZ0x̥;E.H]7 5*%OH˖!]pyh 9*%~<т<㗻̕m=T^ݥ|.f]J|\9ϛ !P "ϝ׮s_N&p:n>e-Ȇۀ΅3:Djͩ7:kk/L11]IВE [ O?T&0A΄bp4Y8j@Eś>H+W4̢;?`0̇kVox;W;l'3X {iKRc<5 X'j-Ln+BŒ(s_RVTbw[!hO4j%Os iܮjM$H]6TOooRJ29 'sicؗ8jɒb:|{z]1/)!:2 _p>_Q{=nlV)''%NgVwHdk|]w< -`|9%ȻX^>/ƕA.OO׏}8 'SЧq=(GOCCڹwt"qKLѐB[#J8ab2fl2ry>t7׷鶯Pֽ(^?ٚD ZNVŭ#q|DĈޣy/Jݥ?{ 'ح͕B7? ?$дOw~*~j {a4'έK)rTzKߘ[\hGm=Jێr N/~6znz]rV y3QA٭,@o|VYSqmub{r9t _*{-{$^4~?U;%v%AHJMn-e޿ɡ&օa n: jiUS䫂y1ѓ!KбLOSTOD!V2"SCSpv1ޡՇT0F~k7cVpZ9|g<#32DRS&Ʊ'3'j1fG@2(&cMrWq~`&ܬI^\De>N5ӲTɈ j6+-dݐJNxޮc-lٌb]ƵB%93GZۢ)z{9޵Jf6AkxL{UuC0 eFcNN~?T~gAN踻,OX |ÝX &͝]\b 6[iuAںK#=kv^Wb 3%н7a֠0}yy>%|t١H7-JuJ ȌnJ-[B4o^1+ ClZ(c/OL &ULG+?o@ Q1Cɥ{ K-gGJ=ڹtV ?fd^ O" ʋ~L@Ao',CS~4~߄+:&pc$w>r+]+ -Qj&/Чvp SZp_طC,O3q帟r,9҃2Ȝeα#Bmu˕ɣ.W;ˮ^ՀxΓ-)nSV9t/Iԛ,zK_diB>7<^9Gq c51b:[B^p%N_kEkF髅ͥcqIϽ7)Q|Zf@^ 3w4z6.Xmr~7Xz GZPK/-ݪ)e/t ^ܛBAQ_qU:ej-~B?iGC efmfB>cYsnê,Z4ft})&oB<7'өU|_t.e kY!UuҁeZ*U_FNz)e9v]Ͻ5y-K n>w5eաVir jzؙojX[RB,p<-icih4Q^f,>2ʤk7M0vG]^`vbZlG7 . (Bǯ,7CȊR@ tEa"wh7|viKw{Yt)kM oԵ&=%$ËYsB'3 Sa-D=;b0xO7*^x{FT}3>-{T\ Lp%/ᵘ+yq &t݊P0\A+rriU1:aQO:=9ސ/ ʉ, 0-zh: {!*f$3G;M&ϛ"S->^*V g -^7$WF٨sƷs!Oq傖W7 '䨔!Y^ry p HV#9z_SWֺ5]/Wm<3d+1Nzi)Δ[j;QpROr0Ngjd/^a[hL?*uSPCzpv$ƥ ײ(])M#DmTM8d7)6#5t]:@ORV 5a䌁/CժTxHg!O/aH/}kY)}!@/_⧱5rT0Ϙ- 9@]#^toFMxͫLUwR\^;%%#X%~(or'%R_im$J#GjRQapV%d~&KHېLѼK>4GfUUW`B@fʌ_vVWrTn9Ū]5)zԖ{CDVOCгki\q[~Kȥco$=BC>&@_}g#}hQC=]{-IdtU~s";۶ M~5'~$o+;Ti9p#@fjѥ 3P,2⾈<,mޢaE ~y*sK3țމmsQku""k񈑹+5ٙ.+[{aǗ2Ofc~1 Wg qv@D\nOq=I _qCUEaM]Wb/˹WZ(|JӕZFWTֻ]m x@ǒ9NR*`jPDa'E FN\قysGGs|!% IɳՖdS^a39 {D-'q0f|.74M]5VRv?CZD/Sr|=: ~uF@n ΚutЛ7]-\Y pmT%Ea<Ǿg?L&]qW%T 9mUgȨXEXW\@@{|@$oTPîY(IH\(3<9'l6}+5L(jSj8]?au v:O߈Ɋ3%0o/sI^E $ .isvz5 #I^o1肶77B%{ -97T\k󹷙տIԵ5l'xczv,W-Wmj%oiC=ƽo"@#Pv۰n5^f٠~\5V#aqteZ/־I1̬S|P<,` Oi0㶲/*zJ[fzooQ-m/{VBu\YPVV$ձ$2j4%H*䱆oo۳u t8&.Us1˅SbQ1fU0b:ScO-J!I~ pYY8~>.]*HmrDI,T?}:7.5jLh'(¨gwn.&lH.L/ m-5 t`6ei_!ΰO9ߍVtz㙁.ϭͿC181Zt}c Omb,5639J"X#[ 睁WvXhw (Y% rg:Pcwr 6%H xbH=ҕ!?ǿH&=mWqPx4s3/( tamHj^s60}뫷TP݄I ouč3<6̓x㈧R=F ՁGyk Q(I@I9ӑ3"xג,ܙ9{ MΣ:h0J%vӥHkk1nno`X)hW4Ds#^MK'"&9cwU_-ظ KC`_FlSɗMTwxyDV8R/_Jw G2֧8#3J&(|#}ԅgʂ]B b`|!.S'b`>J{9>pڶ́q!ls˷n'ϕTa$ILUC(6~Ɓ=/9 ͈,CcҗU;vcOa iT,]wn"(9 0\ n^.z?_2O?7m{]WSVkmy&881א娆濏X`*?>2`^A{۲sX9t%; )?;]0qkpUDѤK+S%`Dɓ;"%^"h|_0` oZ/᷿Ͻ%t795wWIO9ciO#/RX![+iGO`xW=į2ATBM[U@H*OӜUtU%}Yko3U`"肕7}3!;v/\ٷhPp$S#`u|%^pBU< ;ClT{^M"j (6܏0WD6$бIߞiыi[XAbo1|ހ#'~Qm~ &/Wl}#z;Ei`#|˹Hy8og-CfO*//DDׯwAmE C]}`hw݃ gۤ8:^rTъd\`붤%H9ʌ۠4Yi>K-EAf%]͇7+Ť+/[;O8dB_7QR ]Lk<)ǪF_dUcEw ;)yGОPh7DJ:Dw8* ^`ܗhqmZ 0}|CPP#N ̔$~G3 >͌ RӵEW0P.{@[ΖNbwě"Šsչ JvluAn`zB4me> n%&l<(,R0 "+m+jQ\,NG' ʉ1cԔt0 p~=,0]KqhIOQb~ScQ'9?asu^fS+Юx[U2sϼc$^\!}+dS8B|ڔK"x* `[/9|_ |[=9wzu օ|Ԕ8?q0}0z?Es(sD@>6hp)Ƌ z毂xvŒV'̍ 0=¢[< dE끢.ڣOi==zc.Q Zˏs!3508Jt䰦oقQiF74Z5ۏeެȼkyuk$[ܒy[eouko7K0OWVr\i,%d/Fs?5o:™e/0xqXwxEg^ZÔ  &EUigmOd*膷+#~TX.*E:q@8`ɰF2_jku"Q{YKN#U(c}Х /?0%RkZOXqT/[K q%\>UDgh4.Zwi Ws׵ L2\kwe5^|Z4E{VHS(@aPYJgYX ޕBbOoY3`zDn(^&b) %e>!&mkL4q4Mh$ Vu`J?*.%"ޗ 3Z@V_ zJjs"^`KxPG$lzXO #J=Ki=gһ0K޹eW?r~[с\,{ߜdz`,Hf )K, g"ZY@nX3> TN ; YUglq]Rꆡ^A8 Ϲ (#><-k.irsտ.UƯ*%}J*cOSHjgȎT K#I/TIנ^H0VUUUѩ+#H*h{=hODP;-ʧN *}SRGֶkz}7U~Y~ۋ$R`̙f硲,B A~kfh뭀+J/\fe]ضJQdP2ncV&\ y'۱y|ek`gLkx9H[uᠺ GMO%:[ԕvپxrSB|V~TEcڢbx $%Y6籰]U)HPg)٫:q'5+|KCHvuaЭSAoF g5.cAGah4s{ UtϷ9&HmʽcHB9a?<Ǩڝwv.MVZ?w^G/w^'=zdqA[N:t#FAQ |k\3otn.V7 wu"4I[ ZVwh$BmUbs-J`{%'.s,+zZkY6 o)[{YN;ʫɾLoI߅AP2lWa;lw'izwi:/ʢNQcTR *CK%GktzVUe+cϼ\ 'Z(FvG.:R.x;N'h:A49оYU}fGk>MG!TanBEIUC^coj^Y +Lĝ*ms !eG_߹U!Qn!GYk=f\>*y+`J3A?Zi6]}v9B/bbj!v^r~CLj.պʍїϜɫL %I)hi(KTXdeU5ǫ}s/fIRlk"#Oh/^"Ad`y s.}Q_= chLkۿ}w`ɋ\ɒ{|*!]6Ws w1R9(0$x{|@Ѿ#M)"ʇ5Bގ}'ь# lmB=_RB?p(^*ggoJ@)oæVY^o>K1E(+OنuAAe~,I6OPvCp9 A@qg p%x,{_%GQ}##_ bWR3]e`!x&~˒ONRwR(NPrTW:MMLL~d",ŲʧCVjťϛ34MjԖ %')\Wuo>2=rR`PS>470liҰs;C14VVK0|@kk)U-Ow$/w1C ޟgZWbPmpp祵|oOݭVY)a`3 7"Ru1[ܛ0L 9_v–c&ԑ$hʜ B$/1vuÀjQ6) %墥// 7 "|yS,iD%z4h<) ى ,&⬥.͛Ll 5C჉;~o|mpqq@,B(F`ŠtA;+C TUʦ[%uL(W73#std#L/``C@(0ށR?$[Iufz% NOSzy^?hMb9IË8c;߅OQvc0""{G .᪾$q𢨪P| lnep! K7D눾$I`2( &,Amw>Udږ^u4+Fȗuּ>&g1Xe+וMؕ֏[QE(h_UmNpS~6r)h7_b[ xz/4<WPyQ -l)*A2JAͳmAEƚX 5O_*˩ g6w ^ ݊UV ԶJh />^zgꉨ" ,2` iB̎R" Αιp 5R͎ѾUliw6d!&&n:#P9y1b$~)t)+?`{o7x &&Kk~:x׆Ňl1' GZP^~`%mp4aGte$ \ء9tz}J@_J` d ,*ʋ/YsŁP(OQ dۖ'=2_H EqG1Jgauk{Llbt n̷PxR:UMEh'>IJ X" D;jE,݋[աTk~: 9lD?S ogCl!anځ7!P*`[|Chq#gI>@^Vv`s!չd;>C%Χ ;lKZ7Z[l`A9:3R֏HΟp ݲ)EyUՎ['\tzzpjۅr+n u刓燪oE>0*pCU#X2=N7^?0hGuHB* M@R%+MX[V :x3R zU! jRXQ,(~DXPfʚǧ;#A N }`;c`Sg+\.Pi3,fWoRCnG_,+^d-M6ٔ%uAZy2mT2d\s<]ĩP@Zm;Ѿ:ZΕrXV{e /ݓOۢ裼z%!.-x݁1K]] –yϡ6\lh+aZ )pSIAfH Zf&10213_PDwLR&ĨNsc:F!+!ww1&dCv؉-I~߆\F~4ABWfa>pg{mQN }R&[y xNtz[vy8o oQ Ց[%5щ^9DҮ{CP:ۂ`*[?4*y n6T_PvN9n9+;2 SN$%s &ΐj}}E=dfsۣ֜.>.H}vg[X]cMoNXMJcS)}*N8>D:5ey,Q4mڌ pY+횧f/魡+u-=}0XTR P,NvJ/H^KOz) 3ArRb& MBO`*-#%D`o׀i?*Wt=1\Fvq*#Qy m5!XC|-!肥Q%׉A#٨.XX!7ybi4 eQ~2$]Jj{ί) ş7=`7(vwqmDՋ"Cq([ĸj4LRJdsrcdFw '}d`i~cB4٬Xx| 1tۃtc-nbS;N|/FVck-+'7J'R;n >_2&}g#)p=;teLB4'G-0v&;2$B|R?7Yq"; %dr5LSk-@ u* Fn ǔ +]>Gh.ߔ=lk9V9WŲ_gT$za "EB^S<)\6W!yg? $태Gزb*fK,7RӴ%2ϋy0@fZaT醤=ﳣؔ+J0QגO.:8ww4_ELY$ \>0},kFh҅M3nW'C竪b3F0ismVDQrF0xE#-8@Y%A:Y pKnBB1~ ePYb֢UyBУSQBy._ch_7\qט!k;0,OOY ?,i;ӥ ?|T(8??alہ2 f,*aof|%hzc\J/yLh͚MZ&ok|23C! 枢*rل !]] '4̱w*a˫xș(mB$y'Ł^k]F "Dk21l׍|jW ox} *e!UjdaJL~vl1@?vaC(,oL^lnf˪r7\-aI7[ּnuY1FRٺvaZoo]yq #_U&@"ZY}d'##|PT>nv-Eͥt'p6tzS5r1<lʋ'[2YLB6Ϙ{G0dVԝ~h{:g1+Te]7N-=փF$Y!6a9j_O iFAm›;F9hZ y~I2Pmr^ES&kVG/&[E/iע{tRI`=?}NYgi!%}(->zzD /V[NzMEv"z0s8_!Os=Er[m& eܩXj[:@R m7r?7odyi[<SoK4 *0__Ka N>:NݧOZ'WXTY;O{/XtK,z<(H1n]IPr|6dŧX>Yy 1 .~j$ǩ+uxdJzFh-%y6B8~ ᄼn=u^ꨪd}Wwt@I]"'n>nxpxqZ+|[.YgD߃PPП3%S*xٯ,Z' zx^|9xhdwc35i,*0:*nB h; 6s!:p\R.2zh^)oI4Of ,IghQ!4먎;_r}5#y$aoL%U͓#u.ObJ\FTّa,9MNڅK5 B;sՔUeRBGe+n\si|:D˒< 0`x6];4i ;(40߭Ox5MhXUm߉$g-xc0";"]#|4 M兵bI5z0HʂHrN!CKMDϙj/c ba5t-I}7b~䘡߮nJ$؂2媌%;LwZQ5ayV8pߢ(>oByo%-(hyu匣SƽH'5H؊?#KQ'q3yJOBy+U-o@ hRmB E^Djʭyc*DCqӫ7\|>qJ~8b+#ρ4vv;T,U$ɾE+GZ?q/ qƆ>ANfrHfz7P|;jbKlEl-! H^ы7,^y?<0Tn?F}851^BXt XH;To&cAu3ú' .]kq) 3E0&CQ0$IU㕸ߕ޻l!+7T);PaK̋JcxNHv-oU_U1/&w]ݩR1`]˜}2rb(Uwj?_YV`R.k_QNǵkO_ T7klYjeo^R/;O1_i}0έ㉭tPZ!Z@9V)c̐nv;*);"bt?AeZ.4"zPi l~Iʰ{/@3fv$У0`;"xU5@0.q6Qh.pEn/I#&2/+Qeіv2*u˼[66we-nпwU~ǭcm+Ƶd$!mYОg$~O'4FӅ}i]PQGC*.a8h7Mqs7u%rIWCL,"d>a%Touؕ~"P0T\xv˰wڌ~K9+͸ˤRc1h0 Sǜ{]i閞Lj- +aкM3"d>, ֌yP񮘼}iB&1PyK9\0զ~w ׃%(+B"wQݬW0 X34_ifz6~Puy^kYD* y4Ok!WWkZwiSoQVG<|> qTƲZM^Mq.w~2WwAqLů'a59*$'nd3*RmJU [,ŧ cBEW{ƞ5 ΘG(BEǿ~5x uGI坓hkP<r5>92/!TrDn32=XICL]fZgo/bq噙belfx}UoIybqd&!<7X[@GϨ Bo+&;2(= n/A=.VԽ372IfM*jmƥö zi?px:H %7X̻dKc3O7]Gx礅V;~wr;DSl.RFrIXTL_>\E9‹~ LPPonkl Su='gTB0}1n٧6aԿEo?ԯǞPk-zc}OI[_ҝf 0BdN\ xҿ}zFuNA[Vy~Mݲ-dң)P*œ`8+&6Bm{9$٪]~>]3I6.ل؀F;Rf~Rs垯605&~ dIjD*jdH$آ(Д-q6YX^+\})Ѣ_xdW^IE_k_?J9H?3ݺpWnٺn[L$r!ƌH`Wؤkڼ69kAhl])nufnyuZ*L7:pSvuEyVmH2O]|,oX]6IH'S׵l1(,20'dd 0aۭ bNQ'YyWIrBM A;LK(HdFн%> +] .ovzBLM0etu]^b)E4*|9Zh) ^n1* v$`:rYV@Z/`ؠP1o*q4e@P !,3j;{q飼2MT̀-MABI/v}DvƬ )=j(2q _"pA%JdᇯfI`Z[iQlAV[a~Fmj7H*Yu4-|'88Gx]kFL츺%o_ܧEn\Q&8?Ūݵ&3 A=Ws[!yn GɌ/j^ cqeSh""& s7-(tOdOQۓƶۧ)ܭ- ,!S\l%>v+bLn2bFaҽTi !\*(e-!4^$Z9Qp;->vЪ񣚓rziOg&$ZUD2#.,z}ᶀ=}ewWnGG16̖:zrYTgyԮf9o%[·ȿ*' ʢ`B\iX4 um8]>PI]8.R#z}ڮ#&)Q,^oGI G0RE>gsS2jW~ EXH2gOYQ%*nr ;f#7"]$agȼ*" =/4 o psl>,ZLɒW|gC&%]8~TUVzu]S!p|\Q hgd ^ʄXHh=H$ :H*B MD)l[~G` 0b@x! |Mf(FɞUvzux4OeD"#k׊sR މJ Ԣ3ˉ"> zQs衻R۔5P?3'-&HB(v!7")|(8Ut}4?07ꊽa'1o;{;ǘrm-+Z<:D| h E#)PVxbhuSvwE;|=l+Ն#Nhǹy3֒z;B$GS>Z}3{R%c>ژq`1?:+'-;r8Z?Q[7]ceh'쫃n,Y1uGsS_-wM}N>ĔH.ӢZ5NZfNL>h_[9{ͤ2Z2Ck*Q;~,uH~4靮Dp?@KQLR3]yv *0FbJ+0%m^_5hwPOK<w?Y{FZCig٥cJĦf0]BsTxX 71Kpʟ ۶I7I fqf@}cUeޙ)֏~j}xZRo于rƲӥA;q] {H\౼QI̱9 c*۬8}ٵZPbt(A5_Y89#7qToYQ;rfeKт#8؋)*TU||@حpktu6x~A(j;BXkgjh˦+ME5F!]H1r!mmֱ"mol A<ѱN'wf?lXg:y;UmC ޷|^c|W}=`4nY8~|jبʢQE/ϲE.?f:$If= P&QER]~[HeHJ^Sn<̥]m#Je%gˣ't7* oJQ])hU$8rE9 xuY/]c  'ϋdѧ)'k Xt?NR_#ʇ> )*C)"xnڵ9߽̌Dv|)Bϟ#b 1-(bqJH7? P@⃃&lxoV`!|״ap0=1JCѷn>Oc1ѐ,XK,C.,@c~/b陳L;peX0R{߰H ؽܫپ߸&z~$»|:zXoq#F%<3*f9"`PB avKۣ|C6oY*/>يF+M}ŚܦDV!)+79wwCCPmEj xQf.bґM4Dm!_ن#KK}jӕm8ٚ{G!H0}PP1k;^);ƃ bMx x-IUv(<[ O^UC6@SPjtPMupnۤuun}=&!>ڛO6 "q-A{`2ER9TDٲXC$e׈.!'|dqe!LV;/M ׳";IT^9_⛿HLx*^kPMm@EÖҿ^`cu+: &_EQ{fhʲ[L@k=a|LRhdMdW!h~)39 j?ɗ,}f;Lg/WH Agy gVmLL8 #D܀DgdcJ u#ޭ$6G)9Z4 RN4ǐOLt#X{i>YP[s~#"3jF@ ۅH)KԘ(v{/;wDb=δ$[I!XަW(Uv<[r~-^RaWZwFzF9qƈ5N'ަUaxMjvûԖ뺿/nM* (cXέ~I韾5-UDDTNBJO@TZo_VlNbAx?"]V9:^-+jvDim ˩ ϖ9g&KU(4RYKhhkSH[uMU:zʒ]?X !7S)Ahʏw8pqz(GLКBSt;>b1 ތ7~:k&YM/ǁ_|]E_e[,1`i۟`'3As5~{Ew|s)n[LtWQ0~;$"#%36*WkGHSCjc庶$ՃEPS"@qJ~RSt~,!Hf}yoPB9{;->>OU>ODEk0,,eFnB}K2LS0'yp<~z%(6c8ujj_`8sEcNk7jb4=<%gL@I7T7M[4k5Wm,hP3p1EcWt ]-uWz^`vC_pa0˿tD+*ā  l9h?\N0GQ; JOUHA~πn4rA z!.[kX[]=F#/-Eُʑ.R00ⶬЍyQ=FSr''識)lo!y')H&_ĴI|4L@ђl2C5{9< Z56ׅz0VbeWҒUqr9ط@v÷#`o.=57BډKQMRGלiՌ V'͒!@ʫ+Ƥ 눺s2ss{rpkPKxm~8BuϏ3`:-hm%R[ϡ0hd8]QlJX`lx 5a#oS ؏Vy ,P{юXgale+S(lBPߝ46$MQ"A,|͎TSX㒸)oXrw&VuI0%/'#%~V:XP;ՑV^QP͚jIiVJӅmcvjp:Z%reX^Z;ƯRܖm! i<ߖ9ʵ5MўLOgJ)rT(Yn ej᜗5>X?[e(^u ,*>Ы4beo*;" Bl; ۬UOA$mUh2VMwi'kr|rPtnt-)cӦTeEST)@ԇ)ˤV%88zbz̏CU۹M(NjNx ^ UKFu*>P<χ2"՚[QV6!o=*0-XYu?Gȏ5ܮu .=j4&R*}T{J!5D` <Űy\tA[3OLni' zر2p/UߓZ' [a <* "yޱ"2vjHVjh\k.f4-y[3ƭ?w2cŔLW0-hOӭ=F_iwѓi<:HK}"ASܒ9̮{EIBr,yP27L#"{yx4HC3jȣH8nv]Mc7pZ_y>ID(*Cq7OT=+ xVa߾sG%PJ2ߍ!O'q37j1?Ϙ/a% ^4]~sAQ<P)\عc| 0P*sQ' E*Ff֊$kAJJOwI5ݘ|<aлO>c6mEY!g|8t$1NQ)UMqM 4[>1>zD w)aZǥ:h!ohparU+] UtGG}Nő$滷7'먓S: #=OE!kYnz IﳖIpoV~uWUյu-_>WdD{:O˙L͛hV3|1l]=:$9Xr0!K*gnʭ}PH>{E[н 7KLyi6w|V- otm4)S$%:?%%*ly;:V h,nF(o|Ufb9/T(uu x 2 G6njI0D#"ޓ6+ۑ( t ĩ}@ď Do7vT6ui]*0/CwFWhwբl6 E Ax~c~eщ,ϛ@Dj0NRk}P%ވS7:sвnjW+wwu5W=tBSg~pq`^+QB[qBGߤΤ3B %zM#\aW#ʜd{!I&]z9#(ʺ%*#JJ]YYc] ]a @6D7xNfe}_1F$FL^/+~XXxHڞx WTt! dMx2V$@^K E9 k}"@جh_ 7"F9.M8Q*׫US:'m eYY6jl?"Hq\ߐ t +O\eG(#Q"0#a+#m J'~;1^~˞gfdˮqy$qŲZNl;QG;H^lk,MfFzvoDrIG,,DS"-~u#]HB3})]Ot܃SG}}%ȡI46- kߴ_oNi +ju#>ԀjhJUtDK4?]*-bc|-&TQ& ɡk(ѷbʫ_MX^1t$ nUsIhf(׃7B{4"j2,s[`* \÷{dν)|lOs4)G;3R :$ȡ,2qޛG9]wS O8G#6Υ|=y=jCWnm^M'̢jLX bx{"8~ xNG/BO!uRvQD`ëfs~<S/ =^}!gڈU>o 2f~9Go8UZI C8ǩ5 ҹZAyz~ݹ*Ctv}~ؾh^zIIMb~.hE!u\a?Xy6(F٣HJ>zK+!˴ԕn{T^DŽ)yާ+WmEɤ;*)Wg0 _QV׎{(KQbKa51 zp*jܿo$mz~ۏ=8*/֓:Y]!&!*Vn7Wm4#M6 752+?iyđ 0K f1#*J$AM/ЎJGjxQ%_JF{9T%7CHj(ytcv)Y8fAxJU;'햪0:m)?/43gP_&+6cz28 iqJGq<%o;gU-#>o 7 6W&-=^U okySl-/F5x˼V䂯XMm;XZ V .n + 0kO׶k|7(5G>j$K*ROȊ6F&$79H//f`Im{$:<>~EZ|pW IW+_e{5͡#P_˲7Äfgx?阎R6VPLU{ 3ka*eFNI%GbHU&[>.51#@{/bVz_݄@E)T z++2,LC_DmGAK H_iZ~^jKׂuH,,r#bK^39֣R{p} `\TJ?MSįϯy_y{1 f#u*$-bt7)#E$ZJv8U9Ă ؖc 01>ERY7G.Amn -:h󣍢|X4Z:P"v6sJ4ӈyY2V6+#٫>kc~tA \2dЂܫ;[ULPl_x{6Xc7,1DϬDʃ[і΃,ogf')G3UP#n겤')&Ku!SxE d,gWP2?_oʓM: (z&2r}tYTn1Rgɟ[}scՏ2?\ ȼRlSWJZX=NԒnVuku?* V6gATXo_emsF2ߙܦ_ i4 zݞ2o2_VwG8O*pı5jKq1 њ.&3]%N}/5(~0]яQ,Vm_Uʦsk=PT)Cn)7b|s^K;S]gb҃/0r_pp}:5M,[=ntd?lm7v-赴F3L|;6X52>pf9RT%s-7o jj{َ<3Vv_l<WЀvx= ^Z6>*/̭A:׳L%%obB3%Vx@b!Q>W-w9pXBE2 M;-pJ a9ݲNݴoMT뛞P@a%ӾqR^,01|*iAal ɝ`\h|_O8-b?5]Uܾ&6,0?Qoy~{\H4eb>"-9\?Ei dUO ό1* N+ȭbփ`)ٗ|/mJnκf(>-e~`7Rܠ,sR>бP%?(u!EUx,і~77/!1D-8gp:rH'e1L8ǡ@L DKν~@]6Fo:(iUxe+DGmĹ[b}W&΂F \Ƒ"%72wnrME>YED=Cxcxv߹U{rֲK)̹)FNYW>&0zj?R*%szĆ)&f7xR]Z 1DƯz8{]ϔޣTސz +yJ;@9j [ V˯: Ko|H=DՆAK!VbYnȌI´ۣO;'{F^i):/E5CYNr& o$Ux*<`U 2DvK<jrM{2KM;ZhfĶaU/ /Ws,Oo]u-^ŷDtvV ÂKx>fG]Y$<|^z;~55` )|mӴ*Uv>2DSov1 b [)w渴Ogx!B '#T*soSMj437oe?H2Bns>ShF?@GAJDCO `.{Rs[ѻ߹ &2QH|Se~֖n{AG2+"SmXՒB:S&@WlT lI`YGs.4Sr~s;kڈ|^`qce>Υ & ->ti<:Y>p (_qV[7~G*2 L?u؛ *% )\bFص2WyJ^bouMFZ ǣ!8BغopmɣNDqX}|s$gîz79fv{57JSi=A$X ~q3 uz@Xi]Iߒ[:`"_M;l3SafB%qRe"GpNr\ 1 /fbq(T(NFh`]R.ĕۂXƙ&13Q}7m3 .X#Roh)_/J޲Gj9,8~;A8<$IB.a#Z p""B@7\^ Rty|eM#X=˚ 3zf~Ѳ,Ѥ)"F;Llρmq"0kPmW^TNǙ1O-/q[:v s[@K$2{hVIeXEυ E*&ڇy ]TڇJoޔ] bǶeQf'D˿Ƥq[gcTHV}TUt;>%1]IwƪdXnfOaҰM۳j! 1rb] SnuEZ𜕐ؔ\ڶ~!qI~%`7cnIjʴWs}P*zQ]40&Pm[D2߆!ÇujM'y8,c<;>7YvKBIs]iV'bM}g9^9gXJt䤣~kǰ=+ sf*Ll~QDŽ~Tt:rtRi|3}a_QN 4`r" (̅2_$u֍? gB٪E!S螳иk&X:Uv!YFo‘) z5(yXlj^`PybEcXbP4ԉ/9{tΝs]QL;Uw/Jhǧs5@*7" mxO.7}g(ʍ Z6ڶJQ >ZpSsyq26 xI&>#U:>F7:\%)捡gMӡ^HCc[XB'L,pzw ^q{t]%gӵX.6 (^.nO$TbZR3vyeHtg`)jS C刍7ɺ ZR@1 1c !B?{H;'<>~# ' uSBIM 'N|WE[6U ǜHX/Qxn~Xun @F k% AI rzJےg%)}/yOX9GuNvvyi??G I,NtY%D"Ea`}apS;._`=a ŶJIY{|V~.(ElKC|ctVD%5Btg *x"I3_Dg&ZDX,Z0 Nmzw_y'VWWq"V$'0n%zXC%?)r>RokHR-Awk55[Yތj/zXĻ4ⅫH+,QUq_dM%Hq綂tHgdS|JoɥR,$:t&ޢ`}~Z+Xf3T H|=b :պ\,6csVbwKz~(3pjB x½Z/[!`RD-g!2PUv(diN(%r)Ո&:X'aIvnW1 ]>Nݬ諜ER٭uYIalǖ4>-y=ml2hN]Zp0>vsm;wA|a o@}sSF]tצna:wP'N~S+tU`C=5R9GH4H w6i\jֹH(hDQ!"dm h2¤XI/oa,P .@,f>!?s$76aAJBHP8k>JU۩(kԊ:~~Wr8Ks4>\O5h_H \|-{sWeόl+ea>83iً(9TtKUxHmH9v>n${` {(.䫍{! 8;A"+5Yk=+Xj`/+ctB^'vklT9@f$Gbhd: /!@b 9w}{f4+}J祜'lktuul p/nޭW.]xɮC /4\K;]Epl_E`X&C?DLtLqF?g$\ƒ/GW Q ,  |b8-cƖZґND{*;sE v?qԱ,5SUTȨC]eq㥾aכ,̖vؓLAe%PK}^S2[L+~Kbfz\Xyn"#哛-a4FT*.}i[$K/,fQ whd~VƋJ"VؾK!kǑ^2I|cD-=]28|=+)=IFY33C}}vюiuIM\^H~)Ҍ·1M8YppQfSraR5 W7/)(?au7L\zG+cCVBCQD.1Ar^)mG5v04:8&^8KjKg?Y..6@/̀sKgO<}~PT1D'{]T!x07W{OyĮd܀{l0u3#SCPdYwH54lH[5<կū7iX˓UP9I4?5kIpбՙ < yo --ݻFmȷ fŴ?ڣYĦu\iVaSMMوɮ]-I6Bʞ`Pu'vRo ܛٹK87nv_WT on$~x9#E=GfO~G)9. *VY!®l]q5PV 3wZWR~8*C,E"̼}(7qGWU웋"ZO H+de!Ljvh>n+։4)ʋJ[NmtA@ŌN%$΢T:[DޗNV䎬_p_wm;fHU>).g09_[ G؃^'DخKq?<R,<_8VyT&|UʢmMI+YW7sU8Qd19N#?xPw$rb:U'JVM˳';azw.%Z}ScVo}߈2G`}vQ w1j*xNԎ ̜"Z\뢳^}%NcNKkvhs~<ƥZFjq/X@jd F N@ ɿski~4#|w۶Oahˣl!9PDVvQ<_Coo˺m7a;}2sofqSz8Y794@oMMϟaƜ80moURd)!h>$POn_cF%OV# LȬމrI#K':|-fc8|) /O_==s/kş@w?ՆJi(R8/ z倒~.2\W3έpI$ޛ+Iu$ą3q@>_8J̎sJ3g7oڟR{"{OvlX7ȯeɬߴiֲJ5.L,<pԢ(lqUE-+:qsxwkꍼڵ>s_ŘF%L-:-&ΒfQ ~Z2S8"D,T؄wT'+0*BYtMDX 41yNUimqJ11qJl "FS㖃nk5Ҽ2W]$$sr-ppV^+jv+a( Z_SWzB7-&Ls%\~Zejbs(-c˓tt+KINT ңϏraq2*zP~v8吴:k¸awWAr >; 6r*lb!BJP ۱/(9'1Ilhna4n[ LtC~m}0mZ碦I#{=q&ϪXۄ_̿(4/MSæKj1aV2A#tl? hy*wsZp݆z#Iwp_FƄN71kv3o0kQn a!l_'MO4V04娂KӴ}qHvIn(MY(Ys u<1dWڝ$ָzŚz"8eǬZQH*!'iF-LKZ_T=SY@,Rs9e?D! )\rZX8R:Dƌۄ ue،ܦn}=kQ__p,k\_EmVjbŰ$sU塣'fk]OL s2cP5C{Xr:4RGdh1]0Fr,[S3<"\]S)ۋ}ЙU k?sJ%^ I""Gd y$2iVcXi{n ,mAVz&<-ǿxւSjeu0L1!~MvеA0 /:#^yZX;vOjt, D֗ΊЮoza}ыqn=Kk^sGBt3Uv#VFha0{Nj Z7- tu5'h'V*-2ĪIx/P<_6whT[\h2 >%vWSDWx} (묭膤&[Jyaq'iMwYzY ۸-M֪yN=Gak̦w},B5A!!U{:_ȓlTѯ+ç+'% O5H'jCiϗkq|oX,{{]QjfAfe`HƐ}ajg%Q*-*-Y*BKUKGpt :rζrkCgk @yԃ'TTP)H^2")s헲 N)է"a1d'Ę/bW!58A]:Ri\]0ȕ%o8Z$ڃP)dN(Lr}Ϥ6LbKI4/xi}.#-*<[g!CS&`ᤦ gU>x&W-q"ۘs픐˙e%>P10F`ZWq7Sa|q^4ӺxvIDZD*-duBh}vppF4WjeW0qAtR8kܔ4/.f6}o+ 3$6*-ܳ{,_ T`D> |D UF<Qȵ[[ow!]Sa}0cK %tzI Ee- UVS4 a98.fJ]Υ]Yf2KBl/Ȼ O*gSMnEE]6j 1Sf8t&FZFL e zQ>D{`y)ҮOEN+tjz]/Õ$Wi4u<33FM!# J$- S i}.v_~UT{ǧν=ciʼnPٱ'>݆5'kOYp+W[bO؁~d=ś]2GhY]jl?Q(51lz۳=èvx oK^ܪ*Dv"p#_ 4TSzymiF VKSK}7u=򴪎5n9'kD ɫ(*H<я@\X^pBXԹ% Xq1MVC)^!Q1xЙ u;üCda}Pa"LRUlR.mt4B<ԄXN8|ༀ*='l5>79Xe E6IzqIdլ˥Q-OEL1O7.lz>G~h`rUcpT)ֲ(CV*jM;vW!iD ];R nD8^ ܁cɡEgJ="ݺ1*ʷHNf@;d˾hfpL87%YWy9ľ"~Ƹ,?g7psY$^<*0]v]Xb#C: ꍧܰYnqKXfCWw/,7QDϯ<<,ꜛg$qUȽhs>hGd=w(`WKn>?p^~ Z$\w -~ |wZ5{[;qRK[1٫N8Z'gث.&FO^?/ݿ0\+Ed?cpg?V.vdQRpy#`5Vk,~RZO`U#EFQ _UG" &bFŠㅷe?_JV'++EĄSjQ2r&w~Slz)%ë5Qm1aRE/9_#ol3M~"2$Ӭ$ޚZut:T;F)Å ku kotj_2G/_Z) "3FOg"YZr׈kۗvLMyvik&OlK*apڢlǸ! )a/ 5;^| 뷨[ _{}Hн [Oe^VD}$XռO8]Z`?clTva/&z[Y]qpL7oQ=Ale]-:m` yN*eW+kx+!"{ZX9"[€l(J-!&fI7,| ~u3/i9g܍seu8#K:륬Pbn sO蓼aO `["mD+'*`ٯ.&wzH2s @vûj^M>"=a +#R29C;c#װ"|KV_b[GR7~oAh7>i].m#ߌBYUy] .UhoQlҍ+#QWKy][=#?'b,UI{9zo*DԬ9;9x/ 7,*=Z6QmEgJ3k-*)IĠRsVT/ ~w|AGss݌A_K!PR4f^zgpH[gɸz }:А(Km+}*B)(T8`~=U(83Z'`فXj*|3fyqhvAFG24!oa`GAqK;jβrRȂ-|6с%ZX?\H P^ЭW# 24^3Z+Z0hquNϵ?'A1byh3P?,->0+}OaR|ZDh/NDҖ'QN*Gg\Tc1O zc >zG~I~b?? P*`g@U)YjLh1ox*[)"*Ȅ>mY,DT4,?X͉Hhm cj&sfwSIy^j!>3] S2|i5ڛsGCX;}|6,Fduc]z ؀L'ʬPſO]!=嚫1@?);"QvHMjy/4鲽zrÉ\Vc}*}MfxqeJ9IؤYuXP:p} K^S nf[vO)R u`%|'6'YB1/'*܇@740@wM=TD\ڻlPQn |lg.%9cOgmY[%U'7JI|qf!B"{ *PSV_ s~8'IdH1nKf}ɘxZb1n: CE| ýy<2&gDIޒ2m_J/OB}8,_VbFanwP~i=2qJ!4ҮnUpЛ;O *鿯G WR)ϔUͯ"mLY Trԧ?].VI;xT~)1 B&`<=UlP\; fu':PIm~DF{|ZݸʸT_{Ta*CCФ)@>C 8=] eiǙ$)U+o0 | K'GWF>bȵ|ڗ7acc!eV,rY\W)*etُX\J} ^3RHw۽m_C:e i(DnBT8[WM[luG({%Szn * Q 0 -@7ih&IT cYzݶ.\Q6W.K6B ,>Nf827]f/:CxBak!=Zd/@ӎ RImelL*A"I[+Z-hYEݕ&)`!Y[&loe["mZ%'A) Oeԃx5لgHl&TAL*< E1hvRWXJ* P{„%F !tzV%a [(&56E|h6y,t|ag3/'PeF>P\ıhYoh*Vx}3eTQuZ}yՀ\7Yf'!Ww0`R9'R"szWUUf|2pgNn nMpje(x|қ8G(&BMHcc02 wQsnV{R& nQ<kʀ7x0*9ʨ*IP}VkJg賞l:AeM[\< =%I/\чr*2/H[YRhN]* \i$$6!mۼ5mq0 h!҆ }|@:/% ZңTcX\ l!;#t)''_?WϺ$ʒ ަHvw]ep%1W48\|=VBn#)Fivo ;M5&]Ȥ-'vXr CD: KVG̲`EԻ;=c@^XuMC rW32=ηՆXnE2&xJ :,.gUrKf̏+H?I} {Н0 Bh?Z%N'5w0<܊}>(,ۅdc<T**[:zp[w5eqH½-jm s缘H9)tjg-o] L\+\>WE5"LΪnp)Оѥ}7MHĴ^_jdv7 ,i_)h9XzOiX?d=AH+a'Ɨ?^d=Q6ySZR͘ds/ЩȎC2y.ܖc+-xp?&R p#QBKS,ڃM_TwziQQK|0FjT 6Ɠ5e"…TR; {Z!;o(ho_-(|ˈq*`N1:*3A/c|n< k*-& UyIeUcUSj xւw6p87f3;n>4#T[)p{E ƓSݱ΃GG<>A>EN9O>+v`Gbh'J؋;tpy/q:`=_|g }k{"0Lf'uYpI49!QpTKIT< 7{dHn$3:DLbt%[",&xG=DugRڕ,\/I55)2w#![nPz/rN63 ͉XMNjGN8W')yWMG_nyʏ) {?' ~@'ɥ)C~5g.JeR&v+<1{fU̓ٸۙSgT]zgq)Up+I2Oo,0R/UI2a|.uV?^C\@fA(zm`J._EȄ',"zË́P +Tl\ݭ y',P*{ޮo剁 cŦu^4?pR7k1Rݱ\roalq֭9*M:JG'PI᭬3] Ry]f)Az10"@ʴY*tS&rqѰ BbS ń w!b_SM;e @} ۽\Vp.fKTA;A.U,(_\`RB2 HB6qA 1A{qUuK_a {ֱ(\)?%Z` .ޒ[ mJ!kCe֗>/ m]u[ D4Bc?1Ajrhn4Ѡ(lR^UU ]7|er'e>KY&XTo'?l 8)nqo|9P?#첂b 7W~C@*Hriu_te$Gn^)1M%xL&on/;K7M#CydzmCJt}Ib*Cv)_=#IXoV&\GO 4BHZh|`<-||>; c-*:"_s⾣%?j-}l)X%7imН ?ydYmDw"]7O?/3G S{rY&|̄okXo 7]$I;U>XHPV* Dk&rTbE>O緫V؁ %|Oa~¿-9 &RJ$ZN^ăxؠZ ҇G|xFo i|_͢n*QTl2ѵY ]{!KdGc*Z F TŅeۅס=-ϯJ~gX{.2J'9i)wУIk^kXE.GYM _PVS?3+Tqggv[n-waB0U<G|p7jC-A '7˄7k^F'R8+oQ.x^)PּnmyO0EBqF{ǃPDA6]Ԇ=:dGofrs1Ŋj(߾$RgHTxfE\raYu$,,A9IG׵Q?Ze|| @~!!P4rJ<9d:L@U$P=Y􇕎_^2GM{c2iDi9'g"nc$ho/˞XH r"L7ݼo@&Bz?~1- p ޛ}sϹιg3g^0\[Rw)MҋZ-V/}U8)*r bC@b;IQ20B\)(bP*W`CGv~%z c=|Y~=FZ <:dU%pbMGI!LKDzLRjU-zMmYT>։zrLޡdxvkr|Z!tp m%j;Ǒ_Gu \;J#'W,)BZP]yRaPhH3#!)XԈ uw;=aU䦍1My*-+][43sm˫4 b=F ٠j8J7Iȸd(6uAth" kްlć8j5G/;tuS"Ԫ5A*` 0 uu hݠ}b:AXmz!a3[R/,6:N0+fDnQ'A(8-u_x6]kE,Ǖ[%reE&nGpʀQj{lAl;kK/8uV3s}hph /c.S 4GN3D[( #$'T0[GH7z<^+GlЁ Dh.!3!3j%]$RaMź#X͚h'\Z\urh2xhV#|Cs[^eɘY I4nU:ز]cgfTn2lRMv 0lBŒOeIڴM=tD4pU.,RӉxiϘ] W%Z 4GM}#H A@tS"Pڃc@41"5#H45-W659$Wѳ2'U/eWo,rScY_u3% P0X]5莼IZ:Ha˜8 ٦_f* oV^3e *HhCNGm;|0Egˑ[%y XA" BU ZkUC[K5QRF^r[(#«<_^k6fU|O9Hub*Z 86.#ԇu Q,V^zLU Im^Iﭗc^=ߒx+ 5vX< Cf0{3o4u:I{z=1{BmQYD[ rDhj 7uo1lnZ¾c%k9 y0x>™7iD#d|}UT{QGȢ^86w[D67,Z:ƗhklavX1,C)lTTf22nGb1wkHR3@NHy:FM7vZz`d9ն/O3Ok!X.uJhuufĞR՟-,稗2 I$2[UAzy#*0>gzbD#iVs0 %%֣l fwg+u\[V]쯈^2A1-`^8\hlW6Y՛,I5 u]Cu(Rv-hnJLO+X!&E]+JgQ٬Q 1n`^ؓ)Lw]+FVPi15];mVGz%maLlћVh/|(@0RΊRk-[dxCOVy x1[7lA@BCS'xNO7kZ仐F h(z5cc-鮅*̧n2f6eʱ.T6M$re1'7Q -|3I)<.|`ebiCS8L%KC7{!Zgywt.1=d.L* ͚P{RL%ɜYa9MjRI%FtH8H>2 : y9&)zf&qsBG: <T "T `-YÉbA ?Aӵm2jX[A&HFnpF!Ts-am !NPiG_f4 7:i%zLa*lִPB @`&hnX;U낀$-Ɂd# xL] f=0۴ĺ1 +Ez7 x07HVVq2f”3. E=c!:HgofAme #!--R+mq!k=ƇIi-GZ}і&J *꫺UPVbc \:M4}Il46gy%0EX.mZtl [%jIgJ͸bmcۣx> U!ۘk٩fySו">!ɞS,U?y ZЪ8U3\Pt2E'pnqdta !z[:ͦ{v!όH<ġc$`B 2p!n$D/*]I & ~1SMo4h5yUB(:>F3SK̢󪝮@!$>_֬bwu\+F` eSA\cV3]]% =H%Ґrt}ksC {]8bD] /,pG*+x5-Vçqp \T52Cx%Js)g .@Cy>@mAunl-Gj3 [c`H {m^<=]8c|ExEXz(gCo&nLnNVWVBwpUE/F< si)uim67fQUUehaW:Rgި,ZFw"]CBޮ7gب+rd0¨@3Ar{2È6AKx>@\t6U{UpPS(N:{JW!"k3H ǽI2[PJ 90DL&T4U˙*t]qjl~4WN4kD{ivYOh_Yz`]Uoia.)aj),#8MV'd ^e +"GK5#clK:OgN-OoybmUJ˨i-s4|=DPAXsE ޤ5C-hH `[A}J(Wh*O{_+ru>ae224 .z^|rb&M͒&T1U7'qxm5ī"[=;-6՚afv$'P9! _,ZT +IEFZX=O|O2  Q\7;hVp8ꋍ Y D%s)Re'i1MDՊ|ٱl䝡V\AZ0,x= ^v㸁B7fҊXmc;rՊl9_T&UtdPcj,TpJ*HS&L 4/#bb&D[(Ȋ"àAn1øUg1bWA(~w0v1сӨf|7D  y*>mc)$ 5u G+9^te(KAd7Yja{*NyXzPe8* rclj2%r(\FЉ]Gֲ)DGȭ G7CLtjꚠg<Ť5G H/fתͲzsfd]ͼ AVGD&*:!RЅ3C瀉ryH[r`sYsr=VKC֌AQqF[dbìш,}}=ufنWjGIYT{:UfM.;Ysm-]Au&pcMl(Tsg̦ވwc]`uV⺀4:3>]T<e`b¬Cˣ6,m|nJ:c&0l!4zZ@aRk'cB*ڨl#B) JF2##1ƀW3^EWiXGj~+uKZ*N01r'ۨKPHz 33 nS5D"Tvt`$n!R` Bjd6[]y8R`VBvzrcOˆ fvJQ5̉zN-֚w | Wb2O!9]є/ئOZ9ی r&EZ_o !H\Mt#_(`Yqz.b<ҕpgyMŰ:Q^s(Xu&/9pg3M_A5wb(gH$Kv8fehjNEȗ5$7hi 1"՘T]Gx4fV2.O8% M:x ܉ Y߭-6ZYVӦV-YXGbd>ѥf-=P*ļiͣLb%Xt܍]:+bJα?l3Pݮ:rDG K5H[+IpY,1μ3^BhN0oFlktj͍D^ :,kKU+ѳ"]7oUA/:S]F]‘*0Mɦ3^0 s/ P*kB ͤ<A x+ GU"Y5mI^n8pSeoSuN/9IxA4/ˊ=!]&6YAF?&I(O'1ہZ3Aͨ n_K^>]PiiX+}IL킬E -gAeG>)\*EQT'ܮ 8)`q,B%O~*Kg&)SPyǦEdy)R506C1Hp)fj@ml/v: Yh(w0NE\XN3Q5k' @: A1"Z!ϦB#jޮDV$ZQϙ oihv?טiCObN[-I,zt@ o:A|"7ufY]08:εIƚHLTlː<8ŪtK#pFOREUY7[el"&t:9 13dz GNҨ֤A,YCsaՙͬ-TZEmEgKS+p듘1093V~S #Si[umU^[{DB[EÙn-Jf{&Y[=H.em 1M{04,N$)Txc,E+Ęβ. mܪOMZTk]as(3k˜˛\C%I[5azcX6r=]WM;lAu1𘖛}$_bKXRez6Dnu< "Y+i3R7b68&Yul#WAiw.1cVZn>AYXpBOf+~1*Z9B2x~T4E_m9f.aR}jK2%jCٲDtA(D]@B?A 5js|i K1DIj}&fS jmVSQW Z4hYTөn/µ )kUHqV،nnUcP q4g&)Y@FRv'1x]chYۯͻmnp8-u,oZ'M-M!-t<.I.rX;k3:ŸV<*EZiT#7ŸЍ'21jeAHnwL#no(['B+q&ca04.2x/#\AQmn9pdyk"x }űd] ͠Akuoq3zwta*&N3JNKЊ͌ȝ ZŤ1k>0!Ն%fwcJ'#QfU"tBc:*tUB!W m{xu|ދ7D6SQ*)[]7(ȣc R1I7TvSlDcPZ|lTU#JL=M:Mp0p#J8(H8s@Ҏa3rNtjjLSOCR'6~ͱxZo'8IV&pbM3#8u=S֌%vUo.i t泎bMuZ3fBr*dK)"{}m64jpp|# CfeLǮP1Ұ@1(JP³haD B*-KyOzECS2R&%K!pEc Jp\ 4=0֬nI\SR4L \՞H͕:MK6]cQ1bėzztt`Tban8˕ژ2ӄt]Үc aEF Q TaXlnM+K+3P W"r'0ǘl2յ(h_XYDYn`J^h&;P1Ps..!!z䲶B&6[qo]x0>GCYJm=YDYVAsA,?;#vIϚEמ_v#y.8IPCJ;Ym;+4Ggl&9zѭv[ -UdMZ8R>#EfQ2W(8, u $Ƙas֚ #z2cdEP6bei ^'9͔M5j<YWgN\ktus!-zԓA%6V!M@y u޶*ަ5 &%Td|l0"s_+"l1*1B9/6R`0XST nmHrVAt!{}>WAXIf5_P G!;k]DJd t8e ŮzJ҆E5HaDz5fA3y,g@=-uTa…y>w ,(#1ƅ 1).AĜ ܜKyvIQXD4:zgQV2MN+nzʢMM!0ǵlUЀ3fP(kr0glv>)4d *)!9xBq`M{#r=VU˙EJ&43b+졄UIyPLLQӪhf82X)<]4cBYۘ%Hix^F}uxͨy=si!=[µZsd! #:]>e)VX=r4Vd LԠe7|:FkT2J ^ŚR붤pTJLqR!qe"FSzffful̇U.m$D2V#VVᦹ:TJbjb A8%DS(^G3UkS_ljc./8LNZ&ƈ|fF!aइ QskfY}P>|QzPV4.X;^Q*] x״Zk3l(;ѮC$Io4M[C֓JAS:؊BG86,-ɺ I%7p+LFwf0юƐئiڲݑT"vҎ{lR1uajO.g2j2ѣ&m ĺO2`+iΰX&xMhUir6X)SliolXQ2 =&*)i1  N|e֕ 5Gi̲/e#`C=\mN>(ڧQS nY̸+ x*'lB-$n7AXaܬaU)ƍ`6pP׬CL\c#ͯWMz6KA⥧0j^ 11F02CYT<7~ھNeQrMw jTBem72AѣPI5@mSy6QZ-Jf+-+__|ɳNȲ(+EH>3 O(\@W#HUh4J`ps\ھ0TzV:ShP18 7zV78OC[xy 2O_{7~?}7$/ٖy]`nx3RKevپ'`yb||YBs#ﳛ@)c BV,5t_PSbٹA]4Iޞr׀>N#izWA٦=WLߕ~HK_3ùzG#7z%5O|;Do111|{l᭯.nYJ]̓-|2m\p||( L6-wˮ_W/n Kʌ4cpq;_6gwͧAK`ȃU|Ww]O> xڼKXu}ת['dC}ޥ >P0p[dϦ]^zo~㏾?}'WlC-,|apPχO?>_&r@28p_̽euh737n>c@j`uo B6e ܹ;W?7>oֆ@=?;>_7K؝mK3;}郮z+uWȞ=4gKr)g{GǮ-u aՏ C7x#?KYk˭?|~;j஺KXOwF~?U/G~iJw/ܽmkK<<[ܽݲNp,ہ1OrwWxw3QΜC}U^ \ޞpwu{=?-^WwwM{wINǹ{30wy6won{>k-wCܽp'{S+~)^˟=Ik (n%~#;-&^^uɻk余9{[1ngFz6yoN8M޿zj佪^<^佾NzG^|^RgJ}W^ugf7r;H3JT4wԧ{7qFrwSݖݭܽi>+K<7<ܽݒNq$ݛ1ݝOswGx/w5q̜ܽw3{#=7'r?T]_n/轲{?s>NʞxV㓛!.r; ^^[n`;358r;7E]w&'|%A ^kυl@_>Q|a_dseEQ|ЭQi/n hO_3pZi/WjL2[[OL?:2'OPL@;Ƈ|#ͷngЩ0cWu_e 2Nם1m,CΈ0mMl//e /G#ڻ!C{žD_s'86r`q@+>{ }aWÊCQŗE;Aŝ bwob򽐢^)ʃ*(Oo|~?=~7=OB}}qc;^\.\#c2HNXW6 pw/^E^9_$^|ϗ/^i?xSOF .]x  %ʏ) -T}m^n{+=_X9@"u=_re0ꟚW?+3?\^?/;P:/nv-뒋/ +W}}7wsJy( =œF~qu' >x=}rD)F=U?oݎRqZ\˿@d}Sղ^|N{4ojxu.Cʏ_ƚGO\I>|[۷ ~ y{yk.|g75eR2 RRq+7C>VIϭ\ʮrȭVpĭls+7sʍ[F}+6I^1K/VSV>:߹cjIrO>PwPKPK2=K x C-)Ne% f;ji uϘgew[<P3PK3g?C-Wq'CܗgNz\Pׇ߾>?GiXCA4,5%y4ܳ4, KS4,Itig̳hx#4+->,^w㵱gX9#X[X=4c7z),^wqm-Won%mx^g|uMzs28#o WmKy'x$3V?n]|jXۢ۲q^uk7'_|q;UÛ"u1ueu#o> ?}g!x+|8o7!F#Fqo"dS.I"fG|ė xދn>wp73 o8LHF [iҿƟm&KV'aqYu5~bZIrQtY;]֎.QUҝ,q**)N:l.te^vY{O;k+WY+ϊ^}}yϊ-wೢ}ϊ?+:hT|V?gEF<볢;gE}xϊgEeRw>+zU~gE?+ןFݏ1@ݷmOJ''}{Nzy_n= Wu\^띧.޾;~j׿}Wܓ}f_;姳RGkg_%ȾJSWIz<:laNUx93Yd_wdznFu ϾUɾve_%W{J~s>O Iֳ?o>7.~o>΁\-/qKیf\ٌ!q7|3}ݙqZqf\qKOlu~7:(݌kw65yqif\w'6lu 6ڟ9͸JU݌͸glƵiX}X{V?R៳Ol KG߾}u;kJ cw.ѣgja;]- >;x?x}Q$oG}x;姁#|J^Iw,q>J<J;l;,^ie,m of8^;~N8 ?=?Kkj5xry '/Q`- ֞= ˗vfϩoAx[WO]|rYۯ7oe%in]ʞoUnQ,@k@ţwx}xo\>qc !+ylJ|٫ӏ^le=6۵-wپc}f wAc!fw;c>c8l?6+Up٫+l?M#?r[>goOVJ{b}t#|@^jh^ҝYؽd{Iq*v/Iw0v?,݉K/{<+vx׍׈@^9{;ؽ$?v/pkOv~hn?z}FSCA픟ێt+5n%yt۳t+JSt+Itng̳v#t++K<{7<ػދNa$ޕ1OcoGx/5q̜ػ3w#={7'wC^w?){7U\k.t!9=۟Jj_8T5Y_M/Tf/f0yy2e~y[޾[\r}{y[oɳ_|'g.{;(ϪS]Uŏ/? $TtC$'`4K,%VWk~oZ& "@3IQA$dcQAw=}+Pxa׹{;_X/# 9=G-v#"sXv s \R>G=G*9~RSKdKm eKQR3a`,59R*,K >KM~KM.$=bxqǁ9\_kHuvb}D@ͲY ,&͋,&0Ha1QXL2,楀d(A,[Xl en`1d`*,Dg1ßsO-C>:o?fQ 7g7a yCJDBrQBBMy+] HR HJr%QAe*\ r*TBnԦ2 HjpTV!PQRM+*5T>la{T>__Gbtgfa7}_O@2 &͋&0FH3a4QM2楀d(A[m eFn`4d`F*,FDg4~׎-ʾZw{>G@2 &͋&0FH3a4QM2楀d(A[m eFn`4d`F*,FDg4ۏ?qώs;vbt(P_Sqv{VTNؙnC_5+\\"zv^&'`U^;O0z[7>P0=}A}>s S0b Ӯ.)n[t LZR$`o(p7\1Y?(> hH.΍ughV{L6,hE{tkN+v==՞i:9kg[óDenƒ%K@ EjEOTj{Ƣn^]{EDImMmA;ˆԖ4/DڢH$LjKԖHԖRڒ3([R[[(5R[& LjKfNmiVj ԖH-^9oq <֧-'g}$ASvOEyTקyTb֧2S@q}'?DT _`FOEF A\íO*O4t}.pOͼȨ5m6̨LL3ᱩj93KU?Y$_LNO|μWabfdL߿\;FfFhtЖ.kys\vFVIRK6RAmkۦ\MΎm5W![jOM氒LO+B..kkUnXUxu3jTI*t>KsiHgC{>U;+̈i,_tي}V6Z5>uqiu{4.X<쫼ggL{2/+=o/|)))0SEOItaE"S2(\HeOǏxJ2p)Q0<ݢ)m)Q7jxJ& $3{JZ)))X<&T'T'T#Yٗݯ.[0PrO֛]$zD8PnaI"ĉ. ('d N. q>~,y)888 fB5 ΄89 @8!N.pC'Ŀ۟ %ď ƿ֛ŃD8PnaI"ĉ. ('d N. q>~,y)888 fB5 ΄89 @8!N.pCڗrMyT?o/iN$T5jPF5F4/P"j@DB5ʨǢTST`nQ@-QQLTQMP >T7o/ʓj"YTr70դyDjpT2& TF5?ռ 3vmjԍfjZj H&Q}#mlN[ sbkڅxƹwxwۤwtW̾-vE߁Ʋwa ߁Ƒcށ;X)}Uw;0A@[ @[:h؇@`ށƓM*ށށJ;X/>sfuu[~~!nXEkUkik#A,MDXF5 Di bAsNXֺa  LUUy2FQ%X'XXkn{Ol"l5=@=Nlj.l{E"|{' 8|q^ 8 fݢ=n qԍLq2s88n?wVʸķ6sƿwK7Vx2͸ȸqbƍea7Axƍ#dXʸRθ772͸a2n9!tr P#dxT`er_ƍݰ>yf/ԂQ?7I bb7XEXcYa a# \JlXXJkXcXקy{1OPx8xǁq '͋D="=Nlk{Hq>~8/dt{3h{nQ8Fq& 89x{Vamo{H7ğC>IĕqUq%iqD4MeEč q?ĉԆqB/u7CA9,ī*$+A č47O&A~,y)888 fB5 ΄89 @8!N.pC?~ > ~[Z#b&N$5 qP8F@4/B "q@D8BS`AnQ-!QL!N >774A ~/ĹXy+f"mcY01c}pgǾ*x}pĠ->8C0ɂ'Xw}c}pwM礌;:zZC3gDɸ͸A;ˆ4/fDqHg$LMH匛qRqӌ3([2n[(gܨ52n& LMfθiV H7 n;7A~,y)888 fB5 ΄89 @8!N.pCȗ?;B|8A\]WAWx}7(HDCPQ@H'sAHm 8h q B\w>adBBBH!n.pCM%''?۟U OB8x ,A@qҼq 8D8I D*C q^ NN!qEP8F 3a` Nf8‚8 N~ ?ykkA9}_f#ā8(wC# N!NtaG8 qpAHec!K)Q0 n(@Gݨq& UXĉqr◾ > ~y)tԇa8?E@B!'͋'0HC8Q N2d(A[ n enԀ8d`*,D8s/Wؗ}{o/yS/U2JuݯuuWɰ,U2WpWɰ*Vʯc_%cU2U^) Ow؝qwu7n[̸,,1ϸq䘌 \7V786f C7 bPm5'dܖNθajdvOq [˸ҟqc?8傔q'X'XX0V}Oy3n"d@fܠܝqaDM3n ˸Q$3n@&& WMrǏ͸y)ȸiƍq- -3nԍ7&&3gܴ +_M\9g;A ~xvZo__C6'ā8(wC# N!NtaG8 qpAHec!K)Q0 n(@Gݨq& UXĉqr :%|Zĉ$ J킸*C4EA\G"&2č"F8 DjC \f An! CUĕ F qs?z9A~,y)888 fB5 ΄89 @8!N.` ܶW5Gi+<]1m-vowumq¶a ·qms,pmcm6g`n m[ N6}mn6Ǔo mno+Xշ>c9)} ֯:h,\nnu+w4ս(Bd tiޝw:8hd.MkOu&[:p#9H_ ZVk-oZ6Z{tOvOXSW[SW'ܶ', A8p>aOX) 'V L'9ONC >`' S' |OW0l> gVϮ̧]}dC:{U*]ʋUW)WhpU U*s +mpCU1\*P\ 2‚T +/W Wws(;\nPkW۱x׳DPt@͊*Ϳ$5 ONG32ِ՝bs3…;f1nߢ\sG%c]1n]]q",0Ǒc.c|6p,Y%`>2e> b[:5oa>,r|w3?*KOOc>w \>(3xNA5{ OAa)(Ҽx NAH"dNAʧx)8ENOA`[NABFSPLSPdSP NAY $/w<00/./ʃ{Ӽ ]Б&0/`^/@Dj{3p `xТ n0 03UP@/`^\W={[Y $/9@ŧ@L-WWy߈G/7W4FWML ?Ďbt||dmZn|db*^kJVgZ'g[79 tf_$g, ȧ~#H< j r 9i^9хE"$ ȉr"AǏ9/ ' G ݢr[(uș00 '3Va| 'R?nb_-$'a o/Po eym˗.]b?/#arz wmÂ2 x4?/ʺ/6~Q p;eC;6:M4yv_|G̃[x~"Yr70yD~p2' TF?? 3vm~ԍg~Z~ H'xoq?ПП*x?A7vu pO? *I'(OPxB =x2 *TR'sx*{\(y fO0%\59]3u >X~|pr3`ݬLMQbynkK4}H'~ "Sirુ'W纍S ' r'q͂!oܦW  ]1@@Wn[|C1CGyC \o`8 V Co !`5'!`7`j!`yCOzC[{C+o`110'O!9W1nOEj sxɎᬥ)_av\y:,{_m9FDI⁚MA;ˆ$4/&DģH'$LO$H$Rē$3([x[('5x& LOfNiV$HI<Oʑ|V6KI|Br0e$.hfS=/;\3}H dӑߧF3>Uz]+T##5@#aG ͋<DG d<Q<x)d#`yE#B#nL@f ### ?=yGKPl0֟]Vn0Yn0 E뎼g$<(< 43Fet$̓ l"<< \0:16@5 laCUd <iy0yxfn_v:9C+%߮WO$>x,A@A|ҼH| #>D8ID*K|^ OND|EP&>F 3a`Of&>">O~ 9o$'⿞_|{:>?qc*yvyU0 }^袼D0Qx#z? R ^@3 ^^@wa9z# ?yH^O|v00/./ʃ{Ӽ ]Б&0/`^/@Dj{3p `xТ n0 03UP@/`^\?;7w˓-]^`jbugVQpo@)R??`*U7߉6C²S}6<'{wDCw~X71pŋvAOvB;7ao~K/ wz"@Yȃr70yDypȓ2' T<?@ B3vm yԍg@ yZy AH'!9o7LmC1}c`%KP1CtӇ7EH}gv#q ]wqrŦvU0?}D0Q#? R? A3?Awa9# 3sNL!W?J&`wUf??uXH<Yݎ#i^t DP$ Tv |XKc 31- ʎuc`82scUX|H\v O?;GV`cx+O2~<9jmY e!Ok Ϟ,*<*CC{p쿜*$⁚E<(w##OOtaGG< xp!HecK)Q0o( ʈGݨx& UXԏxr^n ܐ6ⷆM}*mcQuf;o# .W/CJxʁt,$ #E Y?3c@WoS~.u.0]EwAtaE"]2(\HewǏu 2p.P0܅ݢ.l.P7j & 3 Z...nws]$w.O?;Oiث?up۱/c;*I(Q؎Bm;=؎2 h;*vTRs*lG5pvEB(Qv09V!؎Bf;*i.pێO6ߛ7vw4džJ:ə" 3Z՗g_+[\[l {lq^wHx"Yƒr70yDFxp“2' T&<? 3vmLxԍgLxZEx H' #.m<< _I [ŠV׺HK7o([3C ~XTQo:sP>}F IX422ٙX;巘OcewBzpfMNu]pVf-srl=wfw% " f(w y_]@$ R_c/  a( [( ԍ /Va " r_\q\/>?;H;_X|0Gr[JD~Cf./ЮmAvTOYiSG"fT+:gc:(Wʹ* .X/?rhoڝ #+NMFgƂS;.g;&rW`jrpqѐp.Y~Z^z|}gcQSkDhﬞWw=1vgd;0zt༇7ozvɒ%bEEjEg&Yk>?iuO^ "H<jѠ܍h @4i^D4х!E"$ …h"ǏE4/&F Bݢh[(#u00&3#Va!|&R?nDo>9G99D6Ӗ~{g}$ASvOEyTקyTb֧2S@q}'?DT _`FOEF A\íO*O4t}.|-_[h}FFN#25Oi+RMrƚ̓rqsľe1LL3gxljZ#zĬO-%k3uչ/mo׎o5QпKZ-Wxf+;xX:Mm"Y^FfT[Sm}{9$ӓcp﶐onM6˛VߛHԝQ{7L*j5u^m̵I3Q)v;kf[íT[w{b1qWwJ[rK|e+YY Oݠo\{v I~"qqOC ~_EoyWB<3[<^tDq@ͺrPv@I+'0W"IWN.WN+Ǻr^ \98u(AnQpPv5\9ƕ]9r@sDw+܋{4G $?H#'~7e_U7ˮؠҤW-sǩT RN(q*0کT{Jq*e$bJ@ѩT S>Bp*Tj9jS)T`N>RvSAaJ5s8ҭBp* ̩TPR]v*Jr*ɩ$U9MKߞ(kOE(ai޷btQ{*:{*&QwOϵBZtwOEw bfRU!(A縉 Ns_HN%9TSymʍKTӫ۽ם$~HGBp$Di93dޑ F8Мӑϑ>v$0#1s$U#Qa(Cѻ/9ɑ$GkHN_jӜu׋'d4٧94#ŧ9D4E"i 4(\OsT~Ǐ}K2p43iݢ4OsP7jtuOypS, {cGyʃa)2}jNxc<5`ɂ ~SSTb eQé0a` 9ة*,>B~B.|TSIN%9˩|NHœR*r*JTL>btQNEG"کN(z ˩TT@n^Qߩ0N֩TUHNE ;sǩܜJr*ɩ$:r*?%:"8f (w; p*yѩ]SAw*$S! S!R٩c /N : b(8[(;ԍN TNVa9 9";r۩|lr*ɩ$:e99>wikX99'g]]YܶxrNőcNb,V'g'gY%89LO NZ:,Cvxlwr+'gHn^Hqocɑ7 heQ w*v/Ljjԫwv+̺蟘p>ptfpq1X>\7Z5U=TSNo-ƪgFʌ`ܨOȋNmcsࡁg}ߘ p],bHn_`v}'%\4x}2ק_fvKƅc-wͷ;589Wy(CbUN`t||dD5CN3fxE{zr0k|jav:?;o_ˊ3pǹi^!~z‹"C{fiݴړE]Q$iOО(\'R|XR@{2pJ{ - 2Q7jО C{2s0iG{"Ӟ\illNƝ(=}n.Y|(&ۘKFϻۘw(F2+=ɞFQح} /n|p7-[H  thF_g㺉fjoUb37IoPjoPAA }i.7HD@7Eo0Ro s"}t0c|ht77 7(Ao0``.psoؒ7$ A7oՉ[{ \|>M|aH"x,P-FXҼh!.BH[@BBl! AN- f[,--F d` A,,-m!NxB$ ,D8K]" JȾ}usIqZNe=f=?~A{Wx#rż/}z8+}s+<ov"99ea1 A,p}s+oc9*77a9h5'|s}A;7d$X9obqyo__۟]@y/X%ObO$ IbOta?DxODT?/?8Q0E!rQ#gdVa@ԟ #1H d O<3Ff e Ty1Pxc`2:P6F` k H\ƀHmc`.cZt ݍA6fƠB2Jh 4 ʍ;郁gC_/`jgEaYݿ@}ymF_/WymU?>B-=fP2}۾!RH<jZM- i^хQ E"Z$ E-"Ǐ/"B ݢ@-[(S u00"3SVaQ |"R?njજZaNK(s_^}R}EsdC8׃JBYQBy*] H JY%ρ3*pV Y8Bn jp8V!ᬒ⬺nv `O7,H'vO9=]33RQM}/5W]*x0>52^xu$3^@95H/+%R;52^̘xЛnxa6㭪2^%x485xvsԝ>drzd{8e^H:3TywZNGZU_ eէ)̐DVlPF;ݞ)5mIqy&ZHّRޅaeѲWwJwN\j )<35K%xÆ K{cϱ|z7f\33;מy{:{;xxɼ9-[l~b}VW.ҵ\ygjv#VҼ]"2QV"W>~KCNW̠nQX}lnX}009xUXV">m˶fy-_B`+brotli-1.0.4/transform.go000066400000000000000000000240351412267201500153550ustar00rootroot00000000000000package brotli const ( transformIdentity = 0 transformOmitLast1 = 1 transformOmitLast2 = 2 transformOmitLast3 = 3 transformOmitLast4 = 4 transformOmitLast5 = 5 transformOmitLast6 = 6 transformOmitLast7 = 7 transformOmitLast8 = 8 transformOmitLast9 = 9 transformUppercaseFirst = 10 transformUppercaseAll = 11 transformOmitFirst1 = 12 transformOmitFirst2 = 13 transformOmitFirst3 = 14 transformOmitFirst4 = 15 transformOmitFirst5 = 16 transformOmitFirst6 = 17 transformOmitFirst7 = 18 transformOmitFirst8 = 19 transformOmitFirst9 = 20 transformShiftFirst = 21 transformShiftAll = 22 + iota - 22 numTransformTypes ) const transformsMaxCutOff = transformOmitLast9 type transforms struct { prefix_suffix_size uint16 prefix_suffix []byte prefix_suffix_map []uint16 num_transforms uint32 transforms []byte params []byte cutOffTransforms [transformsMaxCutOff + 1]int16 } func transformPrefixId(t *transforms, I int) byte { return t.transforms[(I*3)+0] } func transformType(t *transforms, I int) byte { return t.transforms[(I*3)+1] } func transformSuffixId(t *transforms, I int) byte { return t.transforms[(I*3)+2] } func transformPrefix(t *transforms, I int) []byte { return t.prefix_suffix[t.prefix_suffix_map[transformPrefixId(t, I)]:] } func transformSuffix(t *transforms, I int) []byte { return t.prefix_suffix[t.prefix_suffix_map[transformSuffixId(t, I)]:] } /* RFC 7932 transforms string data */ const kPrefixSuffix string = "\001 \002, \010 of the \004 of \002s \001.\005 and \004 " + "in \001\"\004 to \002\">\001\n\002. \001]\005 for \003 a \006 " + "that \001'\006 with \006 from \004 by \001(\006. T" + "he \004 on \004 as \004 is \004ing \002\n\t\001:\003ed " + "\002=\"\004 at \003ly \001,\002='\005.com/\007. This \005" + " not \003er \003al \004ful \004ive \005less \004es" + "t \004ize \002\xc2\xa0\004ous \005 the \002e \000" var kPrefixSuffixMap = [50]uint16{ 0x00, 0x02, 0x05, 0x0E, 0x13, 0x16, 0x18, 0x1E, 0x23, 0x25, 0x2A, 0x2D, 0x2F, 0x32, 0x34, 0x3A, 0x3E, 0x45, 0x47, 0x4E, 0x55, 0x5A, 0x5C, 0x63, 0x68, 0x6D, 0x72, 0x77, 0x7A, 0x7C, 0x80, 0x83, 0x88, 0x8C, 0x8E, 0x91, 0x97, 0x9F, 0xA5, 0xA9, 0xAD, 0xB2, 0xB7, 0xBD, 0xC2, 0xC7, 0xCA, 0xCF, 0xD5, 0xD8, } /* RFC 7932 transforms */ var kTransformsData = []byte{ 49, transformIdentity, 49, 49, transformIdentity, 0, 0, transformIdentity, 0, 49, transformOmitFirst1, 49, 49, transformUppercaseFirst, 0, 49, transformIdentity, 47, 0, transformIdentity, 49, 4, transformIdentity, 0, 49, transformIdentity, 3, 49, transformUppercaseFirst, 49, 49, transformIdentity, 6, 49, transformOmitFirst2, 49, 49, transformOmitLast1, 49, 1, transformIdentity, 0, 49, transformIdentity, 1, 0, transformUppercaseFirst, 0, 49, transformIdentity, 7, 49, transformIdentity, 9, 48, transformIdentity, 0, 49, transformIdentity, 8, 49, transformIdentity, 5, 49, transformIdentity, 10, 49, transformIdentity, 11, 49, transformOmitLast3, 49, 49, transformIdentity, 13, 49, transformIdentity, 14, 49, transformOmitFirst3, 49, 49, transformOmitLast2, 49, 49, transformIdentity, 15, 49, transformIdentity, 16, 0, transformUppercaseFirst, 49, 49, transformIdentity, 12, 5, transformIdentity, 49, 0, transformIdentity, 1, 49, transformOmitFirst4, 49, 49, transformIdentity, 18, 49, transformIdentity, 17, 49, transformIdentity, 19, 49, transformIdentity, 20, 49, transformOmitFirst5, 49, 49, transformOmitFirst6, 49, 47, transformIdentity, 49, 49, transformOmitLast4, 49, 49, transformIdentity, 22, 49, transformUppercaseAll, 49, 49, transformIdentity, 23, 49, transformIdentity, 24, 49, transformIdentity, 25, 49, transformOmitLast7, 49, 49, transformOmitLast1, 26, 49, transformIdentity, 27, 49, transformIdentity, 28, 0, transformIdentity, 12, 49, transformIdentity, 29, 49, transformOmitFirst9, 49, 49, transformOmitFirst7, 49, 49, transformOmitLast6, 49, 49, transformIdentity, 21, 49, transformUppercaseFirst, 1, 49, transformOmitLast8, 49, 49, transformIdentity, 31, 49, transformIdentity, 32, 47, transformIdentity, 3, 49, transformOmitLast5, 49, 49, transformOmitLast9, 49, 0, transformUppercaseFirst, 1, 49, transformUppercaseFirst, 8, 5, transformIdentity, 21, 49, transformUppercaseAll, 0, 49, transformUppercaseFirst, 10, 49, transformIdentity, 30, 0, transformIdentity, 5, 35, transformIdentity, 49, 47, transformIdentity, 2, 49, transformUppercaseFirst, 17, 49, transformIdentity, 36, 49, transformIdentity, 33, 5, transformIdentity, 0, 49, transformUppercaseFirst, 21, 49, transformUppercaseFirst, 5, 49, transformIdentity, 37, 0, transformIdentity, 30, 49, transformIdentity, 38, 0, transformUppercaseAll, 0, 49, transformIdentity, 39, 0, transformUppercaseAll, 49, 49, transformIdentity, 34, 49, transformUppercaseAll, 8, 49, transformUppercaseFirst, 12, 0, transformIdentity, 21, 49, transformIdentity, 40, 0, transformUppercaseFirst, 12, 49, transformIdentity, 41, 49, transformIdentity, 42, 49, transformUppercaseAll, 17, 49, transformIdentity, 43, 0, transformUppercaseFirst, 5, 49, transformUppercaseAll, 10, 0, transformIdentity, 34, 49, transformUppercaseFirst, 33, 49, transformIdentity, 44, 49, transformUppercaseAll, 5, 45, transformIdentity, 49, 0, transformIdentity, 33, 49, transformUppercaseFirst, 30, 49, transformUppercaseAll, 30, 49, transformIdentity, 46, 49, transformUppercaseAll, 1, 49, transformUppercaseFirst, 34, 0, transformUppercaseFirst, 33, 0, transformUppercaseAll, 30, 0, transformUppercaseAll, 1, 49, transformUppercaseAll, 33, 49, transformUppercaseAll, 21, 49, transformUppercaseAll, 12, 0, transformUppercaseAll, 5, 49, transformUppercaseAll, 34, 0, transformUppercaseAll, 12, 0, transformUppercaseFirst, 30, 0, transformUppercaseAll, 34, 0, transformUppercaseFirst, 34, } var kBrotliTransforms = transforms{ 217, []byte(kPrefixSuffix), kPrefixSuffixMap[:], 121, kTransformsData, nil, /* no extra parameters */ [transformsMaxCutOff + 1]int16{0, 12, 27, 23, 42, 63, 56, 48, 59, 64}, } func getTransforms() *transforms { return &kBrotliTransforms } func toUpperCase(p []byte) int { if p[0] < 0xC0 { if p[0] >= 'a' && p[0] <= 'z' { p[0] ^= 32 } return 1 } /* An overly simplified uppercasing model for UTF-8. */ if p[0] < 0xE0 { p[1] ^= 32 return 2 } /* An arbitrary transform for three byte characters. */ p[2] ^= 5 return 3 } func shiftTransform(word []byte, word_len int, parameter uint16) int { /* Limited sign extension: scalar < (1 << 24). */ var scalar uint32 = (uint32(parameter) & 0x7FFF) + (0x1000000 - (uint32(parameter) & 0x8000)) if word[0] < 0x80 { /* 1-byte rune / 0sssssss / 7 bit scalar (ASCII). */ scalar += uint32(word[0]) word[0] = byte(scalar & 0x7F) return 1 } else if word[0] < 0xC0 { /* Continuation / 10AAAAAA. */ return 1 } else if word[0] < 0xE0 { /* 2-byte rune / 110sssss AAssssss / 11 bit scalar. */ if word_len < 2 { return 1 } scalar += uint32(word[1]&0x3F | (word[0]&0x1F)<<6) word[0] = byte(0xC0 | (scalar>>6)&0x1F) word[1] = byte(uint32(word[1]&0xC0) | scalar&0x3F) return 2 } else if word[0] < 0xF0 { /* 3-byte rune / 1110ssss AAssssss BBssssss / 16 bit scalar. */ if word_len < 3 { return word_len } scalar += uint32(word[2])&0x3F | uint32(word[1]&0x3F)<<6 | uint32(word[0]&0x0F)<<12 word[0] = byte(0xE0 | (scalar>>12)&0x0F) word[1] = byte(uint32(word[1]&0xC0) | (scalar>>6)&0x3F) word[2] = byte(uint32(word[2]&0xC0) | scalar&0x3F) return 3 } else if word[0] < 0xF8 { /* 4-byte rune / 11110sss AAssssss BBssssss CCssssss / 21 bit scalar. */ if word_len < 4 { return word_len } scalar += uint32(word[3])&0x3F | uint32(word[2]&0x3F)<<6 | uint32(word[1]&0x3F)<<12 | uint32(word[0]&0x07)<<18 word[0] = byte(0xF0 | (scalar>>18)&0x07) word[1] = byte(uint32(word[1]&0xC0) | (scalar>>12)&0x3F) word[2] = byte(uint32(word[2]&0xC0) | (scalar>>6)&0x3F) word[3] = byte(uint32(word[3]&0xC0) | scalar&0x3F) return 4 } return 1 } func transformDictionaryWord(dst []byte, word []byte, len int, trans *transforms, transform_idx int) int { var idx int = 0 var prefix []byte = transformPrefix(trans, transform_idx) var type_ byte = transformType(trans, transform_idx) var suffix []byte = transformSuffix(trans, transform_idx) { var prefix_len int = int(prefix[0]) prefix = prefix[1:] for { tmp1 := prefix_len prefix_len-- if tmp1 == 0 { break } dst[idx] = prefix[0] idx++ prefix = prefix[1:] } } { var t int = int(type_) var i int = 0 if t <= transformOmitLast9 { len -= t } else if t >= transformOmitFirst1 && t <= transformOmitFirst9 { var skip int = t - (transformOmitFirst1 - 1) word = word[skip:] len -= skip } for i < len { dst[idx] = word[i] idx++ i++ } if t == transformUppercaseFirst { toUpperCase(dst[idx-len:]) } else if t == transformUppercaseAll { var uppercase []byte = dst uppercase = uppercase[idx-len:] for len > 0 { var step int = toUpperCase(uppercase) uppercase = uppercase[step:] len -= step } } else if t == transformShiftFirst { var param uint16 = uint16(trans.params[transform_idx*2]) + uint16(trans.params[transform_idx*2+1])<<8 shiftTransform(dst[idx-len:], int(len), param) } else if t == transformShiftAll { var param uint16 = uint16(trans.params[transform_idx*2]) + uint16(trans.params[transform_idx*2+1])<<8 var shift []byte = dst shift = shift[idx-len:] for len > 0 { var step int = shiftTransform(shift, int(len), param) shift = shift[step:] len -= step } } } { var suffix_len int = int(suffix[0]) suffix = suffix[1:] for { tmp2 := suffix_len suffix_len-- if tmp2 == 0 { break } dst[idx] = suffix[0] idx++ suffix = suffix[1:] } return idx } } brotli-1.0.4/utf8_util.go000066400000000000000000000036201412267201500152620ustar00rootroot00000000000000package brotli /* Copyright 2013 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* Heuristics for deciding about the UTF8-ness of strings. */ const kMinUTF8Ratio float64 = 0.75 /* Returns 1 if at least min_fraction of the bytes between pos and pos + length in the (data, mask) ring-buffer is UTF8-encoded, otherwise returns 0. */ func parseAsUTF8(symbol *int, input []byte, size uint) uint { /* ASCII */ if input[0]&0x80 == 0 { *symbol = int(input[0]) if *symbol > 0 { return 1 } } /* 2-byte UTF8 */ if size > 1 && input[0]&0xE0 == 0xC0 && input[1]&0xC0 == 0x80 { *symbol = (int(input[0])&0x1F)<<6 | int(input[1])&0x3F if *symbol > 0x7F { return 2 } } /* 3-byte UFT8 */ if size > 2 && input[0]&0xF0 == 0xE0 && input[1]&0xC0 == 0x80 && input[2]&0xC0 == 0x80 { *symbol = (int(input[0])&0x0F)<<12 | (int(input[1])&0x3F)<<6 | int(input[2])&0x3F if *symbol > 0x7FF { return 3 } } /* 4-byte UFT8 */ if size > 3 && input[0]&0xF8 == 0xF0 && input[1]&0xC0 == 0x80 && input[2]&0xC0 == 0x80 && input[3]&0xC0 == 0x80 { *symbol = (int(input[0])&0x07)<<18 | (int(input[1])&0x3F)<<12 | (int(input[2])&0x3F)<<6 | int(input[3])&0x3F if *symbol > 0xFFFF && *symbol <= 0x10FFFF { return 4 } } /* Not UTF8, emit a special symbol above the UTF8-code space */ *symbol = 0x110000 | int(input[0]) return 1 } /* Returns 1 if at least min_fraction of the data is UTF8-encoded.*/ func isMostlyUTF8(data []byte, pos uint, mask uint, length uint, min_fraction float64) bool { var size_utf8 uint = 0 var i uint = 0 for i < length { var symbol int current_data := data[(pos+i)&mask:] var bytes_read uint = parseAsUTF8(&symbol, current_data, length-i) i += bytes_read if symbol < 0x110000 { size_utf8 += bytes_read } } return float64(size_utf8) > min_fraction*float64(length) } brotli-1.0.4/util.go000066400000000000000000000001271412267201500143130ustar00rootroot00000000000000package brotli func assert(cond bool) { if !cond { panic("assertion failure") } } brotli-1.0.4/write_bits.go000066400000000000000000000027751412267201500155240ustar00rootroot00000000000000package brotli import "encoding/binary" /* Copyright 2010 Google Inc. All Rights Reserved. Distributed under MIT license. See file LICENSE for detail or copy at https://opensource.org/licenses/MIT */ /* Write bits into a byte array. */ /* This function writes bits into bytes in increasing addresses, and within a byte least-significant-bit first. The function can write up to 56 bits in one go with WriteBits Example: let's assume that 3 bits (Rs below) have been written already: BYTE-0 BYTE+1 BYTE+2 0000 0RRR 0000 0000 0000 0000 Now, we could write 5 or less bits in MSB by just sifting by 3 and OR'ing to BYTE-0. For n bits, we take the last 5 bits, OR that with high bits in BYTE-0, and locate the rest in BYTE+1, BYTE+2, etc. */ func writeBits(n_bits uint, bits uint64, pos *uint, array []byte) { /* This branch of the code can write up to 56 bits at a time, 7 bits are lost by being perhaps already in *p and at least 1 bit is needed to initialize the bit-stream ahead (i.e. if 7 bits are in *p and we write 57 bits, then the next write will access a byte that was never initialized). */ p := array[*pos>>3:] v := uint64(p[0]) v |= bits << (*pos & 7) binary.LittleEndian.PutUint64(p, v) *pos += n_bits } func writeSingleBit(bit bool, pos *uint, array []byte) { if bit { writeBits(1, 1, pos, array) } else { writeBits(1, 0, pos, array) } } func writeBitsPrepareStorage(pos uint, array []byte) { assert(pos&7 == 0) array[pos>>3] = 0 } brotli-1.0.4/writer.go000066400000000000000000000063131412267201500146550ustar00rootroot00000000000000package brotli import ( "errors" "io" ) const ( BestSpeed = 0 BestCompression = 11 DefaultCompression = 6 ) // WriterOptions configures Writer. type WriterOptions struct { // Quality controls the compression-speed vs compression-density trade-offs. // The higher the quality, the slower the compression. Range is 0 to 11. Quality int // LGWin is the base 2 logarithm of the sliding window size. // Range is 10 to 24. 0 indicates automatic configuration based on Quality. LGWin int } var ( errEncode = errors.New("brotli: encode error") errWriterClosed = errors.New("brotli: Writer is closed") ) // Writes to the returned writer are compressed and written to dst. // It is the caller's responsibility to call Close on the Writer when done. // Writes may be buffered and not flushed until Close. func NewWriter(dst io.Writer) *Writer { return NewWriterLevel(dst, DefaultCompression) } // NewWriterLevel is like NewWriter but specifies the compression level instead // of assuming DefaultCompression. // The compression level can be DefaultCompression or any integer value between // BestSpeed and BestCompression inclusive. func NewWriterLevel(dst io.Writer, level int) *Writer { return NewWriterOptions(dst, WriterOptions{ Quality: level, }) } // NewWriterOptions is like NewWriter but specifies WriterOptions func NewWriterOptions(dst io.Writer, options WriterOptions) *Writer { w := new(Writer) w.options = options w.Reset(dst) return w } // Reset discards the Writer's state and makes it equivalent to the result of // its original state from NewWriter or NewWriterLevel, but writing to dst // instead. This permits reusing a Writer rather than allocating a new one. func (w *Writer) Reset(dst io.Writer) { encoderInitState(w) w.params.quality = w.options.Quality if w.options.LGWin > 0 { w.params.lgwin = uint(w.options.LGWin) } w.dst = dst w.err = nil } func (w *Writer) writeChunk(p []byte, op int) (n int, err error) { if w.dst == nil { return 0, errWriterClosed } if w.err != nil { return 0, w.err } for { availableIn := uint(len(p)) nextIn := p success := encoderCompressStream(w, op, &availableIn, &nextIn) bytesConsumed := len(p) - int(availableIn) p = p[bytesConsumed:] n += bytesConsumed if !success { return n, errEncode } if len(p) == 0 || w.err != nil { return n, w.err } } } // Flush outputs encoded data for all input provided to Write. The resulting // output can be decoded to match all input before Flush, but the stream is // not yet complete until after Close. // Flush has a negative impact on compression. func (w *Writer) Flush() error { _, err := w.writeChunk(nil, operationFlush) return err } // Close flushes remaining data to the decorated writer. func (w *Writer) Close() error { // If stream is already closed, it is reported by `writeChunk`. _, err := w.writeChunk(nil, operationFinish) w.dst = nil return err } // Write implements io.Writer. Flush or Close must be called to ensure that the // encoded bytes are actually flushed to the underlying Writer. func (w *Writer) Write(p []byte) (n int, err error) { return w.writeChunk(p, operationProcess) } type nopCloser struct { io.Writer } func (nopCloser) Close() error { return nil }

]@;%Z4Ḛ5k'[0ߔSOr:jR)hYTDWQootq,s0o/!>7_Me}u*)q|2c"^v keuh _*-^w@T$ Iq_>*L5x /%LFH!TŇZ D'md({VBW6n_03Xr1V .XTE)Jpߙk'7qqTg9e߮b%cO&`UD13Cm÷@&` 䟓M*)YO! t}])/Q?9 ş mk#0V{I H>V#z1'YF:_s(fgMX2l g6Ajүnֺo}n{}#8}0ݾcSx*΍tlOIŷ׉??H~֙qGW d$QމR VIS{2E(esx;GŁLXjJv*2B#[-'y(^>?,O|<4=_wm 4aɏk:Nv~%u*SkJңI=D+U~hytspza 6o>O.<&W Aԅ)=ʻ]0=Im\MT\T<<\=C1S/wJ D:\uj®D=Um;/@_8+> X3b+↖S$x#3:Mi_Ɠ} Oj.)Oˮe 7p?x ̿"PXͪ U=YAl`R5\`)I>Tk;`OeO˒R)Bch|L|DX-C c+_fM%X;Q[^Ss]  qJ]k)4b]WLJ֙p Ttɑo3$w֞57϶.4 B=jaq; Pןfqg[~%k(_&cg”3M0[ݟvu|T%Nꐹ3Zu7InA/+fP$ 6i7v|-q+"Rꨍ?l2i0S\=$(68_3ґojoi°Y&CY?tj]l4=9Cj-#Zʟ)x( ? p6 NAk(c Q)Jר$Vu-akPuVЫ +Ji\岳_Ŋ^ml)|~E6|:~+s Q[ CKU*M'QŵKzuݙG Q*x mk{ri0({B#} Wp?UQo`^\ߧǽFDaMkMC_'Y4 ~Z6on8ڌ6>f#fz7 "(b:EK#ȖC#CW _Q㌩횺-}8F2_bkdk$vŴ4KC6o0BJO@a^4bR@yd?ڮcu.=>; sƦ֫9xHsW'"9jOÂ~̢ AKLFժ D^u`ʜ?Sc8s7ͮ]|rzC rin#'_閳v62[ΣG7E9|~ ,$ >%׍KCՁ ώWkisl_nWv\6BIjd/ke .)vm0b:-sjHU5%V:s+1O@y齲ď8.hS aG_^/VH _ ;¢QtVM- l2mgdvf/"]E?s+Z"W5TmZF v*yȨʇb}A :))RkW.C;7$?'W9 JsFٍ)Άq u}+Hf%8"Ht(ְ[jb<6y5b՜ncw{90e'Mv@~BE>g7 :5ro[V~Ž%- ` _;\ }3i6Vgg{v4 f\@hw #b"bs@=y$K-mpˠW{] w(q17׮ ṿ#uP&EkM^vu`+Xa*+wWؒ78K,eY X-vaCCP3< ЏCw6:gliA{wKꥋi~[7pZ&柜=ܤղ+@X;E  TmW,pKF0'02^@": ֙^jJ} ai49A=nnn_7H2Yݜc.4im̍ v@_Bς)O%JWǍRJ .Xyy'.`#,2ȵ[ )a;ObɫcFum^A"V,mpLP=lٞpgB܏ BkIYyPjNG8\V3(lCq;ta-5ka"o_<׷]ȩqoqxOEİz{ q Z\p^Je wRJ':NbApXjЄ=p)9eO™a%2sMXCh*=Q=Sۇbr}#MY#%z!0 І-( NwhJLJo,:>.BI3bi?Z(60&a&ݡ.ȃu/|ugID[TBGT}0mx'/lpƔwn99i)p9O!ɐ-/7GhK(bVL>̖ m YB%ZjSuO~uM8}pCk:;^+6(;|2cJVƫU910Qw#ZH%msr b1N/Z0t,D!@p+˳ xQ]bH4Y1i(EY)VB9O|~b D>QQk[\55SX@ݨmZ]QRQ6vǹ?5}Iġܩ!"z}F0mpUz®^bKk_>Xs}I]K䤾Ck)6Gܸ|orQjz2Ss ;g9O#zlB+*wp"KlW2Pqt}j̈mXw,$z<[mdǨ3e -+&I[p`wĨ-͘Rs2bo̰MIP ʵ}%PkٲT "lwuvx K?-ġ`|(ݸ>_&d>_4R'"X z|Z/v5;@ZVW8S~rOx3G50 g }$@¦Z?MĦ} ) SԌT /, W_|껈WIW=}z tL7 Q}N˞N`ע-a~_Ql/^~W|p)hReHYm/T(=$Ÿ\HJ+MliLVAbkHq_x1ajl> ck>Kb񡘎^(a(U Jԥ+ `K)71-ԥ?ƒd5.z(txϹ+AO.aRZ5Yo;g\QwZ9fIF\sԌ>@#M AlXy޹0ZZ4!->-LlI*k zξAw J$F$X/ &{Ck Qj,3lڃhn"zt;m2C)"<$܉L]'I:W ֲBi3\ _!-qCyz5ԿUyREWJ#<3xr/} ]I˙_ykS/~L- c{u*$ƱoT R'/0hG|'QRi}!R",&b2VV1ܭt;k1ISR'NVEsFNIH%`ެ{3_~I'FOZ]*nmWm2QVO׉(d Q[)1JGAj-R>kRɚY_]`ogsnGnImߊaİԲyVlo2[Şe-ebEN4J( ;_;[04I^a4vq, qcFIH|67哜Wį+^ z*]/@l c{G? {]0_Wng׿Co/9@.}6jF}*|<GejY\*ݴR`SSFx"0x❯_:3y>M9?F&,,Xt]MBAh*9Tyx_o?/N#K\΀CB @n%H_t{4%;*H3:D\ y ղX_ЊɜcJdv"#حv:_٧+%Z z>~!sjo Tkѓ@+|4pcʳŕV.+*TNamkҞR%yvKNb0ޠQf6A唦̘GURSk|*Ӽ/Ԫ{$~}EЯ5ky_"CfEP=e7 >k Pq7N(v&m&w}+iHRs';S)Zf?jզq{3L兇jGoy8t!z6 }M=9T3t7}W;PG34K1:ɳDu[Eʋv* r6ރ51VmkHhR d,1_TN(B"NNόO`ÍaƥVӉK^P*_ć1و%Dt(aBFtpr_}ކiGt[MuAeRs\!`Ǽ`-T5|éa{N))D!8Hur w<R I!iUrd^>pcs,oڨݨu!] wy'p7{G#9xoJMhbh@0ށv慿_@,IRbP>j% BQ؊A< 6Iܗў4yd;%kl-MAfM<%,@,-h5;D![Lϔ٭ !|'p/tj[O_Mʀ~# g~3eI$P܍:4.AQӀ+0s_"l~' 1곬̎a0I!zSo~rٱ(FZV:3ir_ ;~|'x>~cf9 c u1kD-~'~j=iZCH>kWڑdnFuѲ._hB,z 0^zNxO 1@P Kue$ +Lg~W}P&6 ٗFC68 B.NCel5BRg|:oFW-z "z,q5OCc6vڑHC?Ch|$ySNs@ o +8ym^b~a}Ā_s$+ *9;X bh̤s6 keFt_.sp`:: JAgGniKyO& ]et*ֿyB_? EjoQs$-.rJˀP<ǜg};[ H"ϧD<*U_>Y[ btwȿ[v)ɓ>;_KA_f+cܜCd҈}LK먊ج%sԖ͵iSeF8DvS'RFc]FVsxF^R _v qUg#Jkus>RE.Ql0 G?b> F&2P#i?hҲT;%- .;C7U2u[" F;A6z&_2RgbÎGMJ"HMEboÒϠM.I. }]ς2qVn Nnv W"TS;*;gPVH.(b[XbYTߏ&`hGmSo(Th\D̊Iecvܠ-4NJ\Igf.g&" @A6.)(z2W8*5TL u1q:kG$$g2 -da](Tg$Fa? ) ׵ fqjז7>"3VKYF?76}US:cVۚV^mlf7F wMU/Qֲ>cei9m7oN;=padSȅ*㶂аA}3tΩ ˀӯ_V 85#Oyy-VNch|y5IHMH:G(Ap⋞ :ʊ@2bH#-{({C aAǐ)O&YhT4QZ̯~xqN:/5,ខ6@e"NWVՇ[y>;mu^>:0==Y^ Nǀwځ_pUZvH]unۑX%#'77>2HhVzMmZG5!g|:;6eڗ5eX=%-|qb43B%>uV7%L- >vxnbY3mB<;lk7eZSs*ScXslyaM˼w{@Vx<[{NG)]Qfim[8fvYA uC⳽J5-残&B>"$ezhnV+[+aG9m`>c)g^\ 71@ 0gkSJy5=y)-&BZ>8#arꘘ\|H _(CY{(+Kh # ¿N+ `g034j{\7+:h!4HP_ Ƨ!aSGhVhG:3v`. QY9fSR/@@7R"vlr{ b&X_MS·] u {1>fE){9vFF6f=xV"K jx0PjcVտ2!sQPm4 ld7zrq\)ϕ! M.Y ҥ=(Έ~ >15}^'J t~!p!0&D>FQ I-̈Sˢ%OD,VDYzdb!PVuYKp>hx3%` c/iE+_(hC9G +8.E8'\aMdʝ.(N ;@\'N\Bk4,ܶ}ŏۂB/ D=l{:}g#˪%AծV%))n5/δ_x?Mdk {`8+s`L~I%xD=kyAz>'SPՆeMLI %Pt"{+ fE8ϲz.v'7z]7_$ WS ae9.&|V8'RgCo;j{J8nWjѴ~K I9;+2nCof޾ez.:e۔嬺)(ܘHRp`0M3´0N}wVS8oQ:mӢ6Y-#rciy޽4 IxJPݬD;#Kk΍x>- =TVܡN"h{+Tv i=+j>](fk`OLܽ썪zA-[;JhDj0v lZ~ -^`)x>bSgL{FJgIv#Ѻ)/c|wNG9ly>XMyY")uHiM@aqP?HǺ$xKw^:z SY}o_#yQ3:^Hx-J}5!5QQeٿ_;Y*>GνVtMPFkG}ϰ*^it~2D~z:bXu O [ܢ@ߩU}廼eܶx2f\ln9uQXQЖF ]NIZH/d0~6Eر#w(x[zsy\r;Q])R !gcb۝HnBp& /cŋv#Щ_̢FF&5zy ~<s:+dL|![SyJ[_xDt/_." im ^nSh%c|Õ8)z6d ֌ AuUa1yss3NmPd`'ۙ]_dۨϊMӳ2ݳ k#+,mե >f TD .Wex\?-OPSJZzϝKX?fw NpbLmR{ě{[͍"2F.O ˹[{*"K Pn&^ s.H;s8/Jxq3iP Jn:C2nҪ$-'#(v_SE)k ZS"K{ g¦#oE,s0.19m g{>|ږ^} 6XJpb0݋56? oz/o ԥ8!kc2`|щE)}R4unkA5/UL"7fVfZ=TJѾYyjT6c?B1k/fTLA1\O1[q*;t.qR*HCv0wi^n(>/J [1I-j%ׅg"2cz7"w1d3a1Nih>ߦ࡜?f߃Sn[%(]Wl8a"SЙ63EgC1ܐĆ-:?I\q*yw'l E c\ kstp݄Z\E{SfҠzƝm,?(MUX*=WRDl * {?R{|N?Tnn{lTVhL6:ykpmȂM!yxϯ7HK䁑vHyWghmT6w,vQ>-IדŕW?UHI(SDŽRůHNS <4ҴxsUDr,cAڒ=o:BZs +o&1}A[UoLR-you_]=ֳk')V;tDܩ#WqhH\LiOfpqTmJvH󖈹COVY `$!ȯIo.f@s"CQʄ d|m>yŷmynhe*,lQ6g{cψ$AT^_Sݻƒ AWmeްXz5VJ1d^#:]U &kQ+7`q^8ϗyWxztlfG[w1 VD>lbU`D!_['*1=p ӽz`y %䅰wa]_l>^Li{J\~ lTNi/~j{*Y%"@IJI:P[. 4Cs1K#~^i{ HC@ٚ#_@tȍlVlu 8m! kzKţGq(X/@6]iQ}Sj7qHV;; >>k10rޒ^M I%= \b[?1p'j"ؓ9d3 ;xX$QnaUQtwO( |6[< M ̓ʔB\=N}7*_kC2Ɓ,ɫ8n+v* N?F=9Dpl;6R@<QE/1ߋ I]! Kq"~ϥÛ-kI}Z)bH@AU`   زT$Ӛު.uSH|~^^s%3Ƹ*Y&htMDfsq!~J/8١b?;%oU{J_׻'یY>)78+:o}:6scLZ6O#'0l-Α6LkJH7|%Q Y5bc1<8EP{n7~_v~s / oT*iQ:N 'SaXܤjŰ()/ QY`(˄/<5tj\`2b0P/HNf=[=:|fśu׻uY!BC $4o2r'zBg!B/LXh>bZD养J3P Ԯ$+ ѕc 4zdZLٔ5R?dQg8'dهv#(*beտJߛf#^ut{q+WUˉnB:751ʪi+9+,}h}?yZ^2 #C<շ ʋzc$Y9} s΋%4pTN}aiTl dWe)z0yxo>р1 i>yFQ,,wG$?}对PHV H^OkkqG Jn w%ڃf[f(([~:Ϊ骟F2>aKEh\|/Q_%ZA;Ja}q' h4Ώl@uw# 8~y;K8lK_Ô'9Q9 {(|IϭPL$g٣^C9Zߨf]H1+19l1SFᇀR}F:_ױlhYT*襷}k!axZ_h'.a@Wh#’,NECv(5:c G'Ƒ΍xE&{ItZ7ZÈfB0 ^Ym8+8wsa>:9j q;5ZqTʨqOVV}n k;UJ6J_ר/s2Rō'&p /+Fh9/z0-yS> WvK(T,Z8Hd\ %_=I eTm/8>>-:[bE׬0)+y4;^}u7['B?$0!KL%֙HwGV6$U$0y/5}0O=9 R*ZmC/nT O-kAz%Agjxk{%R.P*PU)V?)c5 +YZ~-6s &c"ޟ`0 ᔇ-ht;#Fcۄh`_cx~]I !Ә2U@'4Aj|+ ߑZccvqx{%Ouf 9V֫Qk~1ﱷWKqCWzAɡ57VqccdVkMžeB֊o1RWԧw OZ}UkT]w\K!Jߨ*xR{7'hNWrO;@BBS(\cmKf@ )~EK7Zc5^=d).D6ś}»C>"Q۾'$$T mOcp5p198 <9t-kzş~ D.cw|6@ിOV]V=4%ß= *w^8ej쀉\5W?((hqSf_JҬ&K3Py@j{Oh zbgWZ)~u1UzKb&z1#7[8׏2O p{61YLDȏBbOߓ~ߏE 'C5 k:[@ꖿt~R 0c@.d3j 4O_PڐfILB`ӕ.+kd!U!5b[R/ 93S{lr]4*; p\l [wBu0HE\JW1-VI'ҥvC#F<<>:!t+&]p3oSLɩzZy_GeE U"4'I_GX Yi_pmbX4!'LTd a`*KOr-W</|$ȫ"8/O׈;l}AtȓA#49͠;q T`OazsnH9& BjZRUzO麣xzXǶ#l5?Q2 R=$ϾEiYH KH.)|/yK3L5d6 YG'*1ʬ6Xz-C6ErPPqp^=x5gg!9Ae6g6%,e2-\N7Bԥ^:|б2ĉj88 1pd Ęݻ! z1< ޺`{eJ ȾcniI9ޓ@4}vZm7Z"DO/;@Yek LJ_qT803\8 #qJk?#3P^]&ݖ+|ذ-u(?ETdx+7@~1Yrp X;q:~T:6wZy$Nle*E[X,) d|-Yn`Ҿ]wb޾xlfH6AY몌9ye뫭7iFA_1niyc|7i7vh|(-er:ʼn E<ѝltBt+`Q x`{PĤM*xnE"{߯?j!C"o p N8GBOgY{`SdpB׿ec[r K;1]+ܢŌ[P]:q60;/L[4_J}' \ |h'BE\a7Jj߮OKiHOmL%d< _p.r:zjo0!h="OO$C'8W&vk-aK%hR5̜ =[|&uuRe3Ɲ_<܍o#y| 31EQ& h"@31bD=Fe- A:CZ;h!ҷ$yNJK܌Qp+\ahCs/*J21-#Ueԡ5`kE1Yd*d˗|u-ⰿQQ}rAqI3ae+lJY5r Sg[ҥ,1~9Z4yxу8hYqg/bq ŖbfMh1ׯl%UXC3Lt=տ0᝟ߡ xA`Dz7A}>LIuhbq"Bԫ+cSk)Vue$Acqv1)tHEQqhKUޒYt9aMFO,e9Mom]et4UVpغ+F1%ڐI$2Kř}Idǭ ɎKHLRzA B>r~WboDn7G^2JJ,ȓ^td_9{lt+i<:D*us&3m3\ăe[eNMaE6Q_fR!3;'H}3Lȕ^[A$R"Ʌd"u-<774:lfx~[_-JӑwOcmFA\5H[A;/cujW/Z[BEJ/R!aK<tE,&FNtt6C>VEU^CԀ>ASœ.Ef 3>8BԊ&N˻W82l}JѰQ^xviE/d2 L9{/<<'"zrʌٙS4wB$7ŹD]w<rvCt. mupd3;>6 XZgJ+5 PwUoNsts G4);' ~t$07G"isskr;_И]B.$O$=Jpa ŃU-0 W-"([K8yA>є~}zK#f*{ZH؝}4`QW!(R2P탯-Lp^b-cD)jikmf9$Pmڔ/﵆q 5hɽK@MȳuOqB!^UOAgq7-;\N}Q::"R!STil #!5 ]iA F i{l7‚ҕI)]x[[ԉKK8WSY~̾;e_;nSϏgZYІBp1UfӬ{@[t"0|*EcoF"@ 9u^ÄMڎzcL@S80F%]qܻEoX@5JK'ܬ޾ D^fAXF:\"4Ȁ7D*Xu$#/J߾Kpv'UJ#4gdIހKӞ7,DCn">_:%?jd@>! 0^XEǥy$z uC6ACq,uڍxJi RfQ0-~3&6ȷN|VSjo _)Mo+1Fn$Q P!T_mпsk)fNǛ$qvsua|Z9ת^\ m zȈWf#6 2dsݽqIVwud1O~kuK ٬*INՅy٭D*|#MJ̊;`T=~Wh ./χBCGUb0{]==G^ȭ'r;hӆ{`qr#Al3ӬZ+D.ҸJlzdP"FN+7̻GYnM?1,-u' $5/x F-A^oLzKlTe~};O gISMsLH}  ZdEmԾ90]0J0;WPdȌ@V~k 'oMO]Oo4p3'jʤtGԳS͋}-ix0f WVY  O^'xC*Ϡȏw,2+;^6|@CxlEom&b<^Y=_@ōǙyW6sޡ/e&}VQG<mQl' $Tvՙ$?c8B_GBs2'oy}Wq 4x>'{'Q$6rg9DyT8ʄԕۚV -: {W>R!a% ;X]LtyLA|K^2.  t_pT u+Wo&zɱtᾷ|W54O>_pxX-38/ %=Kof D}EW3n7z{q>.xFh{nt[T?ȃTߨ)F"Mȏz $tQC|8[W"CM.gCrK1ܴPBm<9v~!Vv btX12룝a.{8M;` D;/=u@{yKyB5BbuB L0dx_Wョ,vm ~ԃj"׾̌GlSr˛ʠzg)Y%8 X$%V{̵[y ImW=9 Uv7>I7s@No}S06f'FƗFq u0sH cH:;v0K8C c2Qh tNV%S.VH9QQ(m e&W ʅ2aqW*">8z塠>De*u͔W~'Ad}e'7!j/A؏.W@*Ry\!Ur1*&$GF/~}ۀAӺ(SekҸ3d\?ҋS^5}]JAs4^/(o.vz2X<(XFFawVh0,k?k+VYunJT6ZɃ|re3sqǀ}LQb?aS-J|a@ҍMӠ}xIǴȏיZ|3R Ds⛯5MW"}k͡*۾}JoJL$:d,ʼ"ᣖ 0H iQ.Lw1Inm,pi h'q OF_ę1A (CȺ%«٩jd0iTGy}RKMKġa'2lѲ;4ɖbGBqYUX~y ]6K`/+LDl@@ƻ"|GyaѽTv?]|02@ p'r>f uG^'%ž69*67x|[*U__fMI5+ HKg%X5/ |sjتAڣxAZI-!\^~!,lFsk!aҔ+XhDZ`CI侐~ގhq203 xS~}oK-#zmVf!SSc{*$.k֦OL-98qT%߄)=;,`gjUE%'K"6ʺ$Cһ^ T]u}tEr:`|&Doͪk dp#6,3D]N(cu_v~>#%WYKg/?z<Ύf?(ml߂+k96 b<۪5іP_m,, ";—9q $1>I(A)3iuM@UyFӓRYz Gp0TR$;~1X ,gdG{:% c"҇Z~0&9Uph;&a8cnD`+'@uI瘬#"ƞAg>Q3_5I)UwQq@!kIM^-%_r.'65/xOor(xY>]ߺ8S^UVK+{`D^v UIm;6dv+;J/=UT1zf3n>ANr|$]{tL<lҥLh/@MZH]#$)>7=;I\n8&h lbC")p׾VwtbpbScO?Ƈp.̉R)IQ .g\ `>oO%i+t65MUwZ!q}-^{9nbJ߲|}| ﶺؕOmj/Ϩ~ե(4z;c$[ƽV{ֿ .0>H9#Pߴjd0j Zxv>9%e^F!y E0V$"~]lͨlD;jᯤI%M!JXDd9ܛJ T0.q#e r7=q@՚JT5=GFr3pFG$/a}Y̭7:XO\4I(\e!\8Ÿ^[! 8# Mt.;g3u?Ps՛mni´ ~EZI"" eMUG]u q"ec1PC,_P[ڗd >ܷ|TN6h!ڦR%ʼnL! }\|:}Zi=>:1F xU_:0,\dIQu0yJԤ 絈>Է!c6k/Q%1:HSw6"MSm 'D++ebƝqe{ek+׾2-;+_ bq^}ak xkF_@!hȇ(_" hi ԣ~C4g ߮٠ͺJ+YWű%AxnfF˒ hH`Vݔuqv.Ijz;BAƉAp*Z,ܿ`Z?ݧDCJrm8Htv`SeOz ]J.:;4{]7xa]\\ ~1B%ǘ1F/acKra]xl}0hBgۇ7;~\0]gW2$s]rk]q6 sOIݞ::n87TAMDltej 4d6Ii i7³H,w8 Zm; +v02w|quZī+rޔk \jIj7m\b9* %m -_e6"w1ց[ GJe`!G԰0a\q@]zO*XmގVs_i|^ ۅq g8]wE "bxk'<:AFGE872!'^.[N9۽u>U,Q&-]sOI9e!'6O,M{]zw-{T@ &e6}8g@5G)WzL`/]_Է_aZc~(@~8eP  q*޵&Im"'א#%a :rqm+ 1WqӴi烍 s=ٌCLj@JԢHu\n#AiuZxߴLk거}@EC&4@D ǖ,ٕ%{B\NZC;}prhj m!i&y pN {"C{EUe:8ܖYAI_\+C0d.6}HzY>"/ +Ɩ_Onx}VWq%,&C(1 .b}Ȕ3Ye9PraXLiN6Fnޠ7s06H1~'i]Sz²JI]MAI|;Z|7f HAٯI:pq^WR4"lx횫#Z x NN~4IJmhIZx5ܱ| 9,4 x\?=܄;oʹ`/QMvE ԙr04H'G}u5w\P{慫~HzT3۬*PG~.aa렝,ʆ^N7Ra`9-i(T`E ggGrW4m13;Blbݩ:mCcVkB֔Em3GsQڴC+aS c*=䠾'MK'5^oXFE Áϼito+^94A EwC)\,L Ӛa;Y;yPS =anIω>5N&WAMaM9 COGDA1jor Y≾7fƢ.mڏ>jAmӱȔ $ DZ;{ީFWh&D?WzL .aX*YH-MۤFL1}Z^c#+"xQEڍɢgO{ۋǴQix`Um_P=x1Jfǡ2M/b䭘Fq>+ͶRr}TRJ~R8^uG^;SH-p׸NV՞18^}ٍ"q x{~0`Dџk.$O|_s`>ߖ'k#8ABo_NDTq2G3L7X?Q/.w/FD}>.+kv`Q>jCщ+mMc3I3&MoғSnŮ [R$;2)w;/Im{հ-`vC~XaFգ3c _?Cm7_دt$eWxfGLzkވ>b]'l{)܄iA ;n[PM G < !.'ѝNi <`Wz͙:('ӍE{u9'IDfƋ7XIo0LMw}: 8Q,bɝ/d2Y-4(6Ci]w[ ƒw; }ӧw5}*};q [sCzqܣ ! 'zq n_&܋u37OLWwW{l/;. |WW"VmX_3h¡~Lw U69;ItU hah@R_`ѠUtR Ժm yAԍxn}\n7;ki6*XRo.+Z&M>hbkr^UM##!G{쏮 }QfM< _ѓw!Jv6'ow62z7.ֹ/$c-KC$]r^۰No;G@i}).K ?lzаMvS{LksvHiVSBM~%pAF5IN,2heQjilujvOQ8]J/3Z85_ 6Qj"ہ` +smJ5< CnmpX*TکomX1f_P͓ _zSXpsڱX6yäQVp2n9N؉R'w Zh28%LqЙNhgd^ )CBo_Ǒ+Ry*QoXC٦i4}d8@L݅H~)܍#4c@|h/FADwmHh,:3_j%bZ 8Wg6g6Mj ͭ(mDYݖSwױ$C3%a׽ז+ItM`rLQp0D|$غHZ[zgsd̮ieNI@&wCג]_lB)=.ܛ.&Xo *>Ο 4$rV7_@m#Zw|OZS~ri;GLL})"m]If2[&Am ZjSy#XCiܒ*gQgIe1њG,+ZGqwW۱͋iN,i7PCAIX:xlZ:$|EN4e~of,#Q[67Ͱ'>i:7_Oxь ]UfrHr3ۈOgoi}&e hs- QDQ?zLS+GOa?6<@u[w$PiÇvt|yIӎ76a@5IC^W淿N_]ق#^/7i.qS{ XZ(XW3̛/VݙfP5fz m3겏{U}̽aݻ]# ĺݳkIEzT$ L~Ը[%Za}Bv)dvpq8S$v_}v.]Xs=?peOІ=8ړg83P`fu1eгz72aMr_6 wFګ=4Lx#յ5Wx.`P#BNҘx2\Bʦ`_$~RU|nݴ/zKzedvFcfKTs)GA< 武F%0,@ȡ,\eN}6U."XgAY%CPڅ{")z/m\ē~ _.ϜdI닑_DZSwRh6^(;ͫ 4l^T])HvD`m/cG<_s*|53J M߱̍>E7~ jo. |aY֭QY/u6ufn49JI4by5jcy(hJ$K|h-4DԿR|LQ#&(A8L1^Q`oK Yux{V6}(L6ue)pžFuP{9#ŀ^S!&d]\޿~ )H7@ċ~TFu&HCob+:B*+ï.x>]Vu9-}J;a|zMȩ׽iy۩Ze /C wӳ撮s2 Kgy6 je X:g%> L9&/,=c0TWc8~M$| $G*ĊRJq=Zze Y)[=Bf)2QK*ܧ7Aai_m MU^kA<RE\vbv&Q"v)EZ.DͶSմJ8Y6wbWL t>/cp弔|IMs de;WlMt+1|pY2k5Ieߜ et3y:=`H9C}qn \7Kйه I&M5:T3_ynP,J2H:-#|jA3=! •grL!6?I_ 6p3P[ɐO^re=W/|Sg%.g7iN/ĢsljjBsʰ cU#}!WTO@ZDQ3";GҘz+WF߷pl//V Q|/jYܞeg4&v&#mcDMTb׃[I0g#FwƵ/^^*j;5K *c?3g( \n~Q]Z%@:q_)Xg/ ɪ#ΰlY_lZa,~݅(rBlOL/E5P 8 )EA4ż|hƥtgMp?D4UFm.#ҨU<|jX"ƒnBsy O%.^4ilZv7,аLۀSɔW ׆cBPО$׎ g~C <ޝ|em892Wd_6l_l4b dPf1`JC߷{e!8z5Qɾ &Ioq?.+Ӭg 7ӗi,F.(]K4}N+旵Յx}J.M!"rԹ{h?HtSyfmD]bvn?`H4w-db˖3n~BӴ[DȬR'=% p.{z$چsp"7np#LNO&KH W2f;ߏH} 9*&3 il46;VΒ@%!t7D+HmǍGv XRȣz?@LDzf _nRrS9usjOs 1V12S+o2ɲq ҢGC阘8U[Xo+ E/d4w`_*IYTWͼre5ϡ- 8@*ᒎ8O-}h` Ũ<'T0]at0gE}RYH %ݾ~\Ri;h>i`z%D=bv PEv/watʕDRuOcvþ_&Z/J([!ڪ274]mol8fm;(hE-eo!>nJNj+gW_E#-Kǎ? CPIٝTSU)9koR"٥U Ld^} [oD}5XWר)k&E"j 97G"Ścj3KźSo0&eY5dԙQ*_l!t2y{~}(!p)ɥ =r{с4tyo "X_x%Y'vC}}XM Jj5gwNY5u8Ѡ @BM؃¸57JpR&^a13PtiN,d([2 Л5dwt6}m*eѕcf* }{nVbXpukg962u;)Nfț!>|I]~5\VhVSc]PF0V%CQ/ȿ,-r9c 7Jy'Jn g6@ձ$bV%S-C~>vk6lĈk+x1 Mx_{ǚgW8^'$:@cI;;}ܼkXz_50lq5ܧ Cٖ6 F„RgŜp5;[SW^Li|JPc~!ugXETVJ/,0o̯5L=j&~-K c ]\&=z cٰG y۱9LM+Ӵ8(y<ǑAI.RIҜy*yljUծ^䣉,)Ͱk=q\lb`Zڣ#<G@ARJZHۧ;&陾n[ ^ZHo%f r:~G,a s?V|8_o8B'h%~ܿ_&((ׅ Fd\-l kj RU"ȫ?[W9 .`kV 圑<DI|ko` mt{1$uOCe.UKU-m&D&wSx> #$=X2"bTê}޷.Db(In<1\|Pi36BDLoQ XC|;<_b\!KKXKi5HWb '(ijyiE}֕7b80SLVسQHفruJRMew'*$Omڣҳ4Ou ª7!t1Xf]K%dQQI0BKjPGgS,pv+t;2Ĵ/ȳ|{GAp{o1tz95?\b[5B/{íMnA;)6W[?DG k:?;~1~c:ea̚dABook[P.-=ˢ:H;{QUv>-p);-̷PZ׋V`Sּ$UEo6CB75>eZB{KB }pvlmF,LH8O>aw0H۔l8dvpbN  ctl}<ʫTqah}E(Mn.NkK_6qC@I*_$ z(M6$ 6qPD *Rdeק޼ԛc U_.^ۜ[)- K) Kcm?a-e @̮H {Zۄp]Zwbl4%QYN!֜VwF&?y!'˜\~H By*ۓnӊkk>m_ߦ !ҙW^/o jdUBٔr$\WdgS6 QKc0e wof[Ȃ T,YC) +եtKQo\G!%F6=s7fpƖ:)IIj\(kFg RSkK, cY'=ն,QMOϔ5b貵3E hZ%!4y1צ+wKcI7a^mPݦ.Kut3u!L3/uK}Ed '?ue7)8=3 DȨ*Wa{i&IƔDP%=<$怟 "Fs.f O}D{n/ӭNf:Vp(ok쯡VBry'!K'W1K)\s&ѷ/_|Z*>RȞeUD꧊8QM-{D7BvD0b& }P+Wg?,ĸwIIoZߡ;NQ7\[6&VmSY"sq1BO0 f׭zo$qqf ܴsQoJiS4Vw6H&O2Z¾JMXVԴU܍S^,q8/2f"ġd0\:+p"'J.Ы &axV'u:1 BzXJ]{*Z}K M-􍉸Irn#99l,纤pPxRzUf]m=:R|=)R3W9MaD&/R*W(,"\`>5ciW}^As\cpMqߏ}Tyjai<8#* b1M=;:qN"ȹs%q (VO4{KA|.;UU(јȊgK2fkއz;ِzBVUbo!'ߒˍP;ܿ,Fi I%CE`h.zNONkEJJo93>[:2>{v`dX$H%¾ /F6PPg;mngZ~xEx 6 ]GYz=U=/^im}@ä,P#D[W?鲤XG.Mv~)`!|CaУ$<}:k=ϡ9җGL- "GG "`"0N)cc܁?Lێ>,w[l*0zS\sROrzj"A8( t] A9xkU:jc~ElsCsb+!-mUS#Q\;-{Ԕ!P_r =:e>׳sMtR!CVd,7МA\n[agLC@ѦRjqb o Jy~2H)n~×Z]X\g~3 $o{p{-n·2b_o ׌x`oGXHƾt_KX>gd0ٙC}FwdgZϾfOC͂Ol/іv2Z@cc25:AF?_MČ CJM/aP)нMw)3fj_w87>HfƯ1VDѵ Ktrh1X J552G!ѤwrnRfOf#*%uPK^ņ & #PXŵb-<ԡy/#C04@'`ß_O8:W6>LH'*NtpLEJRW#[s )'aCuBs*r)"fͳ(`2\ܣ7?+ywҷ1u'21~xZc2@l1ډA; j$%p8RZ8JI,}tvjMpv1 [륅q_ :Vbԕk8+]&F^zmf_TnMj砂#;Xk\<ȃkPx/@(lax8topn"h;~n nu Gqix;_eux=~AO` > tdhzEZ:zϺ::aߙK\&֗9e&~+9ت, 2+u8usO.a[oADdГR":\ejҟNӺVZmpOϱݖ"7?bpq^ǝ%ұ`Yn` r}M+җ!ʥg< H֨7}[|WHQjf]PR^:pWdĮ͉TL^bkrDtׁݨXeIuY.WyF7Iqc0'9ܔ|lV8㠻ƪ*ZP#l b MMx|FG:N]-mdY v;c[0g1iCP@HǟBѷMfsd W;I&XBԨN[@daij.ӈ ְF K/e}<se3ޅslfFloLiɈ8maqLvnů$/K@5z% SwX;㩄<"]=hɶ);@у70yY/7Ӻ*7[PUa'7`BWbO OM{)k~f|ǡ_4SrelsaS`OhH `l|mʞfn+k [:X6B9ΉWe@6T{ w q-ƚ%EdiglR#6͐ }i3;LeT^(Y7Rsl %E~~ .iΪ Kns7YS :\~f<} kE>FKzGvn4\TF`%}6j=%N]/ѫޗΧ?#\|ybOд|ί[?bQ- !w0C?TsGH[#ɫM$/o7f+Yc<->S͟qp\A&RU&#;xҭ|=D M40s~,&M*/uc҄||ۜ5e1%ފ_t9a˚qYoo`h'V;QqJ 7 )^,έ" |pKT#k5 sߊ3 wfd@X|C_$9qfQ^5_q 3-F͇6m:ܙ'VDSxjcX{[̀Cck \V&،/3n̰cb:Yf FrB1ׯL:$pR6blG=F.m37ouv% 1TyKc\/</up;g/%6X& hFRsOG\m5LE>VOϞe/dy! O_g0F.ŷV3fJ"F>Q{ nrEI9{/%~oJ|@[Shw>oPg|jǎ^Ac/}"lz|VtP=l5xw$뭡-rj66i:t%w[)氂;]fy{zwf SOt#LZd!{9~_Ӟ3 o,'jdkW )_27Q19bTrYΦ᧦B1_CikH>5e߫ n+~zz[Tuuy5˼#Lx|2f`R;&:^ސZm`/w>Xr5)|nRJh1` `ٕt%ܒڂ15V 2JԋYD-|v}(P|ہ^ ͘n~dØ) Tb17WQHisd=(2o`T{X^1GE6*[=cP]hquLA[k^ tQq3(EQwLq:&#q"~f% w~o'c^^`U/*o|) z@oG>bQT)cJF09bBS%Bs,+ ϰqh$se]A j!Cp y: 'а(;ձAplo5&?;՟nʠ U xhm,9uj1|Vu,l @}1u a@UgƩUQ>do>iC8ɮ7*+ggY ^ꝍ2H6`c&8xl*SՆ(jVyjB&Ch/)ta$y*a7N>F$̌9UXH+ݤ"FyMoB!* ~pS+BOCɄpy{rCI[ רM>nҎIL`ݵP'g.P^@ye?ܭ㿧Bܺr(̑0a];9T:,8Q|vi|l/SB#`‘'ek"am4'Yu AS3197B~mp{4{羫{jl A̡;Τ/^/kNXZd7"7DN'TOe_~1OM^ J"et=/J0;%PCʩSe?p䏝_$VB|2o\'w@o( ~0}y=]#IWR)ozVf?Z 筄GJզ6m^<ʰE>M%3"p[ @Z[ڒ#J'כo%n} :GyؕVQCհ߷Y!6M!X%[RQ.ST>o ꒡'ԹaunđȆ=v|%n_sO<۵4$9D߲Etd°IFF]BG:-Kb8$~ r"#?|%Q0YI1rDC(\[wr>lGv?|J/BYڮN*B%0FO~Ce/%氵&mk}M>_r\T%r!'>:*{ֺ R[:e$C:t%lJz [~wG.}~nVp:DNDLqx+@f!|ޮ$٥3nwqNKs~}N:Ms$Dśte[@qCD6oGGc4'5sښl^3I^|N~*m"mQo<*tOljUIW=.6wil-'%ژbc3st0'm7'{aؾ"b1r݋7m.56oH)cgϝK}%]h HY;;sהdYzVpڧv/bݗ樋{4g^14,I #Gpl\TLj;&y ل}#cf&y^+I_zx><DWU7J .#"6vTSͅ[ن:=Á2 &򓣊 2Cߗ#xVb8thS"3(OR Vk5T'`m%%[LaY;fN/ S斋I;|V%&t M)'*>3h6E-kN>₦X4'ܻ GQ]` ù~`b⥹=fûzxxcp.T7 a syzSoBTq >&ZHWkΖEKTk(ј':{I|(13hP+Hz4:nhQg-"ߜGOy6-%kӿ҉?^mܬ 4i&D=/Zzw[|obY"}IbDC qҿD~ ˯ DU#_C]y8[NKS٨ocT{RRokC*SvZ.!T8l*Ng+/N@9{#mjgNM5*@;h{"_;abz|"Bϧ 28 ]OڏgsPESW>g1:Z:vN, 3~/zjne  (0l an@~Uןvjea\3 R ]Vc_Lk 0r"#X="c:dE!׺spyZ.CSpŸp mGuؒx))!AU߾R+pVg.ULyBAF[.f0"[Q"PC vtB+j+I$;SmH:j }~7ѫ?"Ay |CmO=8I[ʽ.|έ: HBX8ɨ-/OCLee8Zwh$% 8fziFw5vL$uZQ_]d+Te^$6bn.IG ʄ`[(kl놫[Y>rmC<ie{$ dc?S&Ӱ56FB:L( ȵԯ9liͧ?hL,6c6b{o{QpY0q.[w:^, D pa<dQ^XK$>]|)xO&Yq5Um/Ƅ%, |G1[XKOEu8̪x@ Ix%I.!mjғQ)6B:zƀ>VrxuK =Nj^\6|}.ZqZD0 ϫ/.?8wqd6IU뙷48uݖ(,SI2<q-KIt 70vj9-mI:HX,ׇ-흰 7ѓ=D9,+R(78r l6m }@"} S3mΨѕ1P'kuܡ"+iMbPɝĚ7z։zز짅fb-St3V!YqkAxz3aH^؀ˎ4 $EamrN7m?%_XrU2G4nܯ·LRU=R\ $B{+Yߢ\yAML->mbH1KHW3Win0HBO0VZ?o# w4%$oXNVq&#VQBIu& WG%(0 ?G#iQ=)euT_{K4;;]PIL|d:7Ofd|s%,$)o{ošp_dN{)Ă:1:KYoH&5\4f \ unnaT i]oF MM(~^m1ldT> #=o{MZVL A}N~ح)9KZ^1ƀY楯XY^dضdKIƅ;9Ol6ѾyŽ!]T Yq$%Cn+諰~ndGn~$YrXw$^}q~j%';צ/ *y9؂"N\>yǷYiu ݮ}3_8eC3g7VN*-DvTw7y4.!g159C>o@z @ʤ.wy5d8q2g l'C"MIͣ^9 w l܁XFIt6oqĊ:`#R 2${ӶC* ?×4(AG[ce~t%/NhE h7\'Sn5_ֿ> `:/&z\vҧ6oQܚ5rnJf )-C]4 TD2Owxڲ}#`F3v]z2@[p\fz*l;J>HR#w}DKե:0n>GƯ7s/䆹 NJh}Xtu=~립<ʉ+/ie6_}ekA4Ef,\{PT<$yyѹpO(6~PHkPP u/XYc$\ݸ'~ g 7Ek/_թumfńA5}ޫ[)\bhV6a n\< Z 7B {Y] ̧p=}*d`' LKNmY);9tdX÷xz79$T2ĕ+_o1&6%Tdmh<#Kla-:D79[x@*'%3X Kh߳{߸ak埛 5 , ԙĭu3| kyd@i;GkY1!#Q~D],w f.oA:VbPN 'FC} ALEUÞҭsw,=jjh]#`䑐wQ+.Q)B!GmQ"<%`xX\6a>zWX|j"D5Ò`~Ә: ۆv<gu9YdP 7ѢR=4, s{¿GȢY_SbbE9{V ,&[.#>VxqA I9\_w+ZnkLΰ۬PixCZvK\ꕭ41{s׍U➤rP'IzbzRȷj$S%<.Y] upeR'bV5A0Xƶ hL> b:5 0{^JLGդ~j(fzKZ7 |b*o֭h:DdNZR )nI94Y4A$WuΔ/[,uYKܑkO. ~a(46E߳l֯ Phi:xDLnkDmIxO{jva;fDI763Kc?(D偌?N/moEo%qC91ڹ(똩=M DRݶi#?u䠼y~#7ʅb1>_wȤ{YZt`̞Z|ANvt8B8C!!]Ll0o'*)]; S^~&ss9/>.9<,lUyUσU&lb;[*}aLy( 4Sm8mb.qՃ(pO.myHcN\qL|EF#1mn)>@ioq7VQqϐ[Cf:cfz&yLp%8J~(RVv; ^i5>P3GbYWYԄ~ UgbyU_3-lKw,뙬2qK̃G1qf٘jaR[]]4>f)wAyՄ9mj?\hXd>fՎnyϷ&7LxfR j#wL=ג|.QE<6F^_o-/O.K=4=]>$b?Tǔ״Tۅtb=Y'6\Vr~'2'uu‹UQt]"s&ˤx/21ʷf{L<~k ..Ss0K4%oޔ.X2߈6R9b[b3bxďane~jС#ArwS,5/^CL+8m]gJitYonj@+1ȎZ@7lԆ;VGްA^:[I[:8E t1S<.AeN6N¶uW1^& 1~byFuӱ7pga 5Wؐ=uoFN!6qE$S]A +QZQ(w57z>3yنp1h'KK3 GHZ} 8Oj8C`z8C"(g*L8\LeS=V;J\G3|Už*wJc҉D[鈄'@ą3/^7.4|W^'7"Mժй[G&?T# 'C>-HU~p!'Vm?$ZgXM\WFMY9,bò)DؒDY? kPXӎB(vgπ-U$S%mxjYf,ÀqUVN:\(zYo5H_>jOgNll8aI L`jAQ8c]@XCPWJ~W%aQsQM%rp⵸߉tꙕ@a9' Wۑ |L7\0Gkm-혍_DDC]KY[}em3&Ϩ%R5W_lmϗbibOnWF[Eo<60r:hkR"C r*t&RrJI7&*J'q6R-12M.4]mD;S#0~~!"ˬ?Iy߼֎KɅj,~s:)P7d~8T(LK 굓{| Unbͩ_CXĬ!'k.|&Ӳɏj8-7+pZxXmAEr@_X,.-} S/Xc35Qm\{)9֗ySJ7_p!q1]Wq&`z /dRd"ȴ wpxp& ʨEE0<R% cZ,_".}읆>r{p-~Y@7wb =3= x=aU_K85k‘cCGްE?OU9uLً?3N6ޣӽnBѯ~4=5jY@C("\ ;IvoKro[Džψg]sT)粂.Ez<ݽH7߿Ͳ](/KeS8)n۳FfX2#!qrbȃ.$%op}MkQUFڢ#JmD;kmR䤁¶UREf mG\ ГUk{_ռ8ʜk,)VV4&@,+ yQd轌C jw9gk/? 5Z- M?[ezyeIMmRC\7^LMor0oӉ臁 d3ʂ$#Up1m Dȓ[g,goipCEHFOt+9ŇpnjBv3)96 .&IDA* Ȯ 81K(هꫨ!}57mF2r}D]HFL<'ӴRŃ$˧V%u7t(/ iy΁Iכگ&dzJ)օ6VqvTs iwKR&%\ˤO$x]۫#2ˊ- (A؋P 9r~.zg o~k @w6/þ`׬I+Dz+D?\ B#$r7&a,x[(Q{APϔOeIBgHq?*ߔ$Qxnk9?ٷ>1|oޒzDk@ >qsTt$Dɝqnu kk3c+ףy !)ʍU=s))=VI=1Cf#G4)ɜVyCgdu%#Vem# KݏK8PHhDFnRbVf_.X&JiAAyd)"Aɲ(A%e ԐLQHϢ~WL@ZA]BK8[R($.,Z9FԒmvk.5ơY{ºJcd4%23b)QmgɑmdU;zrc55'4üxZ_5^>zċK~-xoVjǢ¥_m#TmuTSɔ9x^"d%F<8C>q[ik2 bWKG .hnR_A ?((y3B(6 j~o& Y! 362͔ϒ,;rӱ"^<pRF Kbk&p. )x<>'Q{MVo}M`i k6rv)5|QF#LȔsEضGN<„4 qU (Cse+tl7yf2{➦ٌMi.t0ŏrPISޫ\%Rءv^S7([hW*TT7Gm[Ha|Z`'/yU.ӳ.if3L1. 3d:㳨jIJmiXAOb̏]إtaׅRfB5{?Q0PWmށe&)B)onuT-?X1#]qe(̂:adڙg ܚ5!Dӝ h_He&㤒} (ch?rLdz7 xؙ-A@͚UD\"^KH*9>?H#YRU.8 Xfc=5x_2ФM֮w\ $x * W @8IBɧ$Af 2=do:*N_>M|\@s-WC̋&h=g8k_J0eK_)ףPX2'=2:w/f?#B.pH39&uʁԾ"XdBk #R/ךMk-ϝWNqeX*歁rZ.Sq ԧ.K; C5$ aeU!vaSE7/U?S-w @ќ$`&*U'&O,$bQx{v{73ݛ .V<^Qr^q}w Ce]&e& ؠh?K=EKIg}ڹ_c #f$Hl63)R&<$,I6S 'ֽcjk3Fiquer6dtT:7o{@/Ioqʦmk=qWoz-ymK2)i,Nu_ٞD-' Z._5˘8v SWP uZfX~nMGL:GLe3a/iה&yH4 vr'`h}O~SpZrϼ~FQsxsoʘR[nc3Cc prC@ &0b\)n.SX N&<|hcr𳆴t΁QrQ}{OC*))oC6'Pb2x$ET;nHAvB4u8Ԗ B@Pti8m2ͦhbZJ "ӈSiWh+4FktrQ *Nk֘Bk~loڲ zNH U}ZMS!uMhu޲sUA;)o/iվ 9 aLDzϻ8Ƭ jx]aLنRǿ ijm]/(c'~; @3qf-0XHŜwH@ۺ̙!AEz/Jj7~`i2Q]Up7SeKYo.J˥2JT MzgܽĝNYXR!mtRy&o!~!SdG$ SA DL.)~ݺ{LS 蒢g/`2hvJy} ,v<7