├── .gitignore ├── test ├── tests.mlx ├── datasets │ ├── D31.mat │ ├── R15.mat │ ├── flame.mat │ ├── jain.mat │ ├── banana.mat │ ├── compound.mat │ ├── twomoon.mat │ ├── 2-cluster.mat │ ├── chainlink.mat │ ├── compound2.mat │ ├── cure-t2-4k.mat │ ├── aggregation.mat │ ├── spiralsquare.mat │ ├── moons_with_noise.mat │ ├── multiple_grids_noise.mat │ ├── unbalanced_blobs_2d_noise.mat │ ├── unbalanced_blobs_20d_noise.mat │ ├── pathbased.txt │ ├── spiral.txt │ ├── Compound.txt │ ├── ds2c2sc13.csv │ └── unbalance-gt.pa └── create_synthetic_data.py ├── CITATION.cff ├── LICENSE ├── README.md └── RnnDbscan.m /.gitignore: -------------------------------------------------------------------------------- 1 | *.m~ 2 | *.asv 3 | -------------------------------------------------------------------------------- /test/tests.mlx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tvannoy/matlab-rnn-dbscan/HEAD/test/tests.mlx -------------------------------------------------------------------------------- /test/datasets/D31.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tvannoy/matlab-rnn-dbscan/HEAD/test/datasets/D31.mat -------------------------------------------------------------------------------- /test/datasets/R15.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tvannoy/matlab-rnn-dbscan/HEAD/test/datasets/R15.mat -------------------------------------------------------------------------------- /test/datasets/flame.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tvannoy/matlab-rnn-dbscan/HEAD/test/datasets/flame.mat -------------------------------------------------------------------------------- /test/datasets/jain.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tvannoy/matlab-rnn-dbscan/HEAD/test/datasets/jain.mat -------------------------------------------------------------------------------- /test/datasets/banana.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tvannoy/matlab-rnn-dbscan/HEAD/test/datasets/banana.mat -------------------------------------------------------------------------------- /test/datasets/compound.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tvannoy/matlab-rnn-dbscan/HEAD/test/datasets/compound.mat -------------------------------------------------------------------------------- /test/datasets/twomoon.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tvannoy/matlab-rnn-dbscan/HEAD/test/datasets/twomoon.mat -------------------------------------------------------------------------------- /test/datasets/2-cluster.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tvannoy/matlab-rnn-dbscan/HEAD/test/datasets/2-cluster.mat -------------------------------------------------------------------------------- /test/datasets/chainlink.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tvannoy/matlab-rnn-dbscan/HEAD/test/datasets/chainlink.mat -------------------------------------------------------------------------------- /test/datasets/compound2.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tvannoy/matlab-rnn-dbscan/HEAD/test/datasets/compound2.mat -------------------------------------------------------------------------------- /test/datasets/cure-t2-4k.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tvannoy/matlab-rnn-dbscan/HEAD/test/datasets/cure-t2-4k.mat -------------------------------------------------------------------------------- /test/datasets/aggregation.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tvannoy/matlab-rnn-dbscan/HEAD/test/datasets/aggregation.mat -------------------------------------------------------------------------------- /test/datasets/spiralsquare.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tvannoy/matlab-rnn-dbscan/HEAD/test/datasets/spiralsquare.mat -------------------------------------------------------------------------------- /test/datasets/moons_with_noise.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tvannoy/matlab-rnn-dbscan/HEAD/test/datasets/moons_with_noise.mat -------------------------------------------------------------------------------- /test/datasets/multiple_grids_noise.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tvannoy/matlab-rnn-dbscan/HEAD/test/datasets/multiple_grids_noise.mat -------------------------------------------------------------------------------- /test/datasets/unbalanced_blobs_2d_noise.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tvannoy/matlab-rnn-dbscan/HEAD/test/datasets/unbalanced_blobs_2d_noise.mat -------------------------------------------------------------------------------- /test/datasets/unbalanced_blobs_20d_noise.mat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tvannoy/matlab-rnn-dbscan/HEAD/test/datasets/unbalanced_blobs_20d_noise.mat -------------------------------------------------------------------------------- /CITATION.cff: -------------------------------------------------------------------------------- 1 | cff-version: 1.2.0 2 | message: "If you use this software, please cite it as below." 3 | authors: 4 | - family-names: "Vannoy" 5 | given-names: "Trevor C." 6 | orcid: "https://orcid.org/0000-0003-4034-9963" 7 | title: "matlab-rnn-dbscan" 8 | version: 1.0.3 9 | doi: 10.5281/zenodo.10119016 10 | date-released: 2023-12-6 11 | url: "https://github.com/tvannoy/matlab-rnn-dbscan" 12 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD 3-Clause License 2 | 3 | Copyright (c) 2020 Trevor Vannoy 4 | 5 | Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 6 | 7 | 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 8 | 9 | 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 10 | 11 | 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. 12 | 13 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -------------------------------------------------------------------------------- /test/create_synthetic_data.py: -------------------------------------------------------------------------------- 1 | """ Create synthetic data for tests """ 2 | # SPDX-License-Identifier: BSD-3-Clause 3 | # Copyright (c) 2020 Trevor Vannoy 4 | import matplotlib.pyplot as plt 5 | import numpy as np 6 | from scipy.io import savemat 7 | from sklearn.datasets import make_blobs, make_moons, make_classification 8 | 9 | 10 | """ 11 | Dataset with unbalanced cluster sizes and random noise 12 | """ 13 | data, labels = make_blobs(n_samples = [20, 100, 500, 1500], centers=[[-2,8], [-2,-1], [5,5], [3,-2]], cluster_std=0.5, random_state=1) 14 | 15 | data = np.vstack((data, 4 * np.random.standard_normal(size=(50, 2)))) 16 | labels = np.concatenate([labels, -1 * np.ones(50)]) 17 | 18 | # plt.scatter(data[:,0], data[:,1], c=labels) 19 | # plt.show() 20 | 21 | savemat('unbalanced_blobs_2d_noise.mat', {'data': data, 'labels': labels}) 22 | 23 | """ 24 | Moons with noise 25 | """ 26 | data, labels = make_moons(n_samples=500, noise=0.1, random_state=1) 27 | 28 | data = np.vstack((data, np.random.standard_normal(size=(20, 2)))) 29 | labels = np.concatenate([labels, -1 * np.ones(20)]) 30 | 31 | # plt.scatter(data[:,0], data[:,1], c=labels) 32 | # plt.show() 33 | 34 | savemat('moons_with_noise.mat', {'data': data, 'labels': labels}) 35 | 36 | """ 37 | Gaussian blobs with noise features and random noise 38 | """ 39 | data, labels = make_classification(n_samples=1000, n_classes=4, n_clusters_per_class=1, weights=[0.02, 0.18, 0.3, 0.5], n_features=20, shuffle=False, class_sep=3, random_state=5) 40 | 41 | data = np.vstack((data, 5 * np.random.standard_normal(size=(50, 20)))) 42 | labels = np.concatenate([labels, -1 * np.ones(50)]) 43 | 44 | # plt.scatter(data[:,0], data[:,1], c=labels) 45 | # plt.show() 46 | 47 | savemat('unbalanced_blobs_20d_noise.mat', {'data': data, 'labels': labels}) 48 | 49 | """ 50 | Grid dataset with varying densities and noise 51 | """ 52 | grid1 = np.mgrid[-1:1:5j, -1:1:5j] 53 | grid1 = np.reshape(grid1, (2,25)).T + [-2.5, 0] 54 | grid2 = np.mgrid[-1:1:10j, -1:1:10j] 55 | grid2 = np.reshape(grid2, (2,100)).T 56 | grid3 = np.mgrid[-1:1:20j, -1:1:20j] 57 | grid3 = np.reshape(grid3, (2,400)).T + [-1, 2.5] 58 | noise = np.random.standard_normal(size=(20,2)) 59 | 60 | data = np.vstack((grid1, grid2, grid3, noise)) 61 | 62 | labels = np.concatenate([np.repeat(1, 25), np.repeat(2, 100), np.repeat(3, 400), np.repeat(-1, 20)]) 63 | 64 | # plt.scatter(data[:,0], data[:,1], c=labels) 65 | # plt.show() 66 | 67 | savemat('multiple_grids_noise.mat', {'data': data, 'labels': labels}) 68 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # matlab-rnn-dbscan 2 | [![View RNN DBSCAN on File Exchange](https://www.mathworks.com/matlabcentral/images/matlab-file-exchange.svg)](https://www.mathworks.com/matlabcentral/fileexchange/97924-rnn-dbscan) 3 | [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.10119016.svg)](https://doi.org/10.5281/zenodo.10119016) 4 | 5 | 6 | This repo contains a MATLAB implementation of the [RNN-DBSCAN algorithm by Bryant and Cios](https://doi.org/10.1109/TKDE.2017.2787640). This implementation is based upon the graph-based interpretation presented in their paper. 7 | 8 | 9 | RNN DBSCAN is a density-based clustering algorithm that uses reverse nearest neighbor counts as an estimate of observation density. It is based upon traversals of the directed k-nearest neighbor graph, and can handle clusters of different densities, unlike DBSCAN. For more details about the algorithm, see the [original paper](https://doi.org/10.1109/TKDE.2017.2787640). 10 | 11 | ## Dependencies 12 | - My [knn-graphs](https://github.com/tvannoy/knn-graphs) MATLAB library 13 | - Statistics and Machine Learning Toolbox 14 | 15 | To use the NN Descent algorithm to construct the KNN graph used by RNN DBSCAN, you need [pynndescent](https://github.com/lmcinnes/pynndescent) and [MATLAB's Python language interface](https://www.mathworks.com/help/matlab/call-python-libraries.html). I recommend using Conda to set up an environment, as MATLAB is picky about which Python versions it supports. 16 | 17 | ## Installation 18 | ### Install with [mpm](https://github.com/mobeets/mpm): 19 | ``` 20 | mpm install knn-graphs 21 | mpm install matlab-rnn-dbscan 22 | ``` 23 | ### Manual installation 24 | - Download [knn-graphs](https://www.mathworks.com/matlabcentral/fileexchange/97919-knn-graphs) from the MATLAB File Exchange 25 | - Download matlab-rnn-dbscan from the [MATLAB File Exchange](https://www.mathworks.com/matlabcentral/fileexchange/97924-rnn-dbscan) or from the latest [GitHub release](https://github.com/tvannoy/matlab-rnn-dbscan/archive/refs/tags/v1.0.1.zip) 26 | - Add both packages to your MATLAB path 27 | 28 | ## Usage 29 | `RnnDbscan` is a class with a single public method, `cluster`. The results of the clustering operation are stored in read-only public properties. 30 | 31 | Creating an RnnDbscan object: 32 | ```matlab 33 | % Create an RnnDbscan object using a 5-nearest-neighbor graph. 34 | % nNeighborsIndex is how many neighbors used to create the knn index, and must be >= nNeighbors + 1 35 | % because the index includes self-edges (each point is it's own nearest neighbor). 36 | nNeighors = 5; 37 | nNeighborsIndex = 6; 38 | rnndbscan = RnnDbscan(data, nNeighbors, nNeighborsIndex); 39 | 40 | % Use the NN Descent algorithm to create the knn index; this is much faster than an exhaustive search 41 | rnndbscan = RnnDbscan(data, nNeighbors, nNeighborsIndex, 'Method', 'nndescent'); 42 | 43 | % Explicitly use an exhaustive search, which is the default 44 | rnndbscan = RnnDbscan(data, nNeighbors, nNeighborsIndex, 'Method', 'knnsearch'); 45 | 46 | % Use a precomputed knn index 47 | knnidx = knnindex(data, nNeighborsIndex); 48 | rnndbscan = RnnDbscan(data, nNeighbors, knnidx); 49 | ``` 50 | 51 | Clustering: 52 | ```matlab 53 | rnndbscan.cluster(); 54 | % Or 55 | cluster(rnndbscan); 56 | 57 | % Inspect clusters, outliers, and labels 58 | rnndbscan.Clusters 59 | rnndbscan.Outliers 60 | rnndbscan.Labels 61 | ``` 62 | 63 | For more details, see the help text: `help RnnDbscan`. `RNN-DBSCAN tests.ipynb` also contains many tests, which can be used as usage examples. 64 | 65 | ## Contributing 66 | All contributions are welcome! Just submit a pull request or open an issue. -------------------------------------------------------------------------------- /test/datasets/pathbased.txt: -------------------------------------------------------------------------------- 1 | 11.25 5.05 1 2 | 10.95 4.7 1 3 | 9.85 5.8 1 4 | 9.8 5.75 1 5 | 9.15 6.8 1 6 | 8.65 6.6 1 7 | 8.4 7.5 1 8 | 7.9 7.75 1 9 | 6.95 8.7 1 10 | 7.25 9.75 1 11 | 7.3 10.25 1 12 | 5.9 10.7 1 13 | 5.85 11.8 1 14 | 6.45 12.05 1 15 | 5.7 12.95 1 16 | 5.35 13.45 1 17 | 5.4 14.65 1 18 | 4.7 14.85 1 19 | 5.4 15.4 1 20 | 5.1 16.25 1 21 | 5.75 16.7 1 22 | 4.85 17.65 1 23 | 5 18 1 24 | 6.05 18 1 25 | 5.7 19.45 1 26 | 5.3 19.55 1 27 | 5.85 21.25 1 28 | 6.1 21.35 1 29 | 6.55 22.15 1 30 | 5.9 22.8 1 31 | 7.15 23.7 1 32 | 6.75 24.25 1 33 | 7.95 24.65 1 34 | 7.75 25.3 1 35 | 8.8 26.05 1 36 | 8.85 26.95 1 37 | 9.35 27.45 1 38 | 9.95 27.1 1 39 | 11.25 28.2 1 40 | 10.7 28.55 1 41 | 11.95 29.45 1 42 | 11.95 28.65 1 43 | 13.1 30.05 1 44 | 13.4 29.3 1 45 | 14.7 30.2 1 46 | 14.7 30.6 1 47 | 16.1 30.4 1 48 | 16.1 31.05 1 49 | 17.55 30.8 1 50 | 17.65 31.75 1 51 | 18.55 31.6 1 52 | 18.85 30.6 1 53 | 19.85 30.9 1 54 | 20.1 31.3 1 55 | 21.5 31.35 1 56 | 20.85 30.4 1 57 | 22.95 30.05 1 58 | 23.4 30.3 1 59 | 24.2 29.9 1 60 | 24.75 30 1 61 | 25.55 29.3 1 62 | 25.55 28.45 1 63 | 26.7 28.3 1 64 | 26.85 28.75 1 65 | 27.6 27.15 1 66 | 28.25 27.4 1 67 | 29.05 27 1 68 | 29.05 26.2 1 69 | 29.45 25.55 1 70 | 30.05 25.55 1 71 | 30.3 23.3 1 72 | 30.6 23.95 1 73 | 30.9 22.75 1 74 | 31 22.3 1 75 | 30.65 21.3 1 76 | 31.3 20.8 1 77 | 31.85 21.2 1 78 | 31.45 19.3 1 79 | 32.7 19.3 1 80 | 31.9 17.9 1 81 | 33.05 18.05 1 82 | 32.8 16.6 1 83 | 32.2 16.3 1 84 | 32.4 15.15 1 85 | 31.8 14.75 1 86 | 32.35 13.25 1 87 | 31.65 13.35 1 88 | 31.15 12.05 1 89 | 32 11.9 1 90 | 31.05 10.3 1 91 | 31.95 10.4 1 92 | 30.05 9.55 1 93 | 30.5 8.25 1 94 | 29.6 8.25 1 95 | 29.8 7.6 1 96 | 29 7.05 1 97 | 29 6.7 1 98 | 27.6 5.95 1 99 | 28.15 5.45 1 100 | 26.5 4.8 1 101 | 26.4 4.4 1 102 | 25.8 3.65 1 103 | 25.5 4.1 1 104 | 31.6 16.6 1 105 | 30.7 17.4 1 106 | 29.65 17.95 1 107 | 29.15 16.5 1 108 | 30.5 15.55 1 109 | 29.95 13.55 3 110 | 30 11.85 1 111 | 28.65 14.1 3 112 | 27.45 10.85 3 113 | 26.4 10.75 3 114 | 25.05 10.1 3 115 | 26.2 11.55 3 116 | 27.2 13.3 3 117 | 28.3 14.45 3 118 | 27.95 14.65 3 119 | 27.95 14.7 3 120 | 23.15 11 3 121 | 22.9 11.6 3 122 | 23.9 11.6 3 123 | 24.55 11.6 3 124 | 23.85 12.45 3 125 | 23.35 13.1 3 126 | 24.85 13.2 3 127 | 25.1 12.25 3 128 | 25.15 12.5 3 129 | 25.65 12.9 3 130 | 25.7 13.5 3 131 | 26.3 13.3 3 132 | 27.1 14.55 3 133 | 27.15 14.6 3 134 | 26.4 14.35 3 135 | 26.4 14.35 3 136 | 25.75 14.55 3 137 | 25.75 14.9 3 138 | 25.35 14.65 3 139 | 23.7 14.55 3 140 | 24.05 14.9 3 141 | 23.65 15.3 3 142 | 22.75 14.5 3 143 | 22 14 3 144 | 20.9 12.95 3 145 | 20.3 13.1 3 146 | 22.2 16.45 3 147 | 22.15 16.65 3 148 | 22.4 15.15 3 149 | 22.15 15.2 3 150 | 23.95 15.95 3 151 | 24.25 16.1 3 152 | 24.8 16.1 3 153 | 25.15 16.15 3 154 | 25.5 16.7 3 155 | 25.75 16.85 3 156 | 26.2 16.85 3 157 | 26.25 16.9 3 158 | 26.25 16.35 3 159 | 26.75 16.2 3 160 | 27.4 16.15 3 161 | 27.6 16.85 3 162 | 26.95 17.2 3 163 | 26.3 18.1 3 164 | 27.55 17.95 3 165 | 27.7 17.6 3 166 | 28.25 18.25 3 167 | 28.8 19.15 3 168 | 28.5 19.15 3 169 | 28.1 19.35 3 170 | 28.05 20.3 3 171 | 27.3 20.5 3 172 | 27.1 21.6 3 173 | 26.75 19.5 3 174 | 26.5 20 3 175 | 25.9 19.8 3 176 | 25.1 19.8 3 177 | 24.75 20.7 3 178 | 24.35 20.55 3 179 | 23.55 20.35 3 180 | 24.3 19.7 3 181 | 24.9 19 3 182 | 24.7 16.8 3 183 | 24.35 16.8 3 184 | 24.4 17.15 3 185 | 24.9 17.3 3 186 | 24.35 17.7 3 187 | 24.95 17.8 3 188 | 24.95 18.05 3 189 | 24.4 18.35 3 190 | 23.65 18.6 3 191 | 22.85 18.9 3 192 | 22.4 20.65 3 193 | 22.5 17.8 3 194 | 22.45 18.25 3 195 | 21.6 17.7 3 196 | 21.35 18.05 3 197 | 21.3 18.25 3 198 | 19.95 19.8 3 199 | 20.45 20.45 3 200 | 20.35 16.95 3 201 | 19.7 17.45 3 202 | 19.35 17.45 3 203 | 12.45 9.15 2 204 | 10.1 10.05 2 205 | 11.75 12.2 2 206 | 9.55 12.4 2 207 | 8.65 13.35 2 208 | 7.75 13.55 2 209 | 8.55 15.15 2 210 | 8.05 15.9 2 211 | 8.45 15.9 2 212 | 8.6 16.85 2 213 | 9 17.05 2 214 | 9 16.3 2 215 | 9.35 16.3 2 216 | 9.55 15.3 2 217 | 9.65 14.85 2 218 | 10.15 15.05 2 219 | 10.05 15.6 2 220 | 10.4 16 2 221 | 10.65 16 2 222 | 10.9 15.95 2 223 | 10.7 15.35 2 224 | 11.35 15.05 2 225 | 11.15 14.75 2 226 | 11.05 14.6 2 227 | 11.15 14.2 2 228 | 11.1 13.6 2 229 | 12.5 13 2 230 | 13.3 12.45 2 231 | 13.5 12.4 2 232 | 13.95 11.75 2 233 | 14.4 12.2 2 234 | 15.4 12.2 2 235 | 15.25 12.45 2 236 | 14.6 12.75 2 237 | 14.1 13.05 2 238 | 14.2 13.25 2 239 | 14.75 13.45 2 240 | 13.15 13.4 2 241 | 13.05 13.7 2 242 | 12.65 13.65 2 243 | 15.45 13.75 2 244 | 14.65 14.2 2 245 | 13.75 14.05 2 246 | 13.75 14.5 2 247 | 12.95 14.8 2 248 | 13.2 14.9 2 249 | 13.25 15.5 2 250 | 12.1 15.35 2 251 | 12.15 15.5 2 252 | 11.25 16.4 2 253 | 12.7 15.6 2 254 | 12.5 16.15 2 255 | 12.7 16.6 2 256 | 12.15 16.2 2 257 | 11.95 16.5 2 258 | 11.45 16.8 2 259 | 11.05 17.2 2 260 | 11.3 17.6 2 261 | 11.65 17.6 2 262 | 11.25 18.25 2 263 | 11.05 18.45 2 264 | 11.05 18.55 2 265 | 10.55 18.55 2 266 | 10.8 19.2 2 267 | 7.45 19 1 268 | 10.05 20.1 2 269 | 9.95 20.5 2 270 | 10.65 20.45 2 271 | 10.3 22.75 2 272 | 11.7 19.6 2 273 | 12.2 19.65 2 274 | 13.2 20.1 2 275 | 13.55 20.05 2 276 | 14.15 20.05 2 277 | 14.25 21.5 2 278 | 13.25 21.4 2 279 | 12.85 18.1 2 280 | 13.75 18.3 2 281 | 14.2 18.35 2 282 | 14.25 18.8 2 283 | 13.75 16 2 284 | 13.75 16.7 2 285 | 13.75 17.05 2 286 | 14.05 16.8 2 287 | 14.5 16.95 2 288 | 14.75 16.65 2 289 | 15.25 16.05 2 290 | 15.4 16.2 2 291 | 15.85 16.2 2 292 | 15.5 15.55 2 293 | 15 14.95 2 294 | 16.6 16.15 2 295 | 17.9 15.6 2 296 | 17.5 18.05 2 297 | 16.65 17.5 2 298 | 15.45 17.3 2 299 | 15.45 17.8 2 300 | 15.7 18.4 2 301 | -------------------------------------------------------------------------------- /test/datasets/spiral.txt: -------------------------------------------------------------------------------- 1 | 31.95 7.95 3 2 | 31.15 7.3 3 3 | 30.45 6.65 3 4 | 29.7 6 3 5 | 28.9 5.55 3 6 | 28.05 5 3 7 | 27.2 4.55 3 8 | 26.35 4.15 3 9 | 25.4 3.85 3 10 | 24.6 3.6 3 11 | 23.6 3.3 3 12 | 22.75 3.15 3 13 | 21.85 3.05 3 14 | 20.9 3 3 15 | 20 2.9 3 16 | 19.1 3 3 17 | 18.2 3.2 3 18 | 17.3 3.25 3 19 | 16.55 3.5 3 20 | 15.7 3.7 3 21 | 14.85 4.1 3 22 | 14.15 4.4 3 23 | 13.4 4.75 3 24 | 12.7 5.2 3 25 | 12.05 5.65 3 26 | 11.45 6.15 3 27 | 10.9 6.65 3 28 | 10.3 7.25 3 29 | 9.7 7.85 3 30 | 9.35 8.35 3 31 | 8.9 9.05 3 32 | 8.55 9.65 3 33 | 8.15 10.35 3 34 | 7.95 10.95 3 35 | 7.75 11.7 3 36 | 7.55 12.35 3 37 | 7.45 13 3 38 | 7.35 13.75 3 39 | 7.3 14.35 3 40 | 7.35 14.95 3 41 | 7.35 15.75 3 42 | 7.55 16.35 3 43 | 7.7 16.95 3 44 | 7.8 17.55 3 45 | 8.05 18.15 3 46 | 8.3 18.75 3 47 | 8.65 19.3 3 48 | 8.9 19.85 3 49 | 9.3 20.3 3 50 | 9.65 20.8 3 51 | 10.2 21.25 3 52 | 10.6 21.65 3 53 | 11.1 22.15 3 54 | 11.55 22.45 3 55 | 11.95 22.7 3 56 | 12.55 23 3 57 | 13.05 23.2 3 58 | 13.45 23.4 3 59 | 14 23.55 3 60 | 14.55 23.6 3 61 | 15.1 23.75 3 62 | 15.7 23.75 3 63 | 16.15 23.85 3 64 | 16.7 23.8 3 65 | 17.15 23.75 3 66 | 17.75 23.75 3 67 | 18.2 23.6 3 68 | 18.65 23.5 3 69 | 19.1 23.35 3 70 | 19.6 23.15 3 71 | 20 22.95 3 72 | 20.4 22.7 3 73 | 20.7 22.55 3 74 | 21 22.15 3 75 | 21.45 21.95 3 76 | 21.75 21.55 3 77 | 22 21.25 3 78 | 22.25 21 3 79 | 22.5 20.7 3 80 | 22.65 20.35 3 81 | 22.75 20.05 3 82 | 22.9 19.65 3 83 | 23 19.35 3 84 | 23.1 19 3 85 | 23.15 18.65 3 86 | 23.2 18.25 3 87 | 23.2 18.05 3 88 | 23.2 17.8 3 89 | 23.1 17.45 3 90 | 23.05 17.15 3 91 | 22.9 16.9 3 92 | 22.85 16.6 3 93 | 22.7 16.4 3 94 | 22.6 16.2 3 95 | 22.55 16.05 3 96 | 22.4 15.95 3 97 | 22.35 15.8 3 98 | 22.2 15.65 3 99 | 22.15 15.55 3 100 | 22 15.4 3 101 | 21.9 15.3 3 102 | 21.85 15.25 3 103 | 21.75 15.15 3 104 | 21.65 15.05 3 105 | 21.55 15 3 106 | 21.5 14.9 3 107 | 19.35 31.65 1 108 | 20.35 31.45 1 109 | 21.35 31.1 1 110 | 22.25 30.9 1 111 | 23.2 30.45 1 112 | 23.95 30.05 1 113 | 24.9 29.65 1 114 | 25.6 29.05 1 115 | 26.35 28.5 1 116 | 27.15 27.9 1 117 | 27.75 27.35 1 118 | 28.3 26.6 1 119 | 28.95 25.85 1 120 | 29.5 25.15 1 121 | 29.95 24.45 1 122 | 30.4 23.7 1 123 | 30.6 22.9 1 124 | 30.9 22.1 1 125 | 31.25 21.3 1 126 | 31.35 20.55 1 127 | 31.5 19.7 1 128 | 31.55 18.9 1 129 | 31.65 18.15 1 130 | 31.6 17.35 1 131 | 31.45 16.55 1 132 | 31.3 15.8 1 133 | 31.15 15.05 1 134 | 30.9 14.35 1 135 | 30.6 13.65 1 136 | 30.3 13 1 137 | 29.9 12.3 1 138 | 29.5 11.75 1 139 | 29 11.15 1 140 | 28.5 10.6 1 141 | 28 10.1 1 142 | 27.55 9.65 1 143 | 26.9 9.1 1 144 | 26.25 8.8 1 145 | 25.7 8.4 1 146 | 25.15 8.05 1 147 | 24.5 7.75 1 148 | 23.9 7.65 1 149 | 23.15 7.4 1 150 | 22.5 7.3 1 151 | 21.9 7.1 1 152 | 21.25 7.05 1 153 | 20.5 7 1 154 | 19.9 6.95 1 155 | 19.25 7.05 1 156 | 18.75 7.1 1 157 | 18.05 7.25 1 158 | 17.5 7.35 1 159 | 16.9 7.6 1 160 | 16.35 7.8 1 161 | 15.8 8.05 1 162 | 15.4 8.35 1 163 | 14.9 8.7 1 164 | 14.45 8.9 1 165 | 13.95 9.3 1 166 | 13.6 9.65 1 167 | 13.25 10.1 1 168 | 12.95 10.55 1 169 | 12.65 10.9 1 170 | 12.35 11.4 1 171 | 12.2 11.75 1 172 | 11.95 12.2 1 173 | 11.8 12.65 1 174 | 11.75 13.05 1 175 | 11.55 13.6 1 176 | 11.55 14 1 177 | 11.55 14.35 1 178 | 11.55 14.7 1 179 | 11.6 15.25 1 180 | 11.65 15.7 1 181 | 11.8 16.05 1 182 | 11.85 16.5 1 183 | 12 16.75 1 184 | 12.15 17.2 1 185 | 12.3 17.6 1 186 | 12.55 17.85 1 187 | 12.8 18.05 1 188 | 13.1 18.4 1 189 | 13.3 18.6 1 190 | 13.55 18.85 1 191 | 13.8 19.05 1 192 | 14.15 19.25 1 193 | 14.45 19.5 1 194 | 14.85 19.55 1 195 | 15 19.7 1 196 | 15.25 19.7 1 197 | 15.55 19.85 1 198 | 15.95 19.9 1 199 | 16.2 19.9 1 200 | 16.55 19.9 1 201 | 16.85 19.9 1 202 | 17.2 19.9 1 203 | 17.4 19.8 1 204 | 17.65 19.75 1 205 | 17.8 19.7 1 206 | 18 19.6 1 207 | 18.2 19.55 1 208 | 3.9 9.6 2 209 | 3.55 10.65 2 210 | 3.35 11.4 2 211 | 3.1 12.35 2 212 | 3.1 13.25 2 213 | 3.05 14.15 2 214 | 3 15.1 2 215 | 3.1 16 2 216 | 3.2 16.85 2 217 | 3.45 17.75 2 218 | 3.7 18.7 2 219 | 3.95 19.55 2 220 | 4.35 20.25 2 221 | 4.7 21.1 2 222 | 5.15 21.8 2 223 | 5.6 22.5 2 224 | 6.2 23.3 2 225 | 6.8 23.85 2 226 | 7.35 24.45 2 227 | 8.05 24.95 2 228 | 8.8 25.45 2 229 | 9.5 26 2 230 | 10.2 26.35 2 231 | 10.9 26.75 2 232 | 11.7 27 2 233 | 12.45 27.25 2 234 | 13.3 27.6 2 235 | 14.05 27.6 2 236 | 14.7 27.75 2 237 | 15.55 27.75 2 238 | 16.4 27.75 2 239 | 17.1 27.75 2 240 | 17.9 27.75 2 241 | 18.55 27.7 2 242 | 19.35 27.6 2 243 | 20.1 27.35 2 244 | 20.7 27.1 2 245 | 21.45 26.8 2 246 | 22.05 26.5 2 247 | 22.7 26.15 2 248 | 23.35 25.65 2 249 | 23.8 25.3 2 250 | 24.3 24.85 2 251 | 24.75 24.35 2 252 | 25.25 23.95 2 253 | 25.65 23.45 2 254 | 26.05 23 2 255 | 26.2 22.3 2 256 | 26.6 21.8 2 257 | 26.75 21.25 2 258 | 27 20.7 2 259 | 27.15 20.15 2 260 | 27.15 19.6 2 261 | 27.35 19.1 2 262 | 27.35 18.45 2 263 | 27.4 18 2 264 | 27.3 17.4 2 265 | 27.15 16.9 2 266 | 27 16.4 2 267 | 27 15.9 2 268 | 26.75 15.35 2 269 | 26.55 14.85 2 270 | 26.3 14.45 2 271 | 25.95 14.1 2 272 | 25.75 13.7 2 273 | 25.35 13.3 2 274 | 25.05 12.95 2 275 | 24.8 12.7 2 276 | 24.4 12.45 2 277 | 24.05 12.2 2 278 | 23.55 11.85 2 279 | 23.2 11.65 2 280 | 22.75 11.4 2 281 | 22.3 11.3 2 282 | 21.9 11.1 2 283 | 21.45 11.05 2 284 | 21.1 11 2 285 | 20.7 10.95 2 286 | 20.35 10.95 2 287 | 19.95 11 2 288 | 19.55 11 2 289 | 19.15 11.05 2 290 | 18.85 11.1 2 291 | 18.45 11.25 2 292 | 18.15 11.35 2 293 | 17.85 11.5 2 294 | 17.5 11.7 2 295 | 17.2 11.95 2 296 | 17 12.05 2 297 | 16.75 12.2 2 298 | 16.65 12.35 2 299 | 16.5 12.5 2 300 | 16.35 12.7 2 301 | 16.2 12.8 2 302 | 16.15 12.95 2 303 | 16 13.1 2 304 | 15.95 13.25 2 305 | 15.9 13.4 2 306 | 15.8 13.5 2 307 | 15.8 13.65 2 308 | 15.75 13.85 2 309 | 15.65 14.05 2 310 | 15.65 14.25 2 311 | 15.65 14.5 2 312 | 15.65 14.6 2 313 | -------------------------------------------------------------------------------- /test/datasets/Compound.txt: -------------------------------------------------------------------------------- 1 | 26.75 22.15 1 2 | 29.8 22.15 1 3 | 31.55 21.1 1 4 | 27.7 20.85 1 5 | 29.9 19.95 1 6 | 26.8 19.05 1 7 | 28.35 18.25 1 8 | 30.4 17.85 1 9 | 27.25 16.7 1 10 | 29.05 16 1 11 | 27.15 14.85 1 12 | 28.2 13.95 1 13 | 30.35 13.85 1 14 | 27.25 11.95 1 15 | 29.45 12.05 1 16 | 31.55 12.2 1 17 | 33.05 10.65 1 18 | 29.95 9.85 1 19 | 28 9.75 1 20 | 27.15 7.85 1 21 | 29.15 8.1 1 22 | 31.95 8.6 1 23 | 34.7 8.55 1 24 | 34.8 12.25 1 25 | 36.3 15.25 1 26 | 36.6 13.2 1 27 | 38.7 14.25 1 28 | 40.3 15.5 1 29 | 42.25 14.25 1 30 | 40.7 12.8 1 31 | 38.6 12.1 1 32 | 36.1 10.5 1 33 | 38.35 10.4 1 34 | 37.65 8.4 1 35 | 40.15 8.55 1 36 | 40.8 10.65 1 37 | 42.9 11.25 1 38 | 41.95 8.5 1 39 | 42.45 17.45 1 40 | 40.25 18.45 1 41 | 42.55 19.45 1 42 | 40.95 20.65 1 43 | 42.25 22.15 1 44 | 38.85 22.4 1 45 | 38.4 20 1 46 | 35.25 20.2 1 47 | 33.25 21 1 48 | 34.15 22.35 1 49 | 35.55 22.5 1 50 | 36.55 21.4 1 51 | 33.35 19.6 2 52 | 32.85 19.55 2 53 | 32.4 19.15 2 54 | 32.45 18.7 2 55 | 32.8 18.9 2 56 | 33.2 19.2 2 57 | 33.7 19.05 2 58 | 33.4 18.75 2 59 | 33.05 18.5 2 60 | 32.8 18.2 2 61 | 34 18.7 2 62 | 33.85 18.25 2 63 | 33.35 18.15 2 64 | 32.8 17.7 2 65 | 33.15 17.55 2 66 | 33.75 17.75 2 67 | 34.15 17.85 2 68 | 34.35 18.35 2 69 | 34.95 18.5 2 70 | 34.75 18.05 2 71 | 35.15 18.05 2 72 | 35.65 18.15 2 73 | 35.45 18.7 2 74 | 36.05 18.75 2 75 | 36.25 18.2 2 76 | 36.6 18.7 2 77 | 37.1 18.5 2 78 | 36.75 18.1 2 79 | 37.65 18.3 2 80 | 37.15 17.85 2 81 | 37.65 17.75 2 82 | 38.05 18.1 2 83 | 38.45 17.7 2 84 | 38.8 17.3 2 85 | 38.2 17.25 2 86 | 38.6 16.8 2 87 | 38.25 16.35 2 88 | 37.9 16.85 2 89 | 37.5 17.3 2 90 | 37.65 16.4 2 91 | 37.15 16.7 2 92 | 37 17.15 2 93 | 36.6 17.4 2 94 | 36.15 17.55 2 95 | 35.75 17.65 2 96 | 36.6 16.9 2 97 | 36.05 16.95 2 98 | 35.45 17 2 99 | 35.3 17.55 2 100 | 34.9 17 2 101 | 34.75 17.45 2 102 | 34.3 17.35 2 103 | 34.3 16.8 2 104 | 33.9 17.2 2 105 | 33.35 17.05 2 106 | 32.85 16.95 2 107 | 33.55 16.6 2 108 | 34 16.4 2 109 | 32.45 17.2 2 110 | 32.1 16.85 2 111 | 31.7 16.65 2 112 | 31.2 16.35 2 113 | 30.95 15.75 2 114 | 31.15 15.35 2 115 | 31.45 15.1 2 116 | 31.75 14.7 2 117 | 32.15 14.35 2 118 | 32.65 14.15 2 119 | 33.15 14.05 2 120 | 33.8 13.9 2 121 | 34.35 14.2 2 122 | 34.3 14.85 2 123 | 34.05 15.35 2 124 | 33.9 15.95 2 125 | 33.35 16.05 2 126 | 33 16.5 2 127 | 32.45 16.6 2 128 | 31.95 16.25 2 129 | 31.5 15.85 2 130 | 31.75 15.4 2 131 | 32.15 15.8 2 132 | 32.55 16.1 2 133 | 32.9 15.7 2 134 | 32.55 15.4 2 135 | 32.05 15.2 2 136 | 32.5 14.8 2 137 | 33 15.25 2 138 | 33.5 15.6 2 139 | 33.6 15.05 2 140 | 32.9 14.7 2 141 | 33.3 14.5 2 142 | 33.8 14.5 2 143 | 9.2 22.35 3 144 | 10.9 22.35 3 145 | 12.45 22.3 3 146 | 13.95 22.05 3 147 | 14.65 20.3 3 148 | 13.15 20.8 3 149 | 11.6 20.95 3 150 | 10.25 21.25 3 151 | 9.2 20.8 3 152 | 8.05 21.55 3 153 | 7.15 19.9 3 154 | 8.55 20 3 155 | 8.5 19.2 3 156 | 7.35 18.3 3 157 | 8.25 16.65 3 158 | 8.95 18 3 159 | 9.6 18.85 3 160 | 9.65 19.75 3 161 | 10.2 20.25 3 162 | 10.9 20.3 3 163 | 12.15 20 3 164 | 11.25 19.75 3 165 | 10.8 19.6 3 166 | 10.4 19.55 3 167 | 10.65 19.35 3 168 | 10.3 19.15 3 169 | 10.95 19.1 3 170 | 10.6 18.85 3 171 | 10.05 18.1 3 172 | 10.35 16.9 3 173 | 10.05 15.9 3 174 | 11.15 18.1 3 175 | 12.1 18.75 3 176 | 13.2 19.2 3 177 | 11.5 17.1 3 178 | 12.65 17.65 3 179 | 14.45 18.35 4 180 | 13.9 16.7 3 181 | 12.6 15.8 3 182 | 15.95 20.75 4 183 | 16.95 21.6 4 184 | 17.9 21.95 4 185 | 19 22.7 4 186 | 20.45 22.75 4 187 | 19.1 21.7 4 188 | 20.4 21.4 4 189 | 21.95 21.9 4 190 | 18.65 20.7 4 191 | 17.75 20.55 4 192 | 17.05 19.85 4 193 | 15.75 19.45 4 194 | 15.75 18.25 4 195 | 16.35 16.9 4 196 | 17.2 15.9 4 197 | 17.9 17 4 198 | 17.3 17.75 4 199 | 17 18.9 4 200 | 17.8 18.65 4 201 | 17.85 19.5 4 202 | 18.5 19.9 4 203 | 19.1 19.95 4 204 | 19.55 20.55 4 205 | 20.1 19.9 4 206 | 19.55 19.3 4 207 | 18.95 19.3 4 208 | 18.55 19.2 4 209 | 18.45 18.85 4 210 | 18.85 18.9 4 211 | 19.2 18.8 4 212 | 18.75 18.55 4 213 | 18.3 18.1 4 214 | 19.1 17.8 4 215 | 19 16.75 4 216 | 18.75 15.5 4 217 | 19.65 18.2 4 218 | 20.1 18.95 4 219 | 21.25 20.4 4 220 | 21.45 19 4 221 | 20.9 17.9 4 222 | 20.25 17.2 4 223 | 20.1 15.4 4 224 | 21.4 15.95 4 225 | 22.2 17.15 4 226 | 11.4 12.55 5 227 | 12.05 12.75 5 228 | 12.7 13 5 229 | 13.35 13.05 5 230 | 14.2 12.95 5 231 | 15.05 12.95 5 232 | 15.6 12.95 5 233 | 16.1 13.1 5 234 | 15.95 12.6 5 235 | 15.4 12.45 5 236 | 14.65 12.4 5 237 | 13.85 12.4 5 238 | 13.15 12.2 5 239 | 12.65 12.4 5 240 | 11.9 12.1 5 241 | 12 11.5 5 242 | 12.65 11.65 5 243 | 13.4 11.65 5 244 | 14.1 11.7 5 245 | 14.6 11.8 5 246 | 15.2 11.95 5 247 | 15.05 11.55 5 248 | 14.45 11.2 5 249 | 13.95 10.9 5 250 | 13.05 11.1 5 251 | 13.55 10.65 5 252 | 12.45 10.9 5 253 | 13.2 10.25 5 254 | 11.25 11.1 5 255 | 11.25 11.85 5 256 | 10.7 12.25 5 257 | 10.05 11.85 5 258 | 10.6 11.6 5 259 | 9.75 11.35 5 260 | 10.4 10.9 5 261 | 9.75 10.6 5 262 | 9.75 9.8 5 263 | 10.35 10.2 5 264 | 10.9 10.4 5 265 | 11.7 10.55 5 266 | 12.4 10.1 5 267 | 12.9 9.7 5 268 | 12.35 9.65 5 269 | 11.85 10 5 270 | 11.15 9.8 5 271 | 10.65 9.55 5 272 | 10.1 9.25 5 273 | 10.75 9 5 274 | 11.1 9.3 5 275 | 11.7 9.4 5 276 | 12.15 9.1 5 277 | 12.85 9.05 5 278 | 12.45 8.7 5 279 | 11.95 8.25 5 280 | 11.7 8.85 5 281 | 11.3 8.5 5 282 | 11.55 7.95 5 283 | 12.9 8.5 5 284 | 13.25 8.05 5 285 | 12.65 7.95 5 286 | 12.1 7.6 5 287 | 11.65 7.35 5 288 | 12.2 7 5 289 | 11.8 6.65 5 290 | 12.65 7.3 5 291 | 13.2 7.55 5 292 | 13.65 7.75 5 293 | 14.35 7.55 5 294 | 13.8 7.3 5 295 | 13.35 6.85 5 296 | 12.7 6.7 5 297 | 12.45 6.25 5 298 | 13.2 5.85 5 299 | 13.65 6.25 5 300 | 14.1 6.75 5 301 | 14.7 6.9 5 302 | 15 7.5 5 303 | 15.85 7.3 5 304 | 15.35 7.05 5 305 | 15.1 6.35 5 306 | 14.45 6.3 5 307 | 14.75 5.75 5 308 | 13.95 5.8 5 309 | 15.5 5.9 5 310 | 15.8 6.4 5 311 | 16.05 6.85 5 312 | 16.55 7.1 5 313 | 16.7 6.5 5 314 | 16.25 6.1 5 315 | 17.05 6.25 5 316 | 15.85 11.55 5 317 | 15.9 12.1 5 318 | 16.3 11.65 5 319 | 16.55 12.05 5 320 | 16.5 12.6 5 321 | 16.75 13.1 5 322 | 17.5 13 5 323 | 17.15 12.65 5 324 | 17.1 12.1 5 325 | 16.9 11.7 5 326 | 17.4 11.65 5 327 | 17.55 12.1 5 328 | 17.75 12.65 5 329 | 18.3 12.75 5 330 | 18.25 12.25 5 331 | 18 11.95 5 332 | 17.85 11.5 5 333 | 18.3 11.65 5 334 | 18.6 12 5 335 | 18.85 12.45 5 336 | 19.1 11.8 5 337 | 18.85 11.45 5 338 | 18.5 11.15 5 339 | 18.95 10.8 5 340 | 19.3 11.15 5 341 | 19.4 10.7 5 342 | 19.25 10.35 5 343 | 19.9 10.6 5 344 | 19.65 10.15 5 345 | 19.45 9.75 5 346 | 19.9 9.45 5 347 | 20.3 10.05 5 348 | 20.65 10.35 5 349 | 21.25 10.1 5 350 | 20.9 9.9 5 351 | 21.65 9.65 5 352 | 21.15 9.35 5 353 | 20.5 9.4 5 354 | 19.5 9.2 5 355 | 19.95 8.85 5 356 | 20.65 8.8 5 357 | 21.2 8.7 5 358 | 21.9 8.85 5 359 | 21.75 8.25 5 360 | 21.65 7.8 5 361 | 21.05 8 5 362 | 20.3 8.2 5 363 | 19.4 8.7 5 364 | 19.6 8.05 5 365 | 18.95 8.1 5 366 | 20 7.6 5 367 | 20.55 7.55 5 368 | 21.25 7.25 5 369 | 20.85 6.85 5 370 | 20.25 7.05 5 371 | 19.55 7.05 5 372 | 19.05 7.45 5 373 | 18.35 7.6 5 374 | 17.85 7.3 5 375 | 18.3 7.1 5 376 | 18.95 6.85 5 377 | 19.6 6.25 5 378 | 20.15 6.45 5 379 | 18.8 6.25 5 380 | 18.35 6.55 5 381 | 17.65 6.55 5 382 | 17.25 6.9 5 383 | 17.95 6.2 5 384 | 17.45 9.85 6 385 | 17.2 9.25 6 386 | 17 9.6 6 387 | 17 10.05 6 388 | 16.45 10.1 6 389 | 16.5 9.8 6 390 | 16.6 9.45 6 391 | 16.6 9.05 6 392 | 15.9 9 6 393 | 16.05 9.35 6 394 | 16.05 9.65 6 395 | 15.85 9.95 6 396 | 15.35 9.9 6 397 | 15.6 9.45 6 398 | 15.3 9.15 6 399 | 15.1 9.55 6 400 | -------------------------------------------------------------------------------- /test/datasets/ds2c2sc13.csv: -------------------------------------------------------------------------------- 1 | x,y,class 2 | 0.22896,0.30303,1 3 | 0.22896,0.28956,1 4 | 0.22896,0.27273,1 5 | 0.23232,0.25926,1 6 | 0.23569,0.24242,1 7 | 0.24242,0.23232,1 8 | 0.25926,0.22222,1 9 | 0.27609,0.21212,1 10 | 0.2963,0.21212,1 11 | 0.32323,0.21212,1 12 | 0.35017,0.21886,1 13 | 0.37037,0.21886,1 14 | 0.38721,0.23569,1 15 | 0.39731,0.24916,1 16 | 0.40404,0.26936,1 17 | 0.40404,0.2862,1 18 | 0.40404,0.3064,1 19 | 0.39731,0.3266,1 20 | 0.21886,0.3165,1 21 | 0.21886,0.29966,1 22 | 0.21886,0.28956,1 23 | 0.22559,0.26936,1 24 | 0.22222,0.2862,1 25 | 0.22896,0.25253,1 26 | 0.22896,0.23906,1 27 | 0.24242,0.22896,1 28 | 0.24916,0.21212,1 29 | 0.26936,0.20202,1 30 | 0.2862,0.20202,1 31 | 0.30303,0.20202,1 32 | 0.31987,0.20202,1 33 | 0.32997,0.20202,1 34 | 0.34343,0.20202,1 35 | 0.3569,0.20875,1 36 | 0.38384,0.20875,1 37 | 0.39731,0.22559,1 38 | 0.37037,0.22559,1 39 | 0.40741,0.23569,1 40 | 0.41751,0.25589,1 41 | 0.41751,0.26936,1 42 | 0.41751,0.28956,1 43 | 0.42088,0.3064,1 44 | 0.41077,0.31987,1 45 | 0.20875,0.31313,1 46 | 0.20875,0.2862,1 47 | 0.20875,0.2963,1 48 | 0.21549,0.27946,1 49 | 0.20875,0.26936,1 50 | 0.21549,0.25253,1 51 | 0.21549,0.26599,1 52 | 0.21886,0.23569,1 53 | 0.22222,0.22559,1 54 | 0.22896,0.21886,1 55 | 0.23569,0.20539,1 56 | 0.25589,0.19529,1 57 | 0.26599,0.19192,1 58 | 0.27273,0.19192,1 59 | 0.28956,0.18855,1 60 | 0.3064,0.18855,1 61 | 0.31987,0.18855,1 62 | 0.34343,0.18519,1 63 | 0.36364,0.18519,1 64 | 0.38384,0.20202,1 65 | 0.37037,0.20202,1 66 | 0.35354,0.19192,1 67 | 0.33333,0.19192,1 68 | 0.367,0.19865,1 69 | 0.36364,0.21212,1 70 | 0.39394,0.21212,1 71 | 0.40404,0.22222,1 72 | 0.41414,0.23569,1 73 | 0.42088,0.24579,1 74 | 0.42424,0.26599,1 75 | 0.42761,0.2862,1 76 | 0.42761,0.29966,1 77 | 0.42424,0.3165,1 78 | 0.41077,0.32997,1 79 | 0.32997,0.18182,1 80 | 0.30976,0.17845,1 81 | 0.28956,0.17845,1 82 | 0.27946,0.17845,1 83 | 0.26263,0.18182,1 84 | 0.23906,0.19192,1 85 | 0.22896,0.19865,1 86 | 0.37374,0.23569,1 87 | 0.39731,0.23906,1 88 | 0.41077,0.25253,1 89 | 0.22222,0.20875,1 90 | 0.21549,0.21886,1 91 | 0.20875,0.23232,1 92 | 0.20202,0.24579,1 93 | 0.19865,0.25926,1 94 | 0.19865,0.26599,1 95 | 0.19865,0.27609,1 96 | 0.19865,0.2862,1 97 | 0.19529,0.29966,1 98 | 0.19529,0.31313,1 99 | 0.20202,0.30303,1 100 | 0.39057,0.21886,1 101 | 0.38047,0.22222,1 102 | 0.39731,0.26263,1 103 | 0.38721,0.24579,1 104 | 0.34007,0.21549,1 105 | 0.36364,0.22896,1 106 | 0.40067,0.27609,1 107 | 0.40067,0.2963,1 108 | 0.42088,0.33333,1 109 | 0.42761,0.32323,1 110 | 0.29293,0.2963,2 111 | 0.28283,0.2862,2 112 | 0.2862,0.27609,2 113 | 0.2862,0.26599,2 114 | 0.29966,0.25926,2 115 | 0.31313,0.25926,2 116 | 0.3266,0.27273,2 117 | 0.3266,0.2963,2 118 | 0.31313,0.3064,2 119 | 0.30303,0.3064,2 120 | 0.30303,0.29293,2 121 | 0.29293,0.28956,2 122 | 0.30303,0.27609,2 123 | 0.3165,0.28283,2 124 | 0.30976,0.28283,2 125 | 0.3165,0.29293,2 126 | 0.2963,0.27609,2 127 | 0.30976,0.26599,2 128 | 0.31987,0.27273,2 129 | 0.32997,0.28956,2 130 | 0.33333,0.27946,2 131 | 0.29966,0.26599,2 132 | 0.31987,0.26263,2 133 | 0.32997,0.26599,2 134 | 0.2862,0.33333,3 135 | 0.2963,0.32997,3 136 | 0.31313,0.3266,3 137 | 0.32997,0.33333,3 138 | 0.3367,0.36364,3 139 | 0.31987,0.38047,3 140 | 0.29966,0.38047,3 141 | 0.2862,0.367,3 142 | 0.2862,0.34343,3 143 | 0.2963,0.3367,3 144 | 0.30976,0.3367,3 145 | 0.3165,0.3367,3 146 | 0.31987,0.3468,3 147 | 0.29966,0.35354,3 148 | 0.30303,0.367,3 149 | 0.30976,0.36027,3 150 | 0.31987,0.36364,3 151 | 0.30976,0.37374,3 152 | 0.3266,0.37374,3 153 | 0.3367,0.35017,3 154 | 0.3064,0.3468,3 155 | 0.29293,0.36364,3 156 | 0.28283,0.3569,3 157 | 0.32997,0.3569,3 158 | 0.32997,0.34007,3 159 | 0.32323,0.32997,3 160 | 0.3064,0.32997,3 161 | 0.30976,0.40067,4 162 | 0.31987,0.40067,4 163 | 0.33333,0.40741,4 164 | 0.29966,0.40404,4 165 | 0.2862,0.41414,4 166 | 0.27609,0.43771,4 167 | 0.27946,0.46128,4 168 | 0.29966,0.46465,4 169 | 0.31987,0.46465,4 170 | 0.3367,0.45791,4 171 | 0.3367,0.42761,4 172 | 0.32323,0.42088,4 173 | 0.30976,0.42088,4 174 | 0.2963,0.42761,4 175 | 0.2862,0.44444,4 176 | 0.29966,0.45118,4 177 | 0.30976,0.44444,4 178 | 0.30976,0.43098,4 179 | 0.3064,0.42424,4 180 | 0.2963,0.41414,4 181 | 0.2862,0.43434,4 182 | 0.2963,0.44108,4 183 | 0.30303,0.43771,4 184 | 0.31313,0.41077,4 185 | 0.32997,0.41414,4 186 | 0.33333,0.42761,4 187 | 0.31987,0.44108,4 188 | 0.29966,0.41414,4 189 | 0.2963,0.40404,4 190 | 0.2862,0.40404,4 191 | 0.28283,0.41414,4 192 | 0.2862,0.42761,4 193 | 0.29293,0.42088,4 194 | 0.27273,0.43098,4 195 | 0.27273,0.41414,4 196 | 0.29293,0.41414,4 197 | 0.32323,0.40741,4 198 | 0.27946,0.42088,4 199 | 0.2963,0.39731,4 200 | 0.3064,0.39731,4 201 | 0.33333,0.41751,4 202 | 0.33333,0.44444,4 203 | 0.3266,0.43434,4 204 | 0.32323,0.45118,4 205 | 0.30303,0.45791,4 206 | 0.2862,0.45791,4 207 | 0.27946,0.45118,4 208 | 0.27273,0.44781,4 209 | 0.28956,0.46801,4 210 | 0.31313,0.45118,4 211 | 0.30976,0.46465,4 212 | 0.31987,0.46465,4 213 | 0.3266,0.46128,4 214 | 0.34007,0.44444,4 215 | 0.3064,0.41077,4 216 | 0.32323,0.41414,4 217 | 0.3165,0.42424,4 218 | 0.31987,0.43434,4 219 | 0.3367,0.43771,4 220 | 0.32997,0.45118,4 221 | 0.31313,0.45791,4 222 | 0.29293,0.45455,4 223 | 0.2963,0.45791,4 224 | 0.2963,0.42088,4 225 | 0.3165,0.41751,4 226 | 0.31987,0.43434,4 227 | 0.31313,0.43771,4 228 | 0.30303,0.44444,4 229 | 0.29293,0.44108,4 230 | 0.29293,0.43434,4 231 | 0.31987,0.40741,4 232 | 0.30976,0.40741,4 233 | 0.27946,0.43098,4 234 | 0.39394,0.62626,5 235 | 0.40067,0.61953,5 236 | 0.40741,0.61279,5 237 | 0.41751,0.60269,5 238 | 0.42761,0.59259,5 239 | 0.43771,0.57912,5 240 | 0.39394,0.61953,5 241 | 0.40067,0.61279,5 242 | 0.40741,0.60606,5 243 | 0.41414,0.59933,5 244 | 0.41751,0.59259,5 245 | 0.42088,0.58586,5 246 | 0.42761,0.57912,5 247 | 0.43434,0.58923,5 248 | 0.43098,0.59933,5 249 | 0.42424,0.60943,5 250 | 0.41077,0.61953,5 251 | 0.40404,0.62963,5 252 | 0.39394,0.61279,5 253 | 0.40067,0.60269,5 254 | 0.42088,0.61279,5 255 | 0.40741,0.59596,5 256 | 0.41751,0.60943,5 257 | 0.43434,0.57576,5 258 | 0.44108,0.58586,5 259 | 0.43098,0.58249,5 260 | 0.38384,0.633,5 261 | 0.39057,0.63973,5 262 | 0.38721,0.62963,5 263 | 0.39731,0.633,5 264 | 0.38384,0.64646,5 265 | 0.38384,0.6229,5 266 | 0.37374,0.71044,6 267 | 0.38047,0.70707,6 268 | 0.39057,0.69697,6 269 | 0.39731,0.68687,6 270 | 0.40741,0.67677,6 271 | 0.41751,0.66667,6 272 | 0.42424,0.65993,6 273 | 0.43771,0.64983,6 274 | 0.44444,0.6431,6 275 | 0.45455,0.6229,6 276 | 0.46801,0.60269,6 277 | 0.48485,0.58586,6 278 | 0.49832,0.57239,6 279 | 0.47811,0.59596,6 280 | 0.46128,0.60943,6 281 | 0.44444,0.633,6 282 | 0.43098,0.64646,6 283 | 0.41077,0.6633,6 284 | 0.40067,0.6734,6 285 | 0.39057,0.68687,6 286 | 0.38047,0.69697,6 287 | 0.37037,0.7037,6 288 | 0.39057,0.71044,6 289 | 0.40067,0.70707,6 290 | 0.40404,0.69697,6 291 | 0.41077,0.69024,6 292 | 0.41751,0.68687,6 293 | 0.42424,0.67677,6 294 | 0.43434,0.67003,6 295 | 0.43771,0.65993,6 296 | 0.45118,0.6532,6 297 | 0.45791,0.6431,6 298 | 0.46128,0.62963,6 299 | 0.47138,0.61616,6 300 | 0.48148,0.61279,6 301 | 0.47811,0.60606,6 302 | 0.48822,0.60269,6 303 | 0.49158,0.59259,6 304 | 0.50168,0.57912,6 305 | 0.49495,0.58249,6 306 | 0.45791,0.61953,6 307 | 0.47138,0.6229,6 308 | 0.42424,0.6532,6 309 | 0.45455,0.633,6 310 | 0.46465,0.63636,6 311 | 0.39731,0.68013,6 312 | 0.41077,0.6835,6 313 | 0.41414,0.6734,6 314 | 0.42424,0.67003,6 315 | 0.43771,0.70707,7 316 | 0.44781,0.70034,7 317 | 0.46128,0.6936,7 318 | 0.46801,0.6835,7 319 | 0.47811,0.6734,7 320 | 0.48148,0.6633,7 321 | 0.49158,0.6532,7 322 | 0.47811,0.6734,7 323 | 0.44444,0.71717,7 324 | 0.45791,0.71044,7 325 | 0.46465,0.69697,7 326 | 0.47475,0.6936,7 327 | 0.48148,0.68013,7 328 | 0.49158,0.6734,7 329 | 0.50168,0.6633,7 330 | 0.49495,0.66667,7 331 | 0.45455,0.70707,7 332 | 0.44781,0.71044,7 333 | 0.45455,0.7037,7 334 | 0.45455,0.69697,7 335 | 0.46801,0.7037,7 336 | 0.50168,0.65657,7 337 | 0.49158,0.65657,7 338 | 0.50168,0.6532,7 339 | 0.50168,0.64646,7 340 | 0.51178,0.64983,7 341 | 0.51178,0.63973,7 342 | 0.50168,0.63636,7 343 | 0.51178,0.633,7 344 | 0.47138,0.67677,7 345 | 0.47475,0.69024,7 346 | 0.48148,0.6835,7 347 | 0.46465,0.69024,7 348 | 0.53535,0.72727,8 349 | 0.54209,0.74074,8 350 | 0.55219,0.75084,8 351 | 0.56902,0.77104,8 352 | 0.58923,0.78788,8 353 | 0.59933,0.80471,8 354 | 0.61953,0.82492,8 355 | 0.54209,0.73064,8 356 | 0.55219,0.74747,8 357 | 0.55892,0.75084,8 358 | 0.55892,0.76431,8 359 | 0.57239,0.76431,8 360 | 0.57239,0.78451,8 361 | 0.58249,0.77778,8 362 | 0.58249,0.79461,8 363 | 0.59259,0.78788,8 364 | 0.58923,0.80135,8 365 | 0.60606,0.79461,8 366 | 0.61953,0.80808,8 367 | 0.60606,0.81145,8 368 | 0.61279,0.82155,8 369 | 0.57239,0.75421,8 370 | 0.56566,0.76094,8 371 | 0.55219,0.73737,8 372 | 0.56229,0.74411,8 373 | 0.633,0.81818,8 374 | 0.633,0.83165,8 375 | 0.62963,0.81818,8 376 | 0.61953,0.81818,8 377 | 0.61279,0.80135,8 378 | 0.633,0.81145,8 379 | 0.58249,0.78788,8 380 | 0.55556,0.75758,8 381 | 0.58249,0.76431,8 382 | 0.58586,0.77104,8 383 | 0.59259,0.78114,8 384 | 0.59596,0.79798,8 385 | 0.60606,0.80471,8 386 | 0.61616,0.81481,8 387 | 0.60269,0.78788,8 388 | 0.53535,0.79125,9 389 | 0.53872,0.80135,9 390 | 0.55219,0.80808,9 391 | 0.54209,0.79798,9 392 | 0.55892,0.80135,9 393 | 0.56902,0.81818,9 394 | 0.58586,0.83165,9 395 | 0.57576,0.81818,9 396 | 0.57576,0.83502,9 397 | 0.58249,0.84848,9 398 | 0.55892,0.83165,9 399 | 0.54545,0.80808,9 400 | 0.55892,0.81481,9 401 | 0.55892,0.82492,9 402 | 0.56566,0.83165,9 403 | 0.56902,0.83838,9 404 | 0.58586,0.84512,9 405 | 0.58923,0.84512,9 406 | 0.56229,0.82155,9 407 | 0.55219,0.82155,9 408 | 0.54209,0.78788,9 409 | 0.54545,0.79798,9 410 | 0.55556,0.80471,9 411 | 0.56902,0.83165,9 412 | 0.57239,0.82828,9 413 | 0.57912,0.82828,9 414 | 0.56902,0.82155,9 415 | 0.56566,0.82492,9 416 | 0.58249,0.73401,10 417 | 0.59596,0.75084,10 418 | 0.61616,0.76431,10 419 | 0.62963,0.79125,10 420 | 0.61953,0.77778,10 421 | 0.61279,0.77104,10 422 | 0.60269,0.75758,10 423 | 0.59933,0.74074,10 424 | 0.61616,0.75084,10 425 | 0.6229,0.76768,10 426 | 0.62963,0.78788,10 427 | 0.61953,0.77104,10 428 | 0.60943,0.75758,10 429 | 0.60943,0.74747,10 430 | 0.59259,0.74747,10 431 | 0.58249,0.74411,10 432 | 0.60269,0.75758,10 433 | 0.6229,0.77778,10 434 | 0.62963,0.78114,10 435 | 0.62626,0.76431,10 436 | 0.60943,0.75421,10 437 | 0.58923,0.73737,10 438 | 0.62963,0.77441,10 439 | 0.60606,0.75084,10 440 | 0.57912,0.67003,11 441 | 0.58586,0.65993,11 442 | 0.58923,0.6633,11 443 | 0.59259,0.65993,11 444 | 0.59259,0.64646,11 445 | 0.59259,0.633,11 446 | 0.59259,0.61279,11 447 | 0.58923,0.59933,11 448 | 0.58923,0.60943,11 449 | 0.58249,0.6229,11 450 | 0.58249,0.63636,11 451 | 0.58249,0.64983,11 452 | 0.58249,0.65993,11 453 | 0.58923,0.63973,11 454 | 0.58923,0.60943,11 455 | 0.59259,0.59933,11 456 | 0.59259,0.61279,11 457 | 0.59259,0.6229,11 458 | 0.58586,0.6431,11 459 | 0.58249,0.64646,11 460 | 0.58923,0.58923,11 461 | 0.58249,0.57912,11 462 | 0.57912,0.59596,11 463 | 0.57912,0.60606,11 464 | 0.57912,0.6229,11 465 | 0.57912,0.64983,11 466 | 0.58586,0.58586,11 467 | 0.58586,0.61279,11 468 | 0.57239,0.62963,11 469 | 0.58249,0.62626,11 470 | 0.57239,0.60606,11 471 | 0.57576,0.61279,11 472 | 0.61279,0.70707,12 473 | 0.61279,0.68013,12 474 | 0.61279,0.65657,12 475 | 0.61279,0.63973,12 476 | 0.61279,0.61616,12 477 | 0.61279,0.59596,12 478 | 0.61279,0.56902,12 479 | 0.61279,0.53535,12 480 | 0.61279,0.55556,12 481 | 0.61616,0.56902,12 482 | 0.61616,0.58586,12 483 | 0.61616,0.60269,12 484 | 0.61616,0.61953,12 485 | 0.61616,0.63636,12 486 | 0.61616,0.6532,12 487 | 0.61616,0.67003,12 488 | 0.61616,0.6936,12 489 | 0.61953,0.71044,12 490 | 0.61953,0.69024,12 491 | 0.62626,0.67677,12 492 | 0.62626,0.6633,12 493 | 0.62963,0.64983,12 494 | 0.62963,0.63636,12 495 | 0.6229,0.6431,12 496 | 0.62626,0.633,12 497 | 0.6229,0.61953,12 498 | 0.61279,0.62963,12 499 | 0.62626,0.62963,12 500 | 0.633,0.62626,12 501 | 0.633,0.61953,12 502 | 0.62626,0.61279,12 503 | 0.62626,0.59596,12 504 | 0.62963,0.60269,12 505 | 0.63636,0.61279,12 506 | 0.62963,0.58586,12 507 | 0.62626,0.57576,12 508 | 0.62626,0.56229,12 509 | 0.62626,0.55556,12 510 | 0.62626,0.53872,12 511 | 0.61953,0.54545,12 512 | 0.62963,0.54545,12 513 | 0.6229,0.53199,12 514 | 0.6229,0.52189,12 515 | 0.62963,0.52189,12 516 | 0.633,0.55556,12 517 | 0.633,0.56902,12 518 | 0.633,0.59933,12 519 | 0.62963,0.60606,12 520 | 0.61953,0.633,12 521 | 0.61953,0.70034,12 522 | 0.61953,0.68687,12 523 | 0.62626,0.6734,12 524 | 0.62626,0.68687,12 525 | 0.62626,0.70034,12 526 | 0.62626,0.6532,12 527 | 0.6229,0.60943,12 528 | 0.61616,0.59596,12 529 | 0.61616,0.58586,12 530 | 0.61279,0.57912,12 531 | 0.61616,0.54545,12 532 | 0.61616,0.56566,12 533 | 0.61953,0.52862,12 534 | 0.633,0.52862,12 535 | 0.62626,0.71044,12 536 | 0.62626,0.6936,12 537 | 0.633,0.71044,12 538 | 0.633,0.70034,12 539 | 0.633,0.67677,12 540 | 0.63636,0.69024,12 541 | 0.63636,0.69697,12 542 | 0.633,0.66667,12 543 | 0.64983,0.6633,13 544 | 0.64983,0.6532,13 545 | 0.64983,0.633,13 546 | 0.64983,0.61279,13 547 | 0.64983,0.59596,13 548 | 0.64983,0.57239,13 549 | 0.64983,0.58586,13 550 | 0.64983,0.60606,13 551 | 0.64983,0.61953,13 552 | 0.6532,0.64646,13 553 | 0.65657,0.67003,13 554 | 0.65657,0.64983,13 555 | 0.65657,0.62963,13 556 | 0.6633,0.63973,13 557 | 0.65993,0.6532,13 558 | 0.65993,0.65657,13 559 | 0.65657,0.61953,13 560 | 0.65993,0.633,13 561 | 0.65993,0.61279,13 562 | 0.65993,0.59596,13 563 | 0.65993,0.58586,13 564 | 0.65657,0.57576,13 565 | 0.6633,0.60269,13 566 | 0.6633,0.61279,13 567 | 0.6633,0.62626,13 568 | 0.64646,0.62963,13 569 | 0.64983,0.64646,13 570 | 0.66667,0.58923,13 571 | 0.6532,0.55892,13 572 | 0.65993,0.56566,13 573 | 0.66667,0.57576,13 574 | 0.67677,0.58923,13 575 | 0.67003,0.59596,13 576 | 0.67003,0.60943,13 577 | 0.67003,0.6229,13 578 | 0.6633,0.633,13 579 | 0.6633,0.67003,13 580 | 0.66667,0.65657,13 581 | 0.67003,0.64983,13 582 | 0.67677,0.64646,13 583 | 0.67677,0.62963,13 584 | 0.67677,0.6229,13 585 | 0.67677,0.61279,13 586 | 0.67677,0.60606,13 587 | 0.6835,0.6229,13 588 | 0.67677,0.63636,13 589 | 0.67003,0.63973,13 590 | -------------------------------------------------------------------------------- /RnnDbscan.m: -------------------------------------------------------------------------------- 1 | classdef RnnDbscan < handle 2 | %RnnDbscan RNN DBSCAN clustering 3 | % RNN DBSCAN is a density-based clustering algorithm that uses reverse nearest 4 | % neighbor counts as an estimate of observation density. It is based upon 5 | % traversals of the directed k-nearest neighbor graph, and can handle clusters 6 | % of different densities, unlike DBSCAN. 7 | % 8 | % RnnDbscan constructor: 9 | % rnnDbscan = RnnDbscan(X, k, indexNeighbors) creates an RNN DBSCAN 10 | % object for input data X, with k-nearest neighbors used in 11 | % constructing the knn graph. indexNeighbors is the number of 12 | % neighbors used to build the knn k-nearest neighbors index. 13 | % indexNeighbors must be >= k + 1 14 | % 15 | % rnnDbscan = RnnDbscan(X, k, indexNeighbors, 'Method', method) 16 | % creates an RNN DBSCAN object for input data X, with k nearest neighbors 17 | % used in constructing the knn graph, using the specified knn method. 18 | % 19 | % Optional parameters: 20 | % 'Method' - The method to use when building the knn index 21 | % "knnsearch" - Use KNNSEARCH from Mathwork's Statistics and 22 | % Machine Learning Toolbox. This is the default 23 | % method. 24 | % "nndescent" - Use the nearest neighbor descent algorithm to 25 | % build an approximate knn index. For large 26 | % matrices, this is much faster than KNNSEARCH, at 27 | % the cost of slightly less accuracy. This method 28 | % requires the pynndescent python package to be 29 | % installed and accessible through MATLAB's Python 30 | % external language interface 31 | % 32 | % Rows of X correspond to observations, and columns correspond to variables. 33 | % 34 | % RnnDbscan properties: 35 | % K - number of nearest neighbors 36 | % Data - input data X 37 | % KnnIndex - k-nearest neighbor index 38 | % KnnGraph - knn graph used for clustering 39 | % Clusters - Clusters{i} contains indices for points in cluster i 40 | % Outliers - array of outliers that do not belong to a cluster 41 | % CorePoints - list of core points 42 | % ClusterDensities - density of each cluster 43 | % Labels - cluster labels; -1 corresponds to outliers 44 | % 45 | % RnnDbscan methods: 46 | % cluster - cluster the input data 47 | % 48 | % This algorithm was presented in https://dx.doi.org/10.1109/TKDE.2017.2787640, 49 | % by Bryant and Cios but no implementation was given. This implementation is 50 | % based on the graph-based interpretation presented in the original paper. 51 | % 52 | % See also knnindex, knngraph 53 | 54 | % SPDX-License-Identifier: BSD-3-Clause 55 | % Copyright (c) 2020 Trevor Vannoy 56 | 57 | properties (SetAccess = public, AbortSet) 58 | % Number of nearest neighbors used to construct the knn graph 59 | K (1,1) double {mustBePositive, mustBeInteger} = 1 60 | end 61 | 62 | properties (SetAccess = private) 63 | % Input data; rows are observations, and columns are variables 64 | Data (:,:) double 65 | % k-nearest neighbor index 66 | KnnIndex (:,:) int32 67 | % Directed k-nearest neighbor graph 68 | KnnGraph (1,1) digraph 69 | % Cell array of clusters; Clusters{i} contains indices for all points 70 | % that are in cluster i 71 | Clusters (:,1) cell 72 | % Outliers that do not belong to any cluster 73 | Outliers (1,:) int32 74 | % List of core points, which are points with >= k reverse nearest 75 | % neighbors. 76 | CorePoints (1,:) int32 77 | % Cluster densities, defined as the max distance between 78 | % connected core points 79 | ClusterDensities (1,:) double 80 | % Cluster labels. Outliers have a label value of -1; all other 81 | % clusters have labels starting at 1 82 | Labels (:,1) int32 = [] 83 | end 84 | 85 | methods (Access = public) 86 | function obj = RnnDbscan(X, k, index, options) 87 | %RnnDbscan Construct an RNN DBSCAN object 88 | % rnnDbscan = RnnDbscan(X, k, nIndexNeighbors) creates an RNN DBSCAN 89 | % object for input data X, with k-nearest neighbors used in 90 | % constructing the knn graph. indexNeighbors is the number of 91 | % neighbors used to build the k-nearest neighbors index. 92 | % indexNeighbors must be >= k + 1 93 | % 94 | % rnnDbscan = RnnDbscan(X, k, knnIndex) creates an RNN DBSCAN object 95 | % using a precomputed knn index, knnIndex. knnIndex must have the same 96 | % number of rows as X. 97 | % 98 | % rnnDbscan = RnnDbscan(X, k, nIndexNeighbors, 'Method', method) 99 | % creates an RNN DBSCAN object for input data X, with k nearest 100 | % neighbors used in constructing the knn graph, using the specified 101 | % knn method. 102 | % 103 | % Optional parameters: 104 | % 'Method' - The method to use when building the knn index 105 | % "knnsearch" - Use KNNSEARCH from Mathwork's Statistics and 106 | % Machine Learning Toolbox. This is the default 107 | % method. 108 | % "nndescent" - Use the nearest neighbor descent algorithm to 109 | % build an approximate knn index. For large 110 | % matrices, this is much faster than KNNSEARCH, at 111 | % the cost of slightly less accuracy. This method 112 | % requires the pynndescent python package to be 113 | % installed and accessible through MATLAB's Python 114 | % external language interface 115 | 116 | % TODO: I could add another constructor that doesn't take indexNeighbors and uses k instead 117 | arguments 118 | X (:,:) double 119 | k (1, 1) {mustBePositive, mustBeInteger} 120 | index 121 | options.Method (1,1) string {mustBeMember(options.Method, ["knnsearch", "nndescent"])} = "knnsearch" 122 | end 123 | 124 | obj.Data = X; 125 | 126 | if numel(index) == 1 127 | indexNeighbors = index; 128 | 129 | if indexNeighbors < k + 1 130 | error("indexNeighbors must be >= k + 1") 131 | end 132 | 133 | obj.KnnIndex = knnindex(obj.Data, indexNeighbors, ... 134 | 'Method', options.Method); 135 | elseif size(index, 1) == size(X, 1) 136 | if size(index, 2) < k + 1 137 | error("knnIndex must have # columns >= k + 1") 138 | end 139 | 140 | obj.KnnIndex = index; 141 | else 142 | % TODO: better error message 143 | error("argument 3 is incorrect") 144 | end 145 | 146 | obj.Labels = zeros(size(X, 1), 1, 'int32'); 147 | obj.K = k; 148 | 149 | % the setter for k won't execute for k = 1 because 1 is the 150 | % default value for k, so AbortSet will stop set.K from running 151 | if k == 1 152 | obj.KnnGraph = knngraph(obj.KnnIndex, obj.K, ... 153 | 'Precomputed', true); 154 | end 155 | end 156 | 157 | function cluster(obj) 158 | %CLUSTER Cluster the input data used to create the RnnDbscan object 159 | % The resulting cluster assignments and labels are saved to the 160 | % RnnDbscan object 161 | 162 | obj.findInitialClusters(); 163 | obj.computeClusterDensities(); 164 | obj.addDirectlyDensityRechablePoints(); 165 | obj.createExtendedClusters(); 166 | end 167 | end 168 | 169 | methods 170 | function obj = set.K(obj, k) 171 | % this method only gets called if k != obj.K, due to AbortSet 172 | if k >= size(obj.KnnIndex, 2) 173 | error("Error setting property 'K' of class 'RnnDbsan':\n" + ... 174 | "'K' must be less than knn index size %d", ... 175 | size(obj.KnnIndex, 2)); 176 | end 177 | 178 | obj.K = k; 179 | 180 | % XXX: Mathwork's says I shouldn't set other properties in a setter 181 | % method, which I do conceptually agree with, but I want to be able 182 | % to "reset" the object to cluster using a different k without 183 | % having to make a new object and recompute the knn index 184 | obj.KnnGraph = knngraph(obj.KnnIndex, obj.K, ... 185 | 'Precomputed', true); 186 | obj.Labels = zeros(1, size(obj.Data, 1), 1, 'int32'); 187 | obj.Outliers = int32([]); 188 | obj.CorePoints = int32([]); 189 | obj.Clusters = {}; 190 | obj.ClusterDensities = []; 191 | end 192 | end 193 | 194 | methods (Access = private) 195 | function findInitialClusters(obj) 196 | % Find initial clusters from the core point subgraph 197 | % 198 | % In the graph-based interpretation of the RNN DBSCAN algorithm, 199 | % an initial clustering of core points is defined by the weakly 200 | % connected components in the core point subgraph, which is a subgraph 201 | % of the knn graph consisting of only core points. Core points are 202 | % defined as points with a reverse nearest neighbor count >= k, which 203 | % corresponds to a node having an indegree >= k in the knn graph 204 | 205 | obj.CorePoints = int32(find(indegree(obj.KnnGraph) >= obj.K)); 206 | 207 | % creating a subgraph renumbers the node IDs. This is problematic 208 | % because I am expecting the node IDs to correspond to the data 209 | % points' indices in the data matrix. To remedy this, the subgraph's 210 | % node IDs have to be converted back to the original node IDs. 211 | corePointSubgraph = subgraph(obj.KnnGraph, obj.CorePoints); 212 | 213 | % get the initial clusters from the connected components. 214 | % 'OutputForm' = 'cell' returns a cell array where the i-th cell 215 | % contains all of the node IDs belonging to component i; this 216 | % results in a cell array where each cell is a cluster. 217 | clusters = conncomp(corePointSubgraph, 'Type', 'weak', ... 218 | 'OutputForm', 'cell'); 219 | 220 | % convert the subgraph's node IDs back to the original node IDs that 221 | % correspond to the data points' indices. 222 | obj.Clusters = cellfun(@(c) obj.CorePoints(c), clusters, ... 223 | 'UniformOutput', false); 224 | 225 | for i = 1:length(obj.Clusters) 226 | obj.Labels(obj.Clusters{i}) = int32(i); 227 | end 228 | end 229 | 230 | function addDirectlyDensityRechablePoints(obj) 231 | % Add directly density-reachable border points to clusters 232 | % 233 | % Directly density-reachable points are border points that are in the 234 | % k-neighborhood of a core point. 235 | % 236 | % This function expands the clusters to include some border points, 237 | % but the resulting clustering is still considered to be the initial 238 | % set of clusters in the RNN DBSCAN paper, rather than the extended 239 | % clusters. This would be part of the "ExpandCluster" algorithm in the 240 | % paper, but I am leveraging the graph interpretation rather than the 241 | % algorithm pseudocode 242 | 243 | for i = 1:length(obj.Clusters) 244 | borderPoints = []; 245 | 246 | % find k-nearest neighbors of every point in cluster i 247 | for j = 1:length(obj.Clusters{i}) 248 | 249 | % k-nearest neighbors of a point j are the successors of 250 | % node j in the knn graph, i.e. there is an edge originating 251 | % from node j 252 | neighbors = int32(successors(obj.KnnGraph, obj.Clusters{i}(j))); 253 | 254 | % only add points to a cluster if they do not already belong 255 | % to a cluster 256 | unclusteredPoints = neighbors(obj.Labels(neighbors) == 0); 257 | 258 | % points in a cluster are likely to share neighbors, but we 259 | % don't want these neighbors to be added to the cluster 260 | % more than once, so we take the union of all 261 | % previously-found neighbors and the neighbors of point j 262 | borderPoints = union(borderPoints, unclusteredPoints); 263 | end 264 | 265 | % force borderPoints to be a row vector, because the 266 | % clusters are also row vectors 267 | borderPoints = borderPoints(:)'; 268 | 269 | % add neighbors of core points in cluster i to cluster i 270 | obj.Clusters{i} = horzcat(obj.Clusters{i}, borderPoints(:)'); 271 | obj.Labels(borderPoints) = int32(i); 272 | end 273 | end 274 | 275 | function createExtendedClusters(obj) 276 | % Cluster remaining points that satisify the extended cluster definition 277 | % 278 | % After creating the initial clusters, which comprise core points and 279 | % their directly density-reachable border points, remaining points are 280 | % assigned to a cluster C if they have a core point in their 281 | % k-neighborhood that is < den(C) away. Such points are added to the 282 | % cluster of their closest core point. Points that do not satisfy the 283 | % extended cluster definition are labeled as outliers. 284 | 285 | clusteredPoints = [obj.Clusters{:}]; 286 | pointIndices = int32([1:size(obj.Data, 1)]); 287 | unclusteredPoints = setdiff(pointIndices, clusteredPoints); 288 | 289 | for unclusteredPoint = unclusteredPoints 290 | pointIsNoise = true; 291 | 292 | % find k-nearest neighbors of the unclustered point 293 | neighbors = int32(successors(obj.KnnGraph, unclusteredPoint)); 294 | 295 | % determine which neighbors are core points; we do not want to 296 | % cluster the unclustered point if it is not connected to any 297 | % core points 298 | corePointNeighbors = intersect(neighbors, obj.CorePoints); 299 | 300 | if corePointNeighbors 301 | corePointNeighborsData = obj.Data(corePointNeighbors, :); 302 | unclusteredPointData = obj.Data(unclusteredPoint, :); 303 | 304 | % sort core point neighbors by distance from the 305 | % unclustered point 306 | distances = pairwiseDist(unclusteredPointData, ... 307 | corePointNeighborsData); 308 | [distances, sortIdx] = sort(distances); 309 | corePointNeighbors = corePointNeighbors(sortIdx); 310 | 311 | for i = 1:length(corePointNeighbors) 312 | % find which cluster the core point belongs to 313 | clusterIdx = obj.Labels(corePointNeighbors(i)); 314 | 315 | if distances(i) <= obj.ClusterDensities(clusterIdx) 316 | % add unclustered point to cluster 317 | obj.Clusters{clusterIdx} = horzcat(obj.Clusters{clusterIdx}, unclusteredPoint); 318 | obj.Labels(unclusteredPoint) = int32(clusterIdx); 319 | 320 | pointIsNoise = false; 321 | 322 | % point can't be assigned to more than one cluster, 323 | % so stop once it is assigned 324 | break; 325 | end 326 | end 327 | end 328 | if pointIsNoise 329 | % the unclustered point does not have any neighbors that are core points, so it is considered an outlier 330 | obj.Outliers = horzcat(obj.Outliers, unclusteredPoint); 331 | obj.Labels(unclusteredPoint) = int32(-1); 332 | end 333 | end 334 | end 335 | 336 | function computeClusterDensities(obj) 337 | % Compute the densities of all the clusters. 338 | % 339 | % den(C) max(dist(x,y)) s.t. x,y are both core points in cluster C, 340 | % and y is directly density-reachable from x (i.e. y is a k-nearest 341 | % neighbor of x); equivalently, den(C) is the maximum distance between 342 | % points that have an edge between them in the core points subgraph. 343 | % 344 | % Since the cluster density is defined as the maximum distance between 345 | % nearest neighbor core points, the cluster density does not change as 346 | % non-core points are added to the cluster. Thus we can calculate the 347 | % cluster densities after finding the initial clusters of core points, 348 | % which are defined by the weakly connected components of the core 349 | % points subgraph. 350 | 351 | obj.ClusterDensities = zeros(length(obj.Clusters), 1); 352 | 353 | for i = 1:length(obj.Clusters) 354 | % find all edges between core points in the cluster 355 | clusterCorePoints = intersect(obj.Clusters{i}, obj.CorePoints); 356 | G = subgraph(obj.KnnGraph, clusterCorePoints); 357 | [sourceNodesTmp, targetNodesTmp] = findedge(G); 358 | 359 | % If a cluster only has one core point, we can't compute it's 360 | % density; consequently, we must check if there is an edge in 361 | % the cluster before trying to compute it's density 362 | if sourceNodesTmp 363 | % findedge returns a source and target node for each edge; 364 | % to reduce the number of iterations in the following for 365 | % loop, we transform the source and target nodes such that 366 | % there is one cell of target nodes for each source node 367 | sourceNodes = unique(sourceNodesTmp); 368 | targetNodes = mat2cell(targetNodesTmp, ... 369 | histcounts(sourceNodesTmp, [sourceNodes; inf])); 370 | 371 | for nodeId = 1:length(sourceNodes) 372 | % convert node IDs back to their original indices 373 | origNodeId = clusterCorePoints(nodeId); 374 | origNeighborIds = clusterCorePoints(targetNodes{nodeId}); 375 | 376 | distances = pairwiseDist(obj.Data(origNodeId, :), ... 377 | obj.Data(origNeighborIds, :)); 378 | maxDist = max(distances); 379 | 380 | if maxDist > obj.ClusterDensities(i) 381 | obj.ClusterDensities(i) = maxDist; 382 | end 383 | end 384 | else 385 | obj.ClusterDensities(i) = nan; 386 | end 387 | end 388 | end 389 | end 390 | end 391 | 392 | function d = pairwiseDist(X, Y) 393 | d = sqrt(bsxfun(@plus, sum(X.^2, 2), sum(Y.^2, 2)') - 2*(X * Y')); 394 | end -------------------------------------------------------------------------------- /test/datasets/unbalance-gt.pa: -------------------------------------------------------------------------------- 1 | 6 2 | 6 3 | 6 4 | 6 5 | 6 6 | 6 7 | 6 8 | 6 9 | 6 10 | 6 11 | 6 12 | 6 13 | 6 14 | 6 15 | 6 16 | 6 17 | 6 18 | 6 19 | 6 20 | 6 21 | 6 22 | 6 23 | 6 24 | 6 25 | 6 26 | 6 27 | 6 28 | 6 29 | 6 30 | 6 31 | 6 32 | 6 33 | 6 34 | 6 35 | 6 36 | 6 37 | 6 38 | 6 39 | 6 40 | 6 41 | 6 42 | 6 43 | 6 44 | 6 45 | 6 46 | 6 47 | 6 48 | 6 49 | 6 50 | 6 51 | 6 52 | 6 53 | 6 54 | 6 55 | 6 56 | 6 57 | 6 58 | 6 59 | 6 60 | 6 61 | 6 62 | 6 63 | 6 64 | 6 65 | 6 66 | 6 67 | 6 68 | 6 69 | 6 70 | 6 71 | 6 72 | 6 73 | 6 74 | 6 75 | 6 76 | 6 77 | 6 78 | 6 79 | 6 80 | 6 81 | 6 82 | 6 83 | 6 84 | 6 85 | 6 86 | 6 87 | 6 88 | 6 89 | 6 90 | 6 91 | 6 92 | 6 93 | 6 94 | 6 95 | 6 96 | 6 97 | 6 98 | 6 99 | 6 100 | 6 101 | 6 102 | 6 103 | 6 104 | 6 105 | 6 106 | 6 107 | 6 108 | 6 109 | 6 110 | 6 111 | 6 112 | 6 113 | 6 114 | 6 115 | 6 116 | 6 117 | 6 118 | 6 119 | 6 120 | 6 121 | 6 122 | 6 123 | 6 124 | 6 125 | 6 126 | 6 127 | 6 128 | 6 129 | 6 130 | 6 131 | 6 132 | 6 133 | 6 134 | 6 135 | 6 136 | 6 137 | 6 138 | 6 139 | 6 140 | 6 141 | 6 142 | 6 143 | 6 144 | 6 145 | 6 146 | 6 147 | 6 148 | 6 149 | 6 150 | 6 151 | 6 152 | 6 153 | 6 154 | 6 155 | 6 156 | 6 157 | 6 158 | 6 159 | 6 160 | 6 161 | 6 162 | 6 163 | 6 164 | 6 165 | 6 166 | 6 167 | 6 168 | 6 169 | 6 170 | 6 171 | 6 172 | 6 173 | 6 174 | 6 175 | 6 176 | 6 177 | 6 178 | 6 179 | 6 180 | 6 181 | 6 182 | 6 183 | 6 184 | 6 185 | 6 186 | 6 187 | 6 188 | 6 189 | 6 190 | 6 191 | 6 192 | 6 193 | 6 194 | 6 195 | 6 196 | 6 197 | 6 198 | 6 199 | 6 200 | 6 201 | 6 202 | 6 203 | 6 204 | 6 205 | 6 206 | 6 207 | 6 208 | 6 209 | 6 210 | 6 211 | 6 212 | 6 213 | 6 214 | 6 215 | 6 216 | 6 217 | 6 218 | 6 219 | 6 220 | 6 221 | 6 222 | 6 223 | 6 224 | 6 225 | 6 226 | 6 227 | 6 228 | 6 229 | 6 230 | 6 231 | 6 232 | 6 233 | 6 234 | 6 235 | 6 236 | 6 237 | 6 238 | 6 239 | 6 240 | 6 241 | 6 242 | 6 243 | 6 244 | 6 245 | 6 246 | 6 247 | 6 248 | 6 249 | 6 250 | 6 251 | 6 252 | 6 253 | 6 254 | 6 255 | 6 256 | 6 257 | 6 258 | 6 259 | 6 260 | 6 261 | 6 262 | 6 263 | 6 264 | 6 265 | 6 266 | 6 267 | 6 268 | 6 269 | 6 270 | 6 271 | 6 272 | 6 273 | 6 274 | 6 275 | 6 276 | 6 277 | 6 278 | 6 279 | 6 280 | 6 281 | 6 282 | 6 283 | 6 284 | 6 285 | 6 286 | 6 287 | 6 288 | 6 289 | 6 290 | 6 291 | 6 292 | 6 293 | 6 294 | 6 295 | 6 296 | 6 297 | 6 298 | 6 299 | 6 300 | 6 301 | 6 302 | 6 303 | 6 304 | 6 305 | 6 306 | 6 307 | 6 308 | 6 309 | 6 310 | 6 311 | 6 312 | 6 313 | 6 314 | 6 315 | 6 316 | 6 317 | 6 318 | 6 319 | 6 320 | 6 321 | 6 322 | 6 323 | 6 324 | 6 325 | 6 326 | 6 327 | 6 328 | 6 329 | 6 330 | 6 331 | 6 332 | 6 333 | 6 334 | 6 335 | 6 336 | 6 337 | 6 338 | 6 339 | 6 340 | 6 341 | 6 342 | 6 343 | 6 344 | 6 345 | 6 346 | 6 347 | 6 348 | 6 349 | 6 350 | 6 351 | 6 352 | 6 353 | 6 354 | 6 355 | 6 356 | 6 357 | 6 358 | 6 359 | 6 360 | 6 361 | 6 362 | 6 363 | 6 364 | 6 365 | 6 366 | 6 367 | 6 368 | 6 369 | 6 370 | 6 371 | 6 372 | 6 373 | 6 374 | 6 375 | 6 376 | 6 377 | 6 378 | 6 379 | 6 380 | 6 381 | 6 382 | 6 383 | 6 384 | 6 385 | 6 386 | 6 387 | 6 388 | 6 389 | 6 390 | 6 391 | 6 392 | 6 393 | 6 394 | 6 395 | 6 396 | 6 397 | 6 398 | 6 399 | 6 400 | 6 401 | 6 402 | 6 403 | 6 404 | 6 405 | 6 406 | 6 407 | 6 408 | 6 409 | 6 410 | 6 411 | 6 412 | 6 413 | 6 414 | 6 415 | 6 416 | 6 417 | 6 418 | 6 419 | 6 420 | 6 421 | 6 422 | 6 423 | 6 424 | 6 425 | 6 426 | 6 427 | 6 428 | 6 429 | 6 430 | 6 431 | 6 432 | 6 433 | 6 434 | 6 435 | 6 436 | 6 437 | 6 438 | 6 439 | 6 440 | 6 441 | 6 442 | 6 443 | 6 444 | 6 445 | 6 446 | 6 447 | 6 448 | 6 449 | 6 450 | 6 451 | 6 452 | 6 453 | 6 454 | 6 455 | 6 456 | 6 457 | 6 458 | 6 459 | 6 460 | 6 461 | 6 462 | 6 463 | 6 464 | 6 465 | 6 466 | 6 467 | 6 468 | 6 469 | 6 470 | 6 471 | 6 472 | 6 473 | 6 474 | 6 475 | 6 476 | 6 477 | 6 478 | 6 479 | 6 480 | 6 481 | 6 482 | 6 483 | 6 484 | 6 485 | 6 486 | 6 487 | 6 488 | 6 489 | 6 490 | 6 491 | 6 492 | 6 493 | 6 494 | 6 495 | 6 496 | 6 497 | 6 498 | 6 499 | 6 500 | 6 501 | 6 502 | 6 503 | 6 504 | 6 505 | 6 506 | 6 507 | 6 508 | 6 509 | 6 510 | 6 511 | 6 512 | 6 513 | 6 514 | 6 515 | 6 516 | 6 517 | 6 518 | 6 519 | 6 520 | 6 521 | 6 522 | 6 523 | 6 524 | 6 525 | 6 526 | 6 527 | 6 528 | 6 529 | 6 530 | 6 531 | 6 532 | 6 533 | 6 534 | 6 535 | 6 536 | 6 537 | 6 538 | 6 539 | 6 540 | 6 541 | 6 542 | 6 543 | 6 544 | 6 545 | 6 546 | 6 547 | 6 548 | 6 549 | 6 550 | 6 551 | 6 552 | 6 553 | 6 554 | 6 555 | 6 556 | 6 557 | 6 558 | 6 559 | 6 560 | 6 561 | 6 562 | 6 563 | 6 564 | 6 565 | 6 566 | 6 567 | 6 568 | 6 569 | 6 570 | 6 571 | 6 572 | 6 573 | 6 574 | 6 575 | 6 576 | 6 577 | 6 578 | 6 579 | 6 580 | 6 581 | 6 582 | 6 583 | 6 584 | 6 585 | 6 586 | 6 587 | 6 588 | 6 589 | 6 590 | 6 591 | 6 592 | 6 593 | 6 594 | 6 595 | 6 596 | 6 597 | 6 598 | 6 599 | 6 600 | 6 601 | 6 602 | 6 603 | 6 604 | 6 605 | 6 606 | 6 607 | 6 608 | 6 609 | 6 610 | 6 611 | 6 612 | 6 613 | 6 614 | 6 615 | 6 616 | 6 617 | 6 618 | 6 619 | 6 620 | 6 621 | 6 622 | 6 623 | 6 624 | 6 625 | 6 626 | 6 627 | 6 628 | 6 629 | 6 630 | 6 631 | 6 632 | 6 633 | 6 634 | 6 635 | 6 636 | 6 637 | 6 638 | 6 639 | 6 640 | 6 641 | 6 642 | 6 643 | 6 644 | 6 645 | 6 646 | 6 647 | 6 648 | 6 649 | 6 650 | 6 651 | 6 652 | 6 653 | 6 654 | 6 655 | 6 656 | 6 657 | 6 658 | 6 659 | 6 660 | 6 661 | 6 662 | 6 663 | 6 664 | 6 665 | 6 666 | 6 667 | 6 668 | 6 669 | 6 670 | 6 671 | 6 672 | 6 673 | 6 674 | 6 675 | 6 676 | 6 677 | 6 678 | 6 679 | 6 680 | 6 681 | 6 682 | 6 683 | 6 684 | 6 685 | 6 686 | 6 687 | 6 688 | 6 689 | 6 690 | 6 691 | 6 692 | 6 693 | 6 694 | 6 695 | 6 696 | 6 697 | 6 698 | 6 699 | 6 700 | 6 701 | 6 702 | 6 703 | 6 704 | 6 705 | 6 706 | 6 707 | 6 708 | 6 709 | 6 710 | 6 711 | 6 712 | 6 713 | 6 714 | 6 715 | 6 716 | 6 717 | 6 718 | 6 719 | 6 720 | 6 721 | 6 722 | 6 723 | 6 724 | 6 725 | 6 726 | 6 727 | 6 728 | 6 729 | 6 730 | 6 731 | 6 732 | 6 733 | 6 734 | 6 735 | 6 736 | 6 737 | 6 738 | 6 739 | 6 740 | 6 741 | 6 742 | 6 743 | 6 744 | 6 745 | 6 746 | 6 747 | 6 748 | 6 749 | 6 750 | 6 751 | 6 752 | 6 753 | 6 754 | 6 755 | 6 756 | 6 757 | 6 758 | 6 759 | 6 760 | 6 761 | 6 762 | 6 763 | 6 764 | 6 765 | 6 766 | 6 767 | 6 768 | 6 769 | 6 770 | 6 771 | 6 772 | 6 773 | 6 774 | 6 775 | 6 776 | 6 777 | 6 778 | 6 779 | 6 780 | 6 781 | 6 782 | 6 783 | 6 784 | 6 785 | 6 786 | 6 787 | 6 788 | 6 789 | 6 790 | 6 791 | 6 792 | 6 793 | 6 794 | 6 795 | 6 796 | 6 797 | 6 798 | 6 799 | 6 800 | 6 801 | 6 802 | 6 803 | 6 804 | 6 805 | 6 806 | 6 807 | 6 808 | 6 809 | 6 810 | 6 811 | 6 812 | 6 813 | 6 814 | 6 815 | 6 816 | 6 817 | 6 818 | 6 819 | 6 820 | 6 821 | 6 822 | 6 823 | 6 824 | 6 825 | 6 826 | 6 827 | 6 828 | 6 829 | 6 830 | 6 831 | 6 832 | 6 833 | 6 834 | 6 835 | 6 836 | 6 837 | 6 838 | 6 839 | 6 840 | 6 841 | 6 842 | 6 843 | 6 844 | 6 845 | 6 846 | 6 847 | 6 848 | 6 849 | 6 850 | 6 851 | 6 852 | 6 853 | 6 854 | 6 855 | 6 856 | 6 857 | 6 858 | 6 859 | 6 860 | 6 861 | 6 862 | 6 863 | 6 864 | 6 865 | 6 866 | 6 867 | 6 868 | 6 869 | 6 870 | 6 871 | 6 872 | 6 873 | 6 874 | 6 875 | 6 876 | 6 877 | 6 878 | 6 879 | 6 880 | 6 881 | 6 882 | 6 883 | 6 884 | 6 885 | 6 886 | 6 887 | 6 888 | 6 889 | 6 890 | 6 891 | 6 892 | 6 893 | 6 894 | 6 895 | 6 896 | 6 897 | 6 898 | 6 899 | 6 900 | 6 901 | 6 902 | 6 903 | 6 904 | 6 905 | 6 906 | 6 907 | 6 908 | 6 909 | 6 910 | 6 911 | 6 912 | 6 913 | 6 914 | 6 915 | 6 916 | 6 917 | 6 918 | 6 919 | 6 920 | 6 921 | 6 922 | 6 923 | 6 924 | 6 925 | 6 926 | 6 927 | 6 928 | 6 929 | 6 930 | 6 931 | 6 932 | 6 933 | 6 934 | 6 935 | 6 936 | 6 937 | 6 938 | 6 939 | 6 940 | 6 941 | 6 942 | 6 943 | 6 944 | 6 945 | 6 946 | 6 947 | 6 948 | 6 949 | 6 950 | 6 951 | 6 952 | 6 953 | 6 954 | 6 955 | 6 956 | 6 957 | 6 958 | 6 959 | 6 960 | 6 961 | 6 962 | 6 963 | 6 964 | 6 965 | 6 966 | 6 967 | 6 968 | 6 969 | 6 970 | 6 971 | 6 972 | 6 973 | 6 974 | 6 975 | 6 976 | 6 977 | 6 978 | 6 979 | 6 980 | 6 981 | 6 982 | 6 983 | 6 984 | 6 985 | 6 986 | 6 987 | 6 988 | 6 989 | 6 990 | 6 991 | 6 992 | 6 993 | 6 994 | 6 995 | 6 996 | 6 997 | 6 998 | 6 999 | 6 1000 | 6 1001 | 6 1002 | 6 1003 | 6 1004 | 6 1005 | 6 1006 | 6 1007 | 6 1008 | 6 1009 | 6 1010 | 6 1011 | 6 1012 | 6 1013 | 6 1014 | 6 1015 | 6 1016 | 6 1017 | 6 1018 | 6 1019 | 6 1020 | 6 1021 | 6 1022 | 6 1023 | 6 1024 | 6 1025 | 6 1026 | 6 1027 | 6 1028 | 6 1029 | 6 1030 | 6 1031 | 6 1032 | 6 1033 | 6 1034 | 6 1035 | 6 1036 | 6 1037 | 6 1038 | 6 1039 | 6 1040 | 6 1041 | 6 1042 | 6 1043 | 6 1044 | 6 1045 | 6 1046 | 6 1047 | 6 1048 | 6 1049 | 6 1050 | 6 1051 | 6 1052 | 6 1053 | 6 1054 | 6 1055 | 6 1056 | 6 1057 | 6 1058 | 6 1059 | 6 1060 | 6 1061 | 6 1062 | 6 1063 | 6 1064 | 6 1065 | 6 1066 | 6 1067 | 6 1068 | 6 1069 | 6 1070 | 6 1071 | 6 1072 | 6 1073 | 6 1074 | 6 1075 | 6 1076 | 6 1077 | 6 1078 | 6 1079 | 6 1080 | 6 1081 | 6 1082 | 6 1083 | 6 1084 | 6 1085 | 6 1086 | 6 1087 | 6 1088 | 6 1089 | 6 1090 | 6 1091 | 6 1092 | 6 1093 | 6 1094 | 6 1095 | 6 1096 | 6 1097 | 6 1098 | 6 1099 | 6 1100 | 6 1101 | 6 1102 | 6 1103 | 6 1104 | 6 1105 | 6 1106 | 6 1107 | 6 1108 | 6 1109 | 6 1110 | 6 1111 | 6 1112 | 6 1113 | 6 1114 | 6 1115 | 6 1116 | 6 1117 | 6 1118 | 6 1119 | 6 1120 | 6 1121 | 6 1122 | 6 1123 | 6 1124 | 6 1125 | 6 1126 | 6 1127 | 6 1128 | 6 1129 | 6 1130 | 6 1131 | 6 1132 | 6 1133 | 6 1134 | 6 1135 | 6 1136 | 6 1137 | 6 1138 | 6 1139 | 6 1140 | 6 1141 | 6 1142 | 6 1143 | 6 1144 | 6 1145 | 6 1146 | 6 1147 | 6 1148 | 6 1149 | 6 1150 | 6 1151 | 6 1152 | 6 1153 | 6 1154 | 6 1155 | 6 1156 | 6 1157 | 6 1158 | 6 1159 | 6 1160 | 6 1161 | 6 1162 | 6 1163 | 6 1164 | 6 1165 | 6 1166 | 6 1167 | 6 1168 | 6 1169 | 6 1170 | 6 1171 | 6 1172 | 6 1173 | 6 1174 | 6 1175 | 6 1176 | 6 1177 | 6 1178 | 6 1179 | 6 1180 | 6 1181 | 6 1182 | 6 1183 | 6 1184 | 6 1185 | 6 1186 | 6 1187 | 6 1188 | 6 1189 | 6 1190 | 6 1191 | 6 1192 | 6 1193 | 6 1194 | 6 1195 | 6 1196 | 6 1197 | 6 1198 | 6 1199 | 6 1200 | 6 1201 | 6 1202 | 6 1203 | 6 1204 | 6 1205 | 6 1206 | 6 1207 | 6 1208 | 6 1209 | 6 1210 | 6 1211 | 6 1212 | 6 1213 | 6 1214 | 6 1215 | 6 1216 | 6 1217 | 6 1218 | 6 1219 | 6 1220 | 6 1221 | 6 1222 | 6 1223 | 6 1224 | 6 1225 | 6 1226 | 6 1227 | 6 1228 | 6 1229 | 6 1230 | 6 1231 | 6 1232 | 6 1233 | 6 1234 | 6 1235 | 6 1236 | 6 1237 | 6 1238 | 6 1239 | 6 1240 | 6 1241 | 6 1242 | 6 1243 | 6 1244 | 6 1245 | 6 1246 | 6 1247 | 6 1248 | 6 1249 | 6 1250 | 6 1251 | 6 1252 | 6 1253 | 6 1254 | 6 1255 | 6 1256 | 6 1257 | 6 1258 | 6 1259 | 6 1260 | 6 1261 | 6 1262 | 6 1263 | 6 1264 | 6 1265 | 6 1266 | 6 1267 | 6 1268 | 6 1269 | 6 1270 | 6 1271 | 6 1272 | 6 1273 | 6 1274 | 6 1275 | 6 1276 | 6 1277 | 6 1278 | 6 1279 | 6 1280 | 6 1281 | 6 1282 | 6 1283 | 6 1284 | 6 1285 | 6 1286 | 6 1287 | 6 1288 | 6 1289 | 6 1290 | 6 1291 | 6 1292 | 6 1293 | 6 1294 | 6 1295 | 6 1296 | 6 1297 | 6 1298 | 6 1299 | 6 1300 | 6 1301 | 6 1302 | 6 1303 | 6 1304 | 6 1305 | 6 1306 | 6 1307 | 6 1308 | 6 1309 | 6 1310 | 6 1311 | 6 1312 | 6 1313 | 6 1314 | 6 1315 | 6 1316 | 6 1317 | 6 1318 | 6 1319 | 6 1320 | 6 1321 | 6 1322 | 6 1323 | 6 1324 | 6 1325 | 6 1326 | 6 1327 | 6 1328 | 6 1329 | 6 1330 | 6 1331 | 6 1332 | 6 1333 | 6 1334 | 6 1335 | 6 1336 | 6 1337 | 6 1338 | 6 1339 | 6 1340 | 6 1341 | 6 1342 | 6 1343 | 6 1344 | 6 1345 | 6 1346 | 6 1347 | 6 1348 | 6 1349 | 6 1350 | 6 1351 | 6 1352 | 6 1353 | 6 1354 | 6 1355 | 6 1356 | 6 1357 | 6 1358 | 6 1359 | 6 1360 | 6 1361 | 6 1362 | 6 1363 | 6 1364 | 6 1365 | 6 1366 | 6 1367 | 6 1368 | 6 1369 | 6 1370 | 6 1371 | 6 1372 | 6 1373 | 6 1374 | 6 1375 | 6 1376 | 6 1377 | 6 1378 | 6 1379 | 6 1380 | 6 1381 | 6 1382 | 6 1383 | 6 1384 | 6 1385 | 6 1386 | 6 1387 | 6 1388 | 6 1389 | 6 1390 | 6 1391 | 6 1392 | 6 1393 | 6 1394 | 6 1395 | 6 1396 | 6 1397 | 6 1398 | 6 1399 | 6 1400 | 6 1401 | 6 1402 | 6 1403 | 6 1404 | 6 1405 | 6 1406 | 6 1407 | 6 1408 | 6 1409 | 6 1410 | 6 1411 | 6 1412 | 6 1413 | 6 1414 | 6 1415 | 6 1416 | 6 1417 | 6 1418 | 6 1419 | 6 1420 | 6 1421 | 6 1422 | 6 1423 | 6 1424 | 6 1425 | 6 1426 | 6 1427 | 6 1428 | 6 1429 | 6 1430 | 6 1431 | 6 1432 | 6 1433 | 6 1434 | 6 1435 | 6 1436 | 6 1437 | 6 1438 | 6 1439 | 6 1440 | 6 1441 | 6 1442 | 6 1443 | 6 1444 | 6 1445 | 6 1446 | 6 1447 | 6 1448 | 6 1449 | 6 1450 | 6 1451 | 6 1452 | 6 1453 | 6 1454 | 6 1455 | 6 1456 | 6 1457 | 6 1458 | 6 1459 | 6 1460 | 6 1461 | 6 1462 | 6 1463 | 6 1464 | 6 1465 | 6 1466 | 6 1467 | 6 1468 | 6 1469 | 6 1470 | 6 1471 | 6 1472 | 6 1473 | 6 1474 | 6 1475 | 6 1476 | 6 1477 | 6 1478 | 6 1479 | 6 1480 | 6 1481 | 6 1482 | 6 1483 | 6 1484 | 6 1485 | 6 1486 | 6 1487 | 6 1488 | 6 1489 | 6 1490 | 6 1491 | 6 1492 | 6 1493 | 6 1494 | 6 1495 | 6 1496 | 6 1497 | 6 1498 | 6 1499 | 6 1500 | 6 1501 | 6 1502 | 6 1503 | 6 1504 | 6 1505 | 6 1506 | 6 1507 | 6 1508 | 6 1509 | 6 1510 | 6 1511 | 6 1512 | 6 1513 | 6 1514 | 6 1515 | 6 1516 | 6 1517 | 6 1518 | 6 1519 | 6 1520 | 6 1521 | 6 1522 | 6 1523 | 6 1524 | 6 1525 | 6 1526 | 6 1527 | 6 1528 | 6 1529 | 6 1530 | 6 1531 | 6 1532 | 6 1533 | 6 1534 | 6 1535 | 6 1536 | 6 1537 | 6 1538 | 6 1539 | 6 1540 | 6 1541 | 6 1542 | 6 1543 | 6 1544 | 6 1545 | 6 1546 | 6 1547 | 6 1548 | 6 1549 | 6 1550 | 6 1551 | 6 1552 | 6 1553 | 6 1554 | 6 1555 | 6 1556 | 6 1557 | 6 1558 | 6 1559 | 6 1560 | 6 1561 | 6 1562 | 6 1563 | 6 1564 | 6 1565 | 6 1566 | 6 1567 | 6 1568 | 6 1569 | 6 1570 | 6 1571 | 6 1572 | 6 1573 | 6 1574 | 6 1575 | 6 1576 | 6 1577 | 6 1578 | 6 1579 | 6 1580 | 6 1581 | 6 1582 | 6 1583 | 6 1584 | 6 1585 | 6 1586 | 6 1587 | 6 1588 | 6 1589 | 6 1590 | 6 1591 | 6 1592 | 6 1593 | 6 1594 | 6 1595 | 6 1596 | 6 1597 | 6 1598 | 6 1599 | 6 1600 | 6 1601 | 6 1602 | 6 1603 | 6 1604 | 6 1605 | 6 1606 | 6 1607 | 6 1608 | 6 1609 | 6 1610 | 6 1611 | 6 1612 | 6 1613 | 6 1614 | 6 1615 | 6 1616 | 6 1617 | 6 1618 | 6 1619 | 6 1620 | 6 1621 | 6 1622 | 6 1623 | 6 1624 | 6 1625 | 6 1626 | 6 1627 | 6 1628 | 6 1629 | 6 1630 | 6 1631 | 6 1632 | 6 1633 | 6 1634 | 6 1635 | 6 1636 | 6 1637 | 6 1638 | 6 1639 | 6 1640 | 6 1641 | 6 1642 | 6 1643 | 6 1644 | 6 1645 | 6 1646 | 6 1647 | 6 1648 | 6 1649 | 6 1650 | 6 1651 | 6 1652 | 6 1653 | 6 1654 | 6 1655 | 6 1656 | 6 1657 | 6 1658 | 6 1659 | 6 1660 | 6 1661 | 6 1662 | 6 1663 | 6 1664 | 6 1665 | 6 1666 | 6 1667 | 6 1668 | 6 1669 | 6 1670 | 6 1671 | 6 1672 | 6 1673 | 6 1674 | 6 1675 | 6 1676 | 6 1677 | 6 1678 | 6 1679 | 6 1680 | 6 1681 | 6 1682 | 6 1683 | 6 1684 | 6 1685 | 6 1686 | 6 1687 | 6 1688 | 6 1689 | 6 1690 | 6 1691 | 6 1692 | 6 1693 | 6 1694 | 6 1695 | 6 1696 | 6 1697 | 6 1698 | 6 1699 | 6 1700 | 6 1701 | 6 1702 | 6 1703 | 6 1704 | 6 1705 | 6 1706 | 6 1707 | 6 1708 | 6 1709 | 6 1710 | 6 1711 | 6 1712 | 6 1713 | 6 1714 | 6 1715 | 6 1716 | 6 1717 | 6 1718 | 6 1719 | 6 1720 | 6 1721 | 6 1722 | 6 1723 | 6 1724 | 6 1725 | 6 1726 | 6 1727 | 6 1728 | 6 1729 | 6 1730 | 6 1731 | 6 1732 | 6 1733 | 6 1734 | 6 1735 | 6 1736 | 6 1737 | 6 1738 | 6 1739 | 6 1740 | 6 1741 | 6 1742 | 6 1743 | 6 1744 | 6 1745 | 6 1746 | 6 1747 | 6 1748 | 6 1749 | 6 1750 | 6 1751 | 6 1752 | 6 1753 | 6 1754 | 6 1755 | 6 1756 | 6 1757 | 6 1758 | 6 1759 | 6 1760 | 6 1761 | 6 1762 | 6 1763 | 6 1764 | 6 1765 | 6 1766 | 6 1767 | 6 1768 | 6 1769 | 6 1770 | 6 1771 | 6 1772 | 6 1773 | 6 1774 | 6 1775 | 6 1776 | 6 1777 | 6 1778 | 6 1779 | 6 1780 | 6 1781 | 6 1782 | 6 1783 | 6 1784 | 6 1785 | 6 1786 | 6 1787 | 6 1788 | 6 1789 | 6 1790 | 6 1791 | 6 1792 | 6 1793 | 6 1794 | 6 1795 | 6 1796 | 6 1797 | 6 1798 | 6 1799 | 6 1800 | 6 1801 | 6 1802 | 6 1803 | 6 1804 | 6 1805 | 6 1806 | 6 1807 | 6 1808 | 6 1809 | 6 1810 | 6 1811 | 6 1812 | 6 1813 | 6 1814 | 6 1815 | 6 1816 | 6 1817 | 6 1818 | 6 1819 | 6 1820 | 6 1821 | 6 1822 | 6 1823 | 6 1824 | 6 1825 | 6 1826 | 6 1827 | 6 1828 | 6 1829 | 6 1830 | 6 1831 | 6 1832 | 6 1833 | 6 1834 | 6 1835 | 6 1836 | 6 1837 | 6 1838 | 6 1839 | 6 1840 | 6 1841 | 6 1842 | 6 1843 | 6 1844 | 6 1845 | 6 1846 | 6 1847 | 6 1848 | 6 1849 | 6 1850 | 6 1851 | 6 1852 | 6 1853 | 6 1854 | 6 1855 | 6 1856 | 6 1857 | 6 1858 | 6 1859 | 6 1860 | 6 1861 | 6 1862 | 6 1863 | 6 1864 | 6 1865 | 6 1866 | 6 1867 | 6 1868 | 6 1869 | 6 1870 | 6 1871 | 6 1872 | 6 1873 | 6 1874 | 6 1875 | 6 1876 | 6 1877 | 6 1878 | 6 1879 | 6 1880 | 6 1881 | 6 1882 | 6 1883 | 6 1884 | 6 1885 | 6 1886 | 6 1887 | 6 1888 | 6 1889 | 6 1890 | 6 1891 | 6 1892 | 6 1893 | 6 1894 | 6 1895 | 6 1896 | 6 1897 | 6 1898 | 6 1899 | 6 1900 | 6 1901 | 6 1902 | 6 1903 | 6 1904 | 6 1905 | 6 1906 | 6 1907 | 6 1908 | 6 1909 | 6 1910 | 6 1911 | 6 1912 | 6 1913 | 6 1914 | 6 1915 | 6 1916 | 6 1917 | 6 1918 | 6 1919 | 6 1920 | 6 1921 | 6 1922 | 6 1923 | 6 1924 | 6 1925 | 6 1926 | 6 1927 | 6 1928 | 6 1929 | 6 1930 | 6 1931 | 6 1932 | 6 1933 | 6 1934 | 6 1935 | 6 1936 | 6 1937 | 6 1938 | 6 1939 | 6 1940 | 6 1941 | 6 1942 | 6 1943 | 6 1944 | 6 1945 | 6 1946 | 6 1947 | 6 1948 | 6 1949 | 6 1950 | 6 1951 | 6 1952 | 6 1953 | 6 1954 | 6 1955 | 6 1956 | 6 1957 | 6 1958 | 6 1959 | 6 1960 | 6 1961 | 6 1962 | 6 1963 | 6 1964 | 6 1965 | 6 1966 | 6 1967 | 6 1968 | 6 1969 | 6 1970 | 6 1971 | 6 1972 | 6 1973 | 6 1974 | 6 1975 | 6 1976 | 6 1977 | 6 1978 | 6 1979 | 6 1980 | 6 1981 | 6 1982 | 6 1983 | 6 1984 | 6 1985 | 6 1986 | 6 1987 | 6 1988 | 6 1989 | 6 1990 | 6 1991 | 6 1992 | 6 1993 | 6 1994 | 6 1995 | 6 1996 | 6 1997 | 6 1998 | 6 1999 | 6 2000 | 6 2001 | 8 2002 | 8 2003 | 8 2004 | 8 2005 | 8 2006 | 8 2007 | 8 2008 | 8 2009 | 8 2010 | 8 2011 | 8 2012 | 8 2013 | 8 2014 | 8 2015 | 8 2016 | 8 2017 | 8 2018 | 8 2019 | 8 2020 | 8 2021 | 8 2022 | 8 2023 | 8 2024 | 8 2025 | 8 2026 | 8 2027 | 8 2028 | 8 2029 | 8 2030 | 8 2031 | 8 2032 | 8 2033 | 8 2034 | 8 2035 | 8 2036 | 8 2037 | 8 2038 | 8 2039 | 8 2040 | 8 2041 | 8 2042 | 8 2043 | 8 2044 | 8 2045 | 8 2046 | 8 2047 | 8 2048 | 8 2049 | 8 2050 | 8 2051 | 8 2052 | 8 2053 | 8 2054 | 8 2055 | 8 2056 | 8 2057 | 8 2058 | 8 2059 | 8 2060 | 8 2061 | 8 2062 | 8 2063 | 8 2064 | 8 2065 | 8 2066 | 8 2067 | 8 2068 | 8 2069 | 8 2070 | 8 2071 | 8 2072 | 8 2073 | 8 2074 | 8 2075 | 8 2076 | 8 2077 | 8 2078 | 8 2079 | 8 2080 | 8 2081 | 8 2082 | 8 2083 | 8 2084 | 8 2085 | 8 2086 | 8 2087 | 8 2088 | 8 2089 | 8 2090 | 8 2091 | 8 2092 | 8 2093 | 8 2094 | 8 2095 | 8 2096 | 8 2097 | 8 2098 | 8 2099 | 8 2100 | 8 2101 | 8 2102 | 8 2103 | 8 2104 | 8 2105 | 8 2106 | 8 2107 | 8 2108 | 8 2109 | 8 2110 | 8 2111 | 8 2112 | 8 2113 | 8 2114 | 8 2115 | 8 2116 | 8 2117 | 8 2118 | 8 2119 | 8 2120 | 8 2121 | 8 2122 | 8 2123 | 8 2124 | 8 2125 | 8 2126 | 8 2127 | 8 2128 | 8 2129 | 8 2130 | 8 2131 | 8 2132 | 8 2133 | 8 2134 | 8 2135 | 8 2136 | 8 2137 | 8 2138 | 8 2139 | 8 2140 | 8 2141 | 8 2142 | 8 2143 | 8 2144 | 8 2145 | 8 2146 | 8 2147 | 8 2148 | 8 2149 | 8 2150 | 8 2151 | 8 2152 | 8 2153 | 8 2154 | 8 2155 | 8 2156 | 8 2157 | 8 2158 | 8 2159 | 8 2160 | 8 2161 | 8 2162 | 8 2163 | 8 2164 | 8 2165 | 8 2166 | 8 2167 | 8 2168 | 8 2169 | 8 2170 | 8 2171 | 8 2172 | 8 2173 | 8 2174 | 8 2175 | 8 2176 | 8 2177 | 8 2178 | 8 2179 | 8 2180 | 8 2181 | 8 2182 | 8 2183 | 8 2184 | 8 2185 | 8 2186 | 8 2187 | 8 2188 | 8 2189 | 8 2190 | 8 2191 | 8 2192 | 8 2193 | 8 2194 | 8 2195 | 8 2196 | 8 2197 | 8 2198 | 8 2199 | 8 2200 | 8 2201 | 8 2202 | 8 2203 | 8 2204 | 8 2205 | 8 2206 | 8 2207 | 8 2208 | 8 2209 | 8 2210 | 8 2211 | 8 2212 | 8 2213 | 8 2214 | 8 2215 | 8 2216 | 8 2217 | 8 2218 | 8 2219 | 8 2220 | 8 2221 | 8 2222 | 8 2223 | 8 2224 | 8 2225 | 8 2226 | 8 2227 | 8 2228 | 8 2229 | 8 2230 | 8 2231 | 8 2232 | 8 2233 | 8 2234 | 8 2235 | 8 2236 | 8 2237 | 8 2238 | 8 2239 | 8 2240 | 8 2241 | 8 2242 | 8 2243 | 8 2244 | 8 2245 | 8 2246 | 8 2247 | 8 2248 | 8 2249 | 8 2250 | 8 2251 | 8 2252 | 8 2253 | 8 2254 | 8 2255 | 8 2256 | 8 2257 | 8 2258 | 8 2259 | 8 2260 | 8 2261 | 8 2262 | 8 2263 | 8 2264 | 8 2265 | 8 2266 | 8 2267 | 8 2268 | 8 2269 | 8 2270 | 8 2271 | 8 2272 | 8 2273 | 8 2274 | 8 2275 | 8 2276 | 8 2277 | 8 2278 | 8 2279 | 8 2280 | 8 2281 | 8 2282 | 8 2283 | 8 2284 | 8 2285 | 8 2286 | 8 2287 | 8 2288 | 8 2289 | 8 2290 | 8 2291 | 8 2292 | 8 2293 | 8 2294 | 8 2295 | 8 2296 | 8 2297 | 8 2298 | 8 2299 | 8 2300 | 8 2301 | 8 2302 | 8 2303 | 8 2304 | 8 2305 | 8 2306 | 8 2307 | 8 2308 | 8 2309 | 8 2310 | 8 2311 | 8 2312 | 8 2313 | 8 2314 | 8 2315 | 8 2316 | 8 2317 | 8 2318 | 8 2319 | 8 2320 | 8 2321 | 8 2322 | 8 2323 | 8 2324 | 8 2325 | 8 2326 | 8 2327 | 8 2328 | 8 2329 | 8 2330 | 8 2331 | 8 2332 | 8 2333 | 8 2334 | 8 2335 | 8 2336 | 8 2337 | 8 2338 | 8 2339 | 8 2340 | 8 2341 | 8 2342 | 8 2343 | 8 2344 | 8 2345 | 8 2346 | 8 2347 | 8 2348 | 8 2349 | 8 2350 | 8 2351 | 8 2352 | 8 2353 | 8 2354 | 8 2355 | 8 2356 | 8 2357 | 8 2358 | 8 2359 | 8 2360 | 8 2361 | 8 2362 | 8 2363 | 8 2364 | 8 2365 | 8 2366 | 8 2367 | 8 2368 | 8 2369 | 8 2370 | 8 2371 | 8 2372 | 8 2373 | 8 2374 | 8 2375 | 8 2376 | 8 2377 | 8 2378 | 8 2379 | 8 2380 | 8 2381 | 8 2382 | 8 2383 | 8 2384 | 8 2385 | 8 2386 | 8 2387 | 8 2388 | 8 2389 | 8 2390 | 8 2391 | 8 2392 | 8 2393 | 8 2394 | 8 2395 | 8 2396 | 8 2397 | 8 2398 | 8 2399 | 8 2400 | 8 2401 | 8 2402 | 8 2403 | 8 2404 | 8 2405 | 8 2406 | 8 2407 | 8 2408 | 8 2409 | 8 2410 | 8 2411 | 8 2412 | 8 2413 | 8 2414 | 8 2415 | 8 2416 | 8 2417 | 8 2418 | 8 2419 | 8 2420 | 8 2421 | 8 2422 | 8 2423 | 8 2424 | 8 2425 | 8 2426 | 8 2427 | 8 2428 | 8 2429 | 8 2430 | 8 2431 | 8 2432 | 8 2433 | 8 2434 | 8 2435 | 8 2436 | 8 2437 | 8 2438 | 8 2439 | 8 2440 | 8 2441 | 8 2442 | 8 2443 | 8 2444 | 8 2445 | 8 2446 | 8 2447 | 8 2448 | 8 2449 | 8 2450 | 8 2451 | 8 2452 | 8 2453 | 8 2454 | 8 2455 | 8 2456 | 8 2457 | 8 2458 | 8 2459 | 8 2460 | 8 2461 | 8 2462 | 8 2463 | 8 2464 | 8 2465 | 8 2466 | 8 2467 | 8 2468 | 8 2469 | 8 2470 | 8 2471 | 8 2472 | 8 2473 | 8 2474 | 8 2475 | 8 2476 | 8 2477 | 8 2478 | 8 2479 | 8 2480 | 8 2481 | 8 2482 | 8 2483 | 8 2484 | 8 2485 | 8 2486 | 8 2487 | 8 2488 | 8 2489 | 8 2490 | 8 2491 | 8 2492 | 8 2493 | 8 2494 | 8 2495 | 8 2496 | 8 2497 | 8 2498 | 8 2499 | 8 2500 | 8 2501 | 8 2502 | 8 2503 | 8 2504 | 8 2505 | 8 2506 | 8 2507 | 8 2508 | 8 2509 | 8 2510 | 8 2511 | 8 2512 | 8 2513 | 8 2514 | 8 2515 | 8 2516 | 8 2517 | 8 2518 | 8 2519 | 8 2520 | 8 2521 | 8 2522 | 8 2523 | 8 2524 | 8 2525 | 8 2526 | 8 2527 | 8 2528 | 8 2529 | 8 2530 | 8 2531 | 8 2532 | 8 2533 | 8 2534 | 8 2535 | 8 2536 | 8 2537 | 8 2538 | 8 2539 | 8 2540 | 8 2541 | 8 2542 | 8 2543 | 8 2544 | 8 2545 | 8 2546 | 8 2547 | 8 2548 | 8 2549 | 8 2550 | 8 2551 | 8 2552 | 8 2553 | 8 2554 | 8 2555 | 8 2556 | 8 2557 | 8 2558 | 8 2559 | 8 2560 | 8 2561 | 8 2562 | 8 2563 | 8 2564 | 8 2565 | 8 2566 | 8 2567 | 8 2568 | 8 2569 | 8 2570 | 8 2571 | 8 2572 | 8 2573 | 8 2574 | 8 2575 | 8 2576 | 8 2577 | 8 2578 | 8 2579 | 8 2580 | 8 2581 | 8 2582 | 8 2583 | 8 2584 | 8 2585 | 8 2586 | 8 2587 | 8 2588 | 8 2589 | 8 2590 | 8 2591 | 8 2592 | 8 2593 | 8 2594 | 8 2595 | 8 2596 | 8 2597 | 8 2598 | 8 2599 | 8 2600 | 8 2601 | 8 2602 | 8 2603 | 8 2604 | 8 2605 | 8 2606 | 8 2607 | 8 2608 | 8 2609 | 8 2610 | 8 2611 | 8 2612 | 8 2613 | 8 2614 | 8 2615 | 8 2616 | 8 2617 | 8 2618 | 8 2619 | 8 2620 | 8 2621 | 8 2622 | 8 2623 | 8 2624 | 8 2625 | 8 2626 | 8 2627 | 8 2628 | 8 2629 | 8 2630 | 8 2631 | 8 2632 | 8 2633 | 8 2634 | 8 2635 | 8 2636 | 8 2637 | 8 2638 | 8 2639 | 8 2640 | 8 2641 | 8 2642 | 8 2643 | 8 2644 | 8 2645 | 8 2646 | 8 2647 | 8 2648 | 8 2649 | 8 2650 | 8 2651 | 8 2652 | 8 2653 | 8 2654 | 8 2655 | 8 2656 | 8 2657 | 8 2658 | 8 2659 | 8 2660 | 8 2661 | 8 2662 | 8 2663 | 8 2664 | 8 2665 | 8 2666 | 8 2667 | 8 2668 | 8 2669 | 8 2670 | 8 2671 | 8 2672 | 8 2673 | 8 2674 | 8 2675 | 8 2676 | 8 2677 | 8 2678 | 8 2679 | 8 2680 | 8 2681 | 8 2682 | 8 2683 | 8 2684 | 8 2685 | 8 2686 | 8 2687 | 8 2688 | 8 2689 | 8 2690 | 8 2691 | 8 2692 | 8 2693 | 8 2694 | 8 2695 | 8 2696 | 8 2697 | 8 2698 | 8 2699 | 8 2700 | 8 2701 | 8 2702 | 8 2703 | 8 2704 | 8 2705 | 8 2706 | 8 2707 | 8 2708 | 8 2709 | 8 2710 | 8 2711 | 8 2712 | 8 2713 | 8 2714 | 8 2715 | 8 2716 | 8 2717 | 8 2718 | 8 2719 | 8 2720 | 8 2721 | 8 2722 | 8 2723 | 8 2724 | 8 2725 | 8 2726 | 8 2727 | 8 2728 | 8 2729 | 8 2730 | 8 2731 | 8 2732 | 8 2733 | 8 2734 | 8 2735 | 8 2736 | 8 2737 | 8 2738 | 8 2739 | 8 2740 | 8 2741 | 8 2742 | 8 2743 | 8 2744 | 8 2745 | 8 2746 | 8 2747 | 8 2748 | 8 2749 | 8 2750 | 8 2751 | 8 2752 | 8 2753 | 8 2754 | 8 2755 | 8 2756 | 8 2757 | 8 2758 | 8 2759 | 8 2760 | 8 2761 | 8 2762 | 8 2763 | 8 2764 | 8 2765 | 8 2766 | 8 2767 | 8 2768 | 8 2769 | 8 2770 | 8 2771 | 8 2772 | 8 2773 | 8 2774 | 8 2775 | 8 2776 | 8 2777 | 8 2778 | 8 2779 | 8 2780 | 8 2781 | 8 2782 | 8 2783 | 8 2784 | 8 2785 | 8 2786 | 8 2787 | 8 2788 | 8 2789 | 8 2790 | 8 2791 | 8 2792 | 8 2793 | 8 2794 | 8 2795 | 8 2796 | 8 2797 | 8 2798 | 8 2799 | 8 2800 | 8 2801 | 8 2802 | 8 2803 | 8 2804 | 8 2805 | 8 2806 | 8 2807 | 8 2808 | 8 2809 | 8 2810 | 8 2811 | 8 2812 | 8 2813 | 8 2814 | 8 2815 | 8 2816 | 8 2817 | 8 2818 | 8 2819 | 8 2820 | 8 2821 | 8 2822 | 8 2823 | 8 2824 | 8 2825 | 8 2826 | 8 2827 | 8 2828 | 8 2829 | 8 2830 | 8 2831 | 8 2832 | 8 2833 | 8 2834 | 8 2835 | 8 2836 | 8 2837 | 8 2838 | 8 2839 | 8 2840 | 8 2841 | 8 2842 | 8 2843 | 8 2844 | 8 2845 | 8 2846 | 8 2847 | 8 2848 | 8 2849 | 8 2850 | 8 2851 | 8 2852 | 8 2853 | 8 2854 | 8 2855 | 8 2856 | 8 2857 | 8 2858 | 8 2859 | 8 2860 | 8 2861 | 8 2862 | 8 2863 | 8 2864 | 8 2865 | 8 2866 | 8 2867 | 8 2868 | 8 2869 | 8 2870 | 8 2871 | 8 2872 | 8 2873 | 8 2874 | 8 2875 | 8 2876 | 8 2877 | 8 2878 | 8 2879 | 8 2880 | 8 2881 | 8 2882 | 8 2883 | 8 2884 | 8 2885 | 8 2886 | 8 2887 | 8 2888 | 8 2889 | 8 2890 | 8 2891 | 8 2892 | 8 2893 | 8 2894 | 8 2895 | 8 2896 | 8 2897 | 8 2898 | 8 2899 | 8 2900 | 8 2901 | 8 2902 | 8 2903 | 8 2904 | 8 2905 | 8 2906 | 8 2907 | 8 2908 | 8 2909 | 8 2910 | 8 2911 | 8 2912 | 8 2913 | 8 2914 | 8 2915 | 8 2916 | 8 2917 | 8 2918 | 8 2919 | 8 2920 | 8 2921 | 8 2922 | 8 2923 | 8 2924 | 8 2925 | 8 2926 | 8 2927 | 8 2928 | 8 2929 | 8 2930 | 8 2931 | 8 2932 | 8 2933 | 8 2934 | 8 2935 | 8 2936 | 8 2937 | 8 2938 | 8 2939 | 8 2940 | 8 2941 | 8 2942 | 8 2943 | 8 2944 | 8 2945 | 8 2946 | 8 2947 | 8 2948 | 8 2949 | 8 2950 | 8 2951 | 8 2952 | 8 2953 | 8 2954 | 8 2955 | 8 2956 | 8 2957 | 8 2958 | 8 2959 | 8 2960 | 8 2961 | 8 2962 | 8 2963 | 8 2964 | 8 2965 | 8 2966 | 8 2967 | 8 2968 | 8 2969 | 8 2970 | 8 2971 | 8 2972 | 8 2973 | 8 2974 | 8 2975 | 8 2976 | 8 2977 | 8 2978 | 8 2979 | 8 2980 | 8 2981 | 8 2982 | 8 2983 | 8 2984 | 8 2985 | 8 2986 | 8 2987 | 8 2988 | 8 2989 | 8 2990 | 8 2991 | 8 2992 | 8 2993 | 8 2994 | 8 2995 | 8 2996 | 8 2997 | 8 2998 | 8 2999 | 8 3000 | 8 3001 | 8 3002 | 8 3003 | 8 3004 | 8 3005 | 8 3006 | 8 3007 | 8 3008 | 8 3009 | 8 3010 | 8 3011 | 8 3012 | 8 3013 | 8 3014 | 8 3015 | 8 3016 | 8 3017 | 8 3018 | 8 3019 | 8 3020 | 8 3021 | 8 3022 | 8 3023 | 8 3024 | 8 3025 | 8 3026 | 8 3027 | 8 3028 | 8 3029 | 8 3030 | 8 3031 | 8 3032 | 8 3033 | 8 3034 | 8 3035 | 8 3036 | 8 3037 | 8 3038 | 8 3039 | 8 3040 | 8 3041 | 8 3042 | 8 3043 | 8 3044 | 8 3045 | 8 3046 | 8 3047 | 8 3048 | 8 3049 | 8 3050 | 8 3051 | 8 3052 | 8 3053 | 8 3054 | 8 3055 | 8 3056 | 8 3057 | 8 3058 | 8 3059 | 8 3060 | 8 3061 | 8 3062 | 8 3063 | 8 3064 | 8 3065 | 8 3066 | 8 3067 | 8 3068 | 8 3069 | 8 3070 | 8 3071 | 8 3072 | 8 3073 | 8 3074 | 8 3075 | 8 3076 | 8 3077 | 8 3078 | 8 3079 | 8 3080 | 8 3081 | 8 3082 | 8 3083 | 8 3084 | 8 3085 | 8 3086 | 8 3087 | 8 3088 | 8 3089 | 8 3090 | 8 3091 | 8 3092 | 8 3093 | 8 3094 | 8 3095 | 8 3096 | 8 3097 | 8 3098 | 8 3099 | 8 3100 | 8 3101 | 8 3102 | 8 3103 | 8 3104 | 8 3105 | 8 3106 | 8 3107 | 8 3108 | 8 3109 | 8 3110 | 8 3111 | 8 3112 | 8 3113 | 8 3114 | 8 3115 | 8 3116 | 8 3117 | 8 3118 | 8 3119 | 8 3120 | 8 3121 | 8 3122 | 8 3123 | 8 3124 | 8 3125 | 8 3126 | 8 3127 | 8 3128 | 8 3129 | 8 3130 | 8 3131 | 8 3132 | 8 3133 | 8 3134 | 8 3135 | 8 3136 | 8 3137 | 8 3138 | 8 3139 | 8 3140 | 8 3141 | 8 3142 | 8 3143 | 8 3144 | 8 3145 | 8 3146 | 8 3147 | 8 3148 | 8 3149 | 8 3150 | 8 3151 | 8 3152 | 8 3153 | 8 3154 | 8 3155 | 8 3156 | 8 3157 | 8 3158 | 8 3159 | 8 3160 | 8 3161 | 8 3162 | 8 3163 | 8 3164 | 8 3165 | 8 3166 | 8 3167 | 8 3168 | 8 3169 | 8 3170 | 8 3171 | 8 3172 | 8 3173 | 8 3174 | 8 3175 | 8 3176 | 8 3177 | 8 3178 | 8 3179 | 8 3180 | 8 3181 | 8 3182 | 8 3183 | 8 3184 | 8 3185 | 8 3186 | 8 3187 | 8 3188 | 8 3189 | 8 3190 | 8 3191 | 8 3192 | 8 3193 | 8 3194 | 8 3195 | 8 3196 | 8 3197 | 8 3198 | 8 3199 | 8 3200 | 8 3201 | 8 3202 | 8 3203 | 8 3204 | 8 3205 | 8 3206 | 8 3207 | 8 3208 | 8 3209 | 8 3210 | 8 3211 | 8 3212 | 8 3213 | 8 3214 | 8 3215 | 8 3216 | 8 3217 | 8 3218 | 8 3219 | 8 3220 | 8 3221 | 8 3222 | 8 3223 | 8 3224 | 8 3225 | 8 3226 | 8 3227 | 8 3228 | 8 3229 | 8 3230 | 8 3231 | 8 3232 | 8 3233 | 8 3234 | 8 3235 | 8 3236 | 8 3237 | 8 3238 | 8 3239 | 8 3240 | 8 3241 | 8 3242 | 8 3243 | 8 3244 | 8 3245 | 8 3246 | 8 3247 | 8 3248 | 8 3249 | 8 3250 | 8 3251 | 8 3252 | 8 3253 | 8 3254 | 8 3255 | 8 3256 | 8 3257 | 8 3258 | 8 3259 | 8 3260 | 8 3261 | 8 3262 | 8 3263 | 8 3264 | 8 3265 | 8 3266 | 8 3267 | 8 3268 | 8 3269 | 8 3270 | 8 3271 | 8 3272 | 8 3273 | 8 3274 | 8 3275 | 8 3276 | 8 3277 | 8 3278 | 8 3279 | 8 3280 | 8 3281 | 8 3282 | 8 3283 | 8 3284 | 8 3285 | 8 3286 | 8 3287 | 8 3288 | 8 3289 | 8 3290 | 8 3291 | 8 3292 | 8 3293 | 8 3294 | 8 3295 | 8 3296 | 8 3297 | 8 3298 | 8 3299 | 8 3300 | 8 3301 | 8 3302 | 8 3303 | 8 3304 | 8 3305 | 8 3306 | 8 3307 | 8 3308 | 8 3309 | 8 3310 | 8 3311 | 8 3312 | 8 3313 | 8 3314 | 8 3315 | 8 3316 | 8 3317 | 8 3318 | 8 3319 | 8 3320 | 8 3321 | 8 3322 | 8 3323 | 8 3324 | 8 3325 | 8 3326 | 8 3327 | 8 3328 | 8 3329 | 8 3330 | 8 3331 | 8 3332 | 8 3333 | 8 3334 | 8 3335 | 8 3336 | 8 3337 | 8 3338 | 8 3339 | 8 3340 | 8 3341 | 8 3342 | 8 3343 | 8 3344 | 8 3345 | 8 3346 | 8 3347 | 8 3348 | 8 3349 | 8 3350 | 8 3351 | 8 3352 | 8 3353 | 8 3354 | 8 3355 | 8 3356 | 8 3357 | 8 3358 | 8 3359 | 8 3360 | 8 3361 | 8 3362 | 8 3363 | 8 3364 | 8 3365 | 8 3366 | 8 3367 | 8 3368 | 8 3369 | 8 3370 | 8 3371 | 8 3372 | 8 3373 | 8 3374 | 8 3375 | 8 3376 | 8 3377 | 8 3378 | 8 3379 | 8 3380 | 8 3381 | 8 3382 | 8 3383 | 8 3384 | 8 3385 | 8 3386 | 8 3387 | 8 3388 | 8 3389 | 8 3390 | 8 3391 | 8 3392 | 8 3393 | 8 3394 | 8 3395 | 8 3396 | 8 3397 | 8 3398 | 8 3399 | 8 3400 | 8 3401 | 8 3402 | 8 3403 | 8 3404 | 8 3405 | 8 3406 | 8 3407 | 8 3408 | 8 3409 | 8 3410 | 8 3411 | 8 3412 | 8 3413 | 8 3414 | 8 3415 | 8 3416 | 8 3417 | 8 3418 | 8 3419 | 8 3420 | 8 3421 | 8 3422 | 8 3423 | 8 3424 | 8 3425 | 8 3426 | 8 3427 | 8 3428 | 8 3429 | 8 3430 | 8 3431 | 8 3432 | 8 3433 | 8 3434 | 8 3435 | 8 3436 | 8 3437 | 8 3438 | 8 3439 | 8 3440 | 8 3441 | 8 3442 | 8 3443 | 8 3444 | 8 3445 | 8 3446 | 8 3447 | 8 3448 | 8 3449 | 8 3450 | 8 3451 | 8 3452 | 8 3453 | 8 3454 | 8 3455 | 8 3456 | 8 3457 | 8 3458 | 8 3459 | 8 3460 | 8 3461 | 8 3462 | 8 3463 | 8 3464 | 8 3465 | 8 3466 | 8 3467 | 8 3468 | 8 3469 | 8 3470 | 8 3471 | 8 3472 | 8 3473 | 8 3474 | 8 3475 | 8 3476 | 8 3477 | 8 3478 | 8 3479 | 8 3480 | 8 3481 | 8 3482 | 8 3483 | 8 3484 | 8 3485 | 8 3486 | 8 3487 | 8 3488 | 8 3489 | 8 3490 | 8 3491 | 8 3492 | 8 3493 | 8 3494 | 8 3495 | 8 3496 | 8 3497 | 8 3498 | 8 3499 | 8 3500 | 8 3501 | 8 3502 | 8 3503 | 8 3504 | 8 3505 | 8 3506 | 8 3507 | 8 3508 | 8 3509 | 8 3510 | 8 3511 | 8 3512 | 8 3513 | 8 3514 | 8 3515 | 8 3516 | 8 3517 | 8 3518 | 8 3519 | 8 3520 | 8 3521 | 8 3522 | 8 3523 | 8 3524 | 8 3525 | 8 3526 | 8 3527 | 8 3528 | 8 3529 | 8 3530 | 8 3531 | 8 3532 | 8 3533 | 8 3534 | 8 3535 | 8 3536 | 8 3537 | 8 3538 | 8 3539 | 8 3540 | 8 3541 | 8 3542 | 8 3543 | 8 3544 | 8 3545 | 8 3546 | 8 3547 | 8 3548 | 8 3549 | 8 3550 | 8 3551 | 8 3552 | 8 3553 | 8 3554 | 8 3555 | 8 3556 | 8 3557 | 8 3558 | 8 3559 | 8 3560 | 8 3561 | 8 3562 | 8 3563 | 8 3564 | 8 3565 | 8 3566 | 8 3567 | 8 3568 | 8 3569 | 8 3570 | 8 3571 | 8 3572 | 8 3573 | 8 3574 | 8 3575 | 8 3576 | 8 3577 | 8 3578 | 8 3579 | 8 3580 | 8 3581 | 8 3582 | 8 3583 | 8 3584 | 8 3585 | 8 3586 | 8 3587 | 8 3588 | 8 3589 | 8 3590 | 8 3591 | 8 3592 | 8 3593 | 8 3594 | 8 3595 | 8 3596 | 8 3597 | 8 3598 | 8 3599 | 8 3600 | 8 3601 | 8 3602 | 8 3603 | 8 3604 | 8 3605 | 8 3606 | 8 3607 | 8 3608 | 8 3609 | 8 3610 | 8 3611 | 8 3612 | 8 3613 | 8 3614 | 8 3615 | 8 3616 | 8 3617 | 8 3618 | 8 3619 | 8 3620 | 8 3621 | 8 3622 | 8 3623 | 8 3624 | 8 3625 | 8 3626 | 8 3627 | 8 3628 | 8 3629 | 8 3630 | 8 3631 | 8 3632 | 8 3633 | 8 3634 | 8 3635 | 8 3636 | 8 3637 | 8 3638 | 8 3639 | 8 3640 | 8 3641 | 8 3642 | 8 3643 | 8 3644 | 8 3645 | 8 3646 | 8 3647 | 8 3648 | 8 3649 | 8 3650 | 8 3651 | 8 3652 | 8 3653 | 8 3654 | 8 3655 | 8 3656 | 8 3657 | 8 3658 | 8 3659 | 8 3660 | 8 3661 | 8 3662 | 8 3663 | 8 3664 | 8 3665 | 8 3666 | 8 3667 | 8 3668 | 8 3669 | 8 3670 | 8 3671 | 8 3672 | 8 3673 | 8 3674 | 8 3675 | 8 3676 | 8 3677 | 8 3678 | 8 3679 | 8 3680 | 8 3681 | 8 3682 | 8 3683 | 8 3684 | 8 3685 | 8 3686 | 8 3687 | 8 3688 | 8 3689 | 8 3690 | 8 3691 | 8 3692 | 8 3693 | 8 3694 | 8 3695 | 8 3696 | 8 3697 | 8 3698 | 8 3699 | 8 3700 | 8 3701 | 8 3702 | 8 3703 | 8 3704 | 8 3705 | 8 3706 | 8 3707 | 8 3708 | 8 3709 | 8 3710 | 8 3711 | 8 3712 | 8 3713 | 8 3714 | 8 3715 | 8 3716 | 8 3717 | 8 3718 | 8 3719 | 8 3720 | 8 3721 | 8 3722 | 8 3723 | 8 3724 | 8 3725 | 8 3726 | 8 3727 | 8 3728 | 8 3729 | 8 3730 | 8 3731 | 8 3732 | 8 3733 | 8 3734 | 8 3735 | 8 3736 | 8 3737 | 8 3738 | 8 3739 | 8 3740 | 8 3741 | 8 3742 | 8 3743 | 8 3744 | 8 3745 | 8 3746 | 8 3747 | 8 3748 | 8 3749 | 8 3750 | 8 3751 | 8 3752 | 8 3753 | 8 3754 | 8 3755 | 8 3756 | 8 3757 | 8 3758 | 8 3759 | 8 3760 | 8 3761 | 8 3762 | 8 3763 | 8 3764 | 8 3765 | 8 3766 | 8 3767 | 8 3768 | 8 3769 | 8 3770 | 8 3771 | 8 3772 | 8 3773 | 8 3774 | 8 3775 | 8 3776 | 8 3777 | 8 3778 | 8 3779 | 8 3780 | 8 3781 | 8 3782 | 8 3783 | 8 3784 | 8 3785 | 8 3786 | 8 3787 | 8 3788 | 8 3789 | 8 3790 | 8 3791 | 8 3792 | 8 3793 | 8 3794 | 8 3795 | 8 3796 | 8 3797 | 8 3798 | 8 3799 | 8 3800 | 8 3801 | 8 3802 | 8 3803 | 8 3804 | 8 3805 | 8 3806 | 8 3807 | 8 3808 | 8 3809 | 8 3810 | 8 3811 | 8 3812 | 8 3813 | 8 3814 | 8 3815 | 8 3816 | 8 3817 | 8 3818 | 8 3819 | 8 3820 | 8 3821 | 8 3822 | 8 3823 | 8 3824 | 8 3825 | 8 3826 | 8 3827 | 8 3828 | 8 3829 | 8 3830 | 8 3831 | 8 3832 | 8 3833 | 8 3834 | 8 3835 | 8 3836 | 8 3837 | 8 3838 | 8 3839 | 8 3840 | 8 3841 | 8 3842 | 8 3843 | 8 3844 | 8 3845 | 8 3846 | 8 3847 | 8 3848 | 8 3849 | 8 3850 | 8 3851 | 8 3852 | 8 3853 | 8 3854 | 8 3855 | 8 3856 | 8 3857 | 8 3858 | 8 3859 | 8 3860 | 8 3861 | 8 3862 | 8 3863 | 8 3864 | 8 3865 | 8 3866 | 8 3867 | 8 3868 | 8 3869 | 8 3870 | 8 3871 | 8 3872 | 8 3873 | 8 3874 | 8 3875 | 8 3876 | 8 3877 | 8 3878 | 8 3879 | 8 3880 | 8 3881 | 8 3882 | 8 3883 | 8 3884 | 8 3885 | 8 3886 | 8 3887 | 8 3888 | 8 3889 | 8 3890 | 8 3891 | 8 3892 | 8 3893 | 8 3894 | 8 3895 | 8 3896 | 8 3897 | 8 3898 | 8 3899 | 8 3900 | 8 3901 | 8 3902 | 8 3903 | 8 3904 | 8 3905 | 8 3906 | 8 3907 | 8 3908 | 8 3909 | 8 3910 | 8 3911 | 8 3912 | 8 3913 | 8 3914 | 8 3915 | 8 3916 | 8 3917 | 8 3918 | 8 3919 | 8 3920 | 8 3921 | 8 3922 | 8 3923 | 8 3924 | 8 3925 | 8 3926 | 8 3927 | 8 3928 | 8 3929 | 8 3930 | 8 3931 | 8 3932 | 8 3933 | 8 3934 | 8 3935 | 8 3936 | 8 3937 | 8 3938 | 8 3939 | 8 3940 | 8 3941 | 8 3942 | 8 3943 | 8 3944 | 8 3945 | 8 3946 | 8 3947 | 8 3948 | 8 3949 | 8 3950 | 8 3951 | 8 3952 | 8 3953 | 8 3954 | 8 3955 | 8 3956 | 8 3957 | 8 3958 | 8 3959 | 8 3960 | 8 3961 | 8 3962 | 8 3963 | 8 3964 | 8 3965 | 8 3966 | 8 3967 | 8 3968 | 8 3969 | 8 3970 | 8 3971 | 8 3972 | 8 3973 | 8 3974 | 8 3975 | 8 3976 | 8 3977 | 8 3978 | 8 3979 | 8 3980 | 8 3981 | 8 3982 | 8 3983 | 8 3984 | 8 3985 | 8 3986 | 8 3987 | 8 3988 | 8 3989 | 8 3990 | 8 3991 | 8 3992 | 8 3993 | 8 3994 | 8 3995 | 8 3996 | 8 3997 | 8 3998 | 8 3999 | 8 4000 | 8 4001 | 1 4002 | 1 4003 | 1 4004 | 1 4005 | 1 4006 | 1 4007 | 1 4008 | 1 4009 | 1 4010 | 1 4011 | 1 4012 | 1 4013 | 1 4014 | 1 4015 | 1 4016 | 1 4017 | 1 4018 | 1 4019 | 1 4020 | 1 4021 | 1 4022 | 1 4023 | 1 4024 | 1 4025 | 1 4026 | 1 4027 | 1 4028 | 1 4029 | 1 4030 | 1 4031 | 1 4032 | 1 4033 | 1 4034 | 1 4035 | 1 4036 | 1 4037 | 1 4038 | 1 4039 | 1 4040 | 1 4041 | 1 4042 | 1 4043 | 1 4044 | 1 4045 | 1 4046 | 1 4047 | 1 4048 | 1 4049 | 1 4050 | 1 4051 | 1 4052 | 1 4053 | 1 4054 | 1 4055 | 1 4056 | 1 4057 | 1 4058 | 1 4059 | 1 4060 | 1 4061 | 1 4062 | 1 4063 | 1 4064 | 1 4065 | 1 4066 | 1 4067 | 1 4068 | 1 4069 | 1 4070 | 1 4071 | 1 4072 | 1 4073 | 1 4074 | 1 4075 | 1 4076 | 1 4077 | 1 4078 | 1 4079 | 1 4080 | 1 4081 | 1 4082 | 1 4083 | 1 4084 | 1 4085 | 1 4086 | 1 4087 | 1 4088 | 1 4089 | 1 4090 | 1 4091 | 1 4092 | 1 4093 | 1 4094 | 1 4095 | 1 4096 | 1 4097 | 1 4098 | 1 4099 | 1 4100 | 1 4101 | 1 4102 | 1 4103 | 1 4104 | 1 4105 | 1 4106 | 1 4107 | 1 4108 | 1 4109 | 1 4110 | 1 4111 | 1 4112 | 1 4113 | 1 4114 | 1 4115 | 1 4116 | 1 4117 | 1 4118 | 1 4119 | 1 4120 | 1 4121 | 1 4122 | 1 4123 | 1 4124 | 1 4125 | 1 4126 | 1 4127 | 1 4128 | 1 4129 | 1 4130 | 1 4131 | 1 4132 | 1 4133 | 1 4134 | 1 4135 | 1 4136 | 1 4137 | 1 4138 | 1 4139 | 1 4140 | 1 4141 | 1 4142 | 1 4143 | 1 4144 | 1 4145 | 1 4146 | 1 4147 | 1 4148 | 1 4149 | 1 4150 | 1 4151 | 1 4152 | 1 4153 | 1 4154 | 1 4155 | 1 4156 | 1 4157 | 1 4158 | 1 4159 | 1 4160 | 1 4161 | 1 4162 | 1 4163 | 1 4164 | 1 4165 | 1 4166 | 1 4167 | 1 4168 | 1 4169 | 1 4170 | 1 4171 | 1 4172 | 1 4173 | 1 4174 | 1 4175 | 1 4176 | 1 4177 | 1 4178 | 1 4179 | 1 4180 | 1 4181 | 1 4182 | 1 4183 | 1 4184 | 1 4185 | 1 4186 | 1 4187 | 1 4188 | 1 4189 | 1 4190 | 1 4191 | 1 4192 | 1 4193 | 1 4194 | 1 4195 | 1 4196 | 1 4197 | 1 4198 | 1 4199 | 1 4200 | 1 4201 | 1 4202 | 1 4203 | 1 4204 | 1 4205 | 1 4206 | 1 4207 | 1 4208 | 1 4209 | 1 4210 | 1 4211 | 1 4212 | 1 4213 | 1 4214 | 1 4215 | 1 4216 | 1 4217 | 1 4218 | 1 4219 | 1 4220 | 1 4221 | 1 4222 | 1 4223 | 1 4224 | 1 4225 | 1 4226 | 1 4227 | 1 4228 | 1 4229 | 1 4230 | 1 4231 | 1 4232 | 1 4233 | 1 4234 | 1 4235 | 1 4236 | 1 4237 | 1 4238 | 1 4239 | 1 4240 | 1 4241 | 1 4242 | 1 4243 | 1 4244 | 1 4245 | 1 4246 | 1 4247 | 1 4248 | 1 4249 | 1 4250 | 1 4251 | 1 4252 | 1 4253 | 1 4254 | 1 4255 | 1 4256 | 1 4257 | 1 4258 | 1 4259 | 1 4260 | 1 4261 | 1 4262 | 1 4263 | 1 4264 | 1 4265 | 1 4266 | 1 4267 | 1 4268 | 1 4269 | 1 4270 | 1 4271 | 1 4272 | 1 4273 | 1 4274 | 1 4275 | 1 4276 | 1 4277 | 1 4278 | 1 4279 | 1 4280 | 1 4281 | 1 4282 | 1 4283 | 1 4284 | 1 4285 | 1 4286 | 1 4287 | 1 4288 | 1 4289 | 1 4290 | 1 4291 | 1 4292 | 1 4293 | 1 4294 | 1 4295 | 1 4296 | 1 4297 | 1 4298 | 1 4299 | 1 4300 | 1 4301 | 1 4302 | 1 4303 | 1 4304 | 1 4305 | 1 4306 | 1 4307 | 1 4308 | 1 4309 | 1 4310 | 1 4311 | 1 4312 | 1 4313 | 1 4314 | 1 4315 | 1 4316 | 1 4317 | 1 4318 | 1 4319 | 1 4320 | 1 4321 | 1 4322 | 1 4323 | 1 4324 | 1 4325 | 1 4326 | 1 4327 | 1 4328 | 1 4329 | 1 4330 | 1 4331 | 1 4332 | 1 4333 | 1 4334 | 1 4335 | 1 4336 | 1 4337 | 1 4338 | 1 4339 | 1 4340 | 1 4341 | 1 4342 | 1 4343 | 1 4344 | 1 4345 | 1 4346 | 1 4347 | 1 4348 | 1 4349 | 1 4350 | 1 4351 | 1 4352 | 1 4353 | 1 4354 | 1 4355 | 1 4356 | 1 4357 | 1 4358 | 1 4359 | 1 4360 | 1 4361 | 1 4362 | 1 4363 | 1 4364 | 1 4365 | 1 4366 | 1 4367 | 1 4368 | 1 4369 | 1 4370 | 1 4371 | 1 4372 | 1 4373 | 1 4374 | 1 4375 | 1 4376 | 1 4377 | 1 4378 | 1 4379 | 1 4380 | 1 4381 | 1 4382 | 1 4383 | 1 4384 | 1 4385 | 1 4386 | 1 4387 | 1 4388 | 1 4389 | 1 4390 | 1 4391 | 1 4392 | 1 4393 | 1 4394 | 1 4395 | 1 4396 | 1 4397 | 1 4398 | 1 4399 | 1 4400 | 1 4401 | 1 4402 | 1 4403 | 1 4404 | 1 4405 | 1 4406 | 1 4407 | 1 4408 | 1 4409 | 1 4410 | 1 4411 | 1 4412 | 1 4413 | 1 4414 | 1 4415 | 1 4416 | 1 4417 | 1 4418 | 1 4419 | 1 4420 | 1 4421 | 1 4422 | 1 4423 | 1 4424 | 1 4425 | 1 4426 | 1 4427 | 1 4428 | 1 4429 | 1 4430 | 1 4431 | 1 4432 | 1 4433 | 1 4434 | 1 4435 | 1 4436 | 1 4437 | 1 4438 | 1 4439 | 1 4440 | 1 4441 | 1 4442 | 1 4443 | 1 4444 | 1 4445 | 1 4446 | 1 4447 | 1 4448 | 1 4449 | 1 4450 | 1 4451 | 1 4452 | 1 4453 | 1 4454 | 1 4455 | 1 4456 | 1 4457 | 1 4458 | 1 4459 | 1 4460 | 1 4461 | 1 4462 | 1 4463 | 1 4464 | 1 4465 | 1 4466 | 1 4467 | 1 4468 | 1 4469 | 1 4470 | 1 4471 | 1 4472 | 1 4473 | 1 4474 | 1 4475 | 1 4476 | 1 4477 | 1 4478 | 1 4479 | 1 4480 | 1 4481 | 1 4482 | 1 4483 | 1 4484 | 1 4485 | 1 4486 | 1 4487 | 1 4488 | 1 4489 | 1 4490 | 1 4491 | 1 4492 | 1 4493 | 1 4494 | 1 4495 | 1 4496 | 1 4497 | 1 4498 | 1 4499 | 1 4500 | 1 4501 | 1 4502 | 1 4503 | 1 4504 | 1 4505 | 1 4506 | 1 4507 | 1 4508 | 1 4509 | 1 4510 | 1 4511 | 1 4512 | 1 4513 | 1 4514 | 1 4515 | 1 4516 | 1 4517 | 1 4518 | 1 4519 | 1 4520 | 1 4521 | 1 4522 | 1 4523 | 1 4524 | 1 4525 | 1 4526 | 1 4527 | 1 4528 | 1 4529 | 1 4530 | 1 4531 | 1 4532 | 1 4533 | 1 4534 | 1 4535 | 1 4536 | 1 4537 | 1 4538 | 1 4539 | 1 4540 | 1 4541 | 1 4542 | 1 4543 | 1 4544 | 1 4545 | 1 4546 | 1 4547 | 1 4548 | 1 4549 | 1 4550 | 1 4551 | 1 4552 | 1 4553 | 1 4554 | 1 4555 | 1 4556 | 1 4557 | 1 4558 | 1 4559 | 1 4560 | 1 4561 | 1 4562 | 1 4563 | 1 4564 | 1 4565 | 1 4566 | 1 4567 | 1 4568 | 1 4569 | 1 4570 | 1 4571 | 1 4572 | 1 4573 | 1 4574 | 1 4575 | 1 4576 | 1 4577 | 1 4578 | 1 4579 | 1 4580 | 1 4581 | 1 4582 | 1 4583 | 1 4584 | 1 4585 | 1 4586 | 1 4587 | 1 4588 | 1 4589 | 1 4590 | 1 4591 | 1 4592 | 1 4593 | 1 4594 | 1 4595 | 1 4596 | 1 4597 | 1 4598 | 1 4599 | 1 4600 | 1 4601 | 1 4602 | 1 4603 | 1 4604 | 1 4605 | 1 4606 | 1 4607 | 1 4608 | 1 4609 | 1 4610 | 1 4611 | 1 4612 | 1 4613 | 1 4614 | 1 4615 | 1 4616 | 1 4617 | 1 4618 | 1 4619 | 1 4620 | 1 4621 | 1 4622 | 1 4623 | 1 4624 | 1 4625 | 1 4626 | 1 4627 | 1 4628 | 1 4629 | 1 4630 | 1 4631 | 1 4632 | 1 4633 | 1 4634 | 1 4635 | 1 4636 | 1 4637 | 1 4638 | 1 4639 | 1 4640 | 1 4641 | 1 4642 | 1 4643 | 1 4644 | 1 4645 | 1 4646 | 1 4647 | 1 4648 | 1 4649 | 1 4650 | 1 4651 | 1 4652 | 1 4653 | 1 4654 | 1 4655 | 1 4656 | 1 4657 | 1 4658 | 1 4659 | 1 4660 | 1 4661 | 1 4662 | 1 4663 | 1 4664 | 1 4665 | 1 4666 | 1 4667 | 1 4668 | 1 4669 | 1 4670 | 1 4671 | 1 4672 | 1 4673 | 1 4674 | 1 4675 | 1 4676 | 1 4677 | 1 4678 | 1 4679 | 1 4680 | 1 4681 | 1 4682 | 1 4683 | 1 4684 | 1 4685 | 1 4686 | 1 4687 | 1 4688 | 1 4689 | 1 4690 | 1 4691 | 1 4692 | 1 4693 | 1 4694 | 1 4695 | 1 4696 | 1 4697 | 1 4698 | 1 4699 | 1 4700 | 1 4701 | 1 4702 | 1 4703 | 1 4704 | 1 4705 | 1 4706 | 1 4707 | 1 4708 | 1 4709 | 1 4710 | 1 4711 | 1 4712 | 1 4713 | 1 4714 | 1 4715 | 1 4716 | 1 4717 | 1 4718 | 1 4719 | 1 4720 | 1 4721 | 1 4722 | 1 4723 | 1 4724 | 1 4725 | 1 4726 | 1 4727 | 1 4728 | 1 4729 | 1 4730 | 1 4731 | 1 4732 | 1 4733 | 1 4734 | 1 4735 | 1 4736 | 1 4737 | 1 4738 | 1 4739 | 1 4740 | 1 4741 | 1 4742 | 1 4743 | 1 4744 | 1 4745 | 1 4746 | 1 4747 | 1 4748 | 1 4749 | 1 4750 | 1 4751 | 1 4752 | 1 4753 | 1 4754 | 1 4755 | 1 4756 | 1 4757 | 1 4758 | 1 4759 | 1 4760 | 1 4761 | 1 4762 | 1 4763 | 1 4764 | 1 4765 | 1 4766 | 1 4767 | 1 4768 | 1 4769 | 1 4770 | 1 4771 | 1 4772 | 1 4773 | 1 4774 | 1 4775 | 1 4776 | 1 4777 | 1 4778 | 1 4779 | 1 4780 | 1 4781 | 1 4782 | 1 4783 | 1 4784 | 1 4785 | 1 4786 | 1 4787 | 1 4788 | 1 4789 | 1 4790 | 1 4791 | 1 4792 | 1 4793 | 1 4794 | 1 4795 | 1 4796 | 1 4797 | 1 4798 | 1 4799 | 1 4800 | 1 4801 | 1 4802 | 1 4803 | 1 4804 | 1 4805 | 1 4806 | 1 4807 | 1 4808 | 1 4809 | 1 4810 | 1 4811 | 1 4812 | 1 4813 | 1 4814 | 1 4815 | 1 4816 | 1 4817 | 1 4818 | 1 4819 | 1 4820 | 1 4821 | 1 4822 | 1 4823 | 1 4824 | 1 4825 | 1 4826 | 1 4827 | 1 4828 | 1 4829 | 1 4830 | 1 4831 | 1 4832 | 1 4833 | 1 4834 | 1 4835 | 1 4836 | 1 4837 | 1 4838 | 1 4839 | 1 4840 | 1 4841 | 1 4842 | 1 4843 | 1 4844 | 1 4845 | 1 4846 | 1 4847 | 1 4848 | 1 4849 | 1 4850 | 1 4851 | 1 4852 | 1 4853 | 1 4854 | 1 4855 | 1 4856 | 1 4857 | 1 4858 | 1 4859 | 1 4860 | 1 4861 | 1 4862 | 1 4863 | 1 4864 | 1 4865 | 1 4866 | 1 4867 | 1 4868 | 1 4869 | 1 4870 | 1 4871 | 1 4872 | 1 4873 | 1 4874 | 1 4875 | 1 4876 | 1 4877 | 1 4878 | 1 4879 | 1 4880 | 1 4881 | 1 4882 | 1 4883 | 1 4884 | 1 4885 | 1 4886 | 1 4887 | 1 4888 | 1 4889 | 1 4890 | 1 4891 | 1 4892 | 1 4893 | 1 4894 | 1 4895 | 1 4896 | 1 4897 | 1 4898 | 1 4899 | 1 4900 | 1 4901 | 1 4902 | 1 4903 | 1 4904 | 1 4905 | 1 4906 | 1 4907 | 1 4908 | 1 4909 | 1 4910 | 1 4911 | 1 4912 | 1 4913 | 1 4914 | 1 4915 | 1 4916 | 1 4917 | 1 4918 | 1 4919 | 1 4920 | 1 4921 | 1 4922 | 1 4923 | 1 4924 | 1 4925 | 1 4926 | 1 4927 | 1 4928 | 1 4929 | 1 4930 | 1 4931 | 1 4932 | 1 4933 | 1 4934 | 1 4935 | 1 4936 | 1 4937 | 1 4938 | 1 4939 | 1 4940 | 1 4941 | 1 4942 | 1 4943 | 1 4944 | 1 4945 | 1 4946 | 1 4947 | 1 4948 | 1 4949 | 1 4950 | 1 4951 | 1 4952 | 1 4953 | 1 4954 | 1 4955 | 1 4956 | 1 4957 | 1 4958 | 1 4959 | 1 4960 | 1 4961 | 1 4962 | 1 4963 | 1 4964 | 1 4965 | 1 4966 | 1 4967 | 1 4968 | 1 4969 | 1 4970 | 1 4971 | 1 4972 | 1 4973 | 1 4974 | 1 4975 | 1 4976 | 1 4977 | 1 4978 | 1 4979 | 1 4980 | 1 4981 | 1 4982 | 1 4983 | 1 4984 | 1 4985 | 1 4986 | 1 4987 | 1 4988 | 1 4989 | 1 4990 | 1 4991 | 1 4992 | 1 4993 | 1 4994 | 1 4995 | 1 4996 | 1 4997 | 1 4998 | 1 4999 | 1 5000 | 1 5001 | 1 5002 | 1 5003 | 1 5004 | 1 5005 | 1 5006 | 1 5007 | 1 5008 | 1 5009 | 1 5010 | 1 5011 | 1 5012 | 1 5013 | 1 5014 | 1 5015 | 1 5016 | 1 5017 | 1 5018 | 1 5019 | 1 5020 | 1 5021 | 1 5022 | 1 5023 | 1 5024 | 1 5025 | 1 5026 | 1 5027 | 1 5028 | 1 5029 | 1 5030 | 1 5031 | 1 5032 | 1 5033 | 1 5034 | 1 5035 | 1 5036 | 1 5037 | 1 5038 | 1 5039 | 1 5040 | 1 5041 | 1 5042 | 1 5043 | 1 5044 | 1 5045 | 1 5046 | 1 5047 | 1 5048 | 1 5049 | 1 5050 | 1 5051 | 1 5052 | 1 5053 | 1 5054 | 1 5055 | 1 5056 | 1 5057 | 1 5058 | 1 5059 | 1 5060 | 1 5061 | 1 5062 | 1 5063 | 1 5064 | 1 5065 | 1 5066 | 1 5067 | 1 5068 | 1 5069 | 1 5070 | 1 5071 | 1 5072 | 1 5073 | 1 5074 | 1 5075 | 1 5076 | 1 5077 | 1 5078 | 1 5079 | 1 5080 | 1 5081 | 1 5082 | 1 5083 | 1 5084 | 1 5085 | 1 5086 | 1 5087 | 1 5088 | 1 5089 | 1 5090 | 1 5091 | 1 5092 | 1 5093 | 1 5094 | 1 5095 | 1 5096 | 1 5097 | 1 5098 | 1 5099 | 1 5100 | 1 5101 | 1 5102 | 1 5103 | 1 5104 | 1 5105 | 1 5106 | 1 5107 | 1 5108 | 1 5109 | 1 5110 | 1 5111 | 1 5112 | 1 5113 | 1 5114 | 1 5115 | 1 5116 | 1 5117 | 1 5118 | 1 5119 | 1 5120 | 1 5121 | 1 5122 | 1 5123 | 1 5124 | 1 5125 | 1 5126 | 1 5127 | 1 5128 | 1 5129 | 1 5130 | 1 5131 | 1 5132 | 1 5133 | 1 5134 | 1 5135 | 1 5136 | 1 5137 | 1 5138 | 1 5139 | 1 5140 | 1 5141 | 1 5142 | 1 5143 | 1 5144 | 1 5145 | 1 5146 | 1 5147 | 1 5148 | 1 5149 | 1 5150 | 1 5151 | 1 5152 | 1 5153 | 1 5154 | 1 5155 | 1 5156 | 1 5157 | 1 5158 | 1 5159 | 1 5160 | 1 5161 | 1 5162 | 1 5163 | 1 5164 | 1 5165 | 1 5166 | 1 5167 | 1 5168 | 1 5169 | 1 5170 | 1 5171 | 1 5172 | 1 5173 | 1 5174 | 1 5175 | 1 5176 | 1 5177 | 1 5178 | 1 5179 | 1 5180 | 1 5181 | 1 5182 | 1 5183 | 1 5184 | 1 5185 | 1 5186 | 1 5187 | 1 5188 | 1 5189 | 1 5190 | 1 5191 | 1 5192 | 1 5193 | 1 5194 | 1 5195 | 1 5196 | 1 5197 | 1 5198 | 1 5199 | 1 5200 | 1 5201 | 1 5202 | 1 5203 | 1 5204 | 1 5205 | 1 5206 | 1 5207 | 1 5208 | 1 5209 | 1 5210 | 1 5211 | 1 5212 | 1 5213 | 1 5214 | 1 5215 | 1 5216 | 1 5217 | 1 5218 | 1 5219 | 1 5220 | 1 5221 | 1 5222 | 1 5223 | 1 5224 | 1 5225 | 1 5226 | 1 5227 | 1 5228 | 1 5229 | 1 5230 | 1 5231 | 1 5232 | 1 5233 | 1 5234 | 1 5235 | 1 5236 | 1 5237 | 1 5238 | 1 5239 | 1 5240 | 1 5241 | 1 5242 | 1 5243 | 1 5244 | 1 5245 | 1 5246 | 1 5247 | 1 5248 | 1 5249 | 1 5250 | 1 5251 | 1 5252 | 1 5253 | 1 5254 | 1 5255 | 1 5256 | 1 5257 | 1 5258 | 1 5259 | 1 5260 | 1 5261 | 1 5262 | 1 5263 | 1 5264 | 1 5265 | 1 5266 | 1 5267 | 1 5268 | 1 5269 | 1 5270 | 1 5271 | 1 5272 | 1 5273 | 1 5274 | 1 5275 | 1 5276 | 1 5277 | 1 5278 | 1 5279 | 1 5280 | 1 5281 | 1 5282 | 1 5283 | 1 5284 | 1 5285 | 1 5286 | 1 5287 | 1 5288 | 1 5289 | 1 5290 | 1 5291 | 1 5292 | 1 5293 | 1 5294 | 1 5295 | 1 5296 | 1 5297 | 1 5298 | 1 5299 | 1 5300 | 1 5301 | 1 5302 | 1 5303 | 1 5304 | 1 5305 | 1 5306 | 1 5307 | 1 5308 | 1 5309 | 1 5310 | 1 5311 | 1 5312 | 1 5313 | 1 5314 | 1 5315 | 1 5316 | 1 5317 | 1 5318 | 1 5319 | 1 5320 | 1 5321 | 1 5322 | 1 5323 | 1 5324 | 1 5325 | 1 5326 | 1 5327 | 1 5328 | 1 5329 | 1 5330 | 1 5331 | 1 5332 | 1 5333 | 1 5334 | 1 5335 | 1 5336 | 1 5337 | 1 5338 | 1 5339 | 1 5340 | 1 5341 | 1 5342 | 1 5343 | 1 5344 | 1 5345 | 1 5346 | 1 5347 | 1 5348 | 1 5349 | 1 5350 | 1 5351 | 1 5352 | 1 5353 | 1 5354 | 1 5355 | 1 5356 | 1 5357 | 1 5358 | 1 5359 | 1 5360 | 1 5361 | 1 5362 | 1 5363 | 1 5364 | 1 5365 | 1 5366 | 1 5367 | 1 5368 | 1 5369 | 1 5370 | 1 5371 | 1 5372 | 1 5373 | 1 5374 | 1 5375 | 1 5376 | 1 5377 | 1 5378 | 1 5379 | 1 5380 | 1 5381 | 1 5382 | 1 5383 | 1 5384 | 1 5385 | 1 5386 | 1 5387 | 1 5388 | 1 5389 | 1 5390 | 1 5391 | 1 5392 | 1 5393 | 1 5394 | 1 5395 | 1 5396 | 1 5397 | 1 5398 | 1 5399 | 1 5400 | 1 5401 | 1 5402 | 1 5403 | 1 5404 | 1 5405 | 1 5406 | 1 5407 | 1 5408 | 1 5409 | 1 5410 | 1 5411 | 1 5412 | 1 5413 | 1 5414 | 1 5415 | 1 5416 | 1 5417 | 1 5418 | 1 5419 | 1 5420 | 1 5421 | 1 5422 | 1 5423 | 1 5424 | 1 5425 | 1 5426 | 1 5427 | 1 5428 | 1 5429 | 1 5430 | 1 5431 | 1 5432 | 1 5433 | 1 5434 | 1 5435 | 1 5436 | 1 5437 | 1 5438 | 1 5439 | 1 5440 | 1 5441 | 1 5442 | 1 5443 | 1 5444 | 1 5445 | 1 5446 | 1 5447 | 1 5448 | 1 5449 | 1 5450 | 1 5451 | 1 5452 | 1 5453 | 1 5454 | 1 5455 | 1 5456 | 1 5457 | 1 5458 | 1 5459 | 1 5460 | 1 5461 | 1 5462 | 1 5463 | 1 5464 | 1 5465 | 1 5466 | 1 5467 | 1 5468 | 1 5469 | 1 5470 | 1 5471 | 1 5472 | 1 5473 | 1 5474 | 1 5475 | 1 5476 | 1 5477 | 1 5478 | 1 5479 | 1 5480 | 1 5481 | 1 5482 | 1 5483 | 1 5484 | 1 5485 | 1 5486 | 1 5487 | 1 5488 | 1 5489 | 1 5490 | 1 5491 | 1 5492 | 1 5493 | 1 5494 | 1 5495 | 1 5496 | 1 5497 | 1 5498 | 1 5499 | 1 5500 | 1 5501 | 1 5502 | 1 5503 | 1 5504 | 1 5505 | 1 5506 | 1 5507 | 1 5508 | 1 5509 | 1 5510 | 1 5511 | 1 5512 | 1 5513 | 1 5514 | 1 5515 | 1 5516 | 1 5517 | 1 5518 | 1 5519 | 1 5520 | 1 5521 | 1 5522 | 1 5523 | 1 5524 | 1 5525 | 1 5526 | 1 5527 | 1 5528 | 1 5529 | 1 5530 | 1 5531 | 1 5532 | 1 5533 | 1 5534 | 1 5535 | 1 5536 | 1 5537 | 1 5538 | 1 5539 | 1 5540 | 1 5541 | 1 5542 | 1 5543 | 1 5544 | 1 5545 | 1 5546 | 1 5547 | 1 5548 | 1 5549 | 1 5550 | 1 5551 | 1 5552 | 1 5553 | 1 5554 | 1 5555 | 1 5556 | 1 5557 | 1 5558 | 1 5559 | 1 5560 | 1 5561 | 1 5562 | 1 5563 | 1 5564 | 1 5565 | 1 5566 | 1 5567 | 1 5568 | 1 5569 | 1 5570 | 1 5571 | 1 5572 | 1 5573 | 1 5574 | 1 5575 | 1 5576 | 1 5577 | 1 5578 | 1 5579 | 1 5580 | 1 5581 | 1 5582 | 1 5583 | 1 5584 | 1 5585 | 1 5586 | 1 5587 | 1 5588 | 1 5589 | 1 5590 | 1 5591 | 1 5592 | 1 5593 | 1 5594 | 1 5595 | 1 5596 | 1 5597 | 1 5598 | 1 5599 | 1 5600 | 1 5601 | 1 5602 | 1 5603 | 1 5604 | 1 5605 | 1 5606 | 1 5607 | 1 5608 | 1 5609 | 1 5610 | 1 5611 | 1 5612 | 1 5613 | 1 5614 | 1 5615 | 1 5616 | 1 5617 | 1 5618 | 1 5619 | 1 5620 | 1 5621 | 1 5622 | 1 5623 | 1 5624 | 1 5625 | 1 5626 | 1 5627 | 1 5628 | 1 5629 | 1 5630 | 1 5631 | 1 5632 | 1 5633 | 1 5634 | 1 5635 | 1 5636 | 1 5637 | 1 5638 | 1 5639 | 1 5640 | 1 5641 | 1 5642 | 1 5643 | 1 5644 | 1 5645 | 1 5646 | 1 5647 | 1 5648 | 1 5649 | 1 5650 | 1 5651 | 1 5652 | 1 5653 | 1 5654 | 1 5655 | 1 5656 | 1 5657 | 1 5658 | 1 5659 | 1 5660 | 1 5661 | 1 5662 | 1 5663 | 1 5664 | 1 5665 | 1 5666 | 1 5667 | 1 5668 | 1 5669 | 1 5670 | 1 5671 | 1 5672 | 1 5673 | 1 5674 | 1 5675 | 1 5676 | 1 5677 | 1 5678 | 1 5679 | 1 5680 | 1 5681 | 1 5682 | 1 5683 | 1 5684 | 1 5685 | 1 5686 | 1 5687 | 1 5688 | 1 5689 | 1 5690 | 1 5691 | 1 5692 | 1 5693 | 1 5694 | 1 5695 | 1 5696 | 1 5697 | 1 5698 | 1 5699 | 1 5700 | 1 5701 | 1 5702 | 1 5703 | 1 5704 | 1 5705 | 1 5706 | 1 5707 | 1 5708 | 1 5709 | 1 5710 | 1 5711 | 1 5712 | 1 5713 | 1 5714 | 1 5715 | 1 5716 | 1 5717 | 1 5718 | 1 5719 | 1 5720 | 1 5721 | 1 5722 | 1 5723 | 1 5724 | 1 5725 | 1 5726 | 1 5727 | 1 5728 | 1 5729 | 1 5730 | 1 5731 | 1 5732 | 1 5733 | 1 5734 | 1 5735 | 1 5736 | 1 5737 | 1 5738 | 1 5739 | 1 5740 | 1 5741 | 1 5742 | 1 5743 | 1 5744 | 1 5745 | 1 5746 | 1 5747 | 1 5748 | 1 5749 | 1 5750 | 1 5751 | 1 5752 | 1 5753 | 1 5754 | 1 5755 | 1 5756 | 1 5757 | 1 5758 | 1 5759 | 1 5760 | 1 5761 | 1 5762 | 1 5763 | 1 5764 | 1 5765 | 1 5766 | 1 5767 | 1 5768 | 1 5769 | 1 5770 | 1 5771 | 1 5772 | 1 5773 | 1 5774 | 1 5775 | 1 5776 | 1 5777 | 1 5778 | 1 5779 | 1 5780 | 1 5781 | 1 5782 | 1 5783 | 1 5784 | 1 5785 | 1 5786 | 1 5787 | 1 5788 | 1 5789 | 1 5790 | 1 5791 | 1 5792 | 1 5793 | 1 5794 | 1 5795 | 1 5796 | 1 5797 | 1 5798 | 1 5799 | 1 5800 | 1 5801 | 1 5802 | 1 5803 | 1 5804 | 1 5805 | 1 5806 | 1 5807 | 1 5808 | 1 5809 | 1 5810 | 1 5811 | 1 5812 | 1 5813 | 1 5814 | 1 5815 | 1 5816 | 1 5817 | 1 5818 | 1 5819 | 1 5820 | 1 5821 | 1 5822 | 1 5823 | 1 5824 | 1 5825 | 1 5826 | 1 5827 | 1 5828 | 1 5829 | 1 5830 | 1 5831 | 1 5832 | 1 5833 | 1 5834 | 1 5835 | 1 5836 | 1 5837 | 1 5838 | 1 5839 | 1 5840 | 1 5841 | 1 5842 | 1 5843 | 1 5844 | 1 5845 | 1 5846 | 1 5847 | 1 5848 | 1 5849 | 1 5850 | 1 5851 | 1 5852 | 1 5853 | 1 5854 | 1 5855 | 1 5856 | 1 5857 | 1 5858 | 1 5859 | 1 5860 | 1 5861 | 1 5862 | 1 5863 | 1 5864 | 1 5865 | 1 5866 | 1 5867 | 1 5868 | 1 5869 | 1 5870 | 1 5871 | 1 5872 | 1 5873 | 1 5874 | 1 5875 | 1 5876 | 1 5877 | 1 5878 | 1 5879 | 1 5880 | 1 5881 | 1 5882 | 1 5883 | 1 5884 | 1 5885 | 1 5886 | 1 5887 | 1 5888 | 1 5889 | 1 5890 | 1 5891 | 1 5892 | 1 5893 | 1 5894 | 1 5895 | 1 5896 | 1 5897 | 1 5898 | 1 5899 | 1 5900 | 1 5901 | 1 5902 | 1 5903 | 1 5904 | 1 5905 | 1 5906 | 1 5907 | 1 5908 | 1 5909 | 1 5910 | 1 5911 | 1 5912 | 1 5913 | 1 5914 | 1 5915 | 1 5916 | 1 5917 | 1 5918 | 1 5919 | 1 5920 | 1 5921 | 1 5922 | 1 5923 | 1 5924 | 1 5925 | 1 5926 | 1 5927 | 1 5928 | 1 5929 | 1 5930 | 1 5931 | 1 5932 | 1 5933 | 1 5934 | 1 5935 | 1 5936 | 1 5937 | 1 5938 | 1 5939 | 1 5940 | 1 5941 | 1 5942 | 1 5943 | 1 5944 | 1 5945 | 1 5946 | 1 5947 | 1 5948 | 1 5949 | 1 5950 | 1 5951 | 1 5952 | 1 5953 | 1 5954 | 1 5955 | 1 5956 | 1 5957 | 1 5958 | 1 5959 | 1 5960 | 1 5961 | 1 5962 | 1 5963 | 1 5964 | 1 5965 | 1 5966 | 1 5967 | 1 5968 | 1 5969 | 1 5970 | 1 5971 | 1 5972 | 1 5973 | 1 5974 | 1 5975 | 1 5976 | 1 5977 | 1 5978 | 1 5979 | 1 5980 | 1 5981 | 1 5982 | 1 5983 | 1 5984 | 1 5985 | 1 5986 | 1 5987 | 1 5988 | 1 5989 | 1 5990 | 1 5991 | 1 5992 | 1 5993 | 1 5994 | 1 5995 | 1 5996 | 1 5997 | 1 5998 | 1 5999 | 1 6000 | 1 6001 | 4 6002 | 4 6003 | 4 6004 | 4 6005 | 4 6006 | 4 6007 | 4 6008 | 4 6009 | 4 6010 | 4 6011 | 4 6012 | 4 6013 | 4 6014 | 4 6015 | 4 6016 | 4 6017 | 4 6018 | 4 6019 | 4 6020 | 4 6021 | 4 6022 | 4 6023 | 4 6024 | 4 6025 | 4 6026 | 4 6027 | 4 6028 | 4 6029 | 4 6030 | 4 6031 | 4 6032 | 4 6033 | 4 6034 | 4 6035 | 4 6036 | 4 6037 | 4 6038 | 4 6039 | 4 6040 | 4 6041 | 4 6042 | 4 6043 | 4 6044 | 4 6045 | 4 6046 | 4 6047 | 4 6048 | 4 6049 | 4 6050 | 4 6051 | 4 6052 | 4 6053 | 4 6054 | 4 6055 | 4 6056 | 4 6057 | 4 6058 | 4 6059 | 4 6060 | 4 6061 | 4 6062 | 4 6063 | 4 6064 | 4 6065 | 4 6066 | 4 6067 | 4 6068 | 4 6069 | 4 6070 | 4 6071 | 4 6072 | 4 6073 | 4 6074 | 4 6075 | 4 6076 | 4 6077 | 4 6078 | 4 6079 | 4 6080 | 4 6081 | 4 6082 | 4 6083 | 4 6084 | 4 6085 | 4 6086 | 4 6087 | 4 6088 | 4 6089 | 4 6090 | 4 6091 | 4 6092 | 4 6093 | 4 6094 | 4 6095 | 4 6096 | 4 6097 | 4 6098 | 4 6099 | 4 6100 | 4 6101 | 3 6102 | 3 6103 | 3 6104 | 3 6105 | 3 6106 | 3 6107 | 3 6108 | 3 6109 | 3 6110 | 3 6111 | 3 6112 | 3 6113 | 3 6114 | 3 6115 | 3 6116 | 3 6117 | 3 6118 | 3 6119 | 3 6120 | 3 6121 | 3 6122 | 3 6123 | 3 6124 | 3 6125 | 3 6126 | 3 6127 | 3 6128 | 3 6129 | 3 6130 | 3 6131 | 3 6132 | 3 6133 | 3 6134 | 3 6135 | 3 6136 | 3 6137 | 3 6138 | 3 6139 | 3 6140 | 3 6141 | 3 6142 | 3 6143 | 3 6144 | 3 6145 | 3 6146 | 3 6147 | 3 6148 | 3 6149 | 3 6150 | 3 6151 | 3 6152 | 3 6153 | 3 6154 | 3 6155 | 3 6156 | 3 6157 | 3 6158 | 3 6159 | 3 6160 | 3 6161 | 3 6162 | 3 6163 | 3 6164 | 3 6165 | 3 6166 | 3 6167 | 3 6168 | 3 6169 | 3 6170 | 3 6171 | 3 6172 | 3 6173 | 3 6174 | 3 6175 | 3 6176 | 3 6177 | 3 6178 | 3 6179 | 3 6180 | 3 6181 | 3 6182 | 3 6183 | 3 6184 | 3 6185 | 3 6186 | 3 6187 | 3 6188 | 3 6189 | 3 6190 | 3 6191 | 3 6192 | 3 6193 | 3 6194 | 3 6195 | 3 6196 | 3 6197 | 3 6198 | 3 6199 | 3 6200 | 3 6201 | 5 6202 | 5 6203 | 5 6204 | 5 6205 | 5 6206 | 5 6207 | 5 6208 | 5 6209 | 5 6210 | 5 6211 | 5 6212 | 5 6213 | 5 6214 | 5 6215 | 5 6216 | 5 6217 | 5 6218 | 5 6219 | 5 6220 | 5 6221 | 5 6222 | 5 6223 | 5 6224 | 5 6225 | 5 6226 | 5 6227 | 5 6228 | 5 6229 | 5 6230 | 5 6231 | 5 6232 | 5 6233 | 5 6234 | 5 6235 | 5 6236 | 5 6237 | 5 6238 | 5 6239 | 5 6240 | 5 6241 | 5 6242 | 5 6243 | 5 6244 | 5 6245 | 5 6246 | 5 6247 | 5 6248 | 5 6249 | 5 6250 | 5 6251 | 5 6252 | 5 6253 | 5 6254 | 5 6255 | 5 6256 | 5 6257 | 5 6258 | 5 6259 | 5 6260 | 5 6261 | 5 6262 | 5 6263 | 5 6264 | 5 6265 | 5 6266 | 5 6267 | 5 6268 | 5 6269 | 5 6270 | 5 6271 | 5 6272 | 5 6273 | 5 6274 | 5 6275 | 5 6276 | 5 6277 | 5 6278 | 5 6279 | 5 6280 | 5 6281 | 5 6282 | 5 6283 | 5 6284 | 5 6285 | 5 6286 | 5 6287 | 5 6288 | 5 6289 | 5 6290 | 5 6291 | 5 6292 | 5 6293 | 5 6294 | 5 6295 | 5 6296 | 5 6297 | 5 6298 | 5 6299 | 5 6300 | 5 6301 | 2 6302 | 2 6303 | 2 6304 | 2 6305 | 2 6306 | 2 6307 | 2 6308 | 2 6309 | 2 6310 | 2 6311 | 2 6312 | 2 6313 | 2 6314 | 2 6315 | 2 6316 | 2 6317 | 2 6318 | 2 6319 | 2 6320 | 2 6321 | 2 6322 | 2 6323 | 2 6324 | 2 6325 | 2 6326 | 2 6327 | 2 6328 | 2 6329 | 2 6330 | 2 6331 | 2 6332 | 2 6333 | 2 6334 | 2 6335 | 2 6336 | 2 6337 | 2 6338 | 2 6339 | 2 6340 | 2 6341 | 2 6342 | 2 6343 | 2 6344 | 2 6345 | 2 6346 | 2 6347 | 2 6348 | 2 6349 | 2 6350 | 2 6351 | 2 6352 | 2 6353 | 2 6354 | 2 6355 | 2 6356 | 2 6357 | 2 6358 | 2 6359 | 2 6360 | 2 6361 | 2 6362 | 2 6363 | 2 6364 | 2 6365 | 2 6366 | 2 6367 | 2 6368 | 2 6369 | 2 6370 | 2 6371 | 2 6372 | 2 6373 | 2 6374 | 2 6375 | 2 6376 | 2 6377 | 2 6378 | 2 6379 | 2 6380 | 2 6381 | 2 6382 | 2 6383 | 2 6384 | 2 6385 | 2 6386 | 2 6387 | 2 6388 | 2 6389 | 2 6390 | 2 6391 | 2 6392 | 2 6393 | 2 6394 | 2 6395 | 2 6396 | 2 6397 | 2 6398 | 2 6399 | 2 6400 | 2 6401 | 7 6402 | 7 6403 | 7 6404 | 7 6405 | 7 6406 | 7 6407 | 7 6408 | 7 6409 | 7 6410 | 7 6411 | 7 6412 | 7 6413 | 7 6414 | 7 6415 | 7 6416 | 7 6417 | 7 6418 | 7 6419 | 7 6420 | 7 6421 | 7 6422 | 7 6423 | 7 6424 | 7 6425 | 7 6426 | 7 6427 | 7 6428 | 7 6429 | 7 6430 | 7 6431 | 7 6432 | 7 6433 | 7 6434 | 7 6435 | 7 6436 | 7 6437 | 7 6438 | 7 6439 | 7 6440 | 7 6441 | 7 6442 | 7 6443 | 7 6444 | 7 6445 | 7 6446 | 7 6447 | 7 6448 | 7 6449 | 7 6450 | 7 6451 | 7 6452 | 7 6453 | 7 6454 | 7 6455 | 7 6456 | 7 6457 | 7 6458 | 7 6459 | 7 6460 | 7 6461 | 7 6462 | 7 6463 | 7 6464 | 7 6465 | 7 6466 | 7 6467 | 7 6468 | 7 6469 | 7 6470 | 7 6471 | 7 6472 | 7 6473 | 7 6474 | 7 6475 | 7 6476 | 7 6477 | 7 6478 | 7 6479 | 7 6480 | 7 6481 | 7 6482 | 7 6483 | 7 6484 | 7 6485 | 7 6486 | 7 6487 | 7 6488 | 7 6489 | 7 6490 | 7 6491 | 7 6492 | 7 6493 | 7 6494 | 7 6495 | 7 6496 | 7 6497 | 7 6498 | 7 6499 | 7 6500 | 7 6501 | --------------------------------------------------------------------------------