Full Code of ZhiChen902/SC2-PCR for AI

main 19961eae0a47 cached
31 files
1.2 MB
539.8k tokens
84 symbols
1 requests
Download .txt
Showing preview only (1,230K chars total). Download the full file or copy to clipboard to get everything.
Repository: ZhiChen902/SC2-PCR
Branch: main
Commit: 19961eae0a47
Files: 31
Total size: 1.2 MB

Directory structure:
gitextract_aendpbmi/

├── .gitignore
├── 3DLoMatch.pkl
├── LICENSE
├── README.md
├── SC2_PCR.py
├── benchmark_utils.py
├── benchmark_utils_predator.py
├── benchmarks/
│   └── 3DLoMatch/
│       ├── 7-scenes-redkitchen/
│       │   └── gt.info
│       ├── sun3d-home_at-home_at_scan1_2013_jan_1/
│       │   └── gt.info
│       ├── sun3d-home_md-home_md_scan9_2012_sep_30/
│       │   └── gt.info
│       ├── sun3d-hotel_uc-scan3/
│       │   └── gt.info
│       ├── sun3d-hotel_umd-maryland_hotel1/
│       │   └── gt.info
│       ├── sun3d-hotel_umd-maryland_hotel3/
│       │   └── gt.info
│       ├── sun3d-mit_76_studyroom-76-1studyroom2/
│       │   └── gt.info
│       └── sun3d-mit_lab_hj-lab_hj_tea_nov_2_2012_scan1_erika/
│           └── gt.info
├── common.py
├── config.py
├── config_json/
│   ├── config_3DLoMatch.json
│   ├── config_3DMatch.json
│   └── config_KITTI.json
├── dataset.py
├── environment.yml
├── evaluate_metric.py
├── test_3DLoMatch.py
├── test_3DMatch.py
├── test_KITTI.py
└── utils/
    ├── SE3.py
    ├── max_clique.py
    ├── pointcloud.py
    ├── sinkhorn.py
    └── timer.py

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
pip-wheel-metadata/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# PyInstaller
#  Usually these files are written by a python script from a template
#  before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/

# Translations
*.mo
*.pot

# Django stuff:
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal

# Flask stuff:
instance/
.webassets-cache

# Scrapy stuff:
.scrapy

# Sphinx documentation
docs/_build/

# PyBuilder
target/

# Jupyter Notebook
.ipynb_checkpoints

# IPython
profile_default/
ipython_config.py

# pyenv
.python-version

# pipenv
#   According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
#   However, in case of collaboration, if having platform-specific dependencies or dependencies
#   having no cross-platform support, pipenv may install dependencies that don't work, or not
#   install all needed dependencies.
#Pipfile.lock

# PEP 582; used by e.g. github.com/David-OConnor/pyflow
__pypackages__/

# Celery stuff
celerybeat-schedule
celerybeat.pid

# SageMath parsed files
*.sage.py

# Environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/

# Spyder project settings
.spyderproject
.spyproject

# Rope project settings
.ropeproject

# mkdocs documentation
/site

# mypy
.mypy_cache/
.dmypy.json
dmypy.json

# Pyre type checker
.pyre/


================================================
FILE: LICENSE
================================================
MIT License

Copyright (c) 2021 ZhiChen

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.


================================================
FILE: README.md
================================================
# SC^2-PCR: A Second Order Spatial Compatibility for Efficient and Robust Point Cloud Registration (CVPR 2022)

PyTorch implementation of the paper:

[SC^2-PCR: A Second Order Spatial Compatibility for Efficient and Robust Point Cloud Registration](https://arxiv.org/abs/2203.14453).

Zhi Chen, [Kun Sun](https://scholar.google.com/citations?user=Ay6kCm4AAAAJ&hl=en), Fan Yang, [Wenbing Tao](https://scholar.google.co.uk/citations?user=jRDPE2AAAAAJ&hl=zh-CN&oi=ao).

## Introduction

In this paper, we present a second order spatial compatibility (SC^2) measure based method for efficient and robust point cloud registration (PCR), called SC^2-PCR. Firstly, we propose a second order spatial compatibility (SC^2) measure to compute the similarity between correspondences. It considers the global compatibility instead of local consistency, allowing for more distinctive clustering between inliers and outliers at early stage. Based on this measure, our registration pipeline employs a global spectral technique to find some reliable seeds from the initial correspondences. Then we design a two-stage strategy to expand each seed to a consensus set based on the SC^2 measure matrix. Finally, we feed each consensus set to a weighted SVD algorithm to generate a candidate rigid transformation and select the best model as the final result. Our method can guarantee to find a certain number of outlier-free consensus sets using fewer samplings, making the model estimation more efficient and robust. In addition, the proposed SC^2 measure is general and can be easily plugged into deep learning based frameworks. Extensive experiments are carried out to investigate the performance of our method.

![](figures/pipeline.png)

## Requirements

If you are using conda, you may configure SC2-PCR as:

    conda env create -f environment.yml
    conda activate SC2_PCR
    
## 3DMatch

### Data preparation

Downsample and extract FPFH and FCGF descriptors for each frame of the 3DMatch test dataset. [Here](https://drive.google.com/file/d/1kRwuTHlNPr9siENcEMddCO23Oaq0cz-X/view?usp=sharing) we provide the processed test set with pre-computed FPFH/FCGF descriptors. The data should be organized as follows:

```
--data--3DMatch                
        ├── fragments                 
        │   ├── 7-scene-redkitechen/
        |   |   ├── cloud_bin_0.ply
        |   |   ├── cloud_bin_0_fcgf.npz
        |   |   ├── cloud_bin_0_fpfh.npz
        │   |   └── ...      
        │   ├── sun3d-home_at-home_at_scan1_2013_jan_1/      
        │   └── ...                
        ├── gt_result                   
        │   ├── 7-scene-redkitechen-evaluation/   
        |   |   ├── 3dmatch.log
        |   |   ├── gt.info
        |   |   ├── gt.log
        │   |   └── ...
        │   ├── sun3d-home_at-home_at_scan1_2013_jan_1-evaluation/
        │   └── ...                               
```

### Testing

Use the following command for testing.

```bash
python ./test_3DMatch.py --config_path config_json/config_3DMatch.json
```

The CUDA_DEVICE and basic parameters can be changed in the json file.

## 3DLoMatch

### Data preparation

FPFH and FCGF descriptors can be prepared in the same way as testing 3DMatch. If you want to test the [predator](https://github.com/prs-eth/OverlapPredator) descriptor, you should first follow the offical instruction of predator to extract the descriptors for 3DMatch dataset and organize the data as follows: 

```
--data--3DLoMatch                
        ├── 0.pth        
        ├── 1.pth                 
        ├── ...  
        └── 1780.pth
```

### Testing

Use the following command for testing.

```bash
python ./test_3DLoMatch.py --config_path config_json/config_3DLoMatch.json
```

## KITTI odometry

### Data preparation

Downsample and extract FPFH and FCGF descriptors for each frame of the KITTI test dataset. The raw point clouds can be download from [KITTI Odometry website.](http://www.cvlibs.net/datasets/kitti/eval_odometry.php). For your convenience, [here](https://drive.google.com/drive/folders/1sxkHYjWHhSUE3IcvmZ2p1ziw1LqJqqfc?usp=sharing) we provide the pre-computed FPFH and FCGF descriptors for the KITTI test set.

```
--data--KITTI                
        ├── fpfh_test                 
        │   ├── pair_0.npz        
        |   ├── pair_1.npz                
        |   ├── ...  
        |   └── pair_554.npz
        ├── fcgf_test                
        │   ├── pair_0.npz        
        |   ├── pair_1.npz                
        |   ├── ...  
        |   └── pair_554.npz
```

### Testing

Use the following command for testing.

```bash
python ./test_KITTI.py --config_path config_json/config_KITTI.json
```

## Results

### 3DMatch

We evaluate SC^2-PCR on the standard 3DMatch benchmarks:

|    Benchmark   | RR(%) | RE(°) |TE(cm) | IP(%) | IR(%) | F1(%) |
|:---------------|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|
|  3DMatch+FPFH  | 83.98 | 2.18  | 6.56  | 72.48 | 78.33 | 75.10 |
|  3DMatch+FCGF  | 93.28 | 2.08  | 6.55  | 78.94 | 86.39 | 82.20 |

### 3DMatch

We evaluate SC^2-PCR on the standard 3DLoMatch benchmarks:

|       Benchmark     | RR(%) | RE(°) |TE(cm) | IP(%) | IR(%) | F1(%) |
|:--------------------|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|
| 3DLoMatch+FCGF      | 57.83 | 3.77  | 10.46 | 44.87 | 53.69 | 48.38 |
| 3DLoMatch+Predator  | 69.46 | 3.46  | 9.58  | 56.98 | 67.47 | 61.08 |

### KITTI odometry

We evaluate SC^2-PCR on the standard KITTI benchmarks:

|    Benchmark   | RR(%) | RE(°) |TE(cm) | IP(%) | IR(%) | F1(%) |
|:---------------|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|
|    KITTI+FPFH  | 99.64 | 0.32  | 7.23  | 93.63 | 95.89 | 94.63 |
|    KITTI+FCGF  | 98.20 | 0.33  | 20.95 | 82.01 | 91.03 | 85.90 |

## Citation

```bibtex
@InProceedings{Chen_2022_CVPR,
    author    = {Chen, Zhi and Sun, Kun and Yang, Fan and Tao, Wenbing},
    title     = {SC2-PCR: A Second Order Spatial Compatibility for Efficient and Robust Point Cloud Registration},
    booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
    month     = {June},
    year      = {2022},
    pages     = {13221-13231}
}
```

## Acknowledgements

- [PointDSC](https://github.com/XuyangBai/PointDSC)
- [FCGF](https://github.com/chrischoy/FCGF)
- [DGR](https://github.com/chrischoy/DeepGlobalRegistration)
- [PREDATOR](https://github.com/prs-eth/OverlapPredator)



================================================
FILE: SC2_PCR.py
================================================
import torch
from common import knn, rigid_transform_3d
from utils.SE3 import transform
import numpy as np



class Matcher():
    def __init__(self,
                 inlier_threshold=0.10,
                 num_node='all',
                 use_mutual=True,
                 d_thre=0.1,
                 num_iterations=10,
                 ratio=0.2,
                 nms_radius=0.1,
                 max_points=8000,
                 k1=30,
                 k2=20,
                 select_scene=None,
                 ):
        self.inlier_threshold = inlier_threshold
        self.num_node = num_node
        self.use_mutual = use_mutual
        self.d_thre = d_thre
        self.num_iterations = num_iterations  # maximum iteration of power iteration algorithm
        self.ratio = ratio # the maximum ratio of seeds.
        self.max_points = max_points
        self.nms_radius = nms_radius
        self.k1 = k1
        self.k2 = k2

    def pick_seeds(self, dists, scores, R, max_num):
        """
        Select seeding points using Non Maximum Suppression. (here we only support bs=1)
        Input:
            - dists:       [bs, num_corr, num_corr] src keypoints distance matrix
            - scores:      [bs, num_corr]     initial confidence of each correspondence
            - R:           float              radius of nms
            - max_num:     int                maximum number of returned seeds
        Output:
            - picked_seeds: [bs, num_seeds]   the index to the seeding correspondences
        """
        assert scores.shape[0] == 1

        # parallel Non Maximum Suppression (more efficient)
        score_relation = scores.T >= scores  # [num_corr, num_corr], save the relation of leading_eig
        # score_relation[dists[0] >= R] = 1  # mask out the non-neighborhood node
        score_relation = score_relation.bool() | (dists[0] >= R).bool()
        is_local_max = score_relation.min(-1)[0].float()

        score_local_max = scores * is_local_max
        sorted_score = torch.argsort(score_local_max, dim=1, descending=True)

        # max_num = scores.shape[1]

        return_idx = sorted_score[:, 0: max_num].detach()

        return return_idx

    def cal_seed_trans(self, seeds, SC2_measure, src_keypts, tgt_keypts):
        """
        Calculate the transformation for each seeding correspondences.
        Input:
            - seeds:         [bs, num_seeds]              the index to the seeding correspondence
            - SC2_measure: [bs, num_corr, num_channels]
            - src_keypts:    [bs, num_corr, 3]
            - tgt_keypts:    [bs, num_corr, 3]
        Output: leading eigenvector
            - final_trans:       [bs, 4, 4]             best transformation matrix (after post refinement) for each batch.
        """
        bs, num_corr, num_channels = SC2_measure.shape[0], SC2_measure.shape[1], SC2_measure.shape[2]
        k1 = self.k1
        k2 = self.k2
        
        if k1 > num_channels:
            k1 = 4
            k2 = 4

        #################################
        # The first stage consensus set sampling
        # Finding the k1 nearest neighbors around each seed
        #################################
        sorted_score = torch.argsort(SC2_measure, dim=2, descending=True)
        knn_idx = sorted_score[:, :, 0: k1]
        sorted_value, _ = torch.sort(SC2_measure, dim=2, descending=True)
        idx_tmp = knn_idx.contiguous().view([bs, -1])
        idx_tmp = idx_tmp[:, :, None]
        idx_tmp = idx_tmp.expand(-1, -1, 3)

        #################################
        # construct the local SC2 measure of each consensus subset obtained in the first stage.
        #################################
        src_knn = src_keypts.gather(dim=1, index=idx_tmp).view([bs, -1, k1, 3])  # [bs, num_seeds, k, 3]
        tgt_knn = tgt_keypts.gather(dim=1, index=idx_tmp).view([bs, -1, k1, 3])
        src_dist = ((src_knn[:, :, :, None, :] - src_knn[:, :, None, :, :]) ** 2).sum(-1) ** 0.5
        tgt_dist = ((tgt_knn[:, :, :, None, :] - tgt_knn[:, :, None, :, :]) ** 2).sum(-1) ** 0.5
        cross_dist = torch.abs(src_dist - tgt_dist)
        local_hard_SC_measure = (cross_dist < self.d_thre).float()
        local_SC2_measure = torch.matmul(local_hard_SC_measure[:, :, :1, :], local_hard_SC_measure)

        #################################
        # perform second stage consensus set sampling
        #################################
        sorted_score = torch.argsort(local_SC2_measure, dim=3, descending=True)
        knn_idx_fine = sorted_score[:, :, :, 0: k2]

        #################################
        # construct the soft SC2 matrix of the consensus set
        #################################
        num = knn_idx_fine.shape[1]
        knn_idx_fine = knn_idx_fine.contiguous().view([bs, num, -1])[:, :, :, None]
        knn_idx_fine = knn_idx_fine.expand(-1, -1, -1, 3)
        src_knn_fine = src_knn.gather(dim=2, index=knn_idx_fine).view([bs, -1, k2, 3])  # [bs, num_seeds, k, 3]
        tgt_knn_fine = tgt_knn.gather(dim=2, index=knn_idx_fine).view([bs, -1, k2, 3])

        src_dist = ((src_knn_fine[:, :, :, None, :] - src_knn_fine[:, :, None, :, :]) ** 2).sum(-1) ** 0.5
        tgt_dist = ((tgt_knn_fine[:, :, :, None, :] - tgt_knn_fine[:, :, None, :, :]) ** 2).sum(-1) ** 0.5
        cross_dist = torch.abs(src_dist - tgt_dist)
        local_hard_measure = (cross_dist < self.d_thre * 2).float()
        local_SC2_measure = torch.matmul(local_hard_measure, local_hard_measure) / k2
        local_SC_measure = torch.clamp(1 - cross_dist ** 2 / self.d_thre ** 2, min=0)
        # local_SC2_measure = local_SC_measure * local_SC2_measure
        local_SC2_measure = local_SC_measure
        local_SC2_measure = local_SC2_measure.view([-1, k2, k2])


        #################################
        # Power iteratation to get the inlier probability
        #################################
        local_SC2_measure[:, torch.arange(local_SC2_measure.shape[1]), torch.arange(local_SC2_measure.shape[1])] = 0
        total_weight = self.cal_leading_eigenvector(local_SC2_measure, method='power')
        total_weight = total_weight.view([bs, -1, k2])
        total_weight = total_weight / (torch.sum(total_weight, dim=-1, keepdim=True) + 1e-6)

        #################################
        # calculate the transformation by weighted least-squares for each subsets in parallel
        #################################
        total_weight = total_weight.view([-1, k2])
        src_knn = src_knn_fine
        tgt_knn = tgt_knn_fine
        src_knn, tgt_knn = src_knn.view([-1, k2, 3]), tgt_knn.view([-1, k2, 3])

        #################################
        # compute the rigid transformation for each seed by the weighted SVD
        #################################
        seedwise_trans = rigid_transform_3d(src_knn, tgt_knn, total_weight)
        seedwise_trans = seedwise_trans.view([bs, -1, 4, 4])

        #################################
        # calculate the inlier number for each hypothesis, and find the best transformation for each point cloud pair
        #################################
        pred_position = torch.einsum('bsnm,bmk->bsnk', seedwise_trans[:, :, :3, :3],
                                     src_keypts.permute(0, 2, 1)) + seedwise_trans[:, :, :3,
                                                                    3:4]  # [bs, num_seeds, num_corr, 3]
        #################################
        # calculate the inlier number for each hypothesis, and find the best transformation for each point cloud pair
        #################################
        pred_position = pred_position.permute(0, 1, 3, 2)
        L2_dis = torch.norm(pred_position - tgt_keypts[:, None, :, :], dim=-1)  # [bs, num_seeds, num_corr]
        seedwise_fitness = torch.sum((L2_dis < self.inlier_threshold).float(), dim=-1)  # [bs, num_seeds]
        batch_best_guess = seedwise_fitness.argmax(dim=1)
        best_guess_ratio = seedwise_fitness[0, batch_best_guess]
        final_trans = seedwise_trans.gather(dim=1,index=batch_best_guess[:, None, None, None].expand(-1, -1, 4, 4)).squeeze(1)

        return final_trans

    def cal_leading_eigenvector(self, M, method='power'):
        """
        Calculate the leading eigenvector using power iteration algorithm or torch.symeig
        Input:
            - M:      [bs, num_corr, num_corr] the compatibility matrix
            - method: select different method for calculating the learding eigenvector.
        Output:
            - solution: [bs, num_corr] leading eigenvector
        """
        if method == 'power':
            # power iteration algorithm
            leading_eig = torch.ones_like(M[:, :, 0:1])
            leading_eig_last = leading_eig
            for i in range(self.num_iterations):
                leading_eig = torch.bmm(M, leading_eig)
                leading_eig = leading_eig / (torch.norm(leading_eig, dim=1, keepdim=True) + 1e-6)
                if torch.allclose(leading_eig, leading_eig_last):
                    break
                leading_eig_last = leading_eig
            leading_eig = leading_eig.squeeze(-1)
            return leading_eig
        elif method == 'eig':  # cause NaN during back-prop
            e, v = torch.symeig(M, eigenvectors=True)
            leading_eig = v[:, :, -1]
            return leading_eig
        else:
            exit(-1)

    def cal_confidence(self, M, leading_eig, method='eig_value'):
        """
        Calculate the confidence of the spectral matching solution based on spectral analysis.
        Input:
            - M:          [bs, num_corr, num_corr] the compatibility matrix
            - leading_eig [bs, num_corr]           the leading eigenvector of matrix M
        Output:
            - confidence
        """
        if method == 'eig_value':
            # max eigenvalue as the confidence (Rayleigh quotient)
            max_eig_value = (leading_eig[:, None, :] @ M @ leading_eig[:, :, None]) / (
                        leading_eig[:, None, :] @ leading_eig[:, :, None])
            confidence = max_eig_value.squeeze(-1)
            return confidence
        elif method == 'eig_value_ratio':
            # max eigenvalue / second max eigenvalue as the confidence
            max_eig_value = (leading_eig[:, None, :] @ M @ leading_eig[:, :, None]) / (
                        leading_eig[:, None, :] @ leading_eig[:, :, None])
            # compute the second largest eigen-value
            B = M - max_eig_value * leading_eig[:, :, None] @ leading_eig[:, None, :]
            solution = torch.ones_like(B[:, :, 0:1])
            for i in range(self.num_iterations):
                solution = torch.bmm(B, solution)
                solution = solution / (torch.norm(solution, dim=1, keepdim=True) + 1e-6)
            solution = solution.squeeze(-1)
            second_eig = solution
            second_eig_value = (second_eig[:, None, :] @ B @ second_eig[:, :, None]) / (
                        second_eig[:, None, :] @ second_eig[:, :, None])
            confidence = max_eig_value / second_eig_value
            return confidence
        elif method == 'xMx':
            # max xMx as the confidence (x is the binary solution)
            # rank = torch.argsort(leading_eig, dim=1, descending=True)[:, 0:int(M.shape[1]*self.ratio)]
            # binary_sol = torch.zeros_like(leading_eig)
            # binary_sol[0, rank[0]] = 1
            confidence = leading_eig[:, None, :] @ M @ leading_eig[:, :, None]
            confidence = confidence.squeeze(-1) / M.shape[1]
            return confidence

    def post_refinement(self, initial_trans, src_keypts, tgt_keypts, it_num, weights=None):
        """
        Perform post refinement using the initial transformation matrix, only adopted during testing.
        Input
            - initial_trans: [bs, 4, 4]
            - src_keypts:    [bs, num_corr, 3]
            - tgt_keypts:    [bs, num_corr, 3]
            - weights:       [bs, num_corr]
        Output:
            - final_trans:   [bs, 4, 4]
        """
        assert initial_trans.shape[0] == 1
        inlier_threshold = 1.2

        # inlier_threshold_list = [self.inlier_threshold] * it_num

        if self.inlier_threshold == 0.10:  # for 3DMatch
            inlier_threshold_list = [0.10] * it_num
        else:  # for KITTI
            inlier_threshold_list = [1.2] * it_num

        previous_inlier_num = 0
        for inlier_threshold in inlier_threshold_list:
            warped_src_keypts = transform(src_keypts, initial_trans)

            L2_dis = torch.norm(warped_src_keypts - tgt_keypts, dim=-1)
            pred_inlier = (L2_dis < inlier_threshold)[0]  # assume bs = 1
            inlier_num = torch.sum(pred_inlier)
            if abs(int(inlier_num - previous_inlier_num)) < 1:
                break
            else:
                previous_inlier_num = inlier_num
            initial_trans = rigid_transform_3d(
                A=src_keypts[:, pred_inlier, :],
                B=tgt_keypts[:, pred_inlier, :],
                ## https://link.springer.com/article/10.1007/s10589-014-9643-2
                # weights=None,
                weights=1 / (1 + (L2_dis / inlier_threshold) ** 2)[:, pred_inlier],
                # weights=((1-L2_dis/inlier_threshold)**2)[:, pred_inlier]
            )
        return initial_trans

    def match_pair(self, src_keypts, tgt_keypts, src_features, tgt_features):
        N_src = src_features.shape[1]
        N_tgt = tgt_features.shape[1]
        # use all point or sample points.
        if self.num_node == 'all':
            src_sel_ind = np.arange(N_src)
            tgt_sel_ind = np.arange(N_tgt)
        else:
            src_sel_ind = np.random.choice(N_src, self.num_node)
            tgt_sel_ind = np.random.choice(N_tgt, self.num_node)
        src_desc = src_features[:, src_sel_ind, :]
        tgt_desc = tgt_features[:, tgt_sel_ind, :]
        src_keypts = src_keypts[:, src_sel_ind, :]
        tgt_keypts = tgt_keypts[:, tgt_sel_ind, :]

        # match points in feature space.
        distance = torch.sqrt(2 - 2 * (src_desc[0] @ tgt_desc[0].T) + 1e-6)
        distance = distance.unsqueeze(0)
        source_idx = torch.argmin(distance[0], dim=1)
        corr = torch.cat([torch.arange(source_idx.shape[0])[:, None].cuda(), source_idx[:, None]], dim=-1)

        # generate correspondences
        src_keypts_corr = src_keypts[:, corr[:, 0]]
        tgt_keypts_corr = tgt_keypts[:, corr[:, 1]]

        return src_keypts_corr, tgt_keypts_corr

    def SC2_PCR(self, src_keypts, tgt_keypts):
        """
        Input:
            - src_keypts: [bs, num_corr, 3]
            - tgt_keypts: [bs, num_corr, 3]
        Output:
            - pred_trans:   [bs, 4, 4], the predicted transformation matrix.
            - pred_labels:  [bs, num_corr], the predicted inlier/outlier label (0,1), for classification loss calculation.
        """
        bs, num_corr = src_keypts.shape[0], tgt_keypts.shape[1]

        #################################
        # downsample points
        #################################
        if num_corr > self.max_points:
            src_keypts = src_keypts[:, :self.max_points, :]
            tgt_keypts = tgt_keypts[:, :self.max_points, :]
            num_corr = self.max_points

        #################################
        # compute cross dist
        #################################
        src_dist = torch.norm((src_keypts[:, :, None, :] - src_keypts[:, None, :, :]), dim=-1)
        target_dist = torch.norm((tgt_keypts[:, :, None, :] - tgt_keypts[:, None, :, :]), dim=-1)
        cross_dist = torch.abs(src_dist - target_dist)

        #################################
        # compute first order measure
        #################################
        SC_dist_thre = self.d_thre
        SC_measure = torch.clamp(1.0 - cross_dist ** 2 / SC_dist_thre ** 2, min=0)
        hard_SC_measure = (cross_dist < SC_dist_thre).float()

        #################################
        # select reliable seed correspondences
        #################################
        confidence = self.cal_leading_eigenvector(SC_measure, method='power')
        seeds = self.pick_seeds(src_dist, confidence, R=self.nms_radius, max_num=int(num_corr * self.ratio))

        #################################
        # compute second order measure
        #################################
        SC2_dist_thre = self.d_thre / 2
        hard_SC_measure_tight = (cross_dist < SC2_dist_thre).float()
        seed_hard_SC_measure = hard_SC_measure.gather(dim=1,
                                index=seeds[:, :, None].expand(-1, -1, num_corr))
        seed_hard_SC_measure_tight = hard_SC_measure_tight.gather(dim=1,
                                index=seeds[:, :, None].expand(-1, -1, num_corr))
        SC2_measure = torch.matmul(seed_hard_SC_measure_tight, hard_SC_measure_tight) * seed_hard_SC_measure

        #################################
        # compute the seed-wise transformations and select the best one
        #################################
        final_trans = self.cal_seed_trans(seeds, SC2_measure, src_keypts, tgt_keypts)

        #################################
        # refine the result by recomputing the transformation over the whole set
        #################################
        final_trans = self.post_refinement(final_trans, src_keypts, tgt_keypts, 20)

        return final_trans

    def estimator(self, src_keypts, tgt_keypts, src_features, tgt_features):
        """
        Input:
            - src_keypts: [bs, num_corr, 3]
            - tgt_keypts: [bs, num_corr, 3]
            - src_features: [bs, num_corr, C]
            - tgt_features: [bs, num_corr, C]
        Output:
            - pred_trans:   [bs, 4, 4], the predicted transformation matrix
            - pred_trans:   [bs, num_corr], the predicted inlier/outlier label (0,1)
            - src_keypts_corr:  [bs, num_corr, 3], the source points in the matched correspondences
            - tgt_keypts_corr:  [bs, num_corr, 3], the target points in the matched correspondences
        """
        #################################
        # generate coarse correspondences
        #################################
        src_keypts_corr, tgt_keypts_corr = self.match_pair(src_keypts, tgt_keypts, src_features, tgt_features)

        #################################
        # use the proposed SC2-PCR to estimate the rigid transformation
        #################################
        pred_trans = self.SC2_PCR(src_keypts_corr, tgt_keypts_corr)

        frag1_warp = transform(src_keypts_corr, pred_trans)
        distance = torch.sum((frag1_warp - tgt_keypts_corr) ** 2, dim=-1) ** 0.5
        pred_labels = (distance < self.inlier_threshold).float()

        return pred_trans, pred_labels, src_keypts_corr, tgt_keypts_corr


================================================
FILE: benchmark_utils.py
================================================
import torch
import numpy as np
import random
import math
import open3d as o3d
from utils.pointcloud import make_point_cloud


def exact_auc(errors, thresholds):
    """
    Calculate the exact area under curve, borrow from https://github.com/magicleap/SuperGluePretrainedNetwork
    """
    sort_idx = np.argsort(errors)
    errors = np.array(errors.copy())[sort_idx]
    recall = (np.arange(len(errors)) + 1) / len(errors)
    errors = np.r_[0., errors]
    recall = np.r_[0., recall]
    aucs = []
    for t in thresholds:
        last_index = np.searchsorted(errors, t)
        r = np.r_[recall[:last_index], recall[last_index - 1]]
        e = np.r_[errors[:last_index], t]
        aucs.append(np.trapz(r, x=e) / t)
    return aucs


def set_seed(seed=51):
    """
    Set the random seed for reproduce the results.
    """
    torch.manual_seed(seed)
    torch.cuda.manual_seed(seed)
    torch.cuda.manual_seed_all(seed)  # if you are using multi-GPU.
    np.random.seed(seed)  # Numpy module.
    random.seed(seed)  # Python random module.
    torch.backends.cudnn.benchmark = False
    torch.backends.cudnn.deterministic = True


def icp_refine(src_keypts, tgt_keypts, pred_trans):
    """
    ICP algorithm to refine the initial transformation
    Input:
        - src_keypts [1, num_corr, 3] FloatTensor
        - tgt_keypts [1, num_corr, 3] FloatTensor
        - pred_trans [1, 4, 4] FloatTensor, initial transformation
    """
    src_pcd = make_point_cloud(src_keypts.detach().cpu().numpy()[0])
    tgt_pcd = make_point_cloud(tgt_keypts.detach().cpu().numpy()[0])
    initial_trans = pred_trans[0].detach().cpu().numpy()
    # change the convension of transforamtion because open3d use left multi.
    refined_T = o3d.registration.registration_icp(
        src_pcd, tgt_pcd, 0.10, initial_trans,
        o3d.registration.TransformationEstimationPointToPoint()).transformation
    refined_T = torch.from_numpy(refined_T[None, :, :]).to(pred_trans.device).float()
    return refined_T


def is_rotation_matrix(R):
    """    
    Checks if a matrix is a valid rotation matrix.
    Input:
        - R: [3, 3] rotation matrix
    Output:
        - True/False
    """
    Rt = np.transpose(R)
    shouldBeIdentity = np.dot(Rt, R)
    I = np.identity(3, dtype=R.dtype)
    n = np.linalg.norm(I - shouldBeIdentity)
    return n < 1e-3


def rot_to_euler(R):
    """    
    Convert the rotation matrix to euler angles(degree)
    Input:
        - R: [3, 3] rotation matrix
    Output:
        - alpha. [3], the rotation angle (in degrees) along x,y,z axis.
    """
    assert (is_rotation_matrix(R))
    sy = math.sqrt(R[0, 0] * R[0, 0] + R[1, 0] * R[1, 0])
    singular = sy < 1e-6

    if not singular:
        x = math.atan2(R[2, 1], R[2, 2])
        y = math.atan2(-R[2, 0], sy)
        z = math.atan2(R[1, 0], R[0, 0])
    else:
        x = math.atan2(-R[1, 2], R[1, 1])
        y = math.atan2(-R[2, 0], sy)
        z = 0

    return np.array([x * 180 / np.pi, y * 180 / np.pi, z * 180 / np.pi])

================================================
FILE: benchmark_utils_predator.py
================================================
"""
Script for benchmarking the 3DMatch test dataset.

Author: Zan Gojcic, Shengyu Huang
Last modified: 30.11.2020
"""

import numpy as np
import os,sys,glob,torch,math
from collections import defaultdict
import nibabel.quaternions as nq


def rotation_error(R1, R2):
    """
    Torch batch implementation of the rotation error between the estimated and the ground truth rotatiom matrix. 
    Rotation error is defined as r_e = \arccos(\frac{Trace(\mathbf{R}_{ij}^{T}\mathbf{R}_{ij}^{\mathrm{GT}) - 1}{2})

    Args: 
        R1 (torch tensor): Estimated rotation matrices [b,3,3]
        R2 (torch tensor): Ground truth rotation matrices [b,3,3]

    Returns:
        ae (torch tensor): Rotation error in angular degreees [b,1]

    """
    R_ = torch.matmul(R1.transpose(1,2), R2)
    e = torch.stack([(torch.trace(R_[_, :, :]) - 1) / 2 for _ in range(R_.shape[0])], dim=0).unsqueeze(1)

    # Clamp the errors to the valid range (otherwise torch.acos() is nan)
    e = torch.clamp(e, -1, 1, out=None)

    ae = torch.acos(e)
    pi = torch.Tensor([math.pi])
    ae = 180. * ae / pi.to(ae.device).type(ae.dtype)

    return ae


def translation_error(t1, t2):
    """
    Torch batch implementation of the rotation error between the estimated and the ground truth rotatiom matrix. 
    Rotation error is defined as r_e = \arccos(\frac{Trace(\mathbf{R}_{ij}^{T}\mathbf{R}_{ij}^{\mathrm{GT}) - 1}{2})

    Args: 
        t1 (torch tensor): Estimated translation vectors [b,3,1]
        t2 (torch tensor): Ground truth translation vectors [b,3,1]

    Returns:
        te (torch tensor): translation error in meters [b,1]

    """
    return torch.norm(t1-t2, dim=(1, 2))


def computeTransformationErr(trans, info):
    """
    Computer the transformation error as an approximation of the RMSE of corresponding points.
    More informaiton at http://redwood-data.org/indoor/registration.html
    
    Args:
    trans (numpy array): transformation matrices [n,4,4]
    info (numpy array): covariance matrices of the gt transformation paramaters [n,4,4]

    Returns:
    p (float): transformation error
    """
    
    t = trans[:3, 3]
    r = trans[:3, :3]
    q = nq.mat2quat(r)
    er = np.concatenate([t, q[1:]], axis=0)
    p = er.reshape(1, 6) @ info @ er.reshape(6, 1) / info[0, 0]
    
    return p.item()


def read_trajectory(filename, dim=4):
    """
    Function that reads a trajectory saved in the 3DMatch/Redwood format to a numpy array. 
    Format specification can be found at http://redwood-data.org/indoor/fileformat.html
    
    Args:
    filename (str): path to the '.txt' file containing the trajectory data
    dim (int): dimension of the transformation matrix (4x4 for 3D data)

    Returns:
    final_keys (dict): indices of pairs with more than 30% overlap (only this ones are included in the gt file)
    traj (numpy array): gt pairwise transformation matrices for n pairs[n,dim, dim] 
    """

    with open(filename) as f:
        lines = f.readlines()

        # Extract the point cloud pairs
        keys = lines[0::(dim+1)]
        temp_keys = []
        for i in range(len(keys)):
            temp_keys.append(keys[i].split('\t')[0:3])

        final_keys = []
        for i in range(len(temp_keys)):
            final_keys.append([temp_keys[i][0].strip(), temp_keys[i][1].strip(), temp_keys[i][2].strip()])


        traj = []
        for i in range(len(lines)):
            if i % 5 != 0:
                traj.append(lines[i].split('\t')[0:dim])

        traj = np.asarray(traj, dtype=np.float).reshape(-1,dim,dim)
        
        final_keys = np.asarray(final_keys)

        return final_keys, traj


def read_trajectory_info(filename, dim=6):
    """
    Function that reads the trajectory information saved in the 3DMatch/Redwood format to a numpy array.
    Information file contains the variance-covariance matrix of the transformation paramaters. 
    Format specification can be found at http://redwood-data.org/indoor/fileformat.html
    
    Args:
    filename (str): path to the '.txt' file containing the trajectory information data
    dim (int): dimension of the transformation matrix (4x4 for 3D data)

    Returns:
    n_frame (int): number of fragments in the scene
    cov_matrix (numpy array): covariance matrix of the transformation matrices for n pairs[n,dim, dim] 
    """

    with open(filename) as fid:
        contents = fid.readlines()
    n_pairs = len(contents) // 7
    assert (len(contents) == 7 * n_pairs)
    info_list = []
    n_frame = 0

    for i in range(n_pairs):
        frame_idx0, frame_idx1, n_frame = [int(item) for item in contents[i * 7].strip().split()]
        info_matrix = np.concatenate(
            [np.fromstring(item, sep='\t').reshape(1, -1) for item in contents[i * 7 + 1:i * 7 + 7]], axis=0)
        info_list.append(info_matrix)
    
    cov_matrix = np.asarray(info_list, dtype=np.float).reshape(-1,dim,dim)
    
    return n_frame, cov_matrix


def extract_corresponding_trajectors(est_pairs,gt_pairs, gt_traj):
    """
    Extract only those transformation matrices from the ground truth trajectory that are also in the estimated trajectory.
    
    Args:
    est_pairs (numpy array): indices of point cloud pairs with enough estimated overlap [m, 3]
    gt_pairs (numpy array): indices of gt overlaping point cloud pairs [n,3]
    gt_traj (numpy array): 3d array of the gt transformation parameters [n,4,4]

    Returns:
    ext_traj (numpy array): gt transformation parameters for the point cloud pairs from est_pairs [m,4,4] 
    """
    ext_traj = np.zeros((len(est_pairs), 4, 4))

    for est_idx, pair in enumerate(est_pairs):
        pair[2] = gt_pairs[0][2]
        gt_idx = np.where((gt_pairs == pair).all(axis=1))[0]
        
        ext_traj[est_idx,:,:] = gt_traj[gt_idx,:,:]

    return ext_traj


def evaluate_registration(num_fragment, result, result_pairs, gt_pairs, gt, gt_info, err2=0.2):
    """
    Evaluates the performance of the registration algorithm according to the evaluation protocol defined
    by the 3DMatch/Redwood datasets. The evaluation protocol can be found at http://redwood-data.org/indoor/registration.html
    
    Args:
    num_fragment (int): path to the '.txt' file containing the trajectory information data
    result (numpy array): estimated transformation matrices [n,4,4]
    result_pairs (numpy array): indices of the point cloud for which the transformation matrix was estimated (m,3)
    gt_pairs (numpy array): indices of the ground truth overlapping point cloud pairs (n,3)
    gt (numpy array): ground truth transformation matrices [n,4,4]
    gt_cov (numpy array): covariance matrix of the ground truth transfromation parameters [n,6,6]
    err2 (float): threshold for the RMSE of the gt correspondences (default: 0.2m)

    Returns:
    precision (float): mean registration precision over the scene (not so important because it can be increased see papers)
    recall (float): mean registration recall over the scene (deciding parameter for the performance of the algorithm)
    """

    err2 = err2 ** 2
    gt_mask = np.zeros((num_fragment, num_fragment), dtype=np.int)
    flags=[]

    for idx in range(gt_pairs.shape[0]):
        i = int(gt_pairs[idx,0])
        j = int(gt_pairs[idx,1])

        # Only non consecutive pairs are tested
        if j - i > 1:
            gt_mask[i, j] = idx

    n_gt = np.sum(gt_mask > 0)

    good = 0
    n_res = 0
    for idx in range(result_pairs.shape[0]):
        i = int(result_pairs[idx,0])
        j = int(result_pairs[idx,1])
        pose = result[idx,:,:]

        if gt_mask[i, j] > 0:
            n_res += 1
            gt_idx = gt_mask[i, j]
            p = computeTransformationErr(np.linalg.inv(gt[gt_idx,:,:]) @ pose, gt_info[gt_idx,:,:])
            if p <= err2:
                good += 1
                flags.append(0)
            else:
                flags.append(1)
        else:
            flags.append(2)
    if n_res == 0:
        n_res += 1e6
    precision = good * 1.0 / n_res
    recall = good * 1.0 / n_gt

    return precision, recall, flags



================================================
FILE: benchmarks/3DLoMatch/7-scenes-redkitchen/gt.info
================================================
0	7	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12210.202100000000	2953.006840000000
0.000000000000	5000.000000000000	0.000000000000	-12210.202100000000	0.000000000000	2524.756100000000
0.000000000000	0.000000000000	5000.000000000000	-2953.006840000000	-2524.756100000000	0.000000000000
0.000000000000	-12210.202100000000	-2953.006840000000	34372.125000000000	1417.439820000000	-5971.215330000000
12210.202100000000	0.000000000000	-2524.756100000000	1417.439820000000	33469.312500000000	8417.902340000001
2953.006840000000	2524.756100000000	0.000000000000	-5971.215330000000	8417.902340000001	4510.429690000000
0	8	60
2940.000000000000	0.000000000000	0.000000000000	0.000000000000	7647.359860000000	2027.591550000000
0.000000000000	2940.000000000000	0.000000000000	-7647.359860000000	0.000000000000	3053.756100000000
0.000000000000	0.000000000000	2940.000000000000	-2027.591550000000	-3053.756100000000	0.000000000000
0.000000000000	-7647.359860000000	-2027.591550000000	21586.956999999999	2113.761960000000	-7965.160640000000
7647.359860000000	0.000000000000	-3053.756100000000	2113.761960000000	23219.214800000002	5328.437010000000
2027.591550000000	3053.756100000000	0.000000000000	-7965.160640000000	5328.437010000000	4889.844730000000
0	9	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	10638.137699999999	1998.040770000000
0.000000000000	5000.000000000000	0.000000000000	-10638.137699999999	0.000000000000	3307.306400000000
0.000000000000	0.000000000000	5000.000000000000	-1998.040770000000	-3307.306400000000	0.000000000000
0.000000000000	-10638.137699999999	-1998.040770000000	25807.343799999999	1660.834840000000	-7662.884770000000
10638.137699999999	0.000000000000	-3307.306400000000	1660.834840000000	26938.597699999998	5246.650390000000
1998.040770000000	3307.306400000000	0.000000000000	-7662.884770000000	5246.650390000000	4376.456050000000
0	16	60
3500.000000000000	0.000000000000	0.000000000000	0.000000000000	7305.772460000000	1173.560060000000
0.000000000000	3500.000000000000	0.000000000000	-7305.772460000000	0.000000000000	2302.791500000000
0.000000000000	0.000000000000	3500.000000000000	-1173.560060000000	-2302.791500000000	0.000000000000
0.000000000000	-7305.772460000000	-1173.560060000000	17060.779299999998	879.650208000000	-4939.298830000000
7305.772460000000	0.000000000000	-2302.791500000000	879.650208000000	17966.177700000000	3028.451420000000
1173.560060000000	2302.791500000000	0.000000000000	-4939.298830000000	3028.451420000000	2509.195310000000
0	17	60
2127.000000000000	0.000000000000	0.000000000000	0.000000000000	5124.270510000000	1334.902340000000
0.000000000000	2127.000000000000	0.000000000000	-5124.270510000000	0.000000000000	1992.042970000000
0.000000000000	0.000000000000	2127.000000000000	-1334.902340000000	-1992.042970000000	0.000000000000
0.000000000000	-5124.270510000000	-1334.902340000000	13700.192400000000	1380.157470000000	-4937.223140000000
5124.270510000000	0.000000000000	-1992.042970000000	1380.157470000000	14612.388700000000	3432.271480000000
1334.902340000000	1992.042970000000	0.000000000000	-4937.223140000000	3432.271480000000	3067.616210000000
0	18	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	10711.997100000001	1917.689450000000
0.000000000000	5000.000000000000	0.000000000000	-10711.997100000001	0.000000000000	3115.850340000000
0.000000000000	0.000000000000	5000.000000000000	-1917.689450000000	-3115.850340000000	0.000000000000
0.000000000000	-10711.997100000001	-1917.689450000000	26063.636699999999	1474.673100000000	-7044.731450000000
10711.997100000001	0.000000000000	-3115.850340000000	1474.673100000000	27065.539100000002	5079.894530000000
1917.689450000000	3115.850340000000	0.000000000000	-7044.731450000000	5079.894530000000	3982.231690000000
0	20	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	9297.610350000001	1174.249020000000
0.000000000000	5000.000000000000	0.000000000000	-9297.610350000001	0.000000000000	3275.526610000000
0.000000000000	0.000000000000	5000.000000000000	-1174.249020000000	-3275.526610000000	0.000000000000
0.000000000000	-9297.610350000001	-1174.249020000000	20462.949199999999	1299.697140000000	-6867.975100000000
9297.610350000001	0.000000000000	-3275.526610000000	1299.697140000000	21862.875000000000	3464.075930000000
1174.249020000000	3275.526610000000	0.000000000000	-6867.975100000000	3464.075930000000	3977.037350000000
0	25	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	13223.351600000000	3251.172360000000
0.000000000000	5000.000000000000	0.000000000000	-13223.351600000000	0.000000000000	3102.926030000000
0.000000000000	0.000000000000	5000.000000000000	-3251.172360000000	-3102.926030000000	0.000000000000
0.000000000000	-13223.351600000000	-3251.172360000000	38067.203099999999	1942.314700000000	-7967.844240000000
13223.351600000000	0.000000000000	-3102.926030000000	1942.314700000000	38247.660199999998	8900.333010000000
3251.172360000000	3102.926030000000	0.000000000000	-7967.844240000000	8900.333010000000	5429.598630000000
0	30	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	11528.893599999999	2145.299560000000
0.000000000000	5000.000000000000	0.000000000000	-11528.893599999999	0.000000000000	-4267.468260000000
0.000000000000	0.000000000000	5000.000000000000	-2145.299560000000	4267.468260000000	0.000000000000
0.000000000000	-11528.893599999999	-2145.299560000000	28536.888700000000	-1674.476320000000	9646.434569999999
11528.893599999999	0.000000000000	4267.468260000000	-1674.476320000000	30804.328099999999	5228.844240000000
2145.299560000000	-4267.468260000000	0.000000000000	9646.434569999999	5228.844240000000	5235.357910000000
0	31	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	10391.774400000000	-229.911026000000
0.000000000000	5000.000000000000	0.000000000000	-10391.774400000000	0.000000000000	-4088.688480000000
0.000000000000	0.000000000000	5000.000000000000	229.911026000000	4088.688480000000	0.000000000000
0.000000000000	-10391.774400000000	229.911026000000	22798.605500000001	85.861770600000	8516.400390000001
10391.774400000000	0.000000000000	4088.688480000000	85.861770600000	25589.974600000001	-285.032562000000
-229.911026000000	-4088.688480000000	0.000000000000	8516.400390000001	-285.032562000000	4430.192380000000
0	32	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	9612.613280000000	-656.424377000000
0.000000000000	5000.000000000000	0.000000000000	-9612.613280000000	0.000000000000	-3416.051030000000
0.000000000000	0.000000000000	5000.000000000000	656.424377000000	3416.051030000000	0.000000000000
0.000000000000	-9612.613280000000	656.424377000000	19639.666000000001	454.167328000000	6885.587890000000
9612.613280000000	0.000000000000	3416.051030000000	454.167328000000	22010.433600000000	-1262.046880000000
-656.424377000000	-3416.051030000000	0.000000000000	6885.587890000000	-1262.046880000000	3712.229250000000
0	33	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	8523.642580000000	-1414.166870000000
0.000000000000	5000.000000000000	0.000000000000	-8523.642580000000	0.000000000000	-1484.834720000000
0.000000000000	0.000000000000	5000.000000000000	1414.166870000000	1484.834720000000	0.000000000000
0.000000000000	-8523.642580000000	1414.166870000000	15640.502899999999	983.811218000000	3075.908690000000
8523.642580000000	0.000000000000	1484.834720000000	983.811218000000	16945.763700000000	-2547.323730000000
-1414.166870000000	-1484.834720000000	0.000000000000	3075.908690000000	-2547.323730000000	2731.274170000000
0	34	60
3670.000000000000	0.000000000000	0.000000000000	0.000000000000	5227.837890000000	-98.508834800000
0.000000000000	3670.000000000000	0.000000000000	-5227.837890000000	0.000000000000	1133.112550000000
0.000000000000	0.000000000000	3670.000000000000	98.508834800000	-1133.112550000000	0.000000000000
0.000000000000	-5227.837890000000	98.508834800000	7567.572750000000	-31.379207600000	-1635.315310000000
5227.837890000000	0.000000000000	-1133.112550000000	-31.379207600000	8133.190430000000	-100.594940000000
-98.508834800000	1133.112550000000	0.000000000000	-1635.315310000000	-100.594940000000	626.862610000000
0	36	60
4945.000000000000	0.000000000000	0.000000000000	0.000000000000	11267.022499999999	2381.595210000000
0.000000000000	4945.000000000000	0.000000000000	-11267.022499999999	0.000000000000	3374.782960000000
0.000000000000	0.000000000000	4945.000000000000	-2381.595210000000	-3374.782960000000	0.000000000000
0.000000000000	-11267.022499999999	-2381.595210000000	28498.078099999999	1855.024780000000	-7830.616210000000
11267.022499999999	0.000000000000	-3374.782960000000	1855.024780000000	29586.240200000000	6110.899410000000
2381.595210000000	3374.782960000000	0.000000000000	-7830.616210000000	6110.899410000000	4560.088380000000
0	37	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	10411.724600000000	1645.716920000000
0.000000000000	5000.000000000000	0.000000000000	-10411.724600000000	0.000000000000	1955.823360000000
0.000000000000	0.000000000000	5000.000000000000	-1645.716920000000	-1955.823360000000	0.000000000000
0.000000000000	-10411.724600000000	-1645.716920000000	24529.910199999998	964.453064000000	-4387.402830000000
10411.724600000000	0.000000000000	-1955.823360000000	964.453064000000	24964.607400000001	4284.263670000000
1645.716920000000	1955.823360000000	0.000000000000	-4387.402830000000	4284.263670000000	2722.198730000000
0	38	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	9329.358399999999	718.045044000000
0.000000000000	5000.000000000000	0.000000000000	-9329.358399999999	0.000000000000	931.715942000000
0.000000000000	0.000000000000	5000.000000000000	-718.045044000000	-931.715942000000	0.000000000000
0.000000000000	-9329.358399999999	-718.045044000000	19823.814500000000	243.192368000000	-1667.537230000000
9329.358399999999	0.000000000000	-931.715942000000	243.192368000000	19980.738300000001	2073.827390000000
718.045044000000	931.715942000000	0.000000000000	-1667.537230000000	2073.827390000000	1287.261720000000
0	41	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	13795.589800000000	3774.247800000000
0.000000000000	5000.000000000000	0.000000000000	-13795.589800000000	0.000000000000	-1720.364500000000
0.000000000000	0.000000000000	5000.000000000000	-3774.247800000000	1720.364500000000	0.000000000000
0.000000000000	-13795.589800000000	-3774.247800000000	41653.601600000002	-1256.028810000000	4496.085940000000
13795.589800000000	0.000000000000	1720.364500000000	-1256.028810000000	39678.816400000003	10560.762699999999
3774.247800000000	-1720.364500000000	0.000000000000	4496.085940000000	10560.762699999999	4274.560060000000
0	42	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	13874.237300000001	4000.970700000000
0.000000000000	5000.000000000000	0.000000000000	-13874.237300000001	0.000000000000	-1567.137940000000
0.000000000000	0.000000000000	5000.000000000000	-4000.970700000000	1567.137940000000	0.000000000000
0.000000000000	-13874.237300000001	-4000.970700000000	42313.011700000003	-1182.931880000000	4025.156740000000
13874.237300000001	0.000000000000	1567.137940000000	-1182.931880000000	40043.914100000002	11211.805700000001
4000.970700000000	-1567.137940000000	0.000000000000	4025.156740000000	11211.805700000001	4583.428220000000
0	43	60
4884.000000000000	0.000000000000	0.000000000000	0.000000000000	13583.022499999999	4218.896000000000
0.000000000000	4884.000000000000	0.000000000000	-13583.022499999999	0.000000000000	-1569.279790000000
0.000000000000	0.000000000000	4884.000000000000	-4218.896000000000	1569.279790000000	0.000000000000
0.000000000000	-13583.022499999999	-4218.896000000000	41996.656300000002	-1211.657590000000	3990.619630000000
13583.022499999999	0.000000000000	1569.279790000000	-1211.657590000000	39363.886700000003	11858.942400000000
4218.896000000000	-1569.279790000000	0.000000000000	3990.619630000000	11858.942400000000	4978.040530000000
0	44	60
4343.000000000000	0.000000000000	0.000000000000	0.000000000000	12376.637699999999	3956.686520000000
0.000000000000	4343.000000000000	0.000000000000	-12376.637699999999	0.000000000000	-921.256287000000
0.000000000000	0.000000000000	4343.000000000000	-3956.686520000000	921.256287000000	0.000000000000
0.000000000000	-12376.637699999999	-3956.686520000000	39168.050799999997	-740.596619000000	2463.221190000000
12376.637699999999	0.000000000000	921.256287000000	-740.596619000000	36295.992200000001	11341.436500000000
3956.686520000000	-921.256287000000	0.000000000000	2463.221190000000	11341.436500000000	4609.375980000000
0	45	60
4288.000000000000	0.000000000000	0.000000000000	0.000000000000	12130.670899999999	4075.019530000000
0.000000000000	4288.000000000000	0.000000000000	-12130.670899999999	0.000000000000	190.687714000000
0.000000000000	0.000000000000	4288.000000000000	-4075.019530000000	-190.687714000000	0.000000000000
0.000000000000	-12130.670899999999	-4075.019530000000	38436.667999999998	217.107666000000	-481.495850000000
12130.670899999999	0.000000000000	-190.687714000000	217.107666000000	35475.718800000002	11603.487300000001
4075.019530000000	190.687714000000	0.000000000000	-481.495850000000	11603.487300000001	5048.103030000000
0	46	60
3610.000000000000	0.000000000000	0.000000000000	0.000000000000	9909.697270000001	3333.438480000000
0.000000000000	3610.000000000000	0.000000000000	-9909.697270000001	0.000000000000	1656.724850000000
0.000000000000	0.000000000000	3610.000000000000	-3333.438480000000	-1656.724850000000	0.000000000000
0.000000000000	-9909.697270000001	-3333.438480000000	30487.958999999999	1532.831050000000	-4418.769040000000
9909.697270000001	0.000000000000	-1656.724850000000	1532.831050000000	28868.539100000002	9226.884770000001
3333.438480000000	1656.724850000000	0.000000000000	-4418.769040000000	9226.884770000001	4741.207030000000
0	47	60
2241.000000000000	0.000000000000	0.000000000000	0.000000000000	6001.209470000000	1987.929080000000
0.000000000000	2241.000000000000	0.000000000000	-6001.209470000000	0.000000000000	1746.349370000000
0.000000000000	0.000000000000	2241.000000000000	-1987.929080000000	-1746.349370000000	0.000000000000
0.000000000000	-6001.209470000000	-1987.929080000000	17993.546900000001	1542.154300000000	-4626.656740000000
6001.209470000000	0.000000000000	-1746.349370000000	1542.154300000000	17727.820299999999	5387.374020000000
1987.929080000000	1746.349370000000	0.000000000000	-4626.656740000000	5387.374020000000	3431.065670000000
0	48	60
2508.000000000000	0.000000000000	0.000000000000	0.000000000000	6673.774900000000	2196.189210000000
0.000000000000	2508.000000000000	0.000000000000	-6673.774900000000	0.000000000000	2110.895260000000
0.000000000000	0.000000000000	2508.000000000000	-2196.189210000000	-2110.895260000000	0.000000000000
0.000000000000	-6673.774900000000	-2196.189210000000	19878.044900000001	1832.434810000000	-5562.061040000000
6673.774900000000	0.000000000000	-2110.895260000000	1832.434810000000	19796.937500000000	5925.408690000000
2196.189210000000	2110.895260000000	0.000000000000	-5562.061040000000	5925.408690000000	3976.842290000000
0	49	60
2070.000000000000	0.000000000000	0.000000000000	0.000000000000	5504.915040000000	1863.228390000000
0.000000000000	2070.000000000000	0.000000000000	-5504.915040000000	0.000000000000	1907.668330000000
0.000000000000	0.000000000000	2070.000000000000	-1863.228390000000	-1907.668330000000	0.000000000000
0.000000000000	-5504.915040000000	-1863.228390000000	16460.998000000000	1700.126950000000	-5036.161130000000
5504.915040000000	0.000000000000	-1907.668330000000	1700.126950000000	16552.531299999999	5015.273440000000
1863.228390000000	1907.668330000000	0.000000000000	-5036.161130000000	5015.273440000000	3609.248050000000
0	50	60
2077.000000000000	0.000000000000	0.000000000000	0.000000000000	5575.812990000000	1884.130740000000
0.000000000000	2077.000000000000	0.000000000000	-5575.812990000000	0.000000000000	1797.978030000000
0.000000000000	0.000000000000	2077.000000000000	-1884.130740000000	-1797.978030000000	0.000000000000
0.000000000000	-5575.812990000000	-1884.130740000000	16824.068400000000	1607.136600000000	-4768.985840000000
5575.812990000000	0.000000000000	-1797.978030000000	1607.136600000000	16729.515599999999	5115.610840000000
1884.130740000000	1797.978030000000	0.000000000000	-4768.985840000000	5115.610840000000	3475.901120000000
0	51	60
1967.000000000000	0.000000000000	0.000000000000	0.000000000000	5384.763180000000	1910.958620000000
0.000000000000	1967.000000000000	0.000000000000	-5384.763180000000	0.000000000000	1657.597050000000
0.000000000000	0.000000000000	1967.000000000000	-1910.958620000000	-1657.597050000000	0.000000000000
0.000000000000	-5384.763180000000	-1910.958620000000	16688.861300000000	1587.810180000000	-4468.035160000000
5384.763180000000	0.000000000000	-1657.597050000000	1587.810180000000	16354.829100000001	5261.686040000000
1910.958620000000	1657.597050000000	0.000000000000	-4468.035160000000	5261.686040000000	3455.852540000000
0	52	60
2257.000000000000	0.000000000000	0.000000000000	0.000000000000	6025.153320000000	2003.331670000000
0.000000000000	2257.000000000000	0.000000000000	-6025.153320000000	0.000000000000	1966.990840000000
0.000000000000	0.000000000000	2257.000000000000	-2003.331670000000	-1966.990840000000	0.000000000000
0.000000000000	-6025.153320000000	-2003.331670000000	18022.375000000000	1729.295040000000	-5209.063960000000
6025.153320000000	0.000000000000	-1966.990840000000	1729.295040000000	17987.093799999999	5407.795410000000
2003.331670000000	1966.990840000000	0.000000000000	-5209.063960000000	5407.795410000000	3708.770020000000
0	53	60
2603.000000000000	0.000000000000	0.000000000000	0.000000000000	6867.698240000000	2277.476320000000
0.000000000000	2603.000000000000	0.000000000000	-6867.698240000000	0.000000000000	2397.200200000000
0.000000000000	0.000000000000	2603.000000000000	-2277.476320000000	-2397.200200000000	0.000000000000
0.000000000000	-6867.698240000000	-2277.476320000000	20273.226600000002	2088.597660000000	-6308.565920000000
6867.698240000000	0.000000000000	-2397.200200000000	2088.597660000000	20490.394499999999	6068.125980000000
2277.476320000000	2397.200200000000	0.000000000000	-6308.565920000000	6068.125980000000	4422.375490000000
0	59	60
4776.000000000000	0.000000000000	0.000000000000	0.000000000000	10217.717800000000	1475.224730000000
0.000000000000	4776.000000000000	0.000000000000	-10217.717800000000	0.000000000000	2370.767090000000
0.000000000000	0.000000000000	4776.000000000000	-1475.224730000000	-2370.767090000000	0.000000000000
0.000000000000	-10217.717800000000	-1475.224730000000	24121.152300000002	646.232361000000	-4840.785640000000
10217.717800000000	0.000000000000	-2370.767090000000	646.232361000000	24755.650399999999	3809.353520000000
1475.224730000000	2370.767090000000	0.000000000000	-4840.785640000000	3809.353520000000	2306.751460000000
1	6	60
4698.000000000000	0.000000000000	0.000000000000	0.000000000000	9510.342769999999	1958.431880000000
0.000000000000	4698.000000000000	0.000000000000	-9510.342769999999	0.000000000000	2657.172120000000
0.000000000000	0.000000000000	4698.000000000000	-1958.431880000000	-2657.172120000000	0.000000000000
0.000000000000	-9510.342769999999	-1958.431880000000	23491.043000000001	1218.698490000000	-5514.714360000000
9510.342769999999	0.000000000000	-2657.172120000000	1218.698490000000	23324.505900000000	5531.427250000000
1958.431880000000	2657.172120000000	0.000000000000	-5514.714360000000	5531.427250000000	3784.353270000000
1	7	60
2680.000000000000	0.000000000000	0.000000000000	0.000000000000	5976.207520000000	1449.922850000000
0.000000000000	2680.000000000000	0.000000000000	-5976.207520000000	0.000000000000	1860.472410000000
0.000000000000	0.000000000000	2680.000000000000	-1449.922850000000	-1860.472410000000	0.000000000000
0.000000000000	-5976.207520000000	-1449.922850000000	15472.499000000000	1036.438110000000	-4134.912110000000
5976.207520000000	0.000000000000	-1860.472410000000	1036.438110000000	15616.198200000001	3848.831540000000
1449.922850000000	1860.472410000000	0.000000000000	-4134.912110000000	3848.831540000000	2729.849610000000
1	9	60
4724.000000000000	0.000000000000	0.000000000000	0.000000000000	8804.417970000000	1561.751100000000
0.000000000000	4724.000000000000	0.000000000000	-8804.417970000000	0.000000000000	3243.971190000000
0.000000000000	0.000000000000	4724.000000000000	-1561.751100000000	-3243.971190000000	0.000000000000
0.000000000000	-8804.417970000000	-1561.751100000000	19212.939500000000	1478.932500000000	-6602.207030000000
8804.417970000000	0.000000000000	-3243.971190000000	1478.932500000000	20416.875000000000	3983.139650000000
1561.751100000000	3243.971190000000	0.000000000000	-6602.207030000000	3983.139650000000	3889.398440000000
1	18	60
4087.000000000000	0.000000000000	0.000000000000	0.000000000000	7812.197270000000	1331.869750000000
0.000000000000	4087.000000000000	0.000000000000	-7812.197270000000	0.000000000000	2589.360350000000
0.000000000000	0.000000000000	4087.000000000000	-1331.869750000000	-2589.360350000000	0.000000000000
0.000000000000	-7812.197270000000	-1331.869750000000	17143.128900000000	1093.527830000000	-5270.881350000000
7812.197270000000	0.000000000000	-2589.360350000000	1093.527830000000	18026.927700000000	3331.197510000000
1331.869750000000	2589.360350000000	0.000000000000	-5270.881350000000	3331.197510000000	2887.313960000000
1	19	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	9399.859380000000	1406.237920000000
0.000000000000	5000.000000000000	0.000000000000	-9399.859380000000	0.000000000000	2664.071780000000
0.000000000000	0.000000000000	5000.000000000000	-1406.237920000000	-2664.071780000000	0.000000000000
0.000000000000	-9399.859380000000	-1406.237920000000	21375.041000000001	1113.690550000000	-5516.181640000000
9399.859380000000	0.000000000000	-2664.071780000000	1113.690550000000	21872.789100000002	4039.108640000000
1406.237920000000	2664.071780000000	0.000000000000	-5516.181640000000	4039.108640000000	3269.646730000000
1	20	60
2963.000000000000	0.000000000000	0.000000000000	0.000000000000	4724.031250000000	314.822357000000
0.000000000000	2963.000000000000	0.000000000000	-4724.031250000000	0.000000000000	1920.060060000000
0.000000000000	0.000000000000	2963.000000000000	-314.822357000000	-1920.060060000000	0.000000000000
0.000000000000	-4724.031250000000	-314.822357000000	9061.186519999999	515.915771000000	-3465.757320000000
4724.031250000000	0.000000000000	-1920.060060000000	515.915771000000	9948.657230000001	1188.860470000000
314.822357000000	1920.060060000000	0.000000000000	-3465.757320000000	1188.860470000000	2048.820560000000
1	25	60
2327.000000000000	0.000000000000	0.000000000000	0.000000000000	5941.959960000000	1652.886600000000
0.000000000000	2327.000000000000	0.000000000000	-5941.959960000000	0.000000000000	1907.437010000000
0.000000000000	0.000000000000	2327.000000000000	-1652.886600000000	-1907.437010000000	0.000000000000
0.000000000000	-5941.959960000000	-1652.886600000000	16810.089800000002	1433.753300000000	-4782.992680000000
5941.959960000000	0.000000000000	-1907.437010000000	1433.753300000000	17129.486300000000	4303.953130000000
1652.886600000000	1907.437010000000	0.000000000000	-4782.992680000000	4303.953130000000	3227.877930000000
1	30	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	10271.943400000000	1091.013060000000
0.000000000000	5000.000000000000	0.000000000000	-10271.943400000000	0.000000000000	-3642.377440000000
0.000000000000	0.000000000000	5000.000000000000	-1091.013060000000	3642.377440000000	0.000000000000
0.000000000000	-10271.943400000000	-1091.013060000000	23489.392599999999	-262.356171000000	6966.707520000000
10271.943400000000	0.000000000000	3642.377440000000	-262.356171000000	25035.960899999998	3020.233150000000
1091.013060000000	-3642.377440000000	0.000000000000	6966.707520000000	3020.233150000000	4463.917970000000
1	33	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	7923.100100000000	-1544.969600000000
0.000000000000	5000.000000000000	0.000000000000	-7923.100100000000	0.000000000000	-1682.794920000000
0.000000000000	0.000000000000	5000.000000000000	1544.969600000000	1682.794920000000	0.000000000000
0.000000000000	-7923.100100000000	1544.969600000000	13548.571300000000	1065.850710000000	3029.700930000000
7923.100100000000	0.000000000000	1682.794920000000	1065.850710000000	14950.790000000001	-2536.266360000000
-1544.969600000000	-1682.794920000000	0.000000000000	3029.700930000000	-2536.266360000000	2894.563230000000
1	36	60
2060.000000000000	0.000000000000	0.000000000000	0.000000000000	3884.446780000000	654.399719000000
0.000000000000	2060.000000000000	0.000000000000	-3884.446780000000	0.000000000000	1543.955570000000
0.000000000000	0.000000000000	2060.000000000000	-654.399719000000	-1543.955570000000	0.000000000000
0.000000000000	-3884.446780000000	-654.399719000000	8139.222170000000	595.697510000000	-3044.352780000000
3884.446780000000	0.000000000000	-1543.955570000000	595.697510000000	8953.404300000000	1516.876220000000
654.399719000000	1543.955570000000	0.000000000000	-3044.352780000000	1516.876220000000	1691.966920000000
1	37	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	9359.709960000000	947.481506000000
0.000000000000	5000.000000000000	0.000000000000	-9359.709960000000	0.000000000000	1778.957400000000
0.000000000000	0.000000000000	5000.000000000000	-947.481506000000	-1778.957400000000	0.000000000000
0.000000000000	-9359.709960000000	-947.481506000000	19991.869100000000	574.832458000000	-3368.233150000000
9359.709960000000	0.000000000000	-1778.957400000000	574.832458000000	20478.675800000001	2404.723630000000
947.481506000000	1778.957400000000	0.000000000000	-3368.233150000000	2404.723630000000	1818.909180000000
1	38	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	8784.515630000000	306.391754000000
0.000000000000	5000.000000000000	0.000000000000	-8784.515630000000	0.000000000000	1186.390990000000
0.000000000000	0.000000000000	5000.000000000000	-306.391754000000	-1186.390990000000	0.000000000000
0.000000000000	-8784.515630000000	-306.391754000000	17522.503900000000	254.805984000000	-1881.514400000000
8784.515630000000	0.000000000000	-1186.390990000000	254.805984000000	17953.468799999999	991.416199000000
306.391754000000	1186.390990000000	0.000000000000	-1881.514400000000	991.416199000000	1199.848630000000
1	39	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	8805.480470000000	699.115601000000
0.000000000000	5000.000000000000	0.000000000000	-8805.480470000000	0.000000000000	1857.265010000000
0.000000000000	0.000000000000	5000.000000000000	-699.115601000000	-1857.265010000000	0.000000000000
0.000000000000	-8805.480470000000	-699.115601000000	18277.226600000002	640.934387000000	-3562.402100000000
8805.480470000000	0.000000000000	-1857.265010000000	640.934387000000	18501.103500000001	2250.649660000000
699.115601000000	1857.265010000000	0.000000000000	-3562.402100000000	2250.649660000000	2088.554930000000
1	41	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12837.537100000000	3702.863040000000
0.000000000000	5000.000000000000	0.000000000000	-12837.537100000000	0.000000000000	-1141.941770000000
0.000000000000	0.000000000000	5000.000000000000	-3702.863040000000	1141.941770000000	0.000000000000
0.000000000000	-12837.537100000000	-3702.863040000000	36634.636700000003	-709.055969000000	2505.065190000000
12837.537100000000	0.000000000000	1141.941770000000	-709.055969000000	34475.730499999998	9697.972659999999
3702.863040000000	-1141.941770000000	0.000000000000	2505.065190000000	9697.972659999999	3801.521000000000
1	42	60
4098.000000000000	0.000000000000	0.000000000000	0.000000000000	10667.516600000001	3216.024900000000
0.000000000000	4098.000000000000	0.000000000000	-10667.516600000001	0.000000000000	-974.725403000000
0.000000000000	0.000000000000	4098.000000000000	-3216.024900000000	974.725403000000	0.000000000000
0.000000000000	-10667.516600000001	-3216.024900000000	30960.228500000001	-573.404358000000	2137.067380000000
10667.516600000001	0.000000000000	974.725403000000	-573.404358000000	29096.156299999999	8479.427729999999
3216.024900000000	-974.725403000000	0.000000000000	2137.067380000000	8479.427729999999	3588.743160000000
1	43	60
3057.000000000000	0.000000000000	0.000000000000	0.000000000000	8222.717769999999	2817.871340000000
0.000000000000	3057.000000000000	0.000000000000	-8222.717769999999	0.000000000000	-204.633865000000
0.000000000000	0.000000000000	3057.000000000000	-2817.871340000000	204.633865000000	0.000000000000
0.000000000000	-8222.717769999999	-2817.871340000000	25093.775399999999	-32.181175200000	253.273407000000
8222.717769999999	0.000000000000	204.633865000000	-32.181175200000	22974.939500000000	7667.896000000000
2817.871340000000	-204.633865000000	0.000000000000	253.273407000000	7667.896000000000	3256.553710000000
1	44	60
2461.000000000000	0.000000000000	0.000000000000	0.000000000000	6839.964840000000	2476.242680000000
0.000000000000	2461.000000000000	0.000000000000	-6839.964840000000	0.000000000000	523.244995000000
0.000000000000	0.000000000000	2461.000000000000	-2476.242680000000	-523.244995000000	0.000000000000
0.000000000000	-6839.964840000000	-2476.242680000000	21637.085899999998	605.567200000000	-1571.758670000000
6839.964840000000	0.000000000000	-523.244995000000	605.567200000000	19659.955099999999	6921.515140000000
2476.242680000000	523.244995000000	0.000000000000	-1571.758670000000	6921.515140000000	3087.860840000000
1	45	60
2941.000000000000	0.000000000000	0.000000000000	0.000000000000	7980.909670000000	2871.830320000000
0.000000000000	2941.000000000000	0.000000000000	-7980.909670000000	0.000000000000	1218.833130000000
0.000000000000	0.000000000000	2941.000000000000	-2871.830320000000	-1218.833130000000	0.000000000000
0.000000000000	-7980.909670000000	-2871.830320000000	24593.105500000001	1207.507930000000	-3285.004390000000
7980.909670000000	0.000000000000	-1218.833130000000	1207.507930000000	22815.439500000000	7844.439450000000
2871.830320000000	1218.833130000000	0.000000000000	-3285.004390000000	7844.439450000000	3930.639160000000
1	46	60
2902.000000000000	0.000000000000	0.000000000000	0.000000000000	7700.841310000000	2707.920900000000
0.000000000000	2902.000000000000	0.000000000000	-7700.841310000000	0.000000000000	1611.901730000000
0.000000000000	0.000000000000	2902.000000000000	-2707.920900000000	-1611.901730000000	0.000000000000
0.000000000000	-7700.841310000000	-2707.920900000000	23118.562500000000	1488.037960000000	-4215.088870000000
7700.841310000000	0.000000000000	-1611.901730000000	1488.037960000000	21933.515599999999	7251.308590000000
2707.920900000000	1611.901730000000	0.000000000000	-4215.088870000000	7251.308590000000	3993.579350000000
1	59	60
2425.000000000000	0.000000000000	0.000000000000	0.000000000000	4545.438480000000	502.649445000000
0.000000000000	2425.000000000000	0.000000000000	-4545.438480000000	0.000000000000	1540.568850000000
0.000000000000	0.000000000000	2425.000000000000	-502.649445000000	-1540.568850000000	0.000000000000
0.000000000000	-4545.438480000000	-502.649445000000	9408.333979999999	340.230408000000	-2844.579830000000
4545.438480000000	0.000000000000	-1540.568850000000	340.230408000000	10205.675800000001	1191.783570000000
502.649445000000	1540.568850000000	0.000000000000	-2844.579830000000	1191.783570000000	1329.013550000000
2	5	60
3654.000000000000	0.000000000000	0.000000000000	0.000000000000	9007.341800000000	2674.919680000000
0.000000000000	3654.000000000000	0.000000000000	-9007.341800000000	0.000000000000	3026.354980000000
0.000000000000	0.000000000000	3654.000000000000	-2674.919680000000	-3026.354980000000	0.000000000000
0.000000000000	-9007.341800000000	-2674.919680000000	25067.744100000000	2392.093260000000	-7473.842770000000
9007.341800000000	0.000000000000	-3026.354980000000	2392.093260000000	25034.101600000002	6723.410160000000
2674.919680000000	3026.354980000000	0.000000000000	-7473.842770000000	6723.410160000000	5242.987790000000
2	10	60
3071.000000000000	0.000000000000	0.000000000000	0.000000000000	7648.357420000000	2986.698000000000
0.000000000000	3071.000000000000	0.000000000000	-7648.357420000000	0.000000000000	2152.639890000000
0.000000000000	0.000000000000	3071.000000000000	-2986.698000000000	-2152.639890000000	0.000000000000
0.000000000000	-7648.357420000000	-2986.698000000000	22504.902300000002	2116.980710000000	-5344.425780000000
7648.357420000000	0.000000000000	-2152.639890000000	2116.980710000000	20850.507799999999	7570.666020000000
2986.698000000000	2152.639890000000	0.000000000000	-5344.425780000000	7570.666020000000	4908.541020000000
2	15	60
3043.000000000000	0.000000000000	0.000000000000	0.000000000000	7547.055660000000	928.953430000000
0.000000000000	3043.000000000000	0.000000000000	-7547.055660000000	0.000000000000	2130.778560000000
0.000000000000	0.000000000000	3043.000000000000	-928.953430000000	-2130.778560000000	0.000000000000
0.000000000000	-7547.055660000000	-928.953430000000	19516.544900000001	739.864441000000	-5250.295900000000
7547.055660000000	0.000000000000	-2130.778560000000	739.864441000000	20630.644499999999	2298.210210000000
928.953430000000	2130.778560000000	0.000000000000	-5250.295900000000	2298.210210000000	2072.302250000000
2	26	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	11526.061500000000	2751.206790000000
0.000000000000	5000.000000000000	0.000000000000	-11526.061500000000	0.000000000000	3270.246830000000
0.000000000000	0.000000000000	5000.000000000000	-2751.206790000000	-3270.246830000000	0.000000000000
0.000000000000	-11526.061500000000	-2751.206790000000	28753.117200000001	1880.690310000000	-7656.038090000000
11526.061500000000	0.000000000000	-3270.246830000000	1880.690310000000	29344.918000000001	6373.179200000000
2751.206790000000	3270.246830000000	0.000000000000	-7656.038090000000	6373.179200000000	4716.547850000000
2	32	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	8146.324710000000	-894.500610000000
0.000000000000	5000.000000000000	0.000000000000	-8146.324710000000	0.000000000000	-304.443420000000
0.000000000000	0.000000000000	5000.000000000000	894.500610000000	304.443420000000	0.000000000000
0.000000000000	-8146.324710000000	894.500610000000	14230.990200000000	162.288483000000	636.019287000000
8146.324710000000	0.000000000000	304.443420000000	162.288483000000	14129.076200000000	-1334.819340000000
-894.500610000000	-304.443420000000	0.000000000000	636.019287000000	-1334.819340000000	1280.284060000000
2	44	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12413.441400000000	5672.087400000000
0.000000000000	5000.000000000000	0.000000000000	-12413.441400000000	0.000000000000	2684.462400000000
0.000000000000	0.000000000000	5000.000000000000	-5672.087400000000	-2684.462400000000	0.000000000000
0.000000000000	-12413.441400000000	-5672.087400000000	37923.425799999997	2963.598880000000	-6818.377440000000
12413.441400000000	0.000000000000	-2684.462400000000	2963.598880000000	33143.394500000002	14240.596700000000
5672.087400000000	2684.462400000000	0.000000000000	-6818.377440000000	14240.596700000000	8942.742190000001
2	45	60
4474.000000000000	0.000000000000	0.000000000000	0.000000000000	11319.818400000000	5029.042970000000
0.000000000000	4474.000000000000	0.000000000000	-11319.818400000000	0.000000000000	3269.293700000000
0.000000000000	0.000000000000	4474.000000000000	-5029.042970000000	-3269.293700000000	0.000000000000
0.000000000000	-11319.818400000000	-5029.042970000000	34798.050799999997	3706.366700000000	-8246.049800000001
11319.818400000000	0.000000000000	-3269.293700000000	3706.366700000000	31437.752000000000	12884.941400000000
5029.042970000000	3269.293700000000	0.000000000000	-8246.049800000001	12884.941400000000	8662.089840000001
3	6	60
4256.000000000000	0.000000000000	0.000000000000	0.000000000000	7579.038090000000	-411.407715000000
0.000000000000	4256.000000000000	0.000000000000	-7579.038090000000	0.000000000000	4697.210940000000
0.000000000000	0.000000000000	4256.000000000000	411.407715000000	-4697.210940000000	0.000000000000
0.000000000000	-7579.038090000000	411.407715000000	14875.636699999999	-386.177979000000	-8397.356449999999
7579.038090000000	0.000000000000	-4697.210940000000	-386.177979000000	19731.043000000001	-270.187622000000
-411.407715000000	4697.210940000000	0.000000000000	-8397.356449999999	-270.187622000000	5710.841800000000
3	7	60
3834.000000000000	0.000000000000	0.000000000000	0.000000000000	6433.454590000000	-830.642578000000
0.000000000000	3834.000000000000	0.000000000000	-6433.454590000000	0.000000000000	4691.221190000000
0.000000000000	0.000000000000	3834.000000000000	830.642578000000	-4691.221190000000	0.000000000000
0.000000000000	-6433.454590000000	830.642578000000	11823.744100000000	-1004.109990000000	-7874.584960000000
6433.454590000000	0.000000000000	-4691.221190000000	-1004.109990000000	17255.660199999998	-1125.480470000000
-830.642578000000	4691.221190000000	0.000000000000	-7874.584960000000	-1125.480470000000	6214.627440000000
3	15	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	9493.070309999999	-1765.218510000000
0.000000000000	5000.000000000000	0.000000000000	-9493.070309999999	0.000000000000	5279.791500000000
0.000000000000	0.000000000000	5000.000000000000	1765.218510000000	-5279.791500000000	0.000000000000
0.000000000000	-9493.070309999999	1765.218510000000	19986.955099999999	-1821.074710000000	-9683.031250000000
9493.070309999999	0.000000000000	-5279.791500000000	-1821.074710000000	25092.437500000000	-3247.910890000000
-1765.218510000000	5279.791500000000	0.000000000000	-9683.031250000000	-3247.910890000000	6892.822750000000
3	19	60
4265.000000000000	0.000000000000	0.000000000000	0.000000000000	7652.726560000000	-1043.909910000000
0.000000000000	4265.000000000000	0.000000000000	-7652.726560000000	0.000000000000	4996.566410000000
0.000000000000	0.000000000000	4265.000000000000	1043.909910000000	-4996.566410000000	0.000000000000
0.000000000000	-7652.726560000000	1043.909910000000	14666.264600000000	-1217.205930000000	-8929.257809999999
7652.726560000000	0.000000000000	-4996.566410000000	-1217.205930000000	20229.226600000002	-1766.654050000000
-1043.909910000000	4996.566410000000	0.000000000000	-8929.257809999999	-1766.654050000000	6505.530760000000
3	25	60
4747.000000000000	0.000000000000	0.000000000000	0.000000000000	8638.886720000000	-1343.842410000000
0.000000000000	4747.000000000000	0.000000000000	-8638.886720000000	0.000000000000	6096.410160000000
0.000000000000	0.000000000000	4747.000000000000	1343.842410000000	-6096.410160000000	0.000000000000
0.000000000000	-8638.886720000000	1343.842410000000	16841.273399999998	-1724.916630000000	-11049.429700000001
8638.886720000000	0.000000000000	-6096.410160000000	-1724.916630000000	23851.923800000000	-2318.158940000000
-1343.842410000000	6096.410160000000	0.000000000000	-11049.429700000001	-2318.158940000000	8810.067380000000
3	31	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	8128.096680000000	-1011.569700000000
0.000000000000	5000.000000000000	0.000000000000	-8128.096680000000	0.000000000000	-584.198853000000
0.000000000000	0.000000000000	5000.000000000000	1011.569700000000	584.198853000000	0.000000000000
0.000000000000	-8128.096680000000	1011.569700000000	14083.044900000001	68.383316000000	795.265869000000
8128.096680000000	0.000000000000	584.198853000000	68.383316000000	13863.940399999999	-1636.688720000000
-1011.569700000000	-584.198853000000	0.000000000000	795.265869000000	-1636.688720000000	940.422668000000
3	32	60
3463.000000000000	0.000000000000	0.000000000000	0.000000000000	4965.597170000000	-1207.123780000000
0.000000000000	3463.000000000000	0.000000000000	-4965.597170000000	0.000000000000	-52.321418800000
0.000000000000	0.000000000000	3463.000000000000	1207.123780000000	52.321418800000	0.000000000000
0.000000000000	-4965.597170000000	1207.123780000000	7906.093260000000	-10.419385000000	254.499969000000
4965.597170000000	0.000000000000	52.321418800000	-10.419385000000	7875.771970000000	-1698.743290000000
-1207.123780000000	-52.321418800000	0.000000000000	254.499969000000	-1698.743290000000	1007.383670000000
3	36	60
3190.000000000000	0.000000000000	0.000000000000	0.000000000000	4320.091310000000	-1269.624630000000
0.000000000000	3190.000000000000	0.000000000000	-4320.091310000000	0.000000000000	3878.509770000000
0.000000000000	0.000000000000	3190.000000000000	1269.624630000000	-3878.509770000000	0.000000000000
0.000000000000	-4320.091310000000	1269.624630000000	7217.327150000000	-1493.100100000000	-5435.334470000000
4320.091310000000	0.000000000000	-3878.509770000000	-1493.100100000000	11391.827100000000	-1532.565310000000
-1269.624630000000	3878.509770000000	0.000000000000	-5435.334470000000	-1532.565310000000	5443.984860000000
3	37	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	8593.054690000001	-2082.538090000000
0.000000000000	5000.000000000000	0.000000000000	-8593.054690000001	0.000000000000	5620.880860000000
0.000000000000	0.000000000000	5000.000000000000	2082.538090000000	-5620.880860000000	0.000000000000
0.000000000000	-8593.054690000001	2082.538090000000	16871.783200000002	-2227.835450000000	-9602.113280000000
8593.054690000001	0.000000000000	-5620.880860000000	-2227.835450000000	22419.468799999999	-3526.425050000000
-2082.538090000000	5620.880860000000	0.000000000000	-9602.113280000000	-3526.425050000000	7798.354000000000
3	38	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	8502.123050000000	-1904.940060000000
0.000000000000	5000.000000000000	0.000000000000	-8502.123050000000	0.000000000000	5661.504880000000
0.000000000000	0.000000000000	5000.000000000000	1904.940060000000	-5661.504880000000	0.000000000000
0.000000000000	-8502.123050000000	1904.940060000000	16405.294900000001	-2058.157960000000	-9611.498050000000
8502.123050000000	0.000000000000	-5661.504880000000	-2058.157960000000	22149.781299999999	-3147.573000000000
-1904.940060000000	5661.504880000000	0.000000000000	-9611.498050000000	-3147.573000000000	7663.989750000000
3	39	60
4619.000000000000	0.000000000000	0.000000000000	0.000000000000	7783.093260000000	-1481.343260000000
0.000000000000	4619.000000000000	0.000000000000	-7783.093260000000	0.000000000000	5364.850100000000
0.000000000000	0.000000000000	4619.000000000000	1481.343260000000	-5364.850100000000	0.000000000000
0.000000000000	-7783.093260000000	1481.343260000000	14692.086900000000	-1666.740970000000	-9165.428710000000
7783.093260000000	0.000000000000	-5364.850100000000	-1666.740970000000	20387.722699999998	-2333.152100000000
-1481.343260000000	5364.850100000000	0.000000000000	-9165.428710000000	-2333.152100000000	7107.251460000000
3	46	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	10704.981400000001	2071.539310000000
0.000000000000	5000.000000000000	0.000000000000	-10704.981400000001	0.000000000000	5820.911130000000
0.000000000000	0.000000000000	5000.000000000000	-2071.539310000000	-5820.911130000000	0.000000000000
0.000000000000	-10704.981400000001	-2071.539310000000	24613.347699999998	2456.681640000000	-12338.290000000001
10704.981400000001	0.000000000000	-5820.911130000000	2456.681640000000	30292.138700000000	4682.384770000000
2071.539310000000	5820.911130000000	0.000000000000	-12338.290000000001	4682.384770000000	8401.768550000001
3	59	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	8271.142580000000	-2090.086180000000
0.000000000000	5000.000000000000	0.000000000000	-8271.142580000000	0.000000000000	6333.010740000000
0.000000000000	0.000000000000	5000.000000000000	2090.086180000000	-6333.010740000000	0.000000000000
0.000000000000	-8271.142580000000	2090.086180000000	15466.851600000000	-2634.464110000000	-10546.835900000000
8271.142580000000	0.000000000000	-6333.010740000000	-2634.464110000000	22539.630900000000	-3396.467040000000
-2090.086180000000	6333.010740000000	0.000000000000	-10546.835900000000	-3396.467040000000	9173.838870000000
4	8	60
4701.000000000000	0.000000000000	0.000000000000	0.000000000000	10990.556600000000	235.949097000000
0.000000000000	4701.000000000000	0.000000000000	-10990.556600000000	0.000000000000	4784.711430000000
0.000000000000	0.000000000000	4701.000000000000	-235.949097000000	-4784.711430000000	0.000000000000
0.000000000000	-10990.556600000000	-235.949097000000	26783.146499999999	200.565826000000	-11291.783200000000
10990.556600000000	0.000000000000	-4784.711430000000	200.565826000000	31431.581999999999	604.592712000000
235.949097000000	4784.711430000000	0.000000000000	-11291.783200000000	604.592712000000	6028.567870000000
4	16	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	9354.194340000000	-1484.574340000000
0.000000000000	5000.000000000000	0.000000000000	-9354.194340000000	0.000000000000	2780.968990000000
0.000000000000	0.000000000000	5000.000000000000	1484.574340000000	-2780.968990000000	0.000000000000
0.000000000000	-9354.194340000000	1484.574340000000	19770.970700000002	-765.948303000000	-5217.941890000000
9354.194340000000	0.000000000000	-2780.968990000000	-765.948303000000	21169.333999999999	-2405.883300000000
-1484.574340000000	2780.968990000000	0.000000000000	-5217.941890000000	-2405.883300000000	2895.241460000000
4	17	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	9705.715819999999	-821.856995000000
0.000000000000	5000.000000000000	0.000000000000	-9705.715819999999	0.000000000000	3739.321530000000
0.000000000000	0.000000000000	5000.000000000000	821.856995000000	-3739.321530000000	0.000000000000
0.000000000000	-9705.715819999999	821.856995000000	21098.947300000000	-378.161255000000	-7535.533690000000
9705.715819999999	0.000000000000	-3739.321530000000	-378.161255000000	23521.242200000001	-1007.045720000000
-821.856995000000	3739.321530000000	0.000000000000	-7535.533690000000	-1007.045720000000	4122.998540000000
4	20	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	9910.185550000000	-195.890884000000
0.000000000000	5000.000000000000	0.000000000000	-9910.185550000000	0.000000000000	3455.757810000000
0.000000000000	0.000000000000	5000.000000000000	195.890884000000	-3455.757810000000	0.000000000000
0.000000000000	-9910.185550000000	195.890884000000	21754.433600000000	4.113144870000	-6989.491210000000
9910.185550000000	0.000000000000	-3455.757810000000	4.113144870000	24088.675800000001	398.165680000000
-195.890884000000	3455.757810000000	0.000000000000	-6989.491210000000	398.165680000000	3784.359130000000
4	21	60
3984.000000000000	0.000000000000	0.000000000000	0.000000000000	8953.137699999999	-1007.425600000000
0.000000000000	3984.000000000000	0.000000000000	-8953.137699999999	0.000000000000	4864.489260000000
0.000000000000	0.000000000000	3984.000000000000	1007.425600000000	-4864.489260000000	0.000000000000
0.000000000000	-8953.137699999999	1007.425600000000	22088.246100000000	-1106.666020000000	-11375.032200000000
8953.137699999999	0.000000000000	-4864.489260000000	-1106.666020000000	27619.087899999999	-2016.485110000000
-1007.425600000000	4864.489260000000	0.000000000000	-11375.032200000000	-2016.485110000000	6747.472170000000
4	24	60
4052.000000000000	0.000000000000	0.000000000000	0.000000000000	10205.027300000000	-602.807068000000
0.000000000000	4052.000000000000	0.000000000000	-10205.027300000000	0.000000000000	5110.705570000000
0.000000000000	0.000000000000	4052.000000000000	602.807068000000	-5110.705570000000	0.000000000000
0.000000000000	-10205.027300000000	602.807068000000	26494.441400000000	-836.326050000000	-12922.021500000001
10205.027300000000	0.000000000000	-5110.705570000000	-836.326050000000	32405.458999999999	-1621.174800000000
-602.807068000000	5110.705570000000	0.000000000000	-12922.021500000001	-1621.174800000000	7164.469240000000
4	28	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	10446.277300000000	-1014.448490000000
0.000000000000	5000.000000000000	0.000000000000	-10446.277300000000	0.000000000000	-3429.631840000000
0.000000000000	0.000000000000	5000.000000000000	1014.448490000000	3429.631840000000	0.000000000000
0.000000000000	-10446.277300000000	1014.448490000000	24017.978500000001	350.268799000000	7742.930660000000
10446.277300000000	0.000000000000	3429.631840000000	350.268799000000	26011.521499999999	-1828.713990000000
-1014.448490000000	-3429.631840000000	0.000000000000	7742.930660000000	-1828.713990000000	4254.934570000000
4	29	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	11470.825199999999	-333.735779000000
0.000000000000	5000.000000000000	0.000000000000	-11470.825199999999	0.000000000000	-4382.509280000000
0.000000000000	0.000000000000	5000.000000000000	333.735779000000	4382.509280000000	0.000000000000
0.000000000000	-11470.825199999999	333.735779000000	27816.531299999999	-1.911907200000	10105.373000000000
11470.825199999999	0.000000000000	4382.509280000000	-1.911907200000	30772.107400000001	-621.646362000000
-333.735779000000	-4382.509280000000	0.000000000000	10105.373000000000	-621.646362000000	5211.849610000000
4	35	60
3532.000000000000	0.000000000000	0.000000000000	0.000000000000	8025.152830000000	536.236450000000
0.000000000000	3532.000000000000	0.000000000000	-8025.152830000000	0.000000000000	3470.155520000000
0.000000000000	0.000000000000	3532.000000000000	-536.236450000000	-3470.155520000000	0.000000000000
0.000000000000	-8025.152830000000	-536.236450000000	18829.998000000000	659.553040000000	-7988.810060000000
8025.152830000000	0.000000000000	-3470.155520000000	659.553040000000	22087.232400000001	1288.229000000000
536.236450000000	3470.155520000000	0.000000000000	-7988.810060000000	1288.229000000000	4225.658200000000
4	36	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	9804.099609999999	-533.317078000000
0.000000000000	5000.000000000000	0.000000000000	-9804.099609999999	0.000000000000	3039.068120000000
0.000000000000	0.000000000000	5000.000000000000	533.317078000000	-3039.068120000000	0.000000000000
0.000000000000	-9804.099609999999	533.317078000000	21238.496100000000	-72.397369400000	-6135.634770000000
9804.099609999999	0.000000000000	-3039.068120000000	-72.397369400000	22828.652300000002	-454.955841000000
-533.317078000000	3039.068120000000	0.000000000000	-6135.634770000000	-454.955841000000	3215.793700000000
4	40	60
3895.000000000000	0.000000000000	0.000000000000	0.000000000000	8685.416020000001	824.098694000000
0.000000000000	3895.000000000000	0.000000000000	-8685.416020000001	0.000000000000	-1931.682620000000
0.000000000000	0.000000000000	3895.000000000000	-824.098694000000	1931.682620000000	0.000000000000
0.000000000000	-8685.416020000001	-824.098694000000	21706.793000000001	-236.275513000000	4331.057130000000
8685.416020000001	0.000000000000	1931.682620000000	-236.275513000000	21467.171900000001	2521.211180000000
824.098694000000	-1931.682620000000	0.000000000000	4331.057130000000	2521.211180000000	2707.371090000000
4	41	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12275.746100000000	2019.513670000000
0.000000000000	5000.000000000000	0.000000000000	-12275.746100000000	0.000000000000	-3336.854000000000
0.000000000000	0.000000000000	5000.000000000000	-2019.513670000000	3336.854000000000	0.000000000000
0.000000000000	-12275.746100000000	-2019.513670000000	32204.423800000000	-1512.936040000000	8317.478520000001
12275.746100000000	0.000000000000	3336.854000000000	-1512.936040000000	33054.894500000002	5240.685550000000
2019.513670000000	-3336.854000000000	0.000000000000	8317.478520000001	5240.685550000000	4453.647460000000
4	43	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12338.087900000000	2674.953130000000
0.000000000000	5000.000000000000	0.000000000000	-12338.087900000000	0.000000000000	-3048.465580000000
0.000000000000	0.000000000000	5000.000000000000	-2674.953130000000	3048.465580000000	0.000000000000
0.000000000000	-12338.087900000000	-2674.953130000000	32600.841799999998	-1642.332400000000	7499.555660000000
12338.087900000000	0.000000000000	3048.465580000000	-1642.332400000000	33050.761700000003	6780.707030000000
2674.953130000000	-3048.465580000000	0.000000000000	7499.555660000000	6780.707030000000	4499.896970000000
4	48	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	11681.127899999999	2232.801760000000
0.000000000000	5000.000000000000	0.000000000000	-11681.127899999999	0.000000000000	3740.020510000000
0.000000000000	0.000000000000	5000.000000000000	-2232.801760000000	-3740.020510000000	0.000000000000
0.000000000000	-11681.127899999999	-2232.801760000000	28793.710899999998	1582.912600000000	-8623.263670000000
11681.127899999999	0.000000000000	-3740.020510000000	1582.912600000000	31127.240200000000	5305.510250000000
2232.801760000000	3740.020510000000	0.000000000000	-8623.263670000000	5305.510250000000	5147.372070000000
4	49	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	11713.282200000000	2173.110350000000
0.000000000000	5000.000000000000	0.000000000000	-11713.282200000000	0.000000000000	3855.835450000000
0.000000000000	0.000000000000	5000.000000000000	-2173.110350000000	-3855.835450000000	0.000000000000
0.000000000000	-11713.282200000000	-2173.110350000000	28839.958999999999	1560.179440000000	-8951.598630000000
11713.282200000000	0.000000000000	-3855.835450000000	1560.179440000000	31260.886699999999	5170.677730000000
2173.110350000000	3855.835450000000	0.000000000000	-8951.598630000000	5170.677730000000	5055.335450000000
4	50	60
4495.000000000000	0.000000000000	0.000000000000	0.000000000000	10613.075199999999	1523.668950000000
0.000000000000	4495.000000000000	0.000000000000	-10613.075199999999	0.000000000000	3233.856930000000
0.000000000000	0.000000000000	4495.000000000000	-1523.668950000000	-3233.856930000000	0.000000000000
0.000000000000	-10613.075199999999	-1523.668950000000	25867.335899999998	1035.859130000000	-7527.774410000000
10613.075199999999	0.000000000000	-3233.856930000000	1035.859130000000	28176.421900000001	3686.243410000000
1523.668950000000	3233.856930000000	0.000000000000	-7527.774410000000	3686.243410000000	3737.318360000000
4	51	60
2961.000000000000	0.000000000000	0.000000000000	0.000000000000	7148.076660000000	1114.621090000000
0.000000000000	2961.000000000000	0.000000000000	-7148.076660000000	0.000000000000	1394.509520000000
0.000000000000	0.000000000000	2961.000000000000	-1114.621090000000	-1394.509520000000	0.000000000000
0.000000000000	-7148.076660000000	-1114.621090000000	17779.449199999999	499.443237000000	-3285.363530000000
7148.076660000000	0.000000000000	-1394.509520000000	499.443237000000	18331.765599999999	2721.584230000000
1114.621090000000	1394.509520000000	0.000000000000	-3285.363530000000	2721.584230000000	1499.411380000000
4	52	60
4652.000000000000	0.000000000000	0.000000000000	0.000000000000	10960.546899999999	1527.117430000000
0.000000000000	4652.000000000000	0.000000000000	-10960.546899999999	0.000000000000	3436.518800000000
0.000000000000	0.000000000000	4652.000000000000	-1527.117430000000	-3436.518800000000	0.000000000000
0.000000000000	-10960.546899999999	-1527.117430000000	26663.831999999999	1022.483830000000	-7990.132810000000
10960.546899999999	0.000000000000	-3436.518800000000	1022.483830000000	29196.646499999999	3700.628660000000
1527.117430000000	3436.518800000000	0.000000000000	-7990.132810000000	3700.628660000000	4020.313720000000
4	53	60
4767.000000000000	0.000000000000	0.000000000000	0.000000000000	11095.000000000000	1425.144530000000
0.000000000000	4767.000000000000	0.000000000000	-11095.000000000000	0.000000000000	3886.806150000000
0.000000000000	0.000000000000	4767.000000000000	-1425.144530000000	-3886.806150000000	0.000000000000
0.000000000000	-11095.000000000000	-1425.144530000000	26724.011699999999	1096.297490000000	-9026.979490000000
11095.000000000000	0.000000000000	-3886.806150000000	1096.297490000000	29651.974600000001	3449.822270000000
1425.144530000000	3886.806150000000	0.000000000000	-9026.979490000000	3449.822270000000	4541.528810000000
4	54	60
3930.000000000000	0.000000000000	0.000000000000	0.000000000000	7209.002930000000	-590.859558000000
0.000000000000	3930.000000000000	0.000000000000	-7209.002930000000	0.000000000000	3355.169430000000
0.000000000000	0.000000000000	3930.000000000000	590.859558000000	-3355.169430000000	0.000000000000
0.000000000000	-7209.002930000000	590.859558000000	15116.586900000000	-216.144333000000	-6516.764160000000
7209.002930000000	0.000000000000	-3355.169430000000	-216.144333000000	17599.152300000002	-422.025146000000
-590.859558000000	3355.169430000000	0.000000000000	-6516.764160000000	-422.025146000000	3830.560550000000
4	58	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	6874.162110000000	-2213.178710000000
0.000000000000	5000.000000000000	0.000000000000	-6874.162110000000	0.000000000000	2843.459720000000
0.000000000000	0.000000000000	5000.000000000000	2213.178710000000	-2843.459720000000	0.000000000000
0.000000000000	-6874.162110000000	2213.178710000000	11601.985400000000	-1240.666990000000	-4118.570800000000
6874.162110000000	0.000000000000	-2843.459720000000	-1240.666990000000	12425.722700000000	-2846.217770000000
-2213.178710000000	2843.459720000000	0.000000000000	-4118.570800000000	-2846.217770000000	2956.496340000000
4	59	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	9487.018550000001	-1571.414430000000
0.000000000000	5000.000000000000	0.000000000000	-9487.018550000001	0.000000000000	2034.056760000000
0.000000000000	0.000000000000	5000.000000000000	1571.414430000000	-2034.056760000000	0.000000000000
0.000000000000	-9487.018550000001	1571.414430000000	19930.658200000002	-716.070801000000	-3573.694340000000
9487.018550000001	0.000000000000	-2034.056760000000	-716.070801000000	20603.570299999999	-2751.277830000000
-1571.414430000000	2034.056760000000	0.000000000000	-3573.694340000000	-2751.277830000000	2001.061400000000
5	13	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	11925.150400000000	308.791748000000
0.000000000000	5000.000000000000	0.000000000000	-11925.150400000000	0.000000000000	-3700.150630000000
0.000000000000	0.000000000000	5000.000000000000	-308.791748000000	3700.150630000000	0.000000000000
0.000000000000	-11925.150400000000	-308.791748000000	29786.732400000001	-322.653870000000	9166.253909999999
11925.150400000000	0.000000000000	3700.150630000000	-322.653870000000	32620.275399999999	1081.333740000000
308.791748000000	-3700.150630000000	0.000000000000	9166.253909999999	1081.333740000000	4000.422850000000
5	14	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	11903.078100000001	-26.995672200000
0.000000000000	5000.000000000000	0.000000000000	-11903.078100000001	0.000000000000	-2613.323000000000
0.000000000000	0.000000000000	5000.000000000000	26.995672200000	2613.323000000000	0.000000000000
0.000000000000	-11903.078100000001	26.995672200000	29107.517599999999	-86.216049200000	6457.917480000000
11903.078100000001	0.000000000000	2613.323000000000	-86.216049200000	31250.066400000000	92.233299300000
-26.995672200000	-2613.323000000000	0.000000000000	6457.917480000000	92.233299300000	2786.522460000000
5	21	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	10817.588900000001	21.676635700000
0.000000000000	5000.000000000000	0.000000000000	-10817.588900000001	0.000000000000	4369.466310000000
0.000000000000	0.000000000000	5000.000000000000	-21.676635700000	-4369.466310000000	0.000000000000
0.000000000000	-10817.588900000001	-21.676635700000	26985.859400000001	320.935913000000	-10074.344700000000
10817.588900000001	0.000000000000	-4369.466310000000	320.935913000000	30560.343799999999	911.798096000000
21.676635700000	4369.466310000000	0.000000000000	-10074.344700000000	911.798096000000	4807.875490000000
5	24	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	13139.924800000001	301.898285000000
0.000000000000	5000.000000000000	0.000000000000	-13139.924800000001	0.000000000000	5296.580080000000
0.000000000000	0.000000000000	5000.000000000000	-301.898285000000	-5296.580080000000	0.000000000000
0.000000000000	-13139.924800000001	-301.898285000000	35761.648399999998	279.081635000000	-13990.005900000000
13139.924800000001	0.000000000000	-5296.580080000000	279.081635000000	41209.906300000002	756.642334000000
301.898285000000	5296.580080000000	0.000000000000	-13990.005900000000	756.642334000000	6457.427730000000
5	27	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	9276.779300000000	-635.850647000000
0.000000000000	5000.000000000000	0.000000000000	-9276.779300000000	0.000000000000	-1563.921750000000
0.000000000000	0.000000000000	5000.000000000000	635.850647000000	1563.921750000000	0.000000000000
0.000000000000	-9276.779300000000	635.850647000000	19878.595700000002	-138.544830000000	3859.977540000000
9276.779300000000	0.000000000000	1563.921750000000	-138.544830000000	20909.914100000002	-519.903748000000
-635.850647000000	-1563.921750000000	0.000000000000	3859.977540000000	-519.903748000000	2335.375490000000
5	28	60
2727.000000000000	0.000000000000	0.000000000000	0.000000000000	5686.242680000000	-590.532898000000
0.000000000000	2727.000000000000	0.000000000000	-5686.242680000000	0.000000000000	-1915.102540000000
0.000000000000	0.000000000000	2727.000000000000	590.532898000000	1915.102540000000	0.000000000000
0.000000000000	-5686.242680000000	590.532898000000	13114.352500000001	418.192352000000	4483.694820000000
5686.242680000000	0.000000000000	1915.102540000000	418.192352000000	14479.354499999999	-1101.701290000000
-590.532898000000	-1915.102540000000	0.000000000000	4483.694820000000	-1101.701290000000	2109.735600000000
5	34	60
4250.000000000000	0.000000000000	0.000000000000	0.000000000000	5054.759770000000	-1368.428220000000
0.000000000000	4250.000000000000	0.000000000000	-5054.759770000000	0.000000000000	1222.189580000000
0.000000000000	0.000000000000	4250.000000000000	1368.428220000000	-1222.189580000000	0.000000000000
0.000000000000	-5054.759770000000	1368.428220000000	6592.536130000000	-357.963135000000	-1540.377690000000
5054.759770000000	0.000000000000	-1222.189580000000	-357.963135000000	7352.076660000000	-1581.886840000000
-1368.428220000000	1222.189580000000	0.000000000000	-1540.377690000000	-1581.886840000000	1677.260130000000
5	35	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	11815.374000000000	1298.625850000000
0.000000000000	5000.000000000000	0.000000000000	-11815.374000000000	0.000000000000	3911.072510000000
0.000000000000	0.000000000000	5000.000000000000	-1298.625850000000	-3911.072510000000	0.000000000000
0.000000000000	-11815.374000000000	-1298.625850000000	29960.900399999999	962.307129000000	-9263.725590000000
11815.374000000000	0.000000000000	-3911.072510000000	962.307129000000	32772.910199999998	3528.813480000000
1298.625850000000	3911.072510000000	0.000000000000	-9263.725590000000	3528.813480000000	4851.814450000000
5	40	60
2582.000000000000	0.000000000000	0.000000000000	0.000000000000	6438.695310000000	924.353638000000
0.000000000000	2582.000000000000	0.000000000000	-6438.695310000000	0.000000000000	-2425.165530000000
0.000000000000	0.000000000000	2582.000000000000	-924.353638000000	2425.165530000000	0.000000000000
0.000000000000	-6438.695310000000	-924.353638000000	17478.252000000000	-859.824097000000	6113.260740000000
6438.695310000000	0.000000000000	2425.165530000000	-859.824097000000	18783.509800000000	2620.581050000000
924.353638000000	-2425.165530000000	0.000000000000	6113.260740000000	2620.581050000000	3427.048100000000
5	41	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12764.005900000000	1651.658450000000
0.000000000000	5000.000000000000	0.000000000000	-12764.005900000000	0.000000000000	-5287.194340000000
0.000000000000	0.000000000000	5000.000000000000	-1651.658450000000	5287.194340000000	0.000000000000
0.000000000000	-12764.005900000000	-1651.658450000000	34105.324200000003	-1872.057010000000	13604.377899999999
12764.005900000000	0.000000000000	5287.194340000000	-1872.057010000000	38567.183599999997	4442.411130000000
1651.658450000000	-5287.194340000000	0.000000000000	13604.377899999999	4442.411130000000	7220.537110000000
5	42	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12924.936500000000	2311.959470000000
0.000000000000	5000.000000000000	0.000000000000	-12924.936500000000	0.000000000000	-4962.777830000000
0.000000000000	0.000000000000	5000.000000000000	-2311.959470000000	4962.777830000000	0.000000000000
0.000000000000	-12924.936500000000	-2311.959470000000	35513.445299999999	-2363.528320000000	12908.959999999999
12924.936500000000	0.000000000000	4962.777830000000	-2363.528320000000	38707.777300000002	6191.823240000000
2311.959470000000	-4962.777830000000	0.000000000000	12908.959999999999	6191.823240000000	7152.328130000000
5	43	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12905.974600000000	2530.711910000000
0.000000000000	5000.000000000000	0.000000000000	-12905.974600000000	0.000000000000	-4956.838380000000
0.000000000000	0.000000000000	5000.000000000000	-2530.711910000000	4956.838380000000	0.000000000000
0.000000000000	-12905.974600000000	-2530.711910000000	35446.066400000003	-2553.890140000000	12864.193400000000
12905.974600000000	0.000000000000	4956.838380000000	-2553.890140000000	38628.738299999997	6743.790530000000
2530.711910000000	-4956.838380000000	0.000000000000	12864.193400000000	6743.790530000000	7188.825200000000
5	44	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12869.760700000001	2481.693600000000
0.000000000000	5000.000000000000	0.000000000000	-12869.760700000001	0.000000000000	-4784.133300000000
0.000000000000	0.000000000000	5000.000000000000	-2481.693600000000	4784.133300000000	0.000000000000
0.000000000000	-12869.760700000001	-2481.693600000000	35161.750000000000	-2419.187740000000	12379.353499999999
12869.760700000001	0.000000000000	4784.133300000000	-2419.187740000000	38175.500000000000	6595.824220000000
2481.693600000000	-4784.133300000000	0.000000000000	12379.353499999999	6595.824220000000	6817.300780000000
5	45	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12968.774400000000	2876.069090000000
0.000000000000	5000.000000000000	0.000000000000	-12968.774400000000	0.000000000000	-3850.705320000000
0.000000000000	0.000000000000	5000.000000000000	-2876.069090000000	3850.705320000000	0.000000000000
0.000000000000	-12968.774400000000	-2876.069090000000	35940.332000000002	-2123.041500000000	10069.609399999999
12968.774400000000	0.000000000000	3850.705320000000	-2123.041500000000	37732.863299999997	7621.657230000000
2876.069090000000	-3850.705320000000	0.000000000000	10069.609399999999	7621.657230000000	6132.156740000000
5	50	60
3344.000000000000	0.000000000000	0.000000000000	0.000000000000	8607.951170000000	1650.927610000000
0.000000000000	3344.000000000000	0.000000000000	-8607.951170000000	0.000000000000	943.459839000000
0.000000000000	0.000000000000	3344.000000000000	-1650.927610000000	-943.459839000000	0.000000000000
0.000000000000	-8607.951170000000	-1650.927610000000	23129.228500000001	476.069550000000	-2457.511720000000
8607.951170000000	0.000000000000	-943.459839000000	476.069550000000	23037.949199999999	4285.357420000000
1650.927610000000	943.459839000000	0.000000000000	-2457.511720000000	4285.357420000000	1739.130130000000
5	51	60
1789.000000000000	0.000000000000	0.000000000000	0.000000000000	4622.170410000000	881.409790000000
0.000000000000	1789.000000000000	0.000000000000	-4622.170410000000	0.000000000000	-80.759948700000
0.000000000000	0.000000000000	1789.000000000000	-881.409790000000	80.759948700000	0.000000000000
0.000000000000	-4622.170410000000	-881.409790000000	12433.554700000001	-41.764171600000	233.359772000000
4622.170410000000	0.000000000000	80.759948700000	-41.764171600000	12187.734399999999	2292.682130000000
881.409790000000	-80.759948700000	0.000000000000	233.359772000000	2292.682130000000	681.733704000000
5	52	60
4000.000000000000	0.000000000000	0.000000000000	0.000000000000	10273.603499999999	1931.882810000000
0.000000000000	4000.000000000000	0.000000000000	-10273.603499999999	0.000000000000	1571.776120000000
0.000000000000	0.000000000000	4000.000000000000	-1931.882810000000	-1571.776120000000	0.000000000000
0.000000000000	-10273.603499999999	-1931.882810000000	27517.619100000000	731.579712000000	-4042.025880000000
10273.603499999999	0.000000000000	-1571.776120000000	731.579712000000	27935.019499999999	5000.363770000000
1931.882810000000	1571.776120000000	0.000000000000	-4042.025880000000	5000.363770000000	2544.975590000000
5	53	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12667.449199999999	2358.864260000000
0.000000000000	5000.000000000000	0.000000000000	-12667.449199999999	0.000000000000	2742.484130000000
0.000000000000	0.000000000000	5000.000000000000	-2358.864260000000	-2742.484130000000	0.000000000000
0.000000000000	-12667.449199999999	-2358.864260000000	33670.546900000001	1211.841310000000	-6900.138670000000
12667.449199999999	0.000000000000	-2742.484130000000	1211.841310000000	35143.554700000001	6099.033690000000
2358.864260000000	2742.484130000000	0.000000000000	-6900.138670000000	6099.033690000000	4261.882810000000
5	54	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	10476.262699999999	673.039001000000
0.000000000000	5000.000000000000	0.000000000000	-10476.262699999999	0.000000000000	3843.280520000000
0.000000000000	0.000000000000	5000.000000000000	-673.039001000000	-3843.280520000000	0.000000000000
0.000000000000	-10476.262699999999	-673.039001000000	24693.130900000000	764.314331000000	-8361.511720000000
10476.262699999999	0.000000000000	-3843.280520000000	764.314331000000	27329.521499999999	2385.036130000000
673.039001000000	3843.280520000000	0.000000000000	-8361.511720000000	2385.036130000000	4447.028320000000
5	55	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	8550.016600000001	-999.524597000000
0.000000000000	5000.000000000000	0.000000000000	-8550.016600000001	0.000000000000	3860.597900000000
0.000000000000	0.000000000000	5000.000000000000	999.524597000000	-3860.597900000000	0.000000000000
0.000000000000	-8550.016600000001	999.524597000000	17556.107400000001	-452.874969000000	-7924.193850000000
8550.016600000001	0.000000000000	-3860.597900000000	-452.874969000000	21109.373000000000	-1196.949710000000
-999.524597000000	3860.597900000000	0.000000000000	-7924.193850000000	-1196.949710000000	4443.185060000000
5	57	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	6038.250980000000	-1606.969600000000
0.000000000000	5000.000000000000	0.000000000000	-6038.250980000000	0.000000000000	1780.218630000000
0.000000000000	0.000000000000	5000.000000000000	1606.969600000000	-1780.218630000000	0.000000000000
0.000000000000	-6038.250980000000	1606.969600000000	8131.605960000000	-533.241638000000	-2264.977540000000
6038.250980000000	0.000000000000	-1780.218630000000	-533.241638000000	8765.736330000000	-1865.313840000000
-1606.969600000000	1780.218630000000	0.000000000000	-2264.977540000000	-1865.313840000000	1719.880250000000
5	58	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	7275.483400000000	-1340.569090000000
0.000000000000	5000.000000000000	0.000000000000	-7275.483400000000	0.000000000000	2128.685300000000
0.000000000000	0.000000000000	5000.000000000000	1340.569090000000	-2128.685300000000	0.000000000000
0.000000000000	-7275.483400000000	1340.569090000000	12406.703100000001	-500.920135000000	-3426.835690000000
7275.483400000000	0.000000000000	-2128.685300000000	-500.920135000000	13539.574199999999	-1679.084470000000
-1340.569090000000	2128.685300000000	0.000000000000	-3426.835690000000	-1679.084470000000	2028.207640000000
5	59	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	9465.864260000000	-783.924133000000
0.000000000000	5000.000000000000	0.000000000000	-9465.864260000000	0.000000000000	1130.412480000000
0.000000000000	0.000000000000	5000.000000000000	783.924133000000	-1130.412480000000	0.000000000000
0.000000000000	-9465.864260000000	783.924133000000	19781.218799999999	-330.703827000000	-1753.772580000000
9465.864260000000	0.000000000000	-1130.412480000000	-330.703827000000	20736.910199999998	-1185.212770000000
-783.924133000000	1130.412480000000	0.000000000000	-1753.772580000000	-1185.212770000000	1484.465700000000
6	13	60
4044.000000000000	0.000000000000	0.000000000000	0.000000000000	9687.753909999999	1980.911010000000
0.000000000000	4044.000000000000	0.000000000000	-9687.753909999999	0.000000000000	-4135.395510000000
0.000000000000	0.000000000000	4044.000000000000	-1980.911010000000	4135.395510000000	0.000000000000
0.000000000000	-9687.753909999999	-1980.911010000000	24859.484400000001	-2050.680910000000	10009.163100000000
9687.753909999999	0.000000000000	4135.395510000000	-2050.680910000000	27998.865200000000	4976.793950000000
1980.911010000000	-4135.395510000000	0.000000000000	10009.163100000000	4976.793950000000	5698.465820000000
6	14	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	11549.401400000001	1771.553830000000
0.000000000000	5000.000000000000	0.000000000000	-11549.401400000001	0.000000000000	-3582.184330000000
0.000000000000	0.000000000000	5000.000000000000	-1771.553830000000	3582.184330000000	0.000000000000
0.000000000000	-11549.401400000001	-1771.553830000000	28068.158200000002	-1481.931760000000	8505.575199999999
11549.401400000001	0.000000000000	3582.184330000000	-1481.931760000000	30575.259800000000	4327.713380000000
1771.553830000000	-3582.184330000000	0.000000000000	8505.575199999999	4327.713380000000	4325.891600000000
6	22	60
3547.000000000000	0.000000000000	0.000000000000	0.000000000000	7026.928220000000	770.194824000000
0.000000000000	3547.000000000000	0.000000000000	-7026.928220000000	0.000000000000	3959.747070000000
0.000000000000	0.000000000000	3547.000000000000	-770.194824000000	-3959.747070000000	0.000000000000
0.000000000000	-7026.928220000000	-770.194824000000	16679.357400000001	1156.047490000000	-8499.937500000000
7026.928220000000	0.000000000000	-3959.747070000000	1156.047490000000	20628.712899999999	2334.942140000000
770.194824000000	3959.747070000000	0.000000000000	-8499.937500000000	2334.942140000000	5380.231930000000
6	27	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	8988.298830000000	933.636902000000
0.000000000000	5000.000000000000	0.000000000000	-8988.298830000000	0.000000000000	-2916.562010000000
0.000000000000	0.000000000000	5000.000000000000	-933.636902000000	2916.562010000000	0.000000000000
0.000000000000	-8988.298830000000	-933.636902000000	19028.267599999999	-1110.956670000000	6236.532230000000
8988.298830000000	0.000000000000	2916.562010000000	-1110.956670000000	20747.218799999999	2649.037350000000
933.636902000000	-2916.562010000000	0.000000000000	6236.532230000000	2649.037350000000	3470.623780000000
6	34	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	5844.982420000000	-671.753784000000
0.000000000000	5000.000000000000	0.000000000000	-5844.982420000000	0.000000000000	902.236328000000
0.000000000000	0.000000000000	5000.000000000000	671.753784000000	-902.236328000000	0.000000000000
0.000000000000	-5844.982420000000	671.753784000000	7331.554690000000	-148.294159000000	-1131.668210000000
5844.982420000000	0.000000000000	-902.236328000000	-148.294159000000	8429.306640000001	-642.581360000000
-671.753784000000	902.236328000000	0.000000000000	-1131.668210000000	-642.581360000000	1412.590580000000
6	42	60
2473.000000000000	0.000000000000	0.000000000000	0.000000000000	6098.935550000000	1216.941040000000
0.000000000000	2473.000000000000	0.000000000000	-6098.935550000000	0.000000000000	-2841.204590000000
0.000000000000	0.000000000000	2473.000000000000	-1216.941040000000	2841.204590000000	0.000000000000
0.000000000000	-6098.935550000000	-1216.941040000000	15891.479499999999	-1412.831670000000	7013.864260000000
6098.935550000000	0.000000000000	2841.204590000000	-1412.831670000000	18387.869100000000	3068.259520000000
1216.941040000000	-2841.204590000000	0.000000000000	7013.864260000000	3068.259520000000	4099.659180000000
6	44	60
1464.000000000000	0.000000000000	0.000000000000	0.000000000000	3687.711910000000	1045.301270000000
0.000000000000	1464.000000000000	0.000000000000	-3687.711910000000	0.000000000000	-1626.668820000000
0.000000000000	0.000000000000	1464.000000000000	-1045.301270000000	1626.668820000000	0.000000000000
0.000000000000	-3687.711910000000	-1045.301270000000	10156.887699999999	-1153.445070000000	4091.079350000000
3687.711910000000	0.000000000000	1626.668820000000	-1153.445070000000	11181.257799999999	2677.310790000000
1045.301270000000	-1626.668820000000	0.000000000000	4091.079350000000	2677.310790000000	2674.533940000000
6	45	60
2616.000000000000	0.000000000000	0.000000000000	0.000000000000	6371.844730000000	1734.247800000000
0.000000000000	2616.000000000000	0.000000000000	-6371.844730000000	0.000000000000	-2355.048830000000
0.000000000000	0.000000000000	2616.000000000000	-1734.247800000000	2355.048830000000	0.000000000000
0.000000000000	-6371.844730000000	-1734.247800000000	16863.632799999999	-1565.850950000000	5751.140140000000
6371.844730000000	0.000000000000	2355.048830000000	-1565.850950000000	17940.326200000000	4302.525880000000
1734.247800000000	-2355.048830000000	0.000000000000	5751.140140000000	4302.525880000000	3622.341800000000
6	46	60
3088.000000000000	0.000000000000	0.000000000000	0.000000000000	7603.926760000000	2210.724610000000
0.000000000000	3088.000000000000	0.000000000000	-7603.926760000000	0.000000000000	-2028.721310000000
0.000000000000	0.000000000000	3088.000000000000	-2210.724610000000	2028.721310000000	0.000000000000
0.000000000000	-7603.926760000000	-2210.724610000000	20494.640599999999	-1416.085940000000	4986.781250000000
7603.926760000000	0.000000000000	2028.721310000000	-1416.085940000000	20765.818400000000	5516.737300000000
2210.724610000000	-2028.721310000000	0.000000000000	4986.781250000000	5516.737300000000	3683.919920000000
6	47	60
3071.000000000000	0.000000000000	0.000000000000	0.000000000000	7693.956540000000	2277.014650000000
0.000000000000	3071.000000000000	0.000000000000	-7693.956540000000	0.000000000000	-833.518860000000
0.000000000000	0.000000000000	3071.000000000000	-2277.014650000000	833.518860000000	0.000000000000
0.000000000000	-7693.956540000000	-2277.014650000000	21146.236300000000	-699.720154000000	2066.933590000000
7693.956540000000	0.000000000000	833.518860000000	-699.720154000000	20704.468799999999	5754.195800000000
2277.014650000000	-833.518860000000	0.000000000000	2066.933590000000	5754.195800000000	3163.009770000000
6	48	60
3926.000000000000	0.000000000000	0.000000000000	0.000000000000	9831.304690000001	2236.368650000000
0.000000000000	3926.000000000000	0.000000000000	-9831.304690000001	0.000000000000	1012.139590000000
0.000000000000	0.000000000000	3926.000000000000	-2236.368650000000	-1012.139590000000	0.000000000000
0.000000000000	-9831.304690000001	-2236.368650000000	26277.978500000001	308.710785000000	-2740.534180000000
9831.304690000001	0.000000000000	-1012.139590000000	308.710785000000	26219.472699999998	5600.115720000000
2236.368650000000	1012.139590000000	0.000000000000	-2740.534180000000	5600.115720000000	2983.107180000000
6	50	60
2645.000000000000	0.000000000000	0.000000000000	0.000000000000	6531.755370000000	1618.436890000000
0.000000000000	2645.000000000000	0.000000000000	-6531.755370000000	0.000000000000	-132.391098000000
0.000000000000	0.000000000000	2645.000000000000	-1618.436890000000	132.391098000000	0.000000000000
0.000000000000	-6531.755370000000	-1618.436890000000	17334.611300000000	-118.439606000000	273.545959000000
6531.755370000000	0.000000000000	132.391098000000	-118.439606000000	16707.681600000000	4054.931640000000
1618.436890000000	-132.391098000000	0.000000000000	273.545959000000	4054.931640000000	1618.791260000000
6	51	60
1789.000000000000	0.000000000000	0.000000000000	0.000000000000	4441.910640000000	1216.998660000000
0.000000000000	1789.000000000000	0.000000000000	-4441.910640000000	0.000000000000	-717.838501000000
0.000000000000	0.000000000000	1789.000000000000	-1216.998660000000	717.838501000000	0.000000000000
0.000000000000	-4441.910640000000	-1216.998660000000	11982.567400000000	-515.908203000000	1813.412600000000
4441.910640000000	0.000000000000	717.838501000000	-515.908203000000	11563.675800000001	3068.685550000000
1216.998660000000	-717.838501000000	0.000000000000	1813.412600000000	3068.685550000000	1402.170290000000
6	52	60
3107.000000000000	0.000000000000	0.000000000000	0.000000000000	7639.969730000000	1873.130250000000
0.000000000000	3107.000000000000	0.000000000000	-7639.969730000000	0.000000000000	-27.065845500000
0.000000000000	0.000000000000	3107.000000000000	-1873.130250000000	27.065845500000	0.000000000000
0.000000000000	-7639.969730000000	-1873.130250000000	20141.603500000001	-34.196949000000	-7.404050830000
7639.969730000000	0.000000000000	27.065845500000	-34.196949000000	19588.992200000001	4665.094730000000
1873.130250000000	-27.065845500000	0.000000000000	-7.404050830000	4665.094730000000	1986.706540000000
6	55	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	8007.914060000000	-43.324832900000
0.000000000000	5000.000000000000	0.000000000000	-8007.914060000000	0.000000000000	2114.563960000000
0.000000000000	0.000000000000	5000.000000000000	43.324832900000	-2114.563960000000	0.000000000000
0.000000000000	-8007.914060000000	43.324832900000	15351.794900000001	356.591461000000	-4622.762700000000
8007.914060000000	0.000000000000	-2114.563960000000	356.591461000000	17251.269499999999	572.933777000000
-43.324832900000	2114.563960000000	0.000000000000	-4622.762700000000	572.933777000000	2460.464360000000
6	56	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	5895.254880000000	-666.289856000000
0.000000000000	5000.000000000000	0.000000000000	-5895.254880000000	0.000000000000	796.511108000000
0.000000000000	0.000000000000	5000.000000000000	666.289856000000	-796.511108000000	0.000000000000
0.000000000000	-5895.254880000000	666.289856000000	7631.302730000000	-53.382949800000	-1163.703490000000
5895.254880000000	0.000000000000	-796.511108000000	-53.382949800000	8369.387699999999	-592.080261000000
-666.289856000000	796.511108000000	0.000000000000	-1163.703490000000	-592.080261000000	1086.669920000000
6	57	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	5754.874020000000	-733.936340000000
0.000000000000	5000.000000000000	0.000000000000	-5754.874020000000	0.000000000000	422.369720000000
0.000000000000	0.000000000000	5000.000000000000	733.936340000000	-422.369720000000	0.000000000000
0.000000000000	-5754.874020000000	733.936340000000	7225.559570000000	-95.584434500000	-497.790680000000
5754.874020000000	0.000000000000	-422.369720000000	-95.584434500000	7715.434570000000	-704.752686000000
-733.936340000000	422.369720000000	0.000000000000	-497.790680000000	-704.752686000000	814.635986000000
6	58	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	7347.371580000000	-304.693756000000
0.000000000000	5000.000000000000	0.000000000000	-7347.371580000000	0.000000000000	919.166931000000
0.000000000000	0.000000000000	5000.000000000000	304.693756000000	-919.166931000000	0.000000000000
0.000000000000	-7347.371580000000	304.693756000000	12834.226600000000	-34.816452000000	-1772.475950000000
7347.371580000000	0.000000000000	-919.166931000000	-34.816452000000	13733.130900000000	16.470790900000
-304.693756000000	919.166931000000	0.000000000000	-1772.475950000000	16.470790900000	1280.576540000000
7	12	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12358.913100000000	2768.464360000000
0.000000000000	5000.000000000000	0.000000000000	-12358.913100000000	0.000000000000	-4269.395510000000
0.000000000000	0.000000000000	5000.000000000000	-2768.464360000000	4269.395510000000	0.000000000000
0.000000000000	-12358.913100000000	-2768.464360000000	32984.003900000003	-2465.501710000000	10757.369100000000
12358.913100000000	0.000000000000	4269.395510000000	-2465.501710000000	35293.800799999997	7144.197750000000
2768.464360000000	-4269.395510000000	0.000000000000	10757.369100000000	7144.197750000000	6137.278810000000
7	13	60
3286.000000000000	0.000000000000	0.000000000000	0.000000000000	8600.781250000000	2052.248290000000
0.000000000000	3286.000000000000	0.000000000000	-8600.781250000000	0.000000000000	-3751.123050000000
0.000000000000	0.000000000000	3286.000000000000	-2052.248290000000	3751.123050000000	0.000000000000
0.000000000000	-8600.781250000000	-2052.248290000000	24082.115200000000	-2366.935790000000	9861.866210000000
8600.781250000000	0.000000000000	3751.123050000000	-2366.935790000000	27004.283200000002	5463.227050000000
2052.248290000000	-3751.123050000000	0.000000000000	9861.866210000000	5463.227050000000	5885.850590000000
7	14	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12394.443400000000	2292.796630000000
0.000000000000	5000.000000000000	0.000000000000	-12394.443400000000	0.000000000000	-3783.685550000000
0.000000000000	0.000000000000	5000.000000000000	-2292.796630000000	3783.685550000000	0.000000000000
0.000000000000	-12394.443400000000	-2292.796630000000	32297.804700000001	-1907.528560000000	9557.416990000000
12394.443400000000	0.000000000000	3783.685550000000	-1907.528560000000	34580.500000000000	5826.958010000000
2292.796630000000	-3783.685550000000	0.000000000000	9557.416990000000	5826.958010000000	4828.213870000000
7	22	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	8554.879880000000	634.667419000000
0.000000000000	5000.000000000000	0.000000000000	-8554.879880000000	0.000000000000	4369.652830000000
0.000000000000	0.000000000000	5000.000000000000	-634.667419000000	-4369.652830000000	0.000000000000
0.000000000000	-8554.879880000000	-634.667419000000	18676.353500000001	1062.368290000000	-8577.332030000000
8554.879880000000	0.000000000000	-4369.652830000000	1062.368290000000	22204.302700000000	2380.862790000000
634.667419000000	4369.652830000000	0.000000000000	-8577.332030000000	2380.862790000000	5229.499510000000
7	23	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	10164.689500000000	1053.130370000000
0.000000000000	5000.000000000000	0.000000000000	-10164.689500000000	0.000000000000	5268.569340000000
0.000000000000	0.000000000000	5000.000000000000	-1053.130370000000	-5268.569340000000	0.000000000000
0.000000000000	-10164.689500000000	-1053.130370000000	24431.675800000001	1441.599370000000	-11603.361300000000
10164.689500000000	0.000000000000	-5268.569340000000	1441.599370000000	29517.132799999999	3139.296140000000
1053.130370000000	5268.569340000000	0.000000000000	-11603.361300000000	3139.296140000000	6809.541020000000
7	27	60
3860.000000000000	0.000000000000	0.000000000000	0.000000000000	7334.712400000000	951.938232000000
0.000000000000	3860.000000000000	0.000000000000	-7334.712400000000	0.000000000000	-2353.392820000000
0.000000000000	0.000000000000	3860.000000000000	-951.938232000000	2353.392820000000	0.000000000000
0.000000000000	-7334.712400000000	-951.938232000000	15918.393599999999	-833.430603000000	4952.124020000000
7334.712400000000	0.000000000000	2353.392820000000	-833.430603000000	17215.398399999998	2409.854490000000
951.938232000000	-2353.392820000000	0.000000000000	4952.124020000000	2409.854490000000	2541.546880000000
7	34	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	6124.892580000000	-317.999481000000
0.000000000000	5000.000000000000	0.000000000000	-6124.892580000000	0.000000000000	740.408081000000
0.000000000000	0.000000000000	5000.000000000000	317.999481000000	-740.408081000000	0.000000000000
0.000000000000	-6124.892580000000	317.999481000000	8014.451660000000	-177.532318000000	-704.647217000000
6124.892580000000	0.000000000000	-740.408081000000	-177.532318000000	9141.966800000000	-202.077194000000
-317.999481000000	740.408081000000	0.000000000000	-704.647217000000	-202.077194000000	1356.393800000000
7	46	60
2435.000000000000	0.000000000000	0.000000000000	0.000000000000	6325.526370000000	1988.837280000000
0.000000000000	2435.000000000000	0.000000000000	-6325.526370000000	0.000000000000	-1910.561520000000
0.000000000000	0.000000000000	2435.000000000000	-1988.837280000000	1910.561520000000	0.000000000000
0.000000000000	-6325.526370000000	-1988.837280000000	18216.525399999999	-1532.355220000000	4986.804690000000
6325.526370000000	0.000000000000	1910.561520000000	-1532.355220000000	18333.851600000002	5231.412600000000
1988.837280000000	-1910.561520000000	0.000000000000	4986.804690000000	5231.412600000000	3559.324710000000
7	47	60
2161.000000000000	0.000000000000	0.000000000000	0.000000000000	5646.610840000000	1830.233520000000
0.000000000000	2161.000000000000	0.000000000000	-5646.610840000000	0.000000000000	-887.121155000000
0.000000000000	0.000000000000	2161.000000000000	-1830.233520000000	887.121155000000	0.000000000000
0.000000000000	-5646.610840000000	-1830.233520000000	16445.091799999998	-789.424927000000	2335.574460000000
5646.610840000000	0.000000000000	887.121155000000	-789.424927000000	15697.892599999999	4828.740720000000
1830.233520000000	-887.121155000000	0.000000000000	2335.574460000000	4828.740720000000	2528.224610000000
7	48	60
2613.000000000000	0.000000000000	0.000000000000	0.000000000000	6740.811040000000	1946.490600000000
0.000000000000	2613.000000000000	0.000000000000	-6740.811040000000	0.000000000000	-422.482849000000
0.000000000000	0.000000000000	2613.000000000000	-1946.490600000000	422.482849000000	0.000000000000
0.000000000000	-6740.811040000000	-1946.490600000000	19059.855500000001	-427.636047000000	1039.333860000000
6740.811040000000	0.000000000000	422.482849000000	-427.636047000000	18206.589800000002	5052.606450000000
1946.490600000000	-422.482849000000	0.000000000000	1039.333860000000	5052.606450000000	2346.816890000000
7	49	60
3594.000000000000	0.000000000000	0.000000000000	0.000000000000	9379.002930000001	2021.465210000000
0.000000000000	3594.000000000000	0.000000000000	-9379.002930000001	0.000000000000	1070.313720000000
0.000000000000	0.000000000000	3594.000000000000	-2021.465210000000	-1070.313720000000	0.000000000000
0.000000000000	-9379.002930000001	-2021.465210000000	26046.076200000000	35.070560500000	-3024.320560000000
9379.002930000001	0.000000000000	-1070.313720000000	35.070560500000	26850.355500000001	5221.970700000000
2021.465210000000	1070.313720000000	0.000000000000	-3024.320560000000	5221.970700000000	3744.686280000000
7	50	60
3196.000000000000	0.000000000000	0.000000000000	0.000000000000	8252.812500000000	2127.591800000000
0.000000000000	3196.000000000000	0.000000000000	-8252.812500000000	0.000000000000	-522.051392000000
0.000000000000	0.000000000000	3196.000000000000	-2127.591800000000	522.051392000000	0.000000000000
0.000000000000	-8252.812500000000	-2127.591800000000	22965.470700000002	-486.386536000000	1200.865840000000
8252.812500000000	0.000000000000	522.051392000000	-486.386536000000	22437.699199999999	5522.333010000000
2127.591800000000	-522.051392000000	0.000000000000	1200.865840000000	5522.333010000000	2590.872560000000
7	51	60
1808.000000000000	0.000000000000	0.000000000000	0.000000000000	4677.337400000000	1386.538570000000
0.000000000000	1808.000000000000	0.000000000000	-4677.337400000000	0.000000000000	-1256.338380000000
0.000000000000	0.000000000000	1808.000000000000	-1386.538570000000	1256.338380000000	0.000000000000
0.000000000000	-4677.337400000000	-1386.538570000000	13309.654300000000	-1002.305240000000	3293.139400000000
4677.337400000000	0.000000000000	1256.338380000000	-1002.305240000000	13166.860400000000	3643.321530000000
1386.538570000000	-1256.338380000000	0.000000000000	3293.139400000000	3643.321530000000	2177.596190000000
7	52	60
3735.000000000000	0.000000000000	0.000000000000	0.000000000000	9646.127930000001	2417.382570000000
0.000000000000	3735.000000000000	0.000000000000	-9646.127930000001	0.000000000000	-421.633972000000
0.000000000000	0.000000000000	3735.000000000000	-2417.382570000000	421.633972000000	0.000000000000
0.000000000000	-9646.127930000001	-2417.382570000000	26755.230500000001	-468.820221000000	909.796570000000
9646.127930000001	0.000000000000	421.633972000000	-468.820221000000	26330.623000000000	6262.322270000000
2417.382570000000	-421.633972000000	0.000000000000	909.796570000000	6262.322270000000	3045.531980000000
7	56	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	6435.126950000000	-194.705154000000
0.000000000000	5000.000000000000	0.000000000000	-6435.126950000000	0.000000000000	569.019775000000
0.000000000000	0.000000000000	5000.000000000000	194.705154000000	-569.019775000000	0.000000000000
0.000000000000	-6435.126950000000	194.705154000000	9369.077149999999	83.600662200000	-1114.528080000000
6435.126950000000	0.000000000000	-569.019775000000	83.600662200000	10785.061500000000	115.475777000000
-194.705154000000	569.019775000000	0.000000000000	-1114.528080000000	115.475777000000	1771.041020000000
7	57	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	5878.883300000000	-426.400787000000
0.000000000000	5000.000000000000	0.000000000000	-5878.883300000000	0.000000000000	168.371429000000
0.000000000000	0.000000000000	5000.000000000000	426.400787000000	-168.371429000000	0.000000000000
0.000000000000	-5878.883300000000	426.400787000000	7434.024410000000	-158.618347000000	28.763870200000
5878.883300000000	0.000000000000	-168.371429000000	-158.618347000000	8492.894530000000	-325.425507000000
-426.400787000000	168.371429000000	0.000000000000	28.763870200000	-325.425507000000	1298.794920000000
8	10	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	11235.772499999999	4409.854980000000
0.000000000000	5000.000000000000	0.000000000000	-11235.772499999999	0.000000000000	-3075.863280000000
0.000000000000	0.000000000000	5000.000000000000	-4409.854980000000	3075.863280000000	0.000000000000
0.000000000000	-11235.772499999999	-4409.854980000000	31513.625000000000	-2779.389650000000	6986.292480000000
11235.772499999999	0.000000000000	3075.863280000000	-2779.389650000000	28855.722699999998	10660.193400000000
4409.854980000000	-3075.863280000000	0.000000000000	6986.292480000000	10660.193400000000	7387.377440000000
8	11	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12120.965800000000	5043.425290000000
0.000000000000	5000.000000000000	0.000000000000	-12120.965800000000	0.000000000000	-3436.639650000000
0.000000000000	0.000000000000	5000.000000000000	-5043.425290000000	3436.639650000000	0.000000000000
0.000000000000	-12120.965800000000	-5043.425290000000	35893.558599999997	-3561.521240000000	8253.932620000000
12120.965800000000	0.000000000000	3436.639650000000	-3561.521240000000	32776.683599999997	12438.170899999999
5043.425290000000	-3436.639650000000	0.000000000000	8253.932620000000	12438.170899999999	8620.418949999999
8	15	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12489.773400000000	3588.224370000000
0.000000000000	5000.000000000000	0.000000000000	-12489.773400000000	0.000000000000	-2884.417720000000
0.000000000000	0.000000000000	5000.000000000000	-3588.224370000000	2884.417720000000	0.000000000000
0.000000000000	-12489.773400000000	-3588.224370000000	34801.585899999998	-2022.633420000000	6828.389160000000
12489.773400000000	0.000000000000	2884.417720000000	-2022.633420000000	34251.878900000003	9067.804690000001
3588.224370000000	-2884.417720000000	0.000000000000	6828.389160000000	9067.804690000001	5309.811040000000
8	26	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	11368.061500000000	3972.239260000000
0.000000000000	5000.000000000000	0.000000000000	-11368.061500000000	0.000000000000	-3089.324710000000
0.000000000000	0.000000000000	5000.000000000000	-3972.239260000000	3089.324710000000	0.000000000000
0.000000000000	-11368.061500000000	-3972.239260000000	30999.689500000000	-2514.947020000000	7106.239260000000
11368.061500000000	0.000000000000	3089.324710000000	-2514.947020000000	29414.892599999999	9542.860350000001
3972.239260000000	-3089.324710000000	0.000000000000	7106.239260000000	9542.860350000001	6551.660640000000
8	34	60
4516.000000000000	0.000000000000	0.000000000000	0.000000000000	5390.454590000000	148.950287000000
0.000000000000	4516.000000000000	0.000000000000	-5390.454590000000	0.000000000000	-145.915787000000
0.000000000000	0.000000000000	4516.000000000000	-148.950287000000	145.915787000000	0.000000000000
0.000000000000	-5390.454590000000	-148.950287000000	6849.116700000000	-94.572471600000	178.139267000000
5390.454590000000	0.000000000000	145.915787000000	-94.572471600000	7238.162110000000	349.742462000000
148.950287000000	-145.915787000000	0.000000000000	178.139267000000	349.742462000000	647.018677000000
8	38	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	11607.374000000000	2236.432130000000
0.000000000000	5000.000000000000	0.000000000000	-11607.374000000000	0.000000000000	-899.771729000000
0.000000000000	0.000000000000	5000.000000000000	-2236.432130000000	899.771729000000	0.000000000000
0.000000000000	-11607.374000000000	-2236.432130000000	30558.236300000000	-383.074677000000	1334.156250000000
11607.374000000000	0.000000000000	899.771729000000	-383.074677000000	30819.671900000001	5762.810060000000
2236.432130000000	-899.771729000000	0.000000000000	1334.156250000000	5762.810060000000	2861.001460000000
8	48	60
4575.000000000000	0.000000000000	0.000000000000	0.000000000000	11372.927700000000	5183.908690000000
0.000000000000	4575.000000000000	0.000000000000	-11372.927700000000	0.000000000000	-2395.135500000000
0.000000000000	0.000000000000	4575.000000000000	-5183.908690000000	2395.135500000000	0.000000000000
0.000000000000	-11372.927700000000	-5183.908690000000	34800.332000000002	-3088.183840000000	5665.205570000000
11372.927700000000	0.000000000000	2395.135500000000	-3088.183840000000	30649.300800000001	12699.700199999999
5183.908690000000	-2395.135500000000	0.000000000000	5665.205570000000	12699.700199999999	8516.236330000000
8	49	60
4825.000000000000	0.000000000000	0.000000000000	0.000000000000	12050.182600000000	5094.892090000000
0.000000000000	4825.000000000000	0.000000000000	-12050.182600000000	0.000000000000	-1957.963750000000
0.000000000000	0.000000000000	4825.000000000000	-5094.892090000000	1957.963750000000	0.000000000000
0.000000000000	-12050.182600000000	-5094.892090000000	36343.835899999998	-2680.480710000000	4505.006350000000
12050.182600000000	0.000000000000	1957.963750000000	-2680.480710000000	32457.382799999999	12442.291999999999
5094.892090000000	-1957.963750000000	0.000000000000	4505.006350000000	12442.291999999999	8112.562990000000
8	50	60
2899.000000000000	0.000000000000	0.000000000000	0.000000000000	7174.064940000000	3457.879880000000
0.000000000000	2899.000000000000	0.000000000000	-7174.064940000000	0.000000000000	-1935.982910000000
0.000000000000	0.000000000000	2899.000000000000	-3457.879880000000	1935.982910000000	0.000000000000
0.000000000000	-7174.064940000000	-3457.879880000000	22112.232400000001	-2474.381840000000	4657.821780000000
7174.064940000000	0.000000000000	1935.982910000000	-2474.381840000000	19620.716799999998	8505.993160000000
3457.879880000000	-1935.982910000000	0.000000000000	4657.821780000000	8505.993160000000	6075.107910000000
8	52	60
3830.000000000000	0.000000000000	0.000000000000	0.000000000000	9546.900390000001	4232.171390000000
0.000000000000	3830.000000000000	0.000000000000	-9546.900390000001	0.000000000000	-1962.005370000000
0.000000000000	0.000000000000	3830.000000000000	-4232.171390000000	1962.005370000000	0.000000000000
0.000000000000	-9546.900390000001	-4232.171390000000	28887.353500000001	-2474.945560000000	4698.896970000000
9546.900390000001	0.000000000000	1962.005370000000	-2474.945560000000	25702.912100000001	10443.396500000001
4232.171390000000	-1962.005370000000	0.000000000000	4698.896970000000	10443.396500000001	6744.676270000000
8	56	60
4547.000000000000	0.000000000000	0.000000000000	0.000000000000	7689.453130000000	582.578491000000
0.000000000000	4547.000000000000	0.000000000000	-7689.453130000000	0.000000000000	1244.793460000000
0.000000000000	0.000000000000	4547.000000000000	-582.578491000000	-1244.793460000000	0.000000000000
0.000000000000	-7689.453130000000	-582.578491000000	15931.219700000000	211.987045000000	-3036.851560000000
7689.453130000000	0.000000000000	-1244.793460000000	211.987045000000	16884.087899999999	1476.636840000000
582.578491000000	1244.793460000000	0.000000000000	-3036.851560000000	1476.636840000000	1730.855470000000
8	57	60
4053.000000000000	0.000000000000	0.000000000000	0.000000000000	5943.747560000000	55.242580400000
0.000000000000	4053.000000000000	0.000000000000	-5943.747560000000	0.000000000000	1036.925900000000
0.000000000000	0.000000000000	4053.000000000000	-55.242580400000	-1036.925900000000	0.000000000000
0.000000000000	-5943.747560000000	-55.242580400000	10531.703100000001	-72.407104500000	-2187.323730000000
5943.747560000000	0.000000000000	-1036.925900000000	-72.407104500000	12005.973599999999	304.248352000000
55.242580400000	1036.925900000000	0.000000000000	-2187.323730000000	304.248352000000	1715.386720000000
9	12	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	11165.067400000000	1937.052250000000
0.000000000000	5000.000000000000	0.000000000000	-11165.067400000000	0.000000000000	-5907.044920000000
0.000000000000	0.000000000000	5000.000000000000	-1937.052250000000	5907.044920000000	0.000000000000
0.000000000000	-11165.067400000000	-1937.052250000000	27211.250000000000	-2260.325440000000	13124.305700000001
11165.067400000000	0.000000000000	5907.044920000000	-2260.325440000000	33015.777300000002	4827.896000000000
1937.052250000000	-5907.044920000000	0.000000000000	13124.305700000001	4827.896000000000	8512.334960000000
9	15	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	11280.926799999999	517.166565000000
0.000000000000	5000.000000000000	0.000000000000	-11280.926799999999	0.000000000000	-4000.015630000000
0.000000000000	0.000000000000	5000.000000000000	-517.166565000000	4000.015630000000	0.000000000000
0.000000000000	-11280.926799999999	-517.166565000000	27382.349600000001	-623.342590000000	8351.691409999999
11280.926799999999	0.000000000000	4000.015630000000	-623.342590000000	31252.168000000001	1327.990480000000
517.166565000000	-4000.015630000000	0.000000000000	8351.691409999999	1327.990480000000	4571.251950000000
9	22	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12709.197300000000	205.076401000000
0.000000000000	5000.000000000000	0.000000000000	-12709.197300000000	0.000000000000	3273.638180000000
0.000000000000	0.000000000000	5000.000000000000	-205.076401000000	-3273.638180000000	0.000000000000
0.000000000000	-12709.197300000000	-205.076401000000	33356.375000000000	187.797485000000	-8400.863280000000
12709.197300000000	0.000000000000	-3273.638180000000	187.797485000000	35377.003900000003	454.341003000000
205.076401000000	3273.638180000000	0.000000000000	-8400.863280000000	454.341003000000	3144.733400000000
9	23	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12821.145500000001	-139.051804000000
0.000000000000	5000.000000000000	0.000000000000	-12821.145500000001	0.000000000000	3471.837650000000
0.000000000000	0.000000000000	5000.000000000000	139.051804000000	-3471.837650000000	0.000000000000
0.000000000000	-12821.145500000001	139.051804000000	33892.777300000002	-120.973656000000	-8956.166020000001
12821.145500000001	0.000000000000	-3471.837650000000	-120.973656000000	36121.722699999998	-535.550842000000
-139.051804000000	3471.837650000000	0.000000000000	-8956.166020000001	-535.550842000000	3427.391360000000
9	27	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	8202.519530000000	-113.739365000000
0.000000000000	5000.000000000000	0.000000000000	-8202.519530000000	0.000000000000	-5307.515140000000
0.000000000000	0.000000000000	5000.000000000000	113.739365000000	5307.515140000000	0.000000000000
0.000000000000	-8202.519530000000	113.739365000000	15277.620100000000	-11.690577500000	8774.781250000000
8202.519530000000	0.000000000000	5307.515140000000	-11.690577500000	20954.955099999999	238.749237000000
-113.739365000000	-5307.515140000000	0.000000000000	8774.781250000000	238.749237000000	6269.085450000000
9	34	60
4042.000000000000	0.000000000000	0.000000000000	0.000000000000	5307.056640000000	-642.837402000000
0.000000000000	4042.000000000000	0.000000000000	-5307.056640000000	0.000000000000	-3387.398930000000
0.000000000000	0.000000000000	4042.000000000000	642.837402000000	3387.398930000000	0.000000000000
0.000000000000	-5307.056640000000	642.837402000000	7351.768070000000	425.810211000000	4134.747070000000
5307.056640000000	0.000000000000	3387.398930000000	425.810211000000	10947.622100000001	-824.131775000000
-642.837402000000	-3387.398930000000	0.000000000000	4134.747070000000	-824.131775000000	3894.297360000000
9	46	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12773.459000000001	4952.860350000000
0.000000000000	5000.000000000000	0.000000000000	-12773.459000000001	0.000000000000	-5028.740230000000
0.000000000000	0.000000000000	5000.000000000000	-4952.860350000000	5028.740230000000	0.000000000000
0.000000000000	-12773.459000000001	-4952.860350000000	37890.675799999997	-5030.428710000000	12859.059600000001
12773.459000000001	0.000000000000	5028.740230000000	-5030.428710000000	38176.484400000001	12694.855500000000
4952.860350000000	-5028.740230000000	0.000000000000	12859.059600000001	12694.855500000000	10706.720700000000
9	47	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12612.209999999999	4413.428220000000
0.000000000000	5000.000000000000	0.000000000000	-12612.209999999999	0.000000000000	-3813.435060000000
0.000000000000	0.000000000000	5000.000000000000	-4413.428220000000	3813.435060000000	0.000000000000
0.000000000000	-12612.209999999999	-4413.428220000000	36165.035199999998	-3413.284910000000	9582.524410000000
12612.209999999999	0.000000000000	3813.435060000000	-3413.284910000000	35500.363299999997	11172.452100000000
4413.428220000000	-3813.435060000000	0.000000000000	9582.524410000000	11172.452100000000	7898.112300000000
9	48	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12876.370100000000	3324.440430000000
0.000000000000	5000.000000000000	0.000000000000	-12876.370100000000	0.000000000000	-2841.162350000000
0.000000000000	0.000000000000	5000.000000000000	-3324.440430000000	2841.162350000000	0.000000000000
0.000000000000	-12876.370100000000	-3324.440430000000	36482.972699999998	-2632.128910000000	7108.766110000000
12876.370100000000	0.000000000000	2841.162350000000	-2632.128910000000	36270.320299999999	8403.637699999999
3324.440430000000	-2841.162350000000	0.000000000000	7108.766110000000	8403.637699999999	6170.176760000000
9	50	60
4891.000000000000	0.000000000000	0.000000000000	0.000000000000	12532.980500000000	3279.105710000000
0.000000000000	4891.000000000000	0.000000000000	-12532.980500000000	0.000000000000	-3525.116940000000
0.000000000000	0.000000000000	4891.000000000000	-3279.105710000000	3525.116940000000	0.000000000000
0.000000000000	-12532.980500000000	-3279.105710000000	34921.515599999999	-2708.626950000000	8946.613280000000
12532.980500000000	0.000000000000	3525.116940000000	-2708.626950000000	35610.410199999998	8370.375000000000
3279.105710000000	-3525.116940000000	0.000000000000	8946.613280000000	8370.375000000000	6125.914060000000
9	52	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12803.181600000000	3366.422850000000
0.000000000000	5000.000000000000	0.000000000000	-12803.181600000000	0.000000000000	-3340.244380000000
0.000000000000	0.000000000000	5000.000000000000	-3366.422850000000	3340.244380000000	0.000000000000
0.000000000000	-12803.181600000000	-3366.422850000000	35502.343800000002	-2618.071040000000	8498.320309999999
12803.181600000000	0.000000000000	3340.244380000000	-2618.071040000000	36142.582000000002	8631.644530000000
3366.422850000000	-3340.244380000000	0.000000000000	8498.320309999999	8631.644530000000	5921.056640000000
9	55	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	10925.522499999999	-460.968048000000
0.000000000000	5000.000000000000	0.000000000000	-10925.522499999999	0.000000000000	-474.903229000000
0.000000000000	0.000000000000	5000.000000000000	460.968048000000	474.903229000000	0.000000000000
0.000000000000	-10925.522499999999	460.968048000000	26572.863300000001	100.803177000000	-939.871643000000
10925.522499999999	0.000000000000	474.903229000000	100.803177000000	28564.285199999998	-935.209717000000
-460.968048000000	-474.903229000000	0.000000000000	-939.871643000000	-935.209717000000	2603.006840000000
9	56	60
4096.000000000000	0.000000000000	0.000000000000	0.000000000000	5937.436040000000	-611.021118000000
0.000000000000	4096.000000000000	0.000000000000	-5937.436040000000	0.000000000000	-2869.658450000000
0.000000000000	0.000000000000	4096.000000000000	611.021118000000	2869.658450000000	0.000000000000
0.000000000000	-5937.436040000000	611.021118000000	9558.283200000000	337.816284000000	3197.713870000000
5937.436040000000	0.000000000000	2869.658450000000	337.816284000000	13003.658200000000	-875.075684000000
-611.021118000000	-2869.658450000000	0.000000000000	3197.713870000000	-875.075684000000	3795.469970000000
9	57	60
4168.000000000000	0.000000000000	0.000000000000	0.000000000000	5777.463870000000	-626.319397000000
0.000000000000	4168.000000000000	0.000000000000	-5777.463870000000	0.000000000000	-3773.177730000000
0.000000000000	0.000000000000	4168.000000000000	626.319397000000	3773.177730000000	0.000000000000
0.000000000000	-5777.463870000000	626.319397000000	8731.527340000001	463.830658000000	4943.736820000000
5777.463870000000	0.000000000000	3773.177730000000	463.830658000000	12682.279300000000	-866.465942000000
-626.319397000000	-3773.177730000000	0.000000000000	4943.736820000000	-866.465942000000	4234.566410000000
9	58	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	10426.275400000000	-458.451691000000
0.000000000000	5000.000000000000	0.000000000000	-10426.275400000000	0.000000000000	-2519.455570000000
0.000000000000	0.000000000000	5000.000000000000	458.451691000000	2519.455570000000	0.000000000000
0.000000000000	-10426.275400000000	458.451691000000	24495.759800000000	149.520142000000	3456.613040000000
10426.275400000000	0.000000000000	2519.455570000000	149.520142000000	27508.933600000000	-907.525879000000
-458.451691000000	-2519.455570000000	0.000000000000	3456.613040000000	-907.525879000000	3378.980960000000
10	21	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	10088.806600000000	-359.111053000000
0.000000000000	5000.000000000000	0.000000000000	-10088.806600000000	0.000000000000	3769.041260000000
0.000000000000	0.000000000000	5000.000000000000	359.111053000000	-3769.041260000000	0.000000000000
0.000000000000	-10088.806600000000	359.111053000000	23098.072300000000	164.096680000000	-8737.008790000000
10088.806600000000	0.000000000000	-3769.041260000000	164.096680000000	26150.875000000000	-79.696395900000
-359.111053000000	3769.041260000000	0.000000000000	-8737.008790000000	-79.696395900000	4148.801270000000
10	24	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12634.109399999999	158.386322000000
0.000000000000	5000.000000000000	0.000000000000	-12634.109399999999	0.000000000000	4955.382810000000
0.000000000000	0.000000000000	5000.000000000000	-158.386322000000	-4955.382810000000	0.000000000000
0.000000000000	-12634.109399999999	-158.386322000000	32807.917999999998	99.716690100000	-12578.069299999999
12634.109399999999	0.000000000000	-4955.382810000000	99.716690100000	37387.980499999998	311.634857000000
158.386322000000	4955.382810000000	0.000000000000	-12578.069299999999	311.634857000000	5713.550780000000
10	28	60
3510.000000000000	0.000000000000	0.000000000000	0.000000000000	8813.430660000000	1319.693730000000
0.000000000000	3510.000000000000	0.000000000000	-8813.430660000000	0.000000000000	-3528.711910000000
0.000000000000	0.000000000000	3510.000000000000	-1319.693730000000	3528.711910000000	0.000000000000
0.000000000000	-8813.430660000000	-1319.693730000000	24378.757799999999	-1589.509640000000	9340.456050000001
8813.430660000000	0.000000000000	3528.711910000000	-1589.509640000000	27266.818400000000	3926.013430000000
1319.693730000000	-3528.711910000000	0.000000000000	9340.456050000001	3926.013430000000	5063.869630000000
10	29	60
2606.000000000000	0.000000000000	0.000000000000	0.000000000000	7345.603520000000	1207.103390000000
0.000000000000	2606.000000000000	0.000000000000	-7345.603520000000	0.000000000000	-2987.113280000000
0.000000000000	0.000000000000	2606.000000000000	-1207.103390000000	2987.113280000000	0.000000000000
0.000000000000	-7345.603520000000	-1207.103390000000	21698.294900000001	-1476.842650000000	8424.396479999999
7345.603520000000	0.000000000000	2987.113280000000	-1476.842650000000	24337.791000000001	3437.630130000000
1207.103390000000	-2987.113280000000	0.000000000000	8424.396479999999	3437.630130000000	4435.994140000000
10	34	60
4277.000000000000	0.000000000000	0.000000000000	0.000000000000	5570.097170000000	-1146.447630000000
0.000000000000	4277.000000000000	0.000000000000	-5570.097170000000	0.000000000000	-426.143127000000
0.000000000000	0.000000000000	4277.000000000000	1146.447630000000	426.143127000000	0.000000000000
0.000000000000	-5570.097170000000	1146.447630000000	7728.924800000000	72.806861900000	487.892487000000
5570.097170000000	0.000000000000	426.143127000000	72.806861900000	8295.893550000001	-1430.723020000000
-1146.447630000000	-426.143127000000	0.000000000000	487.892487000000	-1430.723020000000	1260.532590000000
10	35	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	10679.102500000001	747.958496000000
0.000000000000	5000.000000000000	0.000000000000	-10679.102500000001	0.000000000000	3190.792240000000
0.000000000000	0.000000000000	5000.000000000000	-747.958496000000	-3190.792240000000	0.000000000000
0.000000000000	-10679.102500000001	-747.958496000000	24838.128900000000	671.415222000000	-7029.748050000000
10679.102500000001	0.000000000000	-3190.792240000000	671.415222000000	26593.906299999999	2191.075440000000
747.958496000000	3190.792240000000	0.000000000000	-7029.748050000000	2191.075440000000	3493.986080000000
10	40	60
2265.000000000000	0.000000000000	0.000000000000	0.000000000000	6321.059080000000	1619.832280000000
0.000000000000	2265.000000000000	0.000000000000	-6321.059080000000	0.000000000000	-1909.175660000000
0.000000000000	0.000000000000	2265.000000000000	-1619.832280000000	1909.175660000000	0.000000000000
0.000000000000	-6321.059080000000	-1619.832280000000	19215.410199999998	-1312.646730000000	5269.938480000000
6321.059080000000	0.000000000000	1909.175660000000	-1312.646730000000	19636.328099999999	4659.851560000000
1619.832280000000	-1909.175660000000	0.000000000000	5269.938480000000	4659.851560000000	3208.853030000000
10	41	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	14239.424800000001	3271.273190000000
0.000000000000	5000.000000000000	0.000000000000	-14239.424800000001	0.000000000000	-4661.966800000000
0.000000000000	0.000000000000	5000.000000000000	-3271.273190000000	4661.966800000000	0.000000000000
0.000000000000	-14239.424800000001	-3271.273190000000	43599.515599999999	-3208.090090000000	13411.024400000000
14239.424800000001	0.000000000000	4661.966800000000	-3208.090090000000	45538.320299999999	9534.094730000001
3271.273190000000	-4661.966800000000	0.000000000000	13411.024400000000	9534.094730000001	7621.790530000000
10	42	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	14123.159200000000	3392.831050000000
0.000000000000	5000.000000000000	0.000000000000	-14123.159200000000	0.000000000000	-4252.370120000000
0.000000000000	0.000000000000	5000.000000000000	-3392.831050000000	4252.370120000000	0.000000000000
0.000000000000	-14123.159200000000	-3392.831050000000	42836.878900000003	-2870.120120000000	12059.038100000000
14123.159200000000	0.000000000000	4252.370120000000	-2870.120120000000	44060.414100000002	9745.465819999999
3392.831050000000	-4252.370120000000	0.000000000000	12059.038100000000	9745.465819999999	6839.367680000000
10	43	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	14159.380900000000	3874.186770000000
0.000000000000	5000.000000000000	0.000000000000	-14159.380900000000	0.000000000000	-4288.247560000000
0.000000000000	0.000000000000	5000.000000000000	-3874.186770000000	4288.247560000000	0.000000000000
0.000000000000	-14159.380900000000	-3874.186770000000	43582.582000000002	-3309.925290000000	12169.699199999999
14159.380900000000	0.000000000000	4288.247560000000	-3309.925290000000	44420.363299999997	11123.786099999999
3874.186770000000	-4288.247560000000	0.000000000000	12169.699199999999	11123.786099999999	7550.065430000000
10	44	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	14164.862300000001	3919.844970000000
0.000000000000	5000.000000000000	0.000000000000	-14164.862300000001	0.000000000000	-4029.159670000000
0.000000000000	0.000000000000	5000.000000000000	-3919.844970000000	4029.159670000000	0.000000000000
0.000000000000	-14164.862300000001	-3919.844970000000	43679.792999999998	-3134.766360000000	11454.652300000000
14164.862300000001	0.000000000000	4029.159670000000	-3134.766360000000	44202.292999999998	11249.950199999999
3919.844970000000	-4029.159670000000	0.000000000000	11454.652300000000	11249.950199999999	7378.811040000000
10	45	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	14109.420899999999	4124.621580000000
0.000000000000	5000.000000000000	0.000000000000	-14109.420899999999	0.000000000000	-3384.759770000000
0.000000000000	0.000000000000	5000.000000000000	-4124.621580000000	3384.759770000000	0.000000000000
0.000000000000	-14109.420899999999	-4124.621580000000	43702.226600000002	-2879.090330000000	9806.382809999999
14109.420899999999	0.000000000000	3384.759770000000	-2879.090330000000	43632.667999999998	11800.706099999999
4124.621580000000	-3384.759770000000	0.000000000000	9806.382809999999	11800.706099999999	7352.716800000000
10	46	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	13367.410200000000	3653.874760000000
0.000000000000	5000.000000000000	0.000000000000	-13367.410200000000	0.000000000000	-1133.067500000000
0.000000000000	0.000000000000	5000.000000000000	-3653.874760000000	1133.067500000000	0.000000000000
0.000000000000	-13367.410200000000	-3653.874760000000	38860.050799999997	-976.720947000000	3357.834470000000
13367.410200000000	0.000000000000	1133.067500000000	-976.720947000000	37597.015599999999	9923.600590000000
3653.874760000000	-1133.067500000000	0.000000000000	3357.834470000000	9923.600590000000	4633.411130000000
10	47	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12563.464800000000	3077.891850000000
0.000000000000	5000.000000000000	0.000000000000	-12563.464800000000	0.000000000000	1534.733520000000
0.000000000000	0.000000000000	5000.000000000000	-3077.891850000000	-1534.733520000000	0.000000000000
0.000000000000	-12563.464800000000	-3077.891850000000	33936.812500000000	800.142456000000	-3614.430660000000
12563.464800000000	0.000000000000	-1534.733520000000	800.142456000000	33345.015599999999	7867.183110000000
3077.891850000000	1534.733520000000	0.000000000000	-3614.430660000000	7867.183110000000	3836.740970000000
10	48	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12300.722700000000	2728.835940000000
0.000000000000	5000.000000000000	0.000000000000	-12300.722700000000	0.000000000000	2450.135990000000
0.000000000000	0.000000000000	5000.000000000000	-2728.835940000000	-2450.135990000000	0.000000000000
0.000000000000	-12300.722700000000	-2728.835940000000	32221.918000000001	1175.662720000000	-5809.118650000000
12300.722700000000	0.000000000000	-2450.135990000000	1175.662720000000	32627.880900000000	6834.423830000000
2728.835940000000	2450.135990000000	0.000000000000	-5809.118650000000	6834.423830000000	4021.836430000000
10	49	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12198.102500000001	2660.854980000000
0.000000000000	5000.000000000000	0.000000000000	-12198.102500000001	0.000000000000	2677.365230000000
0.000000000000	0.000000000000	5000.000000000000	-2660.854980000000	-2677.365230000000	0.000000000000
0.000000000000	-12198.102500000001	-2660.854980000000	31714.998000000000	1268.657100000000	-6316.751950000000
12198.102500000001	0.000000000000	-2677.365230000000	1268.657100000000	32352.560500000000	6588.249510000000
2660.854980000000	2677.365230000000	0.000000000000	-6316.751950000000	6588.249510000000	4235.303710000000
10	50	60
4124.000000000000	0.000000000000	0.000000000000	0.000000000000	10210.219700000000	2103.453130000000
0.000000000000	4124.000000000000	0.000000000000	-10210.219700000000	0.000000000000	1892.339360000000
0.000000000000	0.000000000000	4124.000000000000	-2103.453130000000	-1892.339360000000	0.000000000000
0.000000000000	-10210.219700000000	-2103.453130000000	26725.197300000000	873.731079000000	-4526.098140000000
10210.219700000000	0.000000000000	-1892.339360000000	873.731079000000	27029.218799999999	5306.302730000000
2103.453130000000	1892.339360000000	0.000000000000	-4526.098140000000	5306.302730000000	2943.307370000000
10	51	60
1968.000000000000	0.000000000000	0.000000000000	0.000000000000	5096.282230000000	1185.995480000000
0.000000000000	1968.000000000000	0.000000000000	-5096.282230000000	0.000000000000	245.984756000000
0.000000000000	0.000000000000	1968.000000000000	-1185.995480000000	-245.984756000000	0.000000000000
0.000000000000	-5096.282230000000	-1185.995480000000	14031.208000000001	104.365959000000	-569.204834000000
5096.282230000000	0.000000000000	-245.984756000000	104.365959000000	13481.100600000000	3116.858890000000
1185.995480000000	245.984756000000	0.000000000000	-569.204834000000	3116.858890000000	999.749268000000
10	52	60
4596.000000000000	0.000000000000	0.000000000000	0.000000000000	11316.690399999999	2316.257810000000
0.000000000000	4596.000000000000	0.000000000000	-11316.690399999999	0.000000000000	2275.407960000000
0.000000000000	0.000000000000	4596.000000000000	-2316.257810000000	-2275.407960000000	0.000000000000
0.000000000000	-11316.690399999999	-2316.257810000000	29408.068400000000	1030.598390000000	-5415.346680000000
11316.690399999999	0.000000000000	-2275.407960000000	1030.598390000000	30004.345700000002	5818.095210000000
2316.257810000000	2275.407960000000	0.000000000000	-5415.346680000000	5818.095210000000	3406.208980000000
10	53	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12037.847700000000	2239.129640000000
0.000000000000	5000.000000000000	0.000000000000	-12037.847700000000	0.000000000000	2666.921880000000
0.000000000000	0.000000000000	5000.000000000000	-2239.129640000000	-2666.921880000000	0.000000000000
0.000000000000	-12037.847700000000	-2239.129640000000	30669.210899999998	1134.668460000000	-6268.243650000000
12037.847700000000	0.000000000000	-2666.921880000000	1134.668460000000	31408.259800000000	5594.937500000000
2239.129640000000	2666.921880000000	0.000000000000	-6268.243650000000	5594.937500000000	3658.723390000000
10	54	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	9671.415040000000	140.756454000000
0.000000000000	5000.000000000000	0.000000000000	-9671.415040000000	0.000000000000	2492.769780000000
0.000000000000	0.000000000000	5000.000000000000	-140.756454000000	-2492.769780000000	0.000000000000
0.000000000000	-9671.415040000000	-140.756454000000	20829.408200000002	470.459473000000	-5289.375490000000
9671.415040000000	0.000000000000	-2492.769780000000	470.459473000000	21960.083999999999	1027.700320000000
140.756454000000	2492.769780000000	0.000000000000	-5289.375490000000	1027.700320000000	2554.216550000000
10	55	60
3291.000000000000	0.000000000000	0.000000000000	0.000000000000	4591.087400000000	-957.235291000000
0.000000000000	3291.000000000000	0.000000000000	-4591.087400000000	0.000000000000	549.103882000000
0.000000000000	0.000000000000	3291.000000000000	957.235291000000	-549.103882000000	0.000000000000
0.000000000000	-4591.087400000000	957.235291000000	7168.179200000000	-155.636505000000	-1095.978760000000
4591.087400000000	0.000000000000	-549.103882000000	-155.636505000000	7440.161130000000	-1292.609010000000
-957.235291000000	549.103882000000	0.000000000000	-1095.978760000000	-1292.609010000000	885.186646000000
10	56	60
3666.000000000000	0.000000000000	0.000000000000	0.000000000000	4734.445310000000	-1044.029910000000
0.000000000000	3666.000000000000	0.000000000000	-4734.445310000000	0.000000000000	-73.697181700000
0.000000000000	0.000000000000	3666.000000000000	1044.029910000000	73.697181700000	0.000000000000
0.000000000000	-4734.445310000000	1044.029910000000	6544.604000000000	17.520729100000	14.285542500000
4734.445310000000	0.000000000000	73.697181700000	17.520729100000	6649.031740000000	-1306.139650000000
-1044.029910000000	-73.697181700000	0.000000000000	14.285542500000	-1306.139650000000	740.464539000000
10	57	60
4171.000000000000	0.000000000000	0.000000000000	0.000000000000	5489.669430000000	-1176.758540000000
0.000000000000	4171.000000000000	0.000000000000	-5489.669430000000	0.000000000000	-310.620819000000
0.000000000000	0.000000000000	4171.000000000000	1176.758540000000	310.620819000000	0.000000000000
0.000000000000	-5489.669430000000	1176.758540000000	7858.812990000000	71.428100600000	280.861115000000
5489.669430000000	0.000000000000	310.620819000000	71.428100600000	7930.423340000000	-1502.382690000000
-1176.758540000000	-310.620819000000	0.000000000000	280.861115000000	-1502.382690000000	784.437927000000
10	58	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	7674.118650000000	-1110.089110000000
0.000000000000	5000.000000000000	0.000000000000	-7674.118650000000	0.000000000000	264.986389000000
0.000000000000	0.000000000000	5000.000000000000	1110.089110000000	-264.986389000000	0.000000000000
0.000000000000	-7674.118650000000	1110.089110000000	13159.949199999999	-0.342617244000	-808.220459000000
7674.118650000000	0.000000000000	-264.986389000000	-0.342617244000	13399.151400000001	-1460.321780000000
-1110.089110000000	264.986389000000	0.000000000000	-808.220459000000	-1460.321780000000	960.007080000000
10	59	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	9904.931640000001	-395.783875000000
0.000000000000	5000.000000000000	0.000000000000	-9904.931640000001	0.000000000000	145.522675000000
0.000000000000	0.000000000000	5000.000000000000	395.783875000000	-145.522675000000	0.000000000000
0.000000000000	-9904.931640000001	395.783875000000	21419.693400000000	-140.428467000000	-84.641914400000
9904.931640000001	0.000000000000	-145.522675000000	-140.428467000000	21729.396499999999	-366.323212000000
-395.783875000000	145.522675000000	0.000000000000	-84.641914400000	-366.323212000000	850.240967000000
11	16	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	9528.597659999999	364.150421000000
0.000000000000	5000.000000000000	0.000000000000	-9528.597659999999	0.000000000000	1396.420530000000
0.000000000000	0.000000000000	5000.000000000000	-364.150421000000	-1396.420530000000	0.000000000000
0.000000000000	-9528.597659999999	-364.150421000000	20022.156299999999	270.486908000000	-2808.346920000000
9528.597659999999	0.000000000000	-1396.420530000000	270.486908000000	20498.703099999999	1210.745730000000
364.150421000000	1396.420530000000	0.000000000000	-2808.346920000000	1210.745730000000	1430.702760000000
11	17	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	9444.116210000000	573.179260000000
0.000000000000	5000.000000000000	0.000000000000	-9444.116210000000	0.000000000000	2044.980830000000
0.000000000000	0.000000000000	5000.000000000000	-573.179260000000	-2044.980830000000	0.000000000000
0.000000000000	-9444.116210000000	-573.179260000000	19986.410199999998	440.325287000000	-4142.444820000000
9444.116210000000	0.000000000000	-2044.980830000000	440.325287000000	20563.242200000001	1728.473390000000
573.179260000000	2044.980830000000	0.000000000000	-4142.444820000000	1728.473390000000	1980.505000000000
11	20	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	9928.612300000001	1277.125240000000
0.000000000000	5000.000000000000	0.000000000000	-9928.612300000001	0.000000000000	1209.098140000000
0.000000000000	0.000000000000	5000.000000000000	-1277.125240000000	-1209.098140000000	0.000000000000
0.000000000000	-9928.612300000001	-1277.125240000000	22043.556600000000	608.175537000000	-2554.256590000000
9928.612300000001	0.000000000000	-1209.098140000000	608.175537000000	21876.603500000001	3264.391600000000
1277.125240000000	1209.098140000000	0.000000000000	-2554.256590000000	3264.391600000000	2038.217040000000
11	21	60
3845.000000000000	0.000000000000	0.000000000000	0.000000000000	8332.181640000001	746.028076000000
0.000000000000	3845.000000000000	0.000000000000	-8332.181640000001	0.000000000000	3451.405270000000
0.000000000000	0.000000000000	3845.000000000000	-746.028076000000	-3451.405270000000	0.000000000000
0.000000000000	-8332.181640000001	-746.028076000000	19813.539100000002	849.487183000000	-7980.560060000000
8332.181640000001	0.000000000000	-3451.405270000000	849.487183000000	22602.333999999999	1978.010010000000
746.028076000000	3451.405270000000	0.000000000000	-7980.560060000000	1978.010010000000	3948.793700000000
11	24	60
4059.000000000000	0.000000000000	0.000000000000	0.000000000000	9979.610350000001	1136.219360000000
0.000000000000	4059.000000000000	0.000000000000	-9979.610350000001	0.000000000000	3878.672850000000
0.000000000000	0.000000000000	4059.000000000000	-1136.219360000000	-3878.672850000000	0.000000000000
0.000000000000	-9979.610350000001	-1136.219360000000	25413.906299999999	1015.247860000000	-9583.779300000000
9979.610350000001	0.000000000000	-3878.672850000000	1015.247860000000	28517.605500000001	2686.739750000000
1136.219360000000	3878.672850000000	0.000000000000	-9583.779300000000	2686.739750000000	4573.854000000000
11	29	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	11461.719700000000	-298.090210000000
0.000000000000	5000.000000000000	0.000000000000	-11461.719700000000	0.000000000000	-6229.574220000000
0.000000000000	0.000000000000	5000.000000000000	298.090210000000	6229.574220000000	0.000000000000
0.000000000000	-11461.719700000000	298.090210000000	27413.195299999999	314.975067000000	14214.091800000000
11461.719700000000	0.000000000000	6229.574220000000	314.975067000000	34597.429700000001	-529.286499000000
-298.090210000000	-6229.574220000000	0.000000000000	14214.091800000000	-529.286499000000	8551.909180000001
11	35	60
3558.000000000000	0.000000000000	0.000000000000	0.000000000000	7922.868160000000	1457.935180000000
0.000000000000	3558.000000000000	0.000000000000	-7922.868160000000	0.000000000000	2000.622070000000
0.000000000000	0.000000000000	3558.000000000000	-1457.935180000000	-2000.622070000000	0.000000000000
0.000000000000	-7922.868160000000	-1457.935180000000	18680.289100000002	934.359558000000	-4525.563960000000
7922.868160000000	0.000000000000	-2000.622070000000	934.359558000000	19199.002000000000	3322.449220000000
1457.935180000000	2000.622070000000	0.000000000000	-4525.563960000000	3322.449220000000	2400.445070000000
11	40	60
3266.000000000000	0.000000000000	0.000000000000	0.000000000000	7601.010250000000	1008.528810000000
0.000000000000	3266.000000000000	0.000000000000	-7601.010250000000	0.000000000000	-2985.978270000000
0.000000000000	0.000000000000	3266.000000000000	-1008.528810000000	2985.978270000000	0.000000000000
0.000000000000	-7601.010250000000	-1008.528810000000	19556.597699999998	-895.426392000000	6969.521000000000
7601.010250000000	0.000000000000	2985.978270000000	-895.426392000000	21428.085899999998	2830.828860000000
1008.528810000000	-2985.978270000000	0.000000000000	6969.521000000000	2830.828860000000	4093.006100000000
11	41	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12290.225600000000	1958.124760000000
0.000000000000	5000.000000000000	0.000000000000	-12290.225600000000	0.000000000000	-5013.540530000000
0.000000000000	0.000000000000	5000.000000000000	-1958.124760000000	5013.540530000000	0.000000000000
0.000000000000	-12290.225600000000	-1958.124760000000	32191.025399999999	-1982.724980000000	12238.638700000000
12290.225600000000	0.000000000000	5013.540530000000	-1982.724980000000	36146.382799999999	5172.018070000000
1958.124760000000	-5013.540530000000	0.000000000000	12238.638700000000	5172.018070000000	6928.150390000000
11	42	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12359.333000000001	2119.130370000000
0.000000000000	5000.000000000000	0.000000000000	-12359.333000000001	0.000000000000	-4791.295410000000
0.000000000000	0.000000000000	5000.000000000000	-2119.130370000000	4791.295410000000	0.000000000000
0.000000000000	-12359.333000000001	-2119.130370000000	32439.279299999998	-1867.973020000000	11656.263700000000
12359.333000000001	0.000000000000	4791.295410000000	-1867.973020000000	35910.835899999998	5531.360350000000
2119.130370000000	-4791.295410000000	0.000000000000	11656.263700000000	5531.360350000000	6562.924320000000
11	43	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12509.889600000000	2869.279540000000
0.000000000000	5000.000000000000	0.000000000000	-12509.889600000000	0.000000000000	-4741.387210000000
0.000000000000	0.000000000000	5000.000000000000	-2869.279540000000	4741.387210000000	0.000000000000
0.000000000000	-12509.889600000000	-2869.279540000000	33709.832000000002	-2471.263180000000	11663.593800000001
12509.889600000000	0.000000000000	4741.387210000000	-2471.263180000000	36577.187500000000	7458.987300000000
2869.279540000000	-4741.387210000000	0.000000000000	11663.593800000001	7458.987300000000	7157.025390000000
11	44	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12812.661099999999	3188.676030000000
0.000000000000	5000.000000000000	0.000000000000	-12812.661099999999	0.000000000000	-4134.845700000000
0.000000000000	0.000000000000	5000.000000000000	-3188.676030000000	4134.845700000000	0.000000000000
0.000000000000	-12812.661099999999	-3188.676030000000	35460.519500000002	-2372.377930000000	10476.125000000000
12812.661099999999	0.000000000000	4134.845700000000	-2372.377930000000	37030.957000000002	8343.578130000000
3188.676030000000	-4134.845700000000	0.000000000000	10476.125000000000	8343.578130000000	6536.799320000000
11	45	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12697.372100000001	3410.501710000000
0.000000000000	5000.000000000000	0.000000000000	-12697.372100000001	0.000000000000	-3337.760010000000
0.000000000000	0.000000000000	5000.000000000000	-3410.501710000000	3337.760010000000	0.000000000000
0.000000000000	-12697.372100000001	-3410.501710000000	35011.363299999997	-2135.482420000000	8522.326170000000
12697.372100000001	0.000000000000	3337.760010000000	-2135.482420000000	35474.179700000001	8791.374019999999
3410.501710000000	-3337.760010000000	0.000000000000	8522.326170000000	8791.374019999999	5757.909180000000
11	46	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	12200.260700000001	3390.064940000000
0.000000000000	5000.000000000000	0.000000000000	-12200.260700000001	0.000000000000	-1227.052370000000
0.000000000000	0.000000000000	5000.000000000000	-3390.064940000000	1227.052370000000	0.000000000000
0.000000000000	-12200.260700000001	-3390.064940000000	32479.783200000002	-734.643005000000	3230.430660000000
12200.260700000001	0.000000000000	1227.052370000000	-734.643005000000	31527.687500000000	8380.344730000001
3390.064940000000	-1227.052370000000	0.000000000000	3230.430660000000	8380.344730000001	4187.634280000000
11	47	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	11853.342800000000	3498.974610000000
0.000000000000	5000.000000000000	0.000000000000	-11853.342800000000	0.000000000000	811.055603000000
0.000000000000	0.000000000000	5000.000000000000	-3498.974610000000	-811.055603000000	0.000000000000
0.000000000000	-11853.342800000000	-3498.974610000000	30868.402300000002	554.073547000000	-1663.424320000000
11853.342800000000	0.000000000000	-811.055603000000	554.073547000000	29742.523399999998	8379.684569999999
3498.974610000000	811.055603000000	0.000000000000	-1663.424320000000	8379.684569999999	4136.940920000000
11	48	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	11593.025400000000	3289.634770000000
0.000000000000	5000.000000000000	0.000000000000	-11593.025400000000	0.000000000000	1724.877320000000
0.000000000000	0.000000000000	5000.000000000000	-3289.634770000000	-1724.877320000000	0.000000000000
0.000000000000	-11593.025400000000	-3289.634770000000	29393.087899999999	1137.412350000000	-3830.887210000000
11593.025400000000	0.000000000000	-1724.877320000000	1137.412350000000	28467.953099999999	7723.199220000000
3289.634770000000	1724.877320000000	0.000000000000	-3830.887210000000	7723.199220000000	3824.299320000000
11	49	60
4843.000000000000	0.000000000000	0.000000000000	0.000000000000	11180.442400000000	3146.191650000000
0.000000000000	4843.000000000000	0.000000000000	-11180.442400000000	0.000000000000	1766.846560000000
0.000000000000	0.000000000000	4843.000000000000	-3146.191650000000	-1766.846560000000	0.000000000000
0.000000000000	-11180.442400000000	-3146.191650000000	28173.724600000001	1135.230710000000	-3974.503910000000
11180.442400000000	0.000000000000	-1766.846560000000	1135.230710000000	27243.798800000000	7356.562010000000
3146.191650000000	1766.846560000000	0.000000000000	-3974.503910000000	7356.562010000000	3586.495610000000
11	50	60
4475.000000000000	0.000000000000	0.000000000000	0.000000000000	10452.304700000001	2849.321290000000
0.000000000000	4475.000000000000	0.000000000000	-10452.304700000001	0.000000000000	1164.241700000000
0.000000000000	0.000000000000	4475.000000000000	-2849.321290000000	-1164.241700000000	0.000000000000
0.000000000000	-10452.304700000001	-2849.321290000000	26573.197300000000	758.444336000000	-2554.636960000000
10452.304700000001	0.000000000000	-1164.241700000000	758.444336000000	25519.892599999999	6755.543460000000
2849.321290000000	1164.241700000000	0.000000000000	-2554.636960000000	6755.543460000000	2993.989260000000
11	51	60
3083.000000000000	0.000000000000	0.000000000000	0.000000000000	7350.546390000000	1939.534910000000
0.000000000000	3083.000000000000	0.000000000000	-7350.546390000000	0.000000000000	196.820267000000
0.000000000000	0.000000000000	3083.000000000000	-1939.534910000000	-196.820267000000	0.000000000000
0.000000000000	-7350.546390000000	-1939.534910000000	18971.257799999999	125.087250000000	-368.127289000000
7350.546390000000	0.000000000000	-196.820267000000	125.087250000000	17927.472699999998	4689.316890000000
1939.534910000000	196.820267000000	0.000000000000	-368.127289000000	4689.316890000000	1670.800780000000
11	52	60
4698.000000000000	0.000000000000	0.000000000000	0.000000000000	10897.604499999999	2950.593510000000
0.000000000000	4698.000000000000	0.000000000000	-10897.604499999999	0.000000000000	1392.775270000000
0.000000000000	0.000000000000	4698.000000000000	-2950.593510000000	-1392.775270000000	0.000000000000
0.000000000000	-10897.604499999999	-2950.593510000000	27489.775399999999	897.296753000000	-3087.629880000000
10897.604499999999	0.000000000000	-1392.775270000000	897.296753000000	26534.937500000000	6943.325200000000
2950.593510000000	1392.775270000000	0.000000000000	-3087.629880000000	6943.325200000000	3224.211670000000
11	53	60
4741.000000000000	0.000000000000	0.000000000000	0.000000000000	10763.305700000001	2653.582280000000
0.000000000000	4741.000000000000	0.000000000000	-10763.305700000001	0.000000000000	1961.786740000000
0.000000000000	0.000000000000	4741.000000000000	-2653.582280000000	-1961.786740000000	0.000000000000
0.000000000000	-10763.305700000001	-2653.582280000000	26360.066400000000	1145.046880000000	-4416.230470000000
10763.305700000001	0.000000000000	-1961.786740000000	1145.046880000000	25902.953099999999	6139.775390000000
2653.582280000000	1961.786740000000	0.000000000000	-4416.230470000000	6139.775390000000	3230.344730000000
11	54	60
4321.000000000000	0.000000000000	0.000000000000	0.000000000000	8004.727050000000	788.258606000000
0.000000000000	4321.000000000000	0.000000000000	-8004.727050000000	0.000000000000	2053.582280000000
0.000000000000	0.000000000000	4321.000000000000	-788.258606000000	-2053.582280000000	0.000000000000
0.000000000000	-8004.727050000000	-788.258606000000	16732.386699999999	676.228882000000	-4121.486820000000
8004.727050000000	0.000000000000	-2053.582280000000	676.228882000000	17208.048800000000	2129.201420000000
788.258606000000	2053.582280000000	0.000000000000	-4121.486820000000	2129.201420000000	2107.630370000000
11	58	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	7083.165040000000	-778.095093000000
0.000000000000	5000.000000000000	0.000000000000	-7083.165040000000	0.000000000000	905.502869000000
0.000000000000	0.000000000000	5000.000000000000	778.095093000000	-905.502869000000	0.000000000000
0.000000000000	-7083.165040000000	778.095093000000	11288.778300000000	-39.075161000000	-1594.692260000000
7083.165040000000	0.000000000000	-905.502869000000	-39.075161000000	11543.155300000000	-816.055542000000
-778.095093000000	905.502869000000	0.000000000000	-1594.692260000000	-816.055542000000	774.339722000000
11	59	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	9906.794920000000	67.573715200000
0.000000000000	5000.000000000000	0.000000000000	-9906.794920000000	0.000000000000	197.138885000000
0.000000000000	0.000000000000	5000.000000000000	-67.573715200000	-197.138885000000	0.000000000000
0.000000000000	-9906.794920000000	-67.573715200000	21063.552700000000	-45.920040100000	-144.012131000000
9906.794920000000	0.000000000000	-197.138885000000	-45.920040100000	21339.750000000000	426.132324000000
67.573715200000	197.138885000000	0.000000000000	-144.012131000000	426.132324000000	671.458679000000
12	16	60
4121.000000000000	0.000000000000	0.000000000000	0.000000000000	7438.240230000000	452.512299000000
0.000000000000	4121.000000000000	0.000000000000	-7438.240230000000	0.000000000000	2305.541990000000
0.000000000000	0.000000000000	4121.000000000000	-452.512299000000	-2305.541990000000	0.000000000000
0.000000000000	-7438.240230000000	-452.512299000000	14190.953100000001	322.768524000000	-4237.351070000000
7438.240230000000	0.000000000000	-2305.541990000000	322.768524000000	15371.468800000001	942.964478000000
452.512299000000	2305.541990000000	0.000000000000	-4237.351070000000	942.964478000000	1726.909180000000
12	18	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	8750.992190000001	691.476196000000
0.000000000000	5000.000000000000	0.000000000000	-8750.992190000001	0.000000000000	2564.832520000000
0.000000000000	0.000000000000	5000.000000000000	-691.476196000000	-2564.832520000000	0.000000000000
0.000000000000	-8750.992190000001	-691.476196000000	16773.576200000000	572.887390000000	-4737.212890000000
8750.992190000001	0.000000000000	-2564.832520000000	572.887390000000	17878.599600000001	1578.157100000000
691.476196000000	2564.832520000000	0.000000000000	-4737.212890000000	1578.157100000000	2288.617920000000
12	20	60
3459.000000000000	0.000000000000	0.000000000000	0.000000000000	6146.352540000000	931.911377000000
0.000000000000	3459.000000000000	0.000000000000	-6146.352540000000	0.000000000000	2018.366940000000
0.000000000000	0.000000000000	3459.000000000000	-931.911377000000	-2018.366940000000	0.000000000000
0.000000000000	-6146.352540000000	-931.911377000000	11994.510700000001	694.015503000000	-3680.842040000000
6146.352540000000	0.000000000000	-2018.366940000000	694.015503000000	12716.351600000000	1925.913570000000
931.911377000000	2018.366940000000	0.000000000000	-3680.842040000000	1925.913570000000	1924.932370000000
12	25	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	10287.692400000000	1785.730350000000
0.000000000000	5000.000000000000	0.000000000000	-10287.692400000000	0.000000000000	2016.325810000000
0.000000000000	0.000000000000	5000.000000000000	-1785.730350000000	-2016.325810000000	0.000000000000
0.000000000000	-10287.692400000000	-1785.730350000000	22675.996100000000	736.361206000000	-3992.703130000000
10287.692400000000	0.000000000000	-2016.325810000000	736.361206000000	22576.789100000002	3810.698970000000
1785.730350000000	2016.325810000000	0.000000000000	-3992.703130000000	3810.698970000000	2438.557620000000
12	30	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	8736.699220000000	654.547180000000
0.000000000000	5000.000000000000	0.000000000000	-8736.699220000000	0.000000000000	-4932.694820000000
0.000000000000	0.000000000000	5000.000000000000	-654.547180000000	4932.694820000000	0.000000000000
0.000000000000	-8736.699220000000	-654.547180000000	16527.609400000001	-757.669800000000	8558.450199999999
8736.699220000000	0.000000000000	4932.694820000000	-757.669800000000	20857.515599999999	1575.739870000000
654.547180000000	-4932.694820000000	0.000000000000	8558.450199999999	1575.739870000000	5847.465820000000
12	31	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	8055.978030000000	-981.947021000000
0.000000000000	5000.000000000000	0.000000000000	-8055.978030000000	0.000000000000	-4370.793460000000
0.000000000000	0.000000000000	5000.000000000000	981.947021000000	4370.793460000000	0.000000000000
0.000000000000	-8055.978030000000	981.947021000000	13837.548800000000	816.620483000000	7069.588380000000
8055.978030000000	0.000000000000	4370.793460000000	816.620483000000	17392.263700000000	-1509.724370000000
-981.947021000000	-4370.793460000000	0.000000000000	7069.588380000000	-1509.724370000000	4625.679200000000
12	32	60
4321.000000000000	0.000000000000	0.000000000000	0.000000000000	6094.764160000000	-1098.127320000000
0.000000000000	4321.000000000000	0.000000000000	-6094.764160000000	0.000000000000	-3267.641850000000
0.000000000000	0.000000000000	4321.000000000000	1098.127320000000	3267.641850000000	0.000000000000
0.000000000000	-6094.764160000000	1098.127320000000	9339.826170000000	858.400574000000	4927.583980000000
6094.764160000000	0.000000000000	3267.641850000000	858.400574000000	12110.633800000000	-1569.588500000000
-1098.127320000000	-3267.641850000000	0.000000000000	4927.583980000000	-1569.588500000000	3590.926510000000
12	36	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	8876.402340000001	755.305054000000
0.000000000000	5000.000000000000	0.000000000000	-8876.402340000001	0.000000000000	2685.715820000000
0.000000000000	0.000000000000	5000.000000000000	-755.305054000000	-2685.715820000000	0.000000000000
0.000000000000	-8876.402340000001	-755.305054000000	16943.668000000001	519.158264000000	-4862.483890000000
8876.402340000001	0.000000000000	-2685.715820000000	519.158264000000	18257.339800000002	1612.434940000000
755.305054000000	2685.715820000000	0.000000000000	-4862.483890000000	1612.434940000000	2265.547360000000
12	38	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	8929.208979999999	141.320602000000
0.000000000000	5000.000000000000	0.000000000000	-8929.208979999999	0.000000000000	1448.675170000000
0.000000000000	0.000000000000	5000.000000000000	-141.320602000000	-1448.675170000000	0.000000000000
0.000000000000	-8929.208979999999	-141.320602000000	17226.027300000002	192.725815000000	-2637.936040000000
8929.208979999999	0.000000000000	-1448.675170000000	192.725815000000	17989.115200000000	484.872101000000
141.320602000000	1448.675170000000	0.000000000000	-2637.936040000000	484.872101000000	1276.948850000000
12	39	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	8704.715819999999	464.921753000000
0.000000000000	5000.000000000000	0.000000000000	-8704.715819999999	0.000000000000	1696.569340000000
0.000000000000	0.000000000000	5000.000000000000	-464.921753000000	-1696.569340000000	0.000000000000
0.000000000000	-8704.715819999999	-464.921753000000	16779.074199999999	378.193207000000	-3062.621340000000
8704.715819999999	0.000000000000	-1696.569340000000	378.193207000000	17411.628900000000	1249.060300000000
464.921753000000	1696.569340000000	0.000000000000	-3062.621340000000	1249.060300000000	1602.982060000000
12	46	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	10789.869100000000	3070.203610000000
0.000000000000	5000.000000000000	0.000000000000	-10789.869100000000	0.000000000000	928.884949000000
0.000000000000	0.000000000000	5000.000000000000	-3070.203610000000	-928.884949000000	0.000000000000
0.000000000000	-10789.869100000000	-3070.203610000000	25613.085899999998	581.412964000000	-1753.173340000000
10789.869100000000	0.000000000000	-928.884949000000	581.412964000000	24520.531299999999	6767.275390000000
3070.203610000000	928.884949000000	0.000000000000	-1753.173340000000	6767.275390000000	3137.331540000000
12	47	60
3430.000000000000	0.000000000000	0.000000000000	0.000000000000	7129.840330000000	2179.546630000000
0.000000000000	3430.000000000000	0.000000000000	-7129.840330000000	0.000000000000	1551.608890000000
0.000000000000	0.000000000000	3430.000000000000	-2179.546630000000	-1551.608890000000	0.000000000000
0.000000000000	-7129.840330000000	-2179.546630000000	16517.958999999999	891.848511000000	-3019.200440000000
7129.840330000000	0.000000000000	-1551.608890000000	891.848511000000	16150.754900000000	4648.368650000000
2179.546630000000	1551.608890000000	0.000000000000	-3019.200440000000	4648.368650000000	2673.999760000000
12	48	60
2889.000000000000	0.000000000000	0.000000000000	0.000000000000	5846.014160000000	1759.461180000000
0.000000000000	2889.000000000000	0.000000000000	-5846.014160000000	0.000000000000	1805.324220000000
0.000000000000	0.000000000000	2889.000000000000	-1759.461180000000	-1805.324220000000	0.000000000000
0.000000000000	-5846.014160000000	-1759.461180000000	13161.221700000000	1065.935180000000	-3560.624020000000
5846.014160000000	0.000000000000	-1805.324220000000	1065.935180000000	13230.334999999999	3656.397710000000
1759.461180000000	1805.324220000000	0.000000000000	-3560.624020000000	3656.397710000000	2470.677490000000
12	50	60
2580.000000000000	0.000000000000	0.000000000000	0.000000000000	5302.568360000000	1655.096310000000
0.000000000000	2580.000000000000	0.000000000000	-5302.568360000000	0.000000000000	1583.478640000000
0.000000000000	0.000000000000	2580.000000000000	-1655.096310000000	-1583.478640000000	0.000000000000
0.000000000000	-5302.568360000000	-1655.096310000000	12171.391600000001	983.176941000000	-3165.683350000000
5302.568360000000	0.000000000000	-1583.478640000000	983.176941000000	12107.030300000000	3475.947510000000
1655.096310000000	1583.478640000000	0.000000000000	-3165.683350000000	3475.947510000000	2257.576660000000
12	51	60
2653.000000000000	0.000000000000	0.000000000000	0.000000000000	5552.105470000000	1762.498410000000
0.000000000000	2653.000000000000	0.000000000000	-5552.105470000000	0.000000000000	1505.717650000000
0.000000000000	0.000000000000	2653.000000000000	-1762.498410000000	-1505.717650000000	0.000000000000
0.000000000000	-5552.105470000000	-1762.498410000000	12988.237300000001	975.307739000000	-3043.090090000000
5552.105470000000	0.000000000000	-1505.717650000000	975.307739000000	12758.514600000000	3748.996580000000
1762.498410000000	1505.717650000000	0.000000000000	-3043.090090000000	3748.996580000000	2286.644290000000
12	52	60
2427.000000000000	0.000000000000	0.000000000000	0.000000000000	4962.620120000000	1552.715580000000
0.000000000000	2427.000000000000	0.000000000000	-4962.620120000000	0.000000000000	1498.674560000000
0.000000000000	0.000000000000	2427.000000000000	-1552.715580000000	-1498.674560000000	0.000000000000
0.000000000000	-4962.620120000000	-1552.715580000000	11322.459000000001	943.242004000000	-2996.957280000000
4962.620120000000	0.000000000000	-1498.674560000000	943.242004000000	11271.398400000000	3235.824950000000
1552.715580000000	1498.674560000000	0.000000000000	-2996.957280000000	3235.824950000000	2103.145260000000
12	59	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	9325.121090000001	287.816925000000
0.000000000000	5000.000000000000	0.000000000000	-9325.121090000001	0.000000000000	2202.881840000000
0.000000000000	0.000000000000	5000.000000000000	-287.816925000000	-2202.881840000000	0.000000000000
0.000000000000	-9325.121090000001	-287.816925000000	18260.148399999998	143.334976000000	-4045.845950000000
9325.121090000001	0.000000000000	-2202.881840000000	143.334976000000	19347.154299999998	646.188965000000
287.816925000000	2202.881840000000	0.000000000000	-4045.845950000000	646.188965000000	1460.561280000000
13	18	60
3222.000000000000	0.000000000000	0.000000000000	0.000000000000	5746.304200000000	100.834816000000
0.000000000000	3222.000000000000	0.000000000000	-5746.304200000000	0.000000000000	2460.399660000000
0.000000000000	0.000000000000	3222.000000000000	-100.834816000000	-2460.399660000000	0.000000000000
0.000000000000	-5746.304200000000	-100.834816000000	10919.927700000000	150.178497000000	-4570.076170000000
5746.304200000000	0.000000000000	-2460.399660000000	150.178497000000	12733.399400000000	300.477600000000
100.834816000000	2460.399660000000	0.000000000000	-4570.076170000000	300.477600000000	2171.542720000000
13	19	60
4715.000000000000	0.000000000000	0.000000000000	0.000000000000	9156.117190000001	1075.338620000000
0.000000000000	4715.000000000000	0.000000000000	-9156.117190000001	0.000000000000	2985.391360000000
0.000000000000	0.000000000000	4715.000000000000	-1075.338620000000	-2985.391360000000	0.000000000000
0.000000000000	-9156.117190000001	-1075.338620000000	19185.953099999999	840.112915000000	-5877.023930000000
9156.117190000001	0.000000000000	-2985.391360000000	840.112915000000	20604.248000000000	2389.645260000000
1075.338620000000	2985.391360000000	0.000000000000	-5877.023930000000	2389.645260000000	2824.640380000000
13	25	60
4841.000000000000	0.000000000000	0.000000000000	0.000000000000	9800.745120000000	1198.614500000000
0.000000000000	4841.000000000000	0.000000000000	-9800.745120000000	0.000000000000	3673.100830000000
0.000000000000	0.000000000000	4841.000000000000	-1198.614500000000	-3673.100830000000	0.000000000000
0.000000000000	-9800.745120000000	-1198.614500000000	20882.609400000001	831.973572000000	-7367.991210000000
9800.745120000000	0.000000000000	-3673.100830000000	831.973572000000	22913.906299999999	2533.641850000000
1198.614500000000	3673.100830000000	0.000000000000	-7367.991210000000	2533.641850000000	3856.229740000000
13	30	60
4811.000000000000	0.000000000000	0.000000000000	0.000000000000	8576.104490000000	717.437622000000
0.000000000000	4811.000000000000	0.000000000000	-8576.104490000000	0.000000000000	-2680.777340000000
0.000000000000	0.000000000000	4811.000000000000	-717.437622000000	2680.777340000000	0.000000000000
0.000000000000	-8576.104490000000	-717.437622000000	16666.710899999998	-539.761902000000	4793.890620000000
8576.104490000000	0.000000000000	2680.777340000000	-539.761902000000	17413.462899999999	1764.313230000000
717.437622000000	-2680.777340000000	0.000000000000	4793.890620000000	1764.313230000000	2581.324950000000
13	31	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	8142.696290000000	-844.593811000000
0.000000000000	5000.000000000000	0.000000000000	-8142.696290000000	0.000000000000	-2035.291630000000
0.000000000000	0.000000000000	5000.000000000000	844.593811000000	2035.291630000000	0.000000000000
0.000000000000	-8142.696290000000	844.593811000000	14081.002000000000	294.602600000000	3371.927000000000
8142.696290000000	0.000000000000	2035.291630000000	294.602600000000	14702.369100000000	-1307.632200000000
-844.593811000000	-2035.291630000000	0.000000000000	3371.927000000000	-1307.632200000000	1634.931760000000
13	32	60
2918.000000000000	0.000000000000	0.000000000000	0.000000000000	3909.759770000000	-680.189636000000
0.000000000000	2918.000000000000	0.000000000000	-3909.759770000000	0.000000000000	-915.383850000000
0.000000000000	0.000000000000	2918.000000000000	680.189636000000	915.383850000000	0.000000000000
0.000000000000	-3909.759770000000	680.189636000000	5690.868650000000	206.791489000000	1459.888060000000
3909.759770000000	0.000000000000	915.383850000000	206.791489000000	6218.232910000000	-920.830750000000
-680.189636000000	-915.383850000000	0.000000000000	1459.888060000000	-920.830750000000	1022.061340000000
13	36	60
1179.000000000000	0.000000000000	0.000000000000	0.000000000000	2184.259770000000	282.849518000000
0.000000000000	1179.000000000000	0.000000000000	-2184.259770000000	0.000000000000	892.033752000000
0.000000000000	0.000000000000	1179.000000000000	-282.849518000000	-892.033752000000	0.000000000000
0.000000000000	-2184.259770000000	-282.849518000000	4180.554690000000	217.442825000000	-1656.837040000000
2184.259770000000	0.000000000000	-892.033752000000	217.442825000000	4767.915530000000	527.689148000000
282.849518000000	892.033752000000	0.000000000000	-1656.837040000000	527.689148000000	783.659363000000
13	37	60
4773.000000000000	0.000000000000	0.000000000000	0.000000000000	8549.947270000001	190.104080000000
0.000000000000	4773.000000000000	0.000000000000	-8549.947270000001	0.000000000000	2614.529790000000
0.000000000000	0.000000000000	4773.000000000000	-190.104080000000	-2614.529790000000	0.000000000000
0.000000000000	-8549.947270000001	-190.104080000000	16806.300800000001	331.360382000000	-4897.638180000000
8549.947270000001	0.000000000000	-2614.529790000000	331.360382000000	18102.248000000000	615.396912000000
190.104080000000	2614.529790000000	0.000000000000	-4897.638180000000	615.396912000000	2058.927000000000
13	38	60
5000.000000000000	0.000000000000	0.000000000000	0.000000000000	9043.792970000000	165.934235000000
0.000000000000	5000.000000000000	0.000000000000	-9043.792970000000	0.000000000000	2815.177250000000
0.000000000000	0.000000000000	5000.000000000000	-165.934235000000	-2815.177250000000	0.000000000000
0.000000000000	-9043.792970000000	-165.934235000000	17643.822300000000	249.319031000000	-5289.427250000000
9043.792970000000	0.000000000000	-2815.177250000000	249.319031000000	19182.253900000000	504.843262000000
165.934235000000	2815.177250000000	0.000000000000	-5289.427250000000	504.843262000000	2102.024170000000
13	39	60
4213.000000000000	0.000000000000	0.000000000000	0.000000000000	7689.275390000000	538.670410000000
0.000000000000	4213.000000000000	0.000000000000	-7689.275390000000	0.000000000000	2554.324460000000
0.000000000000	0.000000000000	4213.000000000000	-538.670410000000	-2554.324460000000	0.000000000000
0.000000000000	-7689.275390000000	-538.670410000000	15444.671899999999	532.681335000000	-4900.163570000000
7689.275390000000	0.000000000000	-2554.324460000000	532.681335000000	16661.509800000000	1377.464720000000
538.670410000000	2554.324460000000	0.000000000000	-4900.163570000000	1377.464720000000	2209.222410000000
13	46	60
3931.000000000000	0.000000000000	0.000000000000	0.000000000000	8297.574220000000	2338.851320000000
0.000000000000	3931.000000000000	0.000000000000	-8297.574220000000	0.000000000000	2131.553710000000
0.000000000000	0.000000000000	3931.000000000000	-2338.851320000000	-2131.553710000000	0.000000000000
0.000000000000	-8297.574220000000	-2338.851320000000	19218.363300000001	1252.734860000000	-4359.174800000000
8297.574220000000	0.000000000000	-2131.553710000000	1252.734860000000	19249.607400000001	5046.462890000000
2338.851320000000	2131.553710000000	0.000000000000	-4359.174800000000	5046.462890000000	3107.791500000000
13	47	60
1313.000000000000	0.000000000000	0.000000000000	0.000000000000	2729.743410000000	869.935547000000
0.000000000000	1313.000000000000	0.000000000000	-2729.743410000000	0.000000000000	1032.569700000000
0.000000000000	0.000000000000	1313.000000000000	-869.935547000000	-103
Download .txt
gitextract_aendpbmi/

├── .gitignore
├── 3DLoMatch.pkl
├── LICENSE
├── README.md
├── SC2_PCR.py
├── benchmark_utils.py
├── benchmark_utils_predator.py
├── benchmarks/
│   └── 3DLoMatch/
│       ├── 7-scenes-redkitchen/
│       │   └── gt.info
│       ├── sun3d-home_at-home_at_scan1_2013_jan_1/
│       │   └── gt.info
│       ├── sun3d-home_md-home_md_scan9_2012_sep_30/
│       │   └── gt.info
│       ├── sun3d-hotel_uc-scan3/
│       │   └── gt.info
│       ├── sun3d-hotel_umd-maryland_hotel1/
│       │   └── gt.info
│       ├── sun3d-hotel_umd-maryland_hotel3/
│       │   └── gt.info
│       ├── sun3d-mit_76_studyroom-76-1studyroom2/
│       │   └── gt.info
│       └── sun3d-mit_lab_hj-lab_hj_tea_nov_2_2012_scan1_erika/
│           └── gt.info
├── common.py
├── config.py
├── config_json/
│   ├── config_3DLoMatch.json
│   ├── config_3DMatch.json
│   └── config_KITTI.json
├── dataset.py
├── environment.yml
├── evaluate_metric.py
├── test_3DLoMatch.py
├── test_3DMatch.py
├── test_KITTI.py
└── utils/
    ├── SE3.py
    ├── max_clique.py
    ├── pointcloud.py
    ├── sinkhorn.py
    └── timer.py
Download .txt
SYMBOL INDEX (84 symbols across 15 files)

FILE: SC2_PCR.py
  class Matcher (line 8) | class Matcher():
    method __init__ (line 9) | def __init__(self,
    method pick_seeds (line 33) | def pick_seeds(self, dists, scores, R, max_num):
    method cal_seed_trans (line 61) | def cal_seed_trans(self, seeds, SC2_measure, src_keypts, tgt_keypts):
    method cal_leading_eigenvector (line 168) | def cal_leading_eigenvector(self, M, method='power'):
    method cal_confidence (line 196) | def cal_confidence(self, M, leading_eig, method='eig_value'):
    method post_refinement (line 236) | def post_refinement(self, initial_trans, src_keypts, tgt_keypts, it_nu...
    method match_pair (line 278) | def match_pair(self, src_keypts, tgt_keypts, src_features, tgt_features):
    method SC2_PCR (line 305) | def SC2_PCR(self, src_keypts, tgt_keypts):
    method estimator (line 367) | def estimator(self, src_keypts, tgt_keypts, src_features, tgt_features):

FILE: benchmark_utils.py
  function exact_auc (line 9) | def exact_auc(errors, thresholds):
  function set_seed (line 27) | def set_seed(seed=51):
  function icp_refine (line 40) | def icp_refine(src_keypts, tgt_keypts, pred_trans):
  function is_rotation_matrix (line 59) | def is_rotation_matrix(R):
  function rot_to_euler (line 74) | def rot_to_euler(R):

FILE: benchmark_utils_predator.py
  function rotation_error (line 14) | def rotation_error(R1, R2):
  function translation_error (line 40) | def translation_error(t1, t2):
  function computeTransformationErr (line 56) | def computeTransformationErr(trans, info):
  function read_trajectory (line 78) | def read_trajectory(filename, dim=4):
  function read_trajectory_info (line 118) | def read_trajectory_info(filename, dim=6):
  function extract_corresponding_trajectors (line 151) | def extract_corresponding_trajectors(est_pairs,gt_pairs, gt_traj):
  function evaluate_registration (line 174) | def evaluate_registration(num_fragment, result, result_pairs, gt_pairs, ...

FILE: common.py
  function rigid_transform_3d (line 7) | def rigid_transform_3d(A, B, weights=None, weight_threshold=0):
  function knn (line 48) | def knn(x, k, ignore_self=False, normalized=True):
  class EdgeConv (line 72) | class EdgeConv(nn.Module):
    method __init__ (line 73) | def __init__(self, in_dim, out_dim, k, idx=None):
    method forward (line 81) | def forward(self, x):
  class ContextNormalization (line 106) | class ContextNormalization(nn.Module):
    method __init__ (line 107) | def __init__(self):
    method forward (line 110) | def forward(self, x):
  class PointCN (line 118) | class PointCN(nn.Module):
    method __init__ (line 119) | def __init__(self, in_dim=6, num_layers=6, num_channels=128, act_pos='...
    method forward (line 137) | def forward(self, x):

FILE: config.py
  function add_argument_group (line 9) | def add_argument_group(name):
  function str2bool (line 15) | def str2bool(v):
  function get_config (line 94) | def get_config():

FILE: dataset.py
  class ThreeDLoader (line 8) | class ThreeDLoader(data.Dataset):
    method __init__ (line 9) | def __init__(self,
    method get_data (line 52) | def get_data(self, index):
    method __len__ (line 86) | def __len__(self):
    method __loadlog__ (line 89) | def __loadlog__(self, gtpath):
  class ThreeDLoMatchLoader (line 105) | class ThreeDLoMatchLoader(data.Dataset):
    method __init__ (line 106) | def __init__(self,
    method get_data (line 125) | def get_data(self, index):
    method __len__ (line 190) | def __len__(self):
  class KITTILoader (line 193) | class KITTILoader(data.Dataset):
    method __init__ (line 194) | def __init__(self,
    method get_data (line 218) | def get_data(self, index):
    method __len__ (line 239) | def __len__(self):

FILE: evaluate_metric.py
  class TransformationLoss (line 12) | class TransformationLoss(nn.Module):
    method __init__ (line 13) | def __init__(self, re_thre=15, te_thre=30):
    method forward (line 19) | def forward(self, trans, gt_trans, src_keypts, tgt_keypts, probs):
  class ClassificationLoss (line 66) | class ClassificationLoss(nn.Module):
    method __init__ (line 67) | def __init__(self, balanced=True):
    method forward (line 71) | def forward(self, pred, gt, weight=None):

FILE: test_3DLoMatch.py
  function eval_3DLoMatch_scene (line 18) | def eval_3DLoMatch_scene(loader, matcher, trans_evaluator, cls_evaluator...
  function eval_3DLoMatch (line 81) | def eval_3DLoMatch(config):
  function benchmark_predator (line 122) | def benchmark_predator(pred_poses, gt_folder):

FILE: test_3DMatch.py
  function eval_3DMatch_scene (line 18) | def eval_3DMatch_scene(loader, matcher, trans_evaluator, cls_evaluator, ...
  function eval_3DMatch (line 79) | def eval_3DMatch(config, use_icp):

FILE: test_KITTI.py
  function eval_KITTI_per_pair (line 18) | def eval_KITTI_per_pair(loader, matcher, trans_evaluator, cls_evaluator,...
  function eval_KITTI (line 87) | def eval_KITTI(config):

FILE: utils/SE3.py
  function rotation_matrix (line 5) | def rotation_matrix(num_axis, augment_rotation):
  function translation_matrix (line 32) | def translation_matrix(augment_translation):
  function transform (line 43) | def transform(pts, trans):
  function decompose_trans (line 59) | def decompose_trans(trans):
  function integrate_trans (line 73) | def integrate_trans(R, t):
  function concatenate (line 98) | def concatenate(trans1, trans2):

FILE: utils/max_clique.py
  function pmc (line 14) | def pmc(ei,ej,nnodes,nnedges): #ei, ej is edge list whose index starts f...

FILE: utils/pointcloud.py
  function make_point_cloud (line 5) | def make_point_cloud(pts):
  function make_feature (line 12) | def make_feature(data, dim, npts):
  function estimate_normal (line 20) | def estimate_normal(pcd, radius=0.06, max_nn=30):

FILE: utils/sinkhorn.py
  function log_sinkhorn_iterations (line 9) | def log_sinkhorn_iterations(Z, log_mu, log_nu, iters: int):
  function log_optimal_transport (line 26) | def log_optimal_transport(scores, bins0=None, bins1=None, alpha=None, it...
  function rpmnet_sinkhorn (line 59) | def rpmnet_sinkhorn(log_score, bins0, bins1, iters: int):

FILE: utils/timer.py
  class AverageMeter (line 4) | class AverageMeter(object):
    method __init__ (line 7) | def __init__(self):
    method reset (line 10) | def reset(self):
    method update (line 17) | def update(self, val, n=1):
  class Timer (line 26) | class Timer(object):
    method __init__ (line 29) | def __init__(self):
    method reset (line 36) | def reset(self):
    method tic (line 43) | def tic(self):
    method toc (line 48) | def toc(self, average=True):
Condensed preview — 31 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,299K chars).
[
  {
    "path": ".gitignore",
    "chars": 1799,
    "preview": "# Byte-compiled / optimized / DLL files\n__pycache__/\n*.py[cod]\n*$py.class\n\n# C extensions\n*.so\n\n# Distribution / packagi"
  },
  {
    "path": "LICENSE",
    "chars": 1064,
    "preview": "MIT License\n\nCopyright (c) 2021 ZhiChen\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof"
  },
  {
    "path": "README.md",
    "chars": 6413,
    "preview": "# SC^2-PCR: A Second Order Spatial Compatibility for Efficient and Robust Point Cloud Registration (CVPR 2022)\n\nPyTorch "
  },
  {
    "path": "SC2_PCR.py",
    "chars": 18888,
    "preview": "import torch\nfrom common import knn, rigid_transform_3d\nfrom utils.SE3 import transform\nimport numpy as np\n\n\n\nclass Matc"
  },
  {
    "path": "benchmark_utils.py",
    "chars": 3006,
    "preview": "import torch\nimport numpy as np\nimport random\nimport math\nimport open3d as o3d\nfrom utils.pointcloud import make_point_c"
  },
  {
    "path": "benchmark_utils_predator.py",
    "chars": 8071,
    "preview": "\"\"\"\nScript for benchmarking the 3DMatch test dataset.\n\nAuthor: Zan Gojcic, Shengyu Huang\nLast modified: 30.11.2020\n\"\"\"\n\n"
  },
  {
    "path": "benchmarks/3DLoMatch/7-scenes-redkitchen/gt.info",
    "chars": 329500,
    "preview": "0\t7\t60\n5000.000000000000\t0.000000000000\t0.000000000000\t0.000000000000\t12210.202100000000\t2953.006840000000\n0.00000000000"
  },
  {
    "path": "benchmarks/3DLoMatch/sun3d-home_at-home_at_scan1_2013_jan_1/gt.info",
    "chars": 181380,
    "preview": "0\t30\t60\n5000.000000000000\t0.000000000000\t0.000000000000\t0.000000000000\t12744.660200000000\t-1672.731570000000\n0.000000000"
  },
  {
    "path": "benchmarks/3DLoMatch/sun3d-home_md-home_md_scan9_2012_sep_30/gt.info",
    "chars": 142992,
    "preview": "0\t1\t60\n5000.000000000000\t0.000000000000\t0.000000000000\t0.000000000000\t11744.719700000000\t-2797.413820000000\n0.0000000000"
  },
  {
    "path": "benchmarks/3DLoMatch/sun3d-hotel_uc-scan3/gt.info",
    "chars": 136987,
    "preview": "0\t4\t55\n3036.000000000000\t0.000000000000\t0.000000000000\t0.000000000000\t5390.793950000000\t86.657234200000\n0.000000000000\t3"
  },
  {
    "path": "benchmarks/3DLoMatch/sun3d-hotel_umd-maryland_hotel1/gt.info",
    "chars": 99153,
    "preview": "0\t8\t57\n4010.000000000000\t0.000000000000\t0.000000000000\t0.000000000000\t8415.337890000001\t240.678787000000\n0.000000000000\t"
  },
  {
    "path": "benchmarks/3DLoMatch/sun3d-hotel_umd-maryland_hotel3/gt.info",
    "chars": 30836,
    "preview": "0\t11\t37\n5000.000000000000\t0.000000000000\t0.000000000000\t0.000000000000\t14755.747100000001\t-1158.123660000000\n0.000000000"
  },
  {
    "path": "benchmarks/3DLoMatch/sun3d-mit_76_studyroom-76-1studyroom2/gt.info",
    "chars": 152004,
    "preview": "0\t3\t66\n4464.000000000000\t0.000000000000\t0.000000000000\t0.000000000000\t10732.483399999999\t-2437.557370000000\n0.0000000000"
  },
  {
    "path": "benchmarks/3DLoMatch/sun3d-mit_lab_hj-lab_hj_tea_nov_2_2012_scan1_erika/gt.info",
    "chars": 45507,
    "preview": "0\t2\t38\n1394.000000000000\t0.000000000000\t0.000000000000\t0.000000000000\t4493.447750000000\t-1100.049070000000\n0.00000000000"
  },
  {
    "path": "common.py",
    "chars": 5082,
    "preview": "import torch\nimport torch.nn as nn\nimport torch.nn.functional as F\nfrom utils.SE3 import *\n\n\ndef rigid_transform_3d(A, B"
  },
  {
    "path": "config.py",
    "chars": 4691,
    "preview": "import argparse\nimport time\nimport os\n\narg_lists = []\nparser = argparse.ArgumentParser()\n\n\ndef add_argument_group(name):"
  },
  {
    "path": "config_json/config_3DLoMatch.json",
    "chars": 417,
    "preview": "{\n    \"CUDA_Devices\": \"2\",\n    \"num_iterations\": 10,\n    \"dataset\": \"3DLoMatch\",\n    \"ratio\": 0.2,\n    \"k1\": 30,\n    \"k2"
  },
  {
    "path": "config_json/config_3DMatch.json",
    "chars": 410,
    "preview": "{\n    \"CUDA_Devices\": \"2\",\n    \"num_iterations\": 10,\n    \"dataset\": \"3DMatch\",\n    \"ratio\": 0.2,\n    \"k1\": 30,\n    \"k2\":"
  },
  {
    "path": "config_json/config_KITTI.json",
    "chars": 393,
    "preview": "{\n    \"CUDA_Devices\": \"1\",\n    \"num_iterations\": 20,\n    \"dataset\": \"KITTI\",\n    \"ratio\": 0.2,\n    \"k1\": 30,\n    \"k2\": 2"
  },
  {
    "path": "dataset.py",
    "chars": 10768,
    "preview": "import os\nimport pickle\nimport torch.utils.data as data\nfrom utils.SE3 import *\nimport  torch\n\n\nclass ThreeDLoader(data."
  },
  {
    "path": "environment.yml",
    "chars": 3910,
    "preview": "name: SC2_PCR\nchannels:\n  - pytorch\n  - open3d-admin\n  - conda-forge\n  - defaults\ndependencies:\n  - _libgcc_mutex=0.1=ma"
  },
  {
    "path": "evaluate_metric.py",
    "chars": 4729,
    "preview": "import torch\nimport torch.nn as nn\nimport torch.nn.functional as F\nimport numpy as np\nfrom sklearn.metrics import recall"
  },
  {
    "path": "test_3DLoMatch.py",
    "chars": 10098,
    "preview": "import json\nimport sys\nsys.path.append('.')\nimport argparse\nimport logging\nfrom tqdm import tqdm\nfrom easydict import Ea"
  },
  {
    "path": "test_3DMatch.py",
    "chars": 9028,
    "preview": "import json\nimport sys\nsys.path.append('.')\nimport argparse\nimport logging\nimport torch\nimport numpy as np\nfrom tqdm imp"
  },
  {
    "path": "test_KITTI.py",
    "chars": 7463,
    "preview": "import json\nimport sys\nsys.path.append('.')\nimport argparse\nimport logging\nfrom tqdm import tqdm\nfrom easydict import Ea"
  },
  {
    "path": "utils/SE3.py",
    "chars": 3818,
    "preview": "import torch\nimport random\nimport numpy as np\n\ndef rotation_matrix(num_axis, augment_rotation):\n    \"\"\"\n    Sample rotat"
  },
  {
    "path": "utils/max_clique.py",
    "chars": 1443,
    "preview": "#!/usr/bin/python\n# -*- coding: utf-8 -*-\n'''\nCode borrowed from https://github.com/ryanrossi/pmc/blob/master/pmc.py\nFin"
  },
  {
    "path": "utils/pointcloud.py",
    "chars": 655,
    "preview": "import open3d as o3d\nimport torch\n\n\ndef make_point_cloud(pts):\n    if isinstance(pts, torch.Tensor):\n        pts = pts.d"
  },
  {
    "path": "utils/sinkhorn.py",
    "chars": 2477,
    "preview": "import torch\n\n'''\nReference:\nhttps://github.com/magicleap/SuperGluePretrainedNetwork/blob/c0626d58c843ee0464b0fa1dd4de40"
  },
  {
    "path": "utils/timer.py",
    "chars": 1332,
    "preview": "import time\n\n\nclass AverageMeter(object):\n    \"\"\"Computes and stores the average and current value\"\"\"\n\n    def __init__("
  }
]

// ... and 1 more files (download for full content)

About this extraction

This page contains the full source code of the ZhiChen902/SC2-PCR GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 31 files (1.2 MB), approximately 539.8k tokens, and a symbol index with 84 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!