├── src
├── vite-env.d.ts
├── layouts
│ ├── index.module.scss
│ └── index.tsx
├── assets
│ ├── images
│ │ └── gradient.png
│ └── react.svg
├── THREE
│ ├── models
│ │ └── examples
│ │ │ ├── cube.fbx
│ │ │ ├── ball.mtl
│ │ │ ├── cone.mtl
│ │ │ └── cone.obj
│ ├── atmosphere.ts
│ └── index.ts
├── App.tsx
├── declare
│ └── THREE
│ │ ├── addons.ts
│ │ └── index.ts
├── main.tsx
├── constant
│ └── THREE
│ │ └── BuiltinShaderAttributeName.ts
├── utils
│ ├── VerticesDuplicateRemove.ts
│ └── GetFlatGeometry.ts
├── pages
│ └── IndexPage
│ │ ├── index.module.scss
│ │ └── index.tsx
├── App.scss
└── index.css
├── Img
└── 1.jpg
├── tsconfig.node.json
├── .gitignore
├── index.html
├── vite.config.ts
├── tsconfig.json
├── .eslintrc.cjs
├── LICENSE
├── package.json
├── public
└── vite.svg
└── README.md
/src/vite-env.d.ts:
--------------------------------------------------------------------------------
1 | import 'vite/client'
2 |
--------------------------------------------------------------------------------
/src/layouts/index.module.scss:
--------------------------------------------------------------------------------
1 | .layout {
2 | width: 100%;
3 | height: 100%;
4 | }
--------------------------------------------------------------------------------
/Img/1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/QingXia-Ela/Up2017-Particles-Effect-Template/HEAD/Img/1.jpg
--------------------------------------------------------------------------------
/src/assets/images/gradient.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/QingXia-Ela/Up2017-Particles-Effect-Template/HEAD/src/assets/images/gradient.png
--------------------------------------------------------------------------------
/src/THREE/models/examples/cube.fbx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/QingXia-Ela/Up2017-Particles-Effect-Template/HEAD/src/THREE/models/examples/cube.fbx
--------------------------------------------------------------------------------
/src/THREE/models/examples/ball.mtl:
--------------------------------------------------------------------------------
1 | # Blender MTL File: 'None'
2 | # Material Count: 1
3 |
4 | newmtl None
5 | Ns 500
6 | Ka 0.8 0.8 0.8
7 | Kd 0.8 0.8 0.8
8 | Ks 0.8 0.8 0.8
9 | d 1
10 | illum 2
11 |
--------------------------------------------------------------------------------
/src/THREE/models/examples/cone.mtl:
--------------------------------------------------------------------------------
1 | # Blender MTL File: 'None'
2 | # Material Count: 1
3 |
4 | newmtl None
5 | Ns 500
6 | Ka 0.8 0.8 0.8
7 | Kd 0.8 0.8 0.8
8 | Ks 0.8 0.8 0.8
9 | d 1
10 | illum 2
11 |
--------------------------------------------------------------------------------
/src/App.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import './App.scss'
3 | import Layout from './layouts'
4 |
5 | function App() {
6 | return (
7 |
8 | )
9 | }
10 |
11 | export default App
12 |
--------------------------------------------------------------------------------
/src/declare/THREE/addons.ts:
--------------------------------------------------------------------------------
1 | export abstract class addonsBasic {
2 | public Geometry?: THREE.Object3D
3 | /** 渲染更新函数 */
4 | public update?: Function
5 | /** 模型改变触发函数 */
6 | public ChangeModel?: (...args: any) => void
7 | }
8 |
--------------------------------------------------------------------------------
/tsconfig.node.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "composite": true,
4 | "module": "ESNext",
5 | "moduleResolution": "Node",
6 | "allowSyntheticDefaultImports": true
7 | },
8 | "include": ["vite.config.ts"]
9 | }
10 |
--------------------------------------------------------------------------------
/src/main.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react'
2 | import ReactDOM from 'react-dom/client'
3 | import App from './App'
4 | import './index.css'
5 |
6 | ReactDOM.createRoot(document.getElementById('root') as Element).render(
7 |
8 |
9 |
10 | )
11 |
--------------------------------------------------------------------------------
/src/layouts/index.tsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react'
2 | import Styles from './index.module.scss'
3 | import IndexPage from '@/pages/IndexPage'
4 |
5 | function Layout() {
6 | return (
7 |
8 |
9 |
10 | )
11 | }
12 |
13 | export default Layout
14 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # Logs
2 | logs
3 | *.log
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 | pnpm-debug.log*
8 | lerna-debug.log*
9 |
10 | node_modules
11 | dist
12 | dist-ssr
13 | *.local
14 |
15 | # Editor directories and files
16 | .vscode/*
17 | !.vscode/extensions.json
18 | .idea
19 | .DS_Store
20 | *.suo
21 | *.ntvs*
22 | *.njsproj
23 | *.sln
24 | *.sw?
25 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Vite + React + TS
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/src/constant/THREE/BuiltinShaderAttributeName.ts:
--------------------------------------------------------------------------------
1 | export default [
2 | 'position',
3 | 'normal',
4 | 'uv',
5 | 'color',
6 | 'skinIndex',
7 | 'skinWeight',
8 | 'instanceMatri',
9 | 'morphTarget0',
10 | 'morphTarget1',
11 | 'morphTarget2',
12 | 'morphTarget3',
13 | 'morphTarget4',
14 | 'morphTarget5',
15 | 'morphTarget6',
16 | 'morphTarget7',
17 | 'morphNormal0',
18 | 'morphNormal1',
19 | 'morphNormal2',
20 | 'morphNormal3'
21 | ]
22 |
--------------------------------------------------------------------------------
/src/utils/VerticesDuplicateRemove.ts:
--------------------------------------------------------------------------------
1 | /**
2 | * 数组粒子去重方法
3 | * @param arr 待去重的数组
4 | * @returns {Float32Array}
5 | */
6 | export default function VerticesDuplicateRemove(arr: Float32Array) {
7 | const set = new Set(); let t = []
8 | for (let i = 0; i < arr.length; i++) {
9 | t.push(arr[i])
10 | if (i % 3 === 2) {
11 | set.add(t.join(','))
12 | t = []
13 | }
14 | }
15 | const res: number[] = []
16 | set.forEach((val) => {
17 | res.push(...val.split(',').map((val) => Number(val)))
18 | })
19 |
20 | return new Float32Array(res)
21 | }
22 |
--------------------------------------------------------------------------------
/src/pages/IndexPage/index.module.scss:
--------------------------------------------------------------------------------
1 | .index_page {
2 | width: 100%;
3 | height: 100%;
4 | }
5 |
6 | .canvas_wrapper {
7 | position: fixed;
8 | top: 0;
9 | left: 0;
10 | right: 0;
11 | bottom: 0;
12 | }
13 |
14 | .list,
15 | .function_list {
16 | position: fixed;
17 | right: .6rem;
18 | top: 50%;
19 | width: fit-content;
20 | transform: translateY(-50%);
21 |
22 | li {
23 | width: fit-content;
24 | color: #fff;
25 | font-size: .4rem;
26 | cursor: pointer;
27 | opacity: .8;
28 |
29 | &:hover {
30 | opacity: 1;
31 | }
32 | }
33 | }
34 |
35 | .list {
36 | right: .6rem;
37 |
38 | }
39 |
40 | .function_list {
41 | left: .6rem;
42 | }
--------------------------------------------------------------------------------
/src/App.scss:
--------------------------------------------------------------------------------
1 | #root {
2 | width: 100%;
3 | height: 100%;
4 | background-color: #0a0d1b;
5 | }
6 |
7 | .logo {
8 | height: 6em;
9 | padding: 1.5em;
10 | will-change: filter;
11 | }
12 |
13 | .logo:hover {
14 | filter: drop-shadow(0 0 2em #646cffaa);
15 | }
16 |
17 | .logo.react:hover {
18 | filter: drop-shadow(0 0 2em #61dafbaa);
19 | }
20 |
21 | @keyframes logo-spin {
22 | from {
23 | transform: rotate(0deg);
24 | }
25 |
26 | to {
27 | transform: rotate(360deg);
28 | }
29 | }
30 |
31 | @media (prefers-reduced-motion: no-preference) {
32 | a:nth-of-type(2) .logo {
33 | animation: logo-spin infinite 20s linear;
34 | }
35 | }
36 |
37 | .card {
38 | padding: 2em;
39 | }
40 |
41 | .read-the-docs {
42 | color: #888;
43 | }
--------------------------------------------------------------------------------
/vite.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'vite'
2 | import react from '@vitejs/plugin-react'
3 | import { splitVendorChunkPlugin } from 'vite'
4 | import viteCompression from 'vite-plugin-compression';
5 | import path from 'path'
6 |
7 | // https://vitejs.dev/config/
8 | export default defineConfig({
9 | base: '/up2017-particle-effect/',
10 | server: {
11 | host: '0.0.0.0',
12 | port: 5173
13 | },
14 | plugins: [
15 | react(),
16 | splitVendorChunkPlugin(),
17 | viteCompression()
18 | ],
19 | resolve: {
20 | alias: {
21 | "@": path.resolve(__dirname, './src/'),
22 | "@components/*": path.resolve(__dirname, './src/'),
23 | "@constant/*": path.resolve(__dirname, './src/constant/'),
24 | "@declare/*": path.resolve(__dirname, './src/declare/'),
25 | "@THREE/*": path.resolve(__dirname, './src/THREE/'),
26 | }
27 | }
28 | })
29 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "target": "ESNext",
4 | "useDefineForClassFields": true,
5 | "lib": ["DOM", "DOM.Iterable", "ESNext"],
6 | "allowJs": false,
7 | "skipLibCheck": true,
8 | "esModuleInterop": false,
9 | "allowSyntheticDefaultImports": true,
10 | "strict": true,
11 | "forceConsistentCasingInFileNames": true,
12 | "module": "ESNext",
13 | "moduleResolution": "Node",
14 | "resolveJsonModule": true,
15 | "isolatedModules": true,
16 | "noEmit": true,
17 | "jsx": "react-jsx",
18 | "baseUrl": ".",
19 | "paths": {
20 | "@/*":["src/*"],
21 | "@components/*": ["src/components/*"],
22 | "@constant/*": ["src/constant/*"],
23 | "@declare/*": ["src/declare/*"],
24 | "@THREE/*": ["src/THREE/*"]
25 | }
26 | },
27 | "include": ["src"],
28 | "references": [{ "path": "./tsconfig.node.json" }]
29 | }
30 |
--------------------------------------------------------------------------------
/.eslintrc.cjs:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | env: {
3 | browser: true,
4 | es2021: true
5 | },
6 | extends: [
7 | 'plugin:react/recommended',
8 | 'standard-with-typescript'
9 | ],
10 | overrides: [
11 | ],
12 | parserOptions: {
13 | parser: 'babel-eslint',
14 | ecmaVersion: 'latest',
15 | sourceType: 'module',
16 | project: './tsconfig.json',
17 | ecmaFeatures: {
18 | jsx: true,
19 | tsx: true
20 | }
21 | },
22 | plugins: [
23 | 'react'
24 | ],
25 | rules: {
26 | '@typescript-eslint/explicit-function-return-type': 'off',
27 | 'space-before-function-paren': 'off',
28 | '@typescript-eslint/space-before-function-paren': 'off',
29 | '@typescript-eslint/no-unused-vars': 'warn',
30 | '@typescript-eslint/no-non-null-assertion': 'off',
31 | '@typescript-eslint/prefer-optional-chain': 'off',
32 | 'no-useless-call': 'off'
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2022-present QingXia-Ela
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "up2017-particles-effect-template",
3 | "private": true,
4 | "version": "0.0.0",
5 | "type": "module",
6 | "scripts": {
7 | "dev": "vite",
8 | "build": "tsc && vite build",
9 | "preview": "vite preview"
10 | },
11 | "dependencies": {
12 | "@tweenjs/tween.js": "^18.6.4",
13 | "lodash": "^4.17.21",
14 | "react": "^18.2.0",
15 | "react-dom": "^18.2.0",
16 | "three": "^0.145.0"
17 | },
18 | "devDependencies": {
19 | "@types/lodash": "^4.14.186",
20 | "@types/node": "^18.11.0",
21 | "@types/react": "^18.0.17",
22 | "@types/react-dom": "^18.0.6",
23 | "@types/three": "^0.144.0",
24 | "@typescript-eslint/eslint-plugin": "^5.40.0",
25 | "@vitejs/plugin-react": "^2.1.0",
26 | "eslint": "^8.25.0",
27 | "eslint-config-standard-with-typescript": "^23.0.0",
28 | "eslint-plugin-import": "^2.26.0",
29 | "eslint-plugin-n": "^15.3.0",
30 | "eslint-plugin-promise": "^6.1.0",
31 | "eslint-plugin-react": "^7.31.10",
32 | "node-sass": "^7.0.3",
33 | "prettier": "2.7.1",
34 | "sass": "^1.55.0",
35 | "sass-loader": "^10.3.1",
36 | "typescript": "^4.8.4",
37 | "vite": "^3.2.7",
38 | "vite-plugin-compression": "^0.5.1"
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/public/vite.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/utils/GetFlatGeometry.ts:
--------------------------------------------------------------------------------
1 | import * as THREE from 'three'
2 | import g from '@/assets/images/gradient.png'
3 |
4 | export default function GetFlatGeometry() {
5 | const AMOUNTX = 50
6 | const AMOUNTY = 50
7 | const SEPARATION = 100
8 | const numParticles = AMOUNTX * AMOUNTY
9 | const vertices = new Float32Array(numParticles * 3)
10 | const scales = new Float32Array(numParticles)
11 |
12 | let i = 0
13 | const TextureLoader = new THREE.TextureLoader()
14 | const material = new THREE.PointsMaterial({
15 | // 粒子大小
16 | size: 5,
17 | // false:粒子尺寸相同 ;true:取决于摄像头远近
18 | sizeAttenuation: true,
19 | transparent: true,
20 | opacity: 1,
21 | blending: THREE.AdditiveBlending,
22 | depthWrite: false,
23 | map: TextureLoader.load(g)
24 | })
25 |
26 | for (let ix = 0; ix < AMOUNTX; ix++) {
27 | for (let iy = 0; iy < AMOUNTY; iy++) {
28 | vertices[i] = ix * SEPARATION - ((AMOUNTX * SEPARATION) / 2) // x
29 | vertices[i + 1] = -300 // y
30 | vertices[i + 2] = iy * SEPARATION - ((AMOUNTY * SEPARATION) / 2) // z
31 | i += 3
32 | }
33 | }
34 |
35 | const geometry = new THREE.BufferGeometry()
36 | geometry.setAttribute(
37 | 'position',
38 | new THREE.Float32BufferAttribute(vertices, 3)
39 | )
40 | geometry.setAttribute('scale', new THREE.BufferAttribute(scales, 1))
41 | const points = new THREE.Points(geometry, material)
42 | const wave = points.geometry
43 | // console.log(wave);
44 | wave.attributes.position.needsUpdate = true
45 | // wave.translate(0, -500, 0)
46 | // wave.rotateY(-30)
47 | return wave
48 | }
49 |
--------------------------------------------------------------------------------
/src/index.css:
--------------------------------------------------------------------------------
1 | :root {
2 | font-family: Inter, Avenir, Helvetica, Arial, sans-serif;
3 | line-height: 24px;
4 | font-weight: 400;
5 |
6 | color-scheme: light dark;
7 | color: rgba(255, 255, 255, 0.87);
8 | background-color: #242424;
9 |
10 | font-synthesis: none;
11 | text-rendering: optimizeLegibility;
12 | -webkit-font-smoothing: antialiased;
13 | -moz-osx-font-smoothing: grayscale;
14 | -webkit-text-size-adjust: 100%;
15 | }
16 |
17 | * {
18 | margin: 0;
19 | padding: 0;
20 | box-sizing: border-box;
21 | }
22 |
23 | a {
24 | font-weight: 500;
25 | color: #646cff;
26 | text-decoration: inherit;
27 | }
28 |
29 | a:hover {
30 | color: #535bf2;
31 | }
32 |
33 | html {
34 | font-size: 50px;
35 | width: 100%;
36 | height: 100%;
37 | overflow: hidden;
38 | }
39 |
40 | body {
41 | width: 100%;
42 | height: 100%;
43 | overflow: hidden;
44 | }
45 |
46 | h1 {
47 | font-size: 3.2em;
48 | line-height: 1.1;
49 | }
50 |
51 | button {
52 | border-radius: 8px;
53 | border: 1px solid transparent;
54 | padding: 0.6em 1.2em;
55 | font-size: 1em;
56 | font-weight: 500;
57 | font-family: inherit;
58 | background-color: #1a1a1a;
59 | cursor: pointer;
60 | transition: border-color 0.25s;
61 | }
62 |
63 | button:hover {
64 | border-color: #646cff;
65 | }
66 |
67 | button:focus,
68 | button:focus-visible {
69 | outline: 4px auto -webkit-focus-ring-color;
70 | }
71 |
72 | @media (prefers-color-scheme: light) {
73 | :root {
74 | color: #213547;
75 | background-color: #ffffff;
76 | }
77 |
78 | a:hover {
79 | color: #747bff;
80 | }
81 |
82 | button {
83 | background-color: #f9f9f9;
84 | }
85 | }
--------------------------------------------------------------------------------
/src/THREE/atmosphere.ts:
--------------------------------------------------------------------------------
1 | import * as THREE from 'three'
2 | import g from '@/assets/images/gradient.png'
3 | import { addonsBasic } from '../declare/THREE/addons'
4 |
5 | export interface AtmosphereParticleProps {
6 | longestDistance: number
7 | particleSum: number
8 | renderUpdate?: (Point: THREE.Points) => void
9 | callback?: (Point: THREE.Points) => void
10 | onChangeModel?: (Point: THREE.Points) => void
11 | }
12 |
13 | const loader = new THREE.TextureLoader()
14 | loader.crossOrigin = ''
15 |
16 | const n = new THREE.PointsMaterial({
17 | size: 7,
18 | map: loader.load(g),
19 | blending: THREE.AdditiveBlending,
20 | depthWrite: false,
21 | transparent: true
22 | })
23 |
24 | function getRangeRandom(e: number, t: number) {
25 | return Math.random() * (t - e) + e
26 | }
27 |
28 | class AtmosphereParticle extends addonsBasic {
29 | private readonly longestDistance: number
30 | private readonly particleSum: number
31 | private readonly renderUpdate?: (Point: THREE.Points) => void
32 | private readonly onChangeModel?: (Point: THREE.Points) => void
33 | private readonly callback?: (Point: THREE.Points) => void
34 | public Geometry?: THREE.Points
35 |
36 | constructor(options: AtmosphereParticleProps) {
37 | super()
38 | const { longestDistance, particleSum, renderUpdate, onChangeModel } = options
39 | this.longestDistance = longestDistance
40 | this.particleSum = particleSum
41 | this.renderUpdate = renderUpdate
42 | this.onChangeModel = onChangeModel
43 |
44 | const vertices = []
45 | for (let i = 0; i < this.particleSum; i++) {
46 | const x = getRangeRandom(-1 * longestDistance, longestDistance)
47 | const y = getRangeRandom(-1 * longestDistance, longestDistance)
48 | const z = getRangeRandom(-1 * longestDistance, longestDistance)
49 | vertices.push(x, y, z)
50 | }
51 | const geometry = new THREE.BufferGeometry()
52 | geometry.setAttribute('position', new THREE.Float32BufferAttribute(vertices, 3))
53 | this.Geometry = new THREE.Points(geometry, n)
54 | options.callback?.call(this, this.Geometry)
55 | }
56 |
57 | update = () => {
58 | this.renderUpdate?.call(this, this.Geometry!)
59 | }
60 |
61 | ChangeModel = () => {
62 | this.onChangeModel?.call(this, this.Geometry!)
63 | }
64 | }
65 |
66 | export default AtmosphereParticle
67 |
--------------------------------------------------------------------------------
/src/assets/react.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/declare/THREE/index.ts:
--------------------------------------------------------------------------------
1 | import { OBJLoader } from 'three/examples/jsm/loaders/OBJLoader'
2 | import { FBXLoader } from 'three/examples/jsm/loaders/FBXLoader'
3 | import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader'
4 | import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader'
5 | import { MMDLoader } from 'three/examples/jsm/loaders/MMDLoader'
6 | import { PCDLoader } from 'three/examples/jsm/loaders/PCDLoader'
7 | import { PDBLoader } from 'three/examples/jsm/loaders/PDBLoader'
8 | import { PRWMLoader } from 'three/examples/jsm/loaders/PRWMLoader'
9 | import { SVGLoader } from 'three/examples/jsm/loaders/SVGLoader'
10 |
11 | import type { Tween as TweenProps } from '@tweenjs/tween.js'
12 |
13 | export type ALL_LOADER = OBJLoader | FBXLoader | DRACOLoader | GLTFLoader | MMDLoader | PCDLoader | PDBLoader | PRWMLoader | SVGLoader
14 |
15 | export interface TWEEN_POINT {
16 | x: number
17 | y: number
18 | z: number
19 | /** tween 实例 */
20 | tweenctx?: TweenProps
21 | /** 粒子是否处于模型切换中的状态 */
22 | isPlaying?: boolean
23 | }
24 |
25 | export interface CustomLoader {
26 | /** 加载器实例 */
27 | loaderInstance: ALL_LOADER
28 | /**
29 | * 完成加载的回调函数
30 | *
31 | * 接受的参数是你指定加载器加载后的结果,比如 obj 和 fbx 就是 `Group` 实例,gltf 就是 `GLTF` 实例
32 | *
33 | * 你需要返回一个 `BufferGeometry` 对象,他记录着你想展示的模型的所有顶点信息
34 | */
35 | load: (...args: any) => THREE.BufferGeometry
36 | }
37 |
38 | export interface ParticleModelProps {
39 | /** 模型名字,请确保是唯一名字 */
40 | name: string
41 | /**
42 | * 自定义 Geometry,传入后则会取消从指定路径加载的功能
43 | *
44 | * **通过这种方式设置的几何体不会通过内置的粒子去重方法进行处理**,可以引入 `src/utils` 下的去重方法自行处理
45 | */
46 | geometry?: THREE.BufferGeometry
47 | /**
48 | * 模型路径,相对当前文件路径引入,如果传入了自定义 geometry 可以省略
49 | *
50 | * 可以查看这篇指南引入:https://vitejs.cn/vite3-cn/guide/assets.html#new-url-url-import-meta-url
51 | */
52 | path?: string
53 | /**
54 | * 自定义加载器
55 | * @example
56 | * loader: {
57 | * loaderInstance: new OBJLoader(),
58 | * // OBJLoader 读取出的模型是 group
59 | * load: (group) => {
60 | * let finalVertices = new Float32Array([]), finalGeometry = new THREE.BufferGeometry()
61 | * // 对 group 提取其坐标点
62 | * for (const i of group.children) {
63 | * const arr = i.geometry.attributes.position.array
64 | * finalVertices = new Float32Array([...finalVertices, ...arr])
65 | * }
66 | * // 设置属性
67 | * finalGeometry.setAttribute('position', new THREE.BufferAttribute(finalVertices, 3))
68 | * // 返回结果
69 | * return finalGeometry
70 | * }
71 | * }
72 | */
73 | loader?: CustomLoader
74 | /**
75 | * 是否需要进行粒子去重
76 | *
77 | * 通过加载器加载的几何体对于每一个面都进行了一次粒子的单独计算,这样会造成大量粒子的位置重叠,增加不必要的性能开销与影响体验,因此该功能会默认开启
78 | *
79 | * 本质上是对 `BufferGeometry` 内的数组进行粒子位置去重,如果自定义模型展示不正常可以考虑关闭该功能
80 | * @default true
81 | */
82 | NeedRemoveDuplicateParticle?: boolean
83 | /**
84 | * 模型加载完成后的回调
85 | *
86 | * @param {THREE.BufferGeometry} Geometry 加载完成后的几何体
87 | * */
88 | onLoadComplete?: (Geometry: THREE.BufferGeometry) => void
89 | /**
90 | * 开始进入该模型时触发的回调
91 | * @param {THREE.Points} PointGeometry 表演粒子实例
92 | * */
93 | onEnterStart?: (PointGeometry: THREE.Points) => void
94 | /**
95 | * 模型切换完成时触发的回调
96 | *
97 | * **注意!**只有在模型彻底切换完成后才会触发,中途切换则不会触发该钩子
98 | *
99 | * @param {THREE.Points} PointGeometry 表演粒子实例
100 | */
101 | onEnterEnd?: (PointGeometry: THREE.Points) => void
102 | /**
103 | * 动画帧更新时的回调
104 | *
105 | * 执行区间:模型开始入场时 -> 切换到其他模型时的第一帧
106 | *
107 | * @param PerfromPoint 表演粒子实例,即渲染到屏幕上的实例
108 | * @param TweenList tween 实例列表
109 | * @param Geometry 原几何体
110 | * @returns 一个 `boolean` 值或不返回任何内容,如果返回 `true` 则会帮你自动更新表演粒子的几何体上的所有 `attribute` 属性,详情见:
111 | * https://threejs.org/docs/index.html#api/zh/core/BufferAttribute.needsUpdate
112 | */
113 | onAnimationFrameUpdate?: (PerfromPoint: THREE.Points, TweenList: TWEEN_POINT[], Geometry: THREE.BufferGeometry) => unknown
114 | }
115 |
--------------------------------------------------------------------------------
/src/pages/IndexPage/index.tsx:
--------------------------------------------------------------------------------
1 | import * as React from 'react'
2 | import Styles from './index.module.scss'
3 | import ParticleSystem from '@/THREE'
4 | import { useEffect, useRef } from 'react'
5 | import AtmosphereParticle from '@/THREE/atmosphere'
6 | import { ParticleModelProps } from '@/declare/THREE'
7 | import Tween from '@tweenjs/tween.js'
8 | import GetFlatGeometry from '@/utils/GetFlatGeometry'
9 | import { BufferGeometry, Float32BufferAttribute } from 'three'
10 | import VerticesDuplicateRemove from '@/utils/VerticesDuplicateRemove'
11 | import { FBXLoader } from 'three/examples/jsm/loaders/FBXLoader'
12 |
13 | function IndexPage() {
14 | const wrapper = useRef(null)
15 | let MainParticle: ParticleSystem | null = null
16 |
17 | const TurnBasicNum = { firefly: 0.002 }
18 | const al = 1500
19 |
20 | const tween2 = new Tween.Tween(TurnBasicNum).easing(Tween.Easing.Exponential.In)
21 | const tween1 = new Tween.Tween(TurnBasicNum).easing(Tween.Easing.Exponential.In)
22 |
23 | const Atomsphere1 = new AtmosphereParticle({
24 | longestDistance: al,
25 | particleSum: 500,
26 | renderUpdate: (Point) => {
27 | Point.rotation.x -= TurnBasicNum.firefly
28 | },
29 | callback: (Point) => {
30 | Point.position.z = -1 * al
31 | },
32 | onChangeModel: () => {
33 | tween2.stop()
34 | tween1.stop().to({ firefly: 0.04 }, 1500).chain(tween2)
35 | tween2.to({ firefly: 0.002 }, 1500)
36 | tween1.start()
37 | }
38 | })
39 | const Atomsphere2 = new AtmosphereParticle({
40 | longestDistance: al,
41 | particleSum: 500,
42 | renderUpdate: (Point) => {
43 | Point.rotation.y += TurnBasicNum.firefly
44 | },
45 | callback: (Point) => {
46 | Point.position.y = -0.2 * al
47 | Point.position.z = -1 * al
48 | }
49 | })
50 | const Atomsphere3 = new AtmosphereParticle({
51 | longestDistance: al,
52 | particleSum: 500,
53 | renderUpdate: (Point) => {
54 | Point.rotation.z += TurnBasicNum.firefly / 2
55 | },
56 | callback: (Point) => {
57 | Point.position.z = -1.2 * al
58 | }
59 | })
60 |
61 | const scaleNum = 600
62 | let Q = 0
63 | const Models: ParticleModelProps[] = [
64 | {
65 | name: 'cube',
66 | path: new URL('../../THREE/models/examples/cube.fbx', import.meta.url).href,
67 | onLoadComplete(Geometry) {
68 | const s = 400
69 | Geometry.scale(s, s, s)
70 | },
71 | loader: {
72 | loaderInstance: new FBXLoader(),
73 | load(group) {
74 | const g = new BufferGeometry()
75 | console.log(group)
76 | let arr = new Float32Array([])
77 | for (const i of group.children) {
78 | arr = new Float32Array([...arr, ...i.geometry.attributes.position.array])
79 | }
80 | g.setAttribute('position', new Float32BufferAttribute(VerticesDuplicateRemove(arr), 3))
81 | return g
82 | }
83 | }
84 | },
85 | {
86 | name: 'ball',
87 | path: new URL('../../THREE/models/examples/ball.obj', import.meta.url).href,
88 | onLoadComplete(Geometry) {
89 | Geometry.scale(scaleNum, scaleNum, scaleNum)
90 | Geometry.translate(-600, 0, -100)
91 | },
92 | onEnterStart(PointGeometry) {
93 | console.log('ball enter start')
94 | },
95 | onEnterEnd(PointGeometry) {
96 | console.log('ball enter end')
97 | }
98 | },
99 | {
100 | name: 'wave',
101 | geometry: GetFlatGeometry(),
102 | onAnimationFrameUpdate(PerfromPoint, TweenList, Geometry) {
103 | const p = PerfromPoint.geometry.getAttribute('position')
104 | TweenList.forEach((val, i) => {
105 | if (val.isPlaying === false) {
106 | p.setY(i, Math.sin((i + 1 + Q) * 0.3) * 50 + Math.sin((i + Q) * 0.5) * 50 - 500)
107 | }
108 | })
109 | Q += 0.08
110 | return true
111 | }
112 | },
113 | {
114 | name: 'cone',
115 | path: new URL('../../THREE/models/examples/cone.obj', import.meta.url).href,
116 | onLoadComplete(Geometry) {
117 | Geometry.scale(scaleNum, scaleNum, scaleNum)
118 | Geometry.translate(600, 100, -100)
119 | }
120 | }
121 | ]
122 | // @ts-expect-error
123 | window.changeModel = (name: string) => {
124 | if (MainParticle != null) {
125 | MainParticle.ChangeModel(name)
126 | }
127 | }
128 |
129 | useEffect(() => {
130 | if ((MainParticle == null) && wrapper.current != null) {
131 | MainParticle = new ParticleSystem({
132 | CanvasWrapper: wrapper.current,
133 | Models,
134 | addons: [Atomsphere1, Atomsphere2, Atomsphere3],
135 | onModelsFinishedLoad: (point) => {
136 | MainParticle?.ListenMouseMove()
137 | }
138 | })
139 | }
140 | })
141 |
142 | return (
143 |
144 |
145 |
146 | {
147 | Models.map((val) => {
148 | return (
149 | - MainParticle?.ChangeModel(val.name)}>{val.name}
150 | )
151 | })
152 | }
153 |
154 |
155 | - MainParticle?.ListenMouseMove()}>ListenMouseMove
156 | - MainParticle?.StopListenMouseMove()}>StopListenMouseMove
157 | - MainParticle?.AlignCameraCenter()}>AlignCameraCenter
158 | - MainParticle?.AlignCameraCenter(true)}>AlignCameraCenter(immediately)
159 |
160 |
161 | )
162 | }
163 |
164 | export default IndexPage
165 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Up2017-Particles-Effect-Template
2 |
3 | ## 前言
4 |
5 | 这是一个模仿 [UP2017腾讯互动娱乐年度发布会 - 腾讯互动娱乐](http://up.qq.com/act/a20170301pre/index.html#) 的页面模板
6 |
7 | 使用 React + Typescript + ThreeJs 制作
8 |
9 |
10 | ## 项目解析 + 实现过程
11 |
12 | https://blog.shiinafan.top/posts/%E5%9F%BA%E4%BA%8EThreeJs%E5%AE%9E%E7%8E%B0%E7%9A%84%E7%BD%91%E9%A1%B53D%E7%B2%92%E5%AD%90%E6%95%88%E6%9E%9C%E7%BB%8F%E9%AA%8C%E5%88%86%E4%BA%AB/
13 |
14 | ## 使用本项目
15 |
16 | ### 克隆到本地
17 |
18 | ```bash
19 | git clone https://github.com/QingXia-Ela/Up2017-Particles-Effect-Template.git
20 | cd Up2017-Particles-Effect-Template
21 | npm install
22 | ```
23 |
24 | ### 启动项目
25 |
26 | ```
27 | npm run dev
28 | ```
29 |
30 | ### 基本体验
31 |
32 | 启动 dev 后就可以看到如下基本界面:
33 |
34 | 
35 |
36 | 左侧部分是场景部分的 api,右侧是可变化的模型选择
37 |
38 | 核心使用部分位于 `src/pages/IndexPage/index.tsx` 下
39 |
40 | ## 项目核心部分
41 |
42 | 位于 `src/THREE` 下的 `index.ts` 文件是本项目的核心库,配套的部分声明文件在 `src/declare/THREE/index.ts` 下,常量文件在 `src/constant/THREE` 下
43 |
44 | ### 使用核心
45 |
46 | 模型列表
47 |
48 | ```ts
49 | import { ParticleModelProps } from '@/declare/THREE'
50 |
51 | const Models: ParticleModelProps[] = [
52 | // Your Code...
53 | ]
54 |
55 | export default Models
56 | ```
57 |
58 | 组件内使用
59 |
60 | ```tsx
61 | import ParticleSystem from '@/THREE'
62 |
63 | let hasInit = false
64 | function IndexPage() {
65 | const wrapper = useRef(null)
66 |
67 | useEffect(() => {
68 | if (!hasInit) {
69 | hasInit = true
70 | let MainParticle = new ParticleSystem({
71 | CanvasWrapper: wrapper.current,
72 | Models,
73 | onModelsFinishedLoad: (point) => {
74 | MainParticle?.ListenMouseMove()
75 | }
76 | })
77 | }
78 | })
79 |
80 | return (
81 |
84 | )
85 | }
86 | ```
87 |
88 | ### 核心粒子实例 api
89 |
90 | #### 举例使用
91 |
92 | ```ts
93 | const m = new ParticleSystem({
94 | // ...
95 | })
96 |
97 | // 改变模型
98 | m.ChangeModel('111', 2000)
99 | ```
100 |
101 | #### constructor
102 |
103 | 接受一个对象,对象内参数如下:
104 |
105 | | 参数名 | 类型 | 备注 |
106 | | -------------------- | -------------------- | -------------------------------------------------------- |
107 | | CanvasWrapper | HTMLDivElement | 需要将 `canvas` 插入到内部的目标元素 |
108 | | Models | ParticleModelProps[] | 模型列表 |
109 | | addons | | (可选) addons,他应该是一个继承了 `addonsBasic` 类的对象 |
110 | | AnimateDuration | number | (可选) 粒子动画时间,默认 1500 |
111 | | onModelsFinishedLoad | Function | (可选) 所有模型加载完成的回调 |
112 | | LoadingManager | THREE.LoadingManager | (可选) 加载管理器,会被放入默认加载器进行处理 |
113 |
114 | 详细内容可以查看源码
115 |
116 | #### ChangeModel
117 |
118 | 改变当前展示的模型
119 |
120 | | 参数名 | 类型 | 备注 |
121 | | ------ | ------ | ------------------------------------------------------ |
122 | | name | string | 要切换的模型名字,如果指定名字的模型不存在则会抛出警告 |
123 | | time | number | (可选) 动画执行时长,实际表演时长为 `time * 2` |
124 |
125 | `time * 2` 的具体原因可以查看:https://tgideas.qq.com/gicp/news/475/6515254.html?from=list **切换动画** 部分
126 |
127 | #### ListenMouseMove
128 |
129 | 开始监听鼠标移动的钩子,不接受参数,调用后场景会随着鼠标移动产生一个重力感的微小移动
130 |
131 | #### StopListenMouseMove
132 |
133 | 停止监听鼠标移动的钩子,不接受参数
134 |
135 | #### AlignCameraCenter
136 |
137 | 使场景归中,默认归中时是带有重力感的归中方式
138 |
139 | | 参数名 | 类型 | 备注 |
140 | | ----------- | ------- | ------------------------------------------------------------ |
141 | | immediately | boolean | 立即归中,默认为 `false`,启用后场景将立刻归中而不会带着富有重力感的移动模式 |
142 |
143 | ### ParticleModelProps 的配置使用
144 |
145 | `ParticleModelProps ` 对象参数如下:
146 |
147 | | 参数名 | 类型 | 备注 |
148 | | --------------------------- | ----------------------------- | -------------------------------------------- |
149 | | name | string | 模型名字 |
150 | | geometry | (二选一) THREE.BufferGeometry | 自定义几何体,需要拥有 `position` attributes |
151 | | path | (二选一) string | 模型路径,内部使用 `OBJLoader` 进行加载 |
152 | | loader | (可选) CustomLoader | 自定义加载器,内容需自行前往 ts 声明文件查看 |
153 | | NeedRemoveDuplicateParticle | (可选) boolean | 是否需要进行粒子去重,默认为 `true` |
154 | | onLoadComplete | (可选) Function | 模型加载完成后的回调 |
155 | | onEnterStart | (可选) Function | 开始进入该模型时触发的回调 |
156 | | onEnterEnd | (可选) Function | 模型切换完成时触发的回调 |
157 | | onAnimationFrameUpdate | (可选) Function | 动画帧更新时的回调 |
158 |
159 | 详细内容可以前往 `src/declare/THREE/index.ts` 查看
160 |
161 | 其中 `geometry` 和 `path` 是二选一必填项。
162 |
163 | ### 关于 addons
164 |
165 | 这个制作的目标是解决氛围粒子的问题,由于本人 `ts`使用不熟练所以暂时用 `any[]` 进行替代,它原本应该是一个继承了 `addonsBasic` 的子类对象。
166 |
167 | #### 使用方法
168 |
169 | 此处使用的例子是本模板自行编写的氛围例子
170 |
171 | ```ts
172 | import { addonsBasic } from '../declare/THREE/addons'
173 | class AtmosphereParticle extends addonsBasic {
174 | constructor() {
175 | super()
176 | // ...
177 | }
178 |
179 | update() {
180 |
181 | }
182 |
183 | ChangeModel() {
184 |
185 | }
186 | }
187 |
188 | const a = new AtmosphereParticle({
189 | // ...
190 | })
191 |
192 | // 使用
193 | const m = new ParticleSystem({
194 | // ...
195 | addons: [a]
196 | })
197 | ```
198 |
199 | 在 `addonsBasic` 下有两个函数钩子比较重要:
200 |
201 | 1. `update()` 当每一帧更新的时候调用的钩子
202 | 2. `ChangeModel()` 模型改变时触发的钩子
203 |
204 | ## License
205 | [MIT](https://github.com/QingXia-Ela/Up2017-Particles-Effect-Template/blob/main/LICENSE) License
206 |
--------------------------------------------------------------------------------
/src/THREE/index.ts:
--------------------------------------------------------------------------------
1 | import * as THREE from 'three'
2 | import { OBJLoader } from 'three/examples/jsm/loaders/OBJLoader.js'
3 | import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls'
4 | import { EffectComposer } from 'three/examples/jsm/postprocessing/EffectComposer'
5 | import { RenderPass } from 'three/examples/jsm/postprocessing/RenderPass'
6 | import { BloomPass } from 'three/examples/jsm/postprocessing/BloomPass'
7 | import { FilmPass } from 'three/examples/jsm/postprocessing/FilmPass'
8 | import { ShaderPass } from 'three/examples/jsm/postprocessing/ShaderPass'
9 | import { FocusShader } from 'three/examples/jsm/shaders/FocusShader'
10 |
11 | import Tween from '@tweenjs/tween.js'
12 | import type { Group as TweenGroup } from '@tweenjs/tween.js'
13 |
14 | import Stats from 'three/examples/jsm/libs/stats.module.js'
15 | import { throttle } from 'lodash'
16 |
17 | import g from '@/assets/images/gradient.png'
18 | import { ParticleModelProps, TWEEN_POINT } from '@/declare/THREE'
19 | import VerticesDuplicateRemove from '@/utils/VerticesDuplicateRemove.js'
20 | import BuiltinShaderAttributeName from '@/constant/THREE/BuiltinShaderAttributeName'
21 | import { addonsBasic } from '@/declare/THREE/addons'
22 |
23 | function getRangeRandom(e: number, t: number) {
24 | return Math.random() * (t - e) + e
25 | }
26 |
27 | type THREE_POINT = THREE.Points
28 | interface addonsItem extends addonsBasic { }
29 | interface ParticleSystemProps {
30 | CanvasWrapper: HTMLDivElement
31 | Models: ParticleModelProps[]
32 | /** addons,他应该是一个继承了 `addonsBasic` 类的对象,一般用来做氛围粒子 */
33 | addons?: addonsItem[]
34 | /** 粒子动画时间,默认 1500 */
35 | AnimateDuration?: number
36 | /** 所有模型加载完成的回调 */
37 | onModelsFinishedLoad?: (preformPoint: THREE_POINT, scene: THREE.Scene) => void
38 | /** 独立加载器,会被送入默认的加载器进行进度处理 */
39 | LoadingManager?: THREE.LoadingManager
40 | }
41 |
42 | class ParticleSystem {
43 | private readonly CanvasWrapper: HTMLDivElement
44 | private readonly modelList: Map
45 | private _LOAD_COUNT_: number
46 | private readonly ModelPointer: number
47 | private maxParticlesCount: number
48 | private WIDTH: number
49 | private HEIGHT: number
50 | private readonly orbitControls?: OrbitControls
51 | private stats?: Stats
52 | /** 主要表演场景对象 */
53 | public scene?: THREE.Scene
54 | /** 主要相机对象 */
55 | public camera?: THREE.PerspectiveCamera
56 | /** 渲染器 */
57 | public renderer?: THREE.WebGLRenderer
58 | /** 效果器 */
59 | public composer?: EffectComposer
60 | /** 加载进度管理器 */
61 | public manager?: THREE.LoadingManager
62 | /** 粒子默认材质 */
63 | public PointMaterial?: THREE.PointsMaterial
64 | /** 表演粒子,即用于呈现模型的粒子载体对象 */
65 | public AnimateEffectParticle?: THREE.Points
66 |
67 | private readonly AnimateDuration: number
68 | private mouseV: number
69 | private mouseK: number
70 | private hadListenMouseMove?: boolean
71 | private MainParticleGroup?: TweenGroup
72 | private readonly defaultLoader: OBJLoader
73 | /** 表演粒子 tween 实例数组 */
74 | public readonly ParticleAnimeMap: TWEEN_POINT[]
75 | /** 模型数组 */
76 | public Models: Map
77 | /** 额外插件的数组 */
78 | public addons?: any[]
79 | // 函数相关
80 | /** 当所有模型加载完成时进行调用 */
81 | private readonly onModelsFinishedLoad?: (preformPoint: THREE_POINT, scene: THREE.Scene) => void
82 |
83 | /** 对象内置的更新函数,内部使用 `requestAnimationFrame`,每渲染新的一帧时进行调用 */
84 | public onRendering?: (t: number) => void
85 | public CurrentUseModelName?: string
86 | public LastUseModelName?: string
87 |
88 | // 新编写的物体添加核心
89 | constructor(options: ParticleSystemProps) {
90 | const { AnimateDuration, onModelsFinishedLoad, LoadingManager } = options
91 | this.CanvasWrapper = options.CanvasWrapper
92 | this.addons = options.addons != null ? options.addons : []
93 | this.Models = new Map()
94 | for (const i of options.Models) {
95 | this.Models.set(i.name, i)
96 | }
97 | this.AnimateDuration = typeof AnimateDuration === 'number' ? AnimateDuration : 1500
98 | this.onModelsFinishedLoad = onModelsFinishedLoad
99 | this.manager = LoadingManager
100 | this.defaultLoader = new OBJLoader(this.manager)
101 | /** 粒子Map */
102 | this.ParticleAnimeMap = []
103 | /* 宽高 */
104 | this.HEIGHT = window.innerHeight
105 | this.WIDTH = window.innerWidth
106 | /** 模型列表 */
107 | this.modelList = new Map()
108 | /** 已加载的模型数量统计 */
109 | this._LOAD_COUNT_ = 0
110 | /** 模型指针 */
111 | this.ModelPointer = 0
112 | /** 载入模型中粒子的最大数量 */
113 | this.maxParticlesCount = 0
114 | // 创建场景
115 | this.createScene()
116 | // 性能监控插件
117 | this.initStats()
118 | // 载入模型
119 | this._addModels()
120 | // 效果器
121 | this.createEffect()
122 | // 轨道控制插件(鼠标拖拽视角、缩放等)
123 | this.orbitControls = new OrbitControls(this.camera!, this.renderer!.domElement)
124 | this.mouseK = 0
125 | this.mouseV = 0
126 | // 循环更新渲染场景
127 | this.update(0)
128 | }
129 |
130 | private createScene() {
131 | // 创建场景
132 | this.scene = new THREE.Scene()
133 | // 在场景中添加雾的效果,参数分别代表‘雾的颜色’、‘开始雾化的视线距离’、刚好雾化至看不见的视线距离’
134 | this.scene.fog = new THREE.FogExp2(328972, 5e-4)
135 | // 创建相机
136 | const fieldOfView = 100
137 | const aspectRatio = this.WIDTH / this.HEIGHT
138 | const nearPlane = 1
139 | const farPlane = 5e4
140 |
141 | this.camera = new THREE.PerspectiveCamera(fieldOfView, aspectRatio, nearPlane, farPlane)
142 |
143 | // 设置相机的位置
144 | this.camera.position.set(0, 0, 1e3)
145 | this.camera.lookAt(new THREE.Vector3(0, 0, 0))
146 |
147 | // 坐标轴辅助器
148 | const axesHelper = new THREE.AxesHelper(500)
149 | this.scene.add(axesHelper)
150 | // addons 添加
151 | if (this.addons != null) {
152 | this.addons.forEach((val) => {
153 | this.scene?.add(val.Geometry)
154 | })
155 | }
156 | // 创建渲染器
157 | this.renderer = new THREE.WebGLRenderer({
158 | // 在 css 中设置背景色透明显示渐变色
159 | alpha: true
160 | // 开启抗锯齿
161 | // antialias: true,
162 | })
163 | // 自动清理,解决 bloomPass 效果器冲突
164 | this.renderer.autoClear = false
165 | // 渲染背景颜色同雾化的颜色
166 | this.renderer.setClearColor(this.scene.fog.color)
167 | // 定义渲染器的尺寸;在这里它会填满整个屏幕
168 | this.renderer.setSize(this.WIDTH, this.HEIGHT)
169 |
170 | // 打开渲染器的阴影地图
171 | this.renderer.shadowMap.enabled = true
172 | // this.renderer.shadowMapSoft = true;
173 | this.renderer.shadowMap.type = THREE.PCFSoftShadowMap
174 | // 在 HTML 创建的容器中添加渲染器的 DOM 元素
175 | this.CanvasWrapper.appendChild(this.renderer.domElement)
176 | // 监听屏幕,缩放屏幕更新相机和渲染器的尺寸
177 | window.addEventListener('resize', this.handleWindowResize, false)
178 | }
179 |
180 | // 窗口大小变动时调用
181 | private readonly handleWindowResize = () => {
182 | // 更新渲染器的高度和宽度以及相机的纵横比
183 | this.HEIGHT = window.innerHeight
184 | this.WIDTH = window.innerWidth
185 | this.renderer?.setSize(this.WIDTH, this.HEIGHT)
186 | this.composer?.reset()
187 | if (this.camera != null) {
188 | this.camera.aspect = this.WIDTH / this.HEIGHT
189 | this.camera.updateProjectionMatrix()
190 | }
191 | }
192 |
193 | // 性能监控
194 | private initStats() {
195 | this.stats = Stats()
196 | if (this.stats != null) {
197 | // 将性能监控屏区显示在左上角
198 | this.stats.domElement.style.position = 'absolute'
199 | this.stats.domElement.style.bottom = '0px'
200 | this.stats.domElement.style.top = '0px'
201 | this.stats.domElement.style.zIndex = '100'
202 | this.CanvasWrapper.appendChild(this.stats.domElement)
203 | }
204 | }
205 |
206 | // 效果器
207 | private createEffect() {
208 | this.composer = new EffectComposer(this.renderer!)
209 | const renderPass = new RenderPass(this.scene!, this.camera!)
210 | const bloomPass = new BloomPass(0.75)
211 | const filmPass = new FilmPass(0.5, 0.5, 1500, 0)
212 | const shaderPass = new ShaderPass(FocusShader)
213 | shaderPass.uniforms.screenWidth.value = window.innerWidth
214 | shaderPass.uniforms.screenHeight.value = window.innerHeight
215 | shaderPass.uniforms.sampleDistance.value = 0.4
216 | shaderPass.renderToScreen = true
217 |
218 | this.composer.addPass(renderPass)
219 | this.composer.addPass(bloomPass)
220 | this.composer.addPass(filmPass)
221 | this.composer.addPass(shaderPass)
222 | }
223 |
224 | // 添加模型
225 | private _addModels() {
226 | const TextureLoader = new THREE.TextureLoader()
227 | TextureLoader.crossOrigin = ''
228 | this.PointMaterial = new THREE.PointsMaterial({
229 | // 粒子大小
230 | size: 5,
231 | // false:粒子尺寸相同 ;true:取决于摄像头远近
232 | sizeAttenuation: true,
233 | transparent: true,
234 | opacity: 1,
235 | blending: THREE.AdditiveBlending,
236 | depthWrite: false,
237 | map: TextureLoader.load(g)
238 | })
239 | // 读取预置列表
240 | this.Models.forEach((i) => {
241 | let finalGeometry: THREE.BufferGeometry
242 | let finalVertices = new Float32Array([])
243 |
244 | const finishLoad = () => {
245 | // 材质选择
246 | this.modelList.set(i.name, finalGeometry)
247 | // 回调
248 | i.onLoadComplete?.call(this, finalGeometry)
249 | this._LOAD_COUNT_++
250 | // 所有模型加载完后触发播放事件
251 | if (this._LOAD_COUNT_ === this.Models.size) this._finishLoadModal()
252 | }
253 |
254 | if (typeof i.path === 'string') {
255 | if (i.loader != null) {
256 | const { loaderInstance, load } = i.loader
257 | loaderInstance.load(i.path, (args) => {
258 | finalGeometry = load(args)
259 | finishLoad()
260 | })
261 | } else {
262 | this.defaultLoader.load(i.path, (group) => {
263 | for (const j of group.children) {
264 | // @ts-expect-error 不知道是什么原因导致 ts 判断出错
265 | const arr = j.geometry.attributes.position.array
266 | finalVertices = new Float32Array([...finalVertices, ...arr])
267 | }
268 | if (!(i.NeedRemoveDuplicateParticle === false)) finalVertices = VerticesDuplicateRemove(finalVertices)
269 |
270 | finalGeometry = new THREE.BufferGeometry()
271 | // 粒子去重
272 | finalGeometry.setAttribute('position', new THREE.BufferAttribute(finalVertices, 3))
273 | i.geometry = finalGeometry
274 | finishLoad()
275 | })
276 | }
277 | } else if (i.geometry instanceof THREE.BufferGeometry) {
278 | finalGeometry = i.geometry
279 | finishLoad()
280 | }
281 | })
282 | }
283 |
284 | // 完成模型加载
285 | private _finishLoadModal() {
286 | // 获得最大的粒子数量
287 | let maxParticlesCount = 0
288 |
289 | this.modelList.forEach((val) => {
290 | maxParticlesCount = Math.max(maxParticlesCount, val.attributes.position.count)
291 | })
292 |
293 | this.maxParticlesCount = maxParticlesCount
294 | // 基于最大点构建一个动画载体
295 | const vertices = []
296 | const randMaxLength = 1500
297 | this.MainParticleGroup = new Tween.Group()
298 | for (let i = 0; i < maxParticlesCount; i++) {
299 | const x = getRangeRandom(-1 * randMaxLength, randMaxLength)
300 | const y = getRangeRandom(-1 * randMaxLength, randMaxLength)
301 | const z = getRangeRandom(-1 * randMaxLength, randMaxLength)
302 | vertices.push(x, y, z)
303 |
304 | const p: TWEEN_POINT = {
305 | x,
306 | y,
307 | z,
308 | isPlaying: true
309 | }
310 | p.tweenctx = new Tween.Tween(p, this.MainParticleGroup)
311 | .easing(Tween.Easing.Exponential.In)
312 | // 处理内部私有变量
313 | .onComplete((o) => {
314 | // @ts-expect-error
315 | o.tweenctx!._valuesStart.x = o.x
316 | // @ts-expect-error
317 | o.tweenctx!._valuesStart.y = o.y
318 | // @ts-expect-error
319 | o.tweenctx!._valuesStart.z = o.z
320 | o.isPlaying = false
321 | })
322 | .onStart((o) => {
323 | // @ts-expect-error
324 | o.tweenctx!._valuesStart.x = o.x
325 | // @ts-expect-error
326 | o.tweenctx!._valuesStart.y = o.y
327 | // @ts-expect-error
328 | o.tweenctx!._valuesStart.z = o.z
329 | o.isPlaying = true
330 | })
331 | this.ParticleAnimeMap[i] = p
332 | }
333 | const AnimateEffectGeometry = new THREE.BufferGeometry()
334 | AnimateEffectGeometry.setAttribute('position', new THREE.Float32BufferAttribute(vertices, 3, false))
335 | this.AnimateEffectParticle = new THREE.Points(AnimateEffectGeometry, this.PointMaterial)
336 | this.scene?.add(this.AnimateEffectParticle)
337 |
338 | // 开始监听鼠标移动事件
339 | // 钩子
340 | this.onModelsFinishedLoad?.call(this, this.AnimateEffectParticle, this.scene!)
341 | }
342 |
343 | /**
344 | * 修改模型
345 | * @param {string} name 模型名字
346 | * @param {number?} time 动画时间长度,默认 `1500ms`
347 | */
348 | ChangeModel(name: string, time: number = this.AnimateDuration) {
349 | const item = this.modelList.get(name)
350 |
351 | if (item == null) {
352 | console.warn('未找到指定名字的模型,改变操作已终止!传入的名字:' + name.toString())
353 | return
354 | }
355 | const itemHook = this.Models.get(name)
356 | if (this.CurrentUseModelName !== undefined) this.LastUseModelName = this.CurrentUseModelName
357 | this.CurrentUseModelName = name
358 | /** 模型切换开始的钩子 */
359 | itemHook!.onEnterStart?.call(this, this.AnimateEffectParticle!)
360 | const targetModel = item.getAttribute('position')
361 | // !使用断言
362 | const sourceModel = this.AnimateEffectParticle!.geometry.getAttribute('position')
363 | const TimerId = setTimeout(() => {
364 | itemHook!.onEnterEnd?.call(this, this.AnimateEffectParticle!)
365 | }, time * 2)
366 | // 停止当前所有动画
367 | for (let i = 0; i < this.maxParticlesCount; i++) {
368 | const p = this.ParticleAnimeMap[i]
369 | this.ParticleAnimeMap[i]!.isPlaying = true
370 | const cur = i % targetModel.count
371 | // 位置同步,解决 onAnimationFrameUpdate 回调更新时位置错误的问题
372 | p.x = sourceModel.getX(i)
373 | p.y = sourceModel.getY(i)
374 | p.z = sourceModel.getZ(i)
375 | p.tweenctx!.stop()
376 | .to(
377 | {
378 | x: targetModel.array[cur * 3],
379 | y: targetModel.array[cur * 3 + 1],
380 | z: targetModel.array[cur * 3 + 2]
381 | },
382 | time
383 | )
384 | .delay(time * Math.random())
385 | .onUpdate((o) => {
386 | sourceModel.setXYZ(i, o.x, o.y, o.z)
387 | sourceModel.needsUpdate = true
388 | })
389 | .onStop((o) => {
390 | clearTimeout(TimerId)
391 | })
392 | .start()
393 | }
394 | // 触发 addons 的钩子
395 | this.addons?.forEach((val) => {
396 | val.ChangeModel?.call(this)
397 | })
398 | }
399 |
400 | /**
401 | * 开始监听鼠标移动的钩子
402 | *
403 | * 一般在入场动画结束后调用
404 | */
405 | ListenMouseMove() {
406 | if (this.hadListenMouseMove !== true) {
407 | window.addEventListener('mousemove', this.rotateScene)
408 | this.hadListenMouseMove = true
409 | }
410 | }
411 |
412 | /**
413 | * 取消监听鼠标移动的钩子
414 | */
415 | StopListenMouseMove() {
416 | if (this.hadListenMouseMove === true) {
417 | window.removeEventListener('mousemove', this.rotateScene)
418 | this.hadListenMouseMove = false
419 | }
420 | }
421 |
422 | /**
423 | * 场景归中到水平位置
424 | *
425 | * @param immediately 立即归中
426 | */
427 | AlignCameraCenter(immediately = false) {
428 | if (immediately && this.scene != null) {
429 | this.scene.rotation.x = 0
430 | this.scene.rotation.y = 0
431 | this.mouseV = 0
432 | this.mouseK = 0
433 | return
434 | }
435 | const e = new MouseEvent('click', {
436 | clientX: this.WIDTH / 2,
437 | clientY: this.HEIGHT / 2
438 | })
439 | this.rotateScene(e)
440 | }
441 |
442 | /**
443 | * 数组粒子去重方法
444 | * @param arr 待去重的数组
445 | * @returns {Float32Array}
446 | */
447 | VerticesDuplicateRemove(arr: Float32Array) {
448 | const set = new Set(); let t = []
449 | for (let i = 0; i < arr.length; i++) {
450 | t.push(arr[i])
451 | if (i % 3 === 2) {
452 | set.add(t.join(','))
453 | t = []
454 | }
455 | }
456 | const res: number[] = []
457 | set.forEach((val) => {
458 | res.push(...val.split(',').map((val) => Number(val)))
459 | })
460 | return new Float32Array(res)
461 | }
462 |
463 | // 监听鼠标移动旋转场景
464 | private readonly rotateScene = throttle((e: MouseEvent) => {
465 | this.mouseV = 3e-4 * (e.clientX - this.WIDTH / 2)
466 | this.mouseK = 1e-4 * (e.clientY - this.HEIGHT / 2)
467 | }, 100)
468 |
469 | // 更新场景旋转
470 | private _updateRotation() {
471 | if (this.scene != null) {
472 | this.scene.rotation.y += (this.mouseV - this.scene.rotation.y) / 50
473 | this.scene.rotation.x += (this.mouseK - this.scene.rotation.x) / 50
474 | }
475 | }
476 |
477 | // 循环更新渲染
478 | private update(t: number) {
479 | // 动画插件
480 | Tween.update()
481 | // 更新自己的动画组
482 | this.MainParticleGroup?.update()
483 | // 外置的渲染函数
484 | this.onRendering?.call(this, t)
485 | // 性能监测插件
486 | this.stats?.update()
487 | // 场景旋转检测
488 | this._updateRotation()
489 | // 模型 update 钩子更新
490 | this.Models.forEach((val) => {
491 | if (val.name === this.CurrentUseModelName && val.onAnimationFrameUpdate != null) {
492 | if (val.onAnimationFrameUpdate(this.AnimateEffectParticle!, this.ParticleAnimeMap, val.geometry!) === true) {
493 | for (const i of BuiltinShaderAttributeName) {
494 | const p = this.AnimateEffectParticle?.geometry?.getAttribute(i)
495 | if (p != null) {
496 | p.needsUpdate = true
497 | }
498 | }
499 | }
500 | }
501 | })
502 | // addons 执行更新
503 | this.addons?.forEach((val) => {
504 | val.update()
505 | })
506 | // 渲染器执行渲染
507 | // this.renderer.render(this.scene, this.camera);
508 | // 效果器执行渲染,如果不需要效果器请使用上方的渲染模式
509 | this.composer?.render()
510 | // 循环调用
511 | requestAnimationFrame((t) => {
512 | this.update(t)
513 | })
514 | }
515 | }
516 |
517 | export default ParticleSystem
518 |
--------------------------------------------------------------------------------
/src/THREE/models/examples/cone.obj:
--------------------------------------------------------------------------------
1 | # Blender v3.2.2 OBJ File: ''
2 | # www.blender.org
3 | mtllib cone.mtl
4 | o 锥体
5 | v 0.000000 -1.000000 -1.000000
6 | v 0.195090 -1.000000 -0.980785
7 | v 0.382683 -1.000000 -0.923880
8 | v 0.555570 -1.000000 -0.831470
9 | v 0.707107 -1.000000 -0.707107
10 | v 0.831470 -1.000000 -0.555570
11 | v 0.923880 -1.000000 -0.382683
12 | v 0.980785 -1.000000 -0.195090
13 | v 1.000000 -1.000000 0.000000
14 | v 0.980785 -1.000000 0.195090
15 | v 0.923880 -1.000000 0.382683
16 | v 0.831470 -1.000000 0.555570
17 | v 0.707107 -1.000000 0.707107
18 | v 0.555570 -1.000000 0.831470
19 | v 0.382683 -1.000000 0.923880
20 | v 0.195090 -1.000000 0.980785
21 | v -0.000000 -1.000000 1.000000
22 | v -0.195090 -1.000000 0.980785
23 | v -0.382683 -1.000000 0.923880
24 | v -0.555570 -1.000000 0.831470
25 | v -0.707107 -1.000000 0.707107
26 | v -0.831469 -1.000000 0.555570
27 | v -0.923880 -1.000000 0.382684
28 | v -0.980785 -1.000000 0.195090
29 | v -1.000000 -1.000000 -0.000000
30 | v -0.980785 -1.000000 -0.195090
31 | v -0.923879 -1.000000 -0.382684
32 | v -0.831470 -1.000000 -0.555570
33 | v -0.707107 -1.000000 -0.707107
34 | v -0.555570 -1.000000 -0.831470
35 | v -0.382683 -1.000000 -0.923880
36 | v -0.195090 -1.000000 -0.980785
37 | v 0.000000 1.000000 0.000000
38 | v 0.032515 -1.000000 -0.996798
39 | v 0.065030 -1.000000 -0.993595
40 | v 0.097545 -1.000000 -0.990393
41 | v 0.130060 -1.000000 -0.987190
42 | v 0.162575 -1.000000 -0.983988
43 | v 0.000000 -0.666667 -0.833333
44 | v 0.000000 -0.333333 -0.666667
45 | v 0.000000 0.000000 -0.500000
46 | v 0.000000 0.333333 -0.333333
47 | v 0.000000 0.666667 -0.166667
48 | v 0.032515 0.666667 -0.163464
49 | v 0.065030 0.333333 -0.326928
50 | v 0.097545 -0.000000 -0.490393
51 | v 0.130060 -0.333333 -0.653857
52 | v 0.162575 -0.666667 -0.817321
53 | v 0.226356 -1.000000 -0.971301
54 | v 0.257621 -1.000000 -0.961817
55 | v 0.288887 -1.000000 -0.952332
56 | v 0.320152 -1.000000 -0.942848
57 | v 0.351418 -1.000000 -0.933364
58 | v 0.063781 0.666667 -0.153980
59 | v 0.127561 0.333333 -0.307960
60 | v 0.191342 -0.000000 -0.461940
61 | v 0.255122 -0.333333 -0.615920
62 | v 0.318903 -0.666667 -0.769900
63 | v 0.411498 -1.000000 -0.908478
64 | v 0.440312 -1.000000 -0.893076
65 | v 0.469127 -1.000000 -0.877675
66 | v 0.497941 -1.000000 -0.862273
67 | v 0.526756 -1.000000 -0.846871
68 | v 0.092595 0.666667 -0.138578
69 | v 0.185190 0.333333 -0.277157
70 | v 0.277785 -0.000000 -0.415735
71 | v 0.370380 -0.333333 -0.554313
72 | v 0.462975 -0.666667 -0.692891
73 | v 0.580826 -1.000000 -0.810742
74 | v 0.606082 -1.000000 -0.790015
75 | v 0.631339 -1.000000 -0.769288
76 | v 0.656595 -1.000000 -0.748561
77 | v 0.681851 -1.000000 -0.727834
78 | v 0.117851 0.666667 -0.117851
79 | v 0.235702 0.333333 -0.235702
80 | v 0.353553 -0.000000 -0.353553
81 | v 0.471405 -0.333333 -0.471405
82 | v 0.589256 -0.666667 -0.589256
83 | v 0.727834 -1.000000 -0.681851
84 | v 0.748561 -1.000000 -0.656595
85 | v 0.769288 -1.000000 -0.631338
86 | v 0.790015 -1.000000 -0.606082
87 | v 0.810742 -1.000000 -0.580826
88 | v 0.138578 0.666667 -0.092595
89 | v 0.277157 0.333333 -0.185190
90 | v 0.415735 -0.000000 -0.277785
91 | v 0.554313 -0.333333 -0.370380
92 | v 0.692891 -0.666667 -0.462975
93 | v 0.846871 -1.000000 -0.526756
94 | v 0.862273 -1.000000 -0.497941
95 | v 0.877675 -1.000000 -0.469127
96 | v 0.893076 -1.000000 -0.440312
97 | v 0.908478 -1.000000 -0.411498
98 | v 0.153980 0.666667 -0.063781
99 | v 0.307960 0.333333 -0.127561
100 | v 0.461940 -0.000000 -0.191342
101 | v 0.615920 -0.333333 -0.255122
102 | v 0.769900 -0.666667 -0.318903
103 | v 0.933364 -1.000000 -0.351418
104 | v 0.942848 -1.000000 -0.320152
105 | v 0.952332 -1.000000 -0.288887
106 | v 0.961817 -1.000000 -0.257621
107 | v 0.971301 -1.000000 -0.226356
108 | v 0.163464 0.666667 -0.032515
109 | v 0.326928 0.333333 -0.065030
110 | v 0.490393 -0.000000 -0.097545
111 | v 0.653857 -0.333333 -0.130060
112 | v 0.817321 -0.666667 -0.162575
113 | v 0.983988 -1.000000 -0.162575
114 | v 0.987190 -1.000000 -0.130060
115 | v 0.990393 -1.000000 -0.097545
116 | v 0.993595 -1.000000 -0.065030
117 | v 0.996798 -1.000000 -0.032515
118 | v 0.166667 0.666667 0.000000
119 | v 0.333333 0.333333 0.000000
120 | v 0.500000 -0.000000 0.000000
121 | v 0.666667 -0.333333 0.000000
122 | v 0.833333 -0.666667 0.000000
123 | v 0.996798 -1.000000 0.032515
124 | v 0.993595 -1.000000 0.065030
125 | v 0.990393 -1.000000 0.097545
126 | v 0.987190 -1.000000 0.130060
127 | v 0.983988 -1.000000 0.162575
128 | v 0.163464 0.666667 0.032515
129 | v 0.326928 0.333333 0.065030
130 | v 0.490393 -0.000000 0.097545
131 | v 0.653857 -0.333333 0.130060
132 | v 0.817321 -0.666667 0.162575
133 | v 0.971301 -1.000000 0.226356
134 | v 0.961817 -1.000000 0.257621
135 | v 0.952332 -1.000000 0.288887
136 | v 0.942848 -1.000000 0.320152
137 | v 0.933364 -1.000000 0.351418
138 | v 0.153980 0.666667 0.063781
139 | v 0.307960 0.333333 0.127561
140 | v 0.461940 -0.000000 0.191342
141 | v 0.615920 -0.333333 0.255122
142 | v 0.769900 -0.666667 0.318903
143 | v 0.908478 -1.000000 0.411498
144 | v 0.893076 -1.000000 0.440312
145 | v 0.877675 -1.000000 0.469127
146 | v 0.862273 -1.000000 0.497941
147 | v 0.846871 -1.000000 0.526756
148 | v 0.138578 0.666667 0.092595
149 | v 0.277157 0.333333 0.185190
150 | v 0.415735 -0.000000 0.277785
151 | v 0.554313 -0.333333 0.370380
152 | v 0.692891 -0.666667 0.462975
153 | v 0.810742 -1.000000 0.580826
154 | v 0.790015 -1.000000 0.606082
155 | v 0.769288 -1.000000 0.631338
156 | v 0.748561 -1.000000 0.656595
157 | v 0.727834 -1.000000 0.681851
158 | v 0.117851 0.666667 0.117851
159 | v 0.235702 0.333333 0.235702
160 | v 0.353553 -0.000000 0.353553
161 | v 0.471405 -0.333333 0.471405
162 | v 0.589256 -0.666667 0.589256
163 | v 0.681851 -1.000000 0.727834
164 | v 0.656595 -1.000000 0.748561
165 | v 0.631338 -1.000000 0.769288
166 | v 0.606082 -1.000000 0.790015
167 | v 0.580826 -1.000000 0.810742
168 | v 0.092595 0.666667 0.138578
169 | v 0.185190 0.333333 0.277157
170 | v 0.277785 -0.000000 0.415735
171 | v 0.370380 -0.333333 0.554313
172 | v 0.462975 -0.666667 0.692891
173 | v 0.526756 -1.000000 0.846871
174 | v 0.497941 -1.000000 0.862273
175 | v 0.469127 -1.000000 0.877675
176 | v 0.440312 -1.000000 0.893076
177 | v 0.411498 -1.000000 0.908478
178 | v 0.063781 0.666667 0.153980
179 | v 0.127561 0.333333 0.307960
180 | v 0.191342 -0.000000 0.461940
181 | v 0.255122 -0.333333 0.615920
182 | v 0.318903 -0.666667 0.769900
183 | v 0.351418 -1.000000 0.933364
184 | v 0.320152 -1.000000 0.942848
185 | v 0.288887 -1.000000 0.952332
186 | v 0.257621 -1.000000 0.961817
187 | v 0.226356 -1.000000 0.971301
188 | v 0.032515 0.666667 0.163464
189 | v 0.065030 0.333333 0.326928
190 | v 0.097545 -0.000000 0.490393
191 | v 0.130060 -0.333333 0.653857
192 | v 0.162575 -0.666667 0.817321
193 | v 0.162575 -1.000000 0.983988
194 | v 0.130060 -1.000000 0.987190
195 | v 0.097545 -1.000000 0.990393
196 | v 0.065030 -1.000000 0.993595
197 | v 0.032515 -1.000000 0.996798
198 | v -0.000000 0.666667 0.166667
199 | v -0.000000 0.333333 0.333333
200 | v -0.000000 -0.000000 0.500000
201 | v -0.000000 -0.333333 0.666667
202 | v -0.000000 -0.666667 0.833333
203 | v -0.032515 -1.000000 0.996798
204 | v -0.065030 -1.000000 0.993595
205 | v -0.097545 -1.000000 0.990393
206 | v -0.130060 -1.000000 0.987190
207 | v -0.162575 -1.000000 0.983988
208 | v -0.032515 0.666667 0.163464
209 | v -0.065030 0.333333 0.326928
210 | v -0.097545 -0.000000 0.490393
211 | v -0.130060 -0.333333 0.653857
212 | v -0.162575 -0.666667 0.817321
213 | v -0.226356 -1.000000 0.971301
214 | v -0.257621 -1.000000 0.961817
215 | v -0.288887 -1.000000 0.952332
216 | v -0.320152 -1.000000 0.942848
217 | v -0.351418 -1.000000 0.933364
218 | v -0.063781 0.666667 0.153980
219 | v -0.127561 0.333333 0.307960
220 | v -0.191342 -0.000000 0.461940
221 | v -0.255122 -0.333333 0.615920
222 | v -0.318903 -0.666667 0.769900
223 | v -0.411498 -1.000000 0.908478
224 | v -0.440312 -1.000000 0.893076
225 | v -0.469127 -1.000000 0.877675
226 | v -0.497941 -1.000000 0.862273
227 | v -0.526756 -1.000000 0.846871
228 | v -0.092595 0.666667 0.138578
229 | v -0.185190 0.333333 0.277157
230 | v -0.277785 -0.000000 0.415735
231 | v -0.370380 -0.333333 0.554313
232 | v -0.462975 -0.666667 0.692891
233 | v -0.580826 -1.000000 0.810742
234 | v -0.606082 -1.000000 0.790015
235 | v -0.631338 -1.000000 0.769288
236 | v -0.656595 -1.000000 0.748561
237 | v -0.681851 -1.000000 0.727834
238 | v -0.117851 0.666667 0.117851
239 | v -0.235702 0.333333 0.235702
240 | v -0.353553 -0.000000 0.353553
241 | v -0.471404 -0.333333 0.471405
242 | v -0.589256 -0.666667 0.589256
243 | v -0.727834 -1.000000 0.681851
244 | v -0.748561 -1.000000 0.656595
245 | v -0.769288 -1.000000 0.631339
246 | v -0.790015 -1.000000 0.606083
247 | v -0.810742 -1.000000 0.580827
248 | v -0.138578 0.666667 0.092595
249 | v -0.277157 0.333333 0.185190
250 | v -0.415735 -0.000000 0.277785
251 | v -0.554313 -0.333333 0.370380
252 | v -0.692891 -0.666667 0.462975
253 | v -0.846871 -1.000000 0.526756
254 | v -0.862273 -1.000000 0.497941
255 | v -0.877674 -1.000000 0.469127
256 | v -0.893076 -1.000000 0.440313
257 | v -0.908478 -1.000000 0.411498
258 | v -0.153980 0.666667 0.063781
259 | v -0.307960 0.333333 0.127561
260 | v -0.461940 -0.000000 0.191342
261 | v -0.615920 -0.333333 0.255122
262 | v -0.769900 -0.666667 0.318903
263 | v -0.933364 -1.000000 0.351418
264 | v -0.942848 -1.000000 0.320153
265 | v -0.952332 -1.000000 0.288887
266 | v -0.961817 -1.000000 0.257621
267 | v -0.971301 -1.000000 0.226356
268 | v -0.163464 0.666667 0.032515
269 | v -0.326928 0.333333 0.065030
270 | v -0.490393 -0.000000 0.097545
271 | v -0.653857 -0.333333 0.130060
272 | v -0.817321 -0.666667 0.162575
273 | v -0.983988 -1.000000 0.162575
274 | v -0.987190 -1.000000 0.130060
275 | v -0.990393 -1.000000 0.097545
276 | v -0.993595 -1.000000 0.065030
277 | v -0.996798 -1.000000 0.032515
278 | v -0.166667 0.666667 -0.000000
279 | v -0.333333 0.333333 -0.000000
280 | v -0.500000 -0.000000 -0.000000
281 | v -0.666667 -0.333333 -0.000000
282 | v -0.833333 -0.666667 -0.000000
283 | v -0.996798 -1.000000 -0.032515
284 | v -0.993595 -1.000000 -0.065030
285 | v -0.990393 -1.000000 -0.097545
286 | v -0.987190 -1.000000 -0.130060
287 | v -0.983988 -1.000000 -0.162575
288 | v -0.163464 0.666667 -0.032515
289 | v -0.326928 0.333333 -0.065030
290 | v -0.490393 -0.000000 -0.097545
291 | v -0.653857 -0.333333 -0.130060
292 | v -0.817321 -0.666667 -0.162575
293 | v -0.971301 -1.000000 -0.226356
294 | v -0.961817 -1.000000 -0.257621
295 | v -0.952332 -1.000000 -0.288887
296 | v -0.942848 -1.000000 -0.320153
297 | v -0.933364 -1.000000 -0.351418
298 | v -0.153980 0.666667 -0.063781
299 | v -0.307960 0.333333 -0.127561
300 | v -0.461940 -0.000000 -0.191342
301 | v -0.615920 -0.333333 -0.255122
302 | v -0.769900 -0.666667 -0.318903
303 | v -0.908478 -1.000000 -0.411498
304 | v -0.893076 -1.000000 -0.440312
305 | v -0.877675 -1.000000 -0.469127
306 | v -0.862273 -1.000000 -0.497941
307 | v -0.846871 -1.000000 -0.526756
308 | v -0.138578 0.666667 -0.092595
309 | v -0.277157 0.333333 -0.185190
310 | v -0.415735 -0.000000 -0.277785
311 | v -0.554313 -0.333333 -0.370380
312 | v -0.692891 -0.666667 -0.462975
313 | v -0.810743 -1.000000 -0.580826
314 | v -0.790015 -1.000000 -0.606082
315 | v -0.769288 -1.000000 -0.631338
316 | v -0.748561 -1.000000 -0.656594
317 | v -0.727834 -1.000000 -0.681851
318 | v -0.117851 0.666667 -0.117851
319 | v -0.235702 0.333333 -0.235702
320 | v -0.353553 -0.000000 -0.353553
321 | v -0.471405 -0.333333 -0.471404
322 | v -0.589256 -0.666667 -0.589256
323 | v -0.681851 -1.000000 -0.727834
324 | v -0.656595 -1.000000 -0.748561
325 | v -0.631339 -1.000000 -0.769288
326 | v -0.606082 -1.000000 -0.790015
327 | v -0.580826 -1.000000 -0.810742
328 | v -0.092595 0.666667 -0.138578
329 | v -0.185190 0.333333 -0.277157
330 | v -0.277785 -0.000000 -0.415735
331 | v -0.370380 -0.333333 -0.554313
332 | v -0.462975 -0.666667 -0.692891
333 | v -0.526756 -1.000000 -0.846871
334 | v -0.497941 -1.000000 -0.862273
335 | v -0.469127 -1.000000 -0.877675
336 | v -0.440312 -1.000000 -0.893076
337 | v -0.411498 -1.000000 -0.908478
338 | v -0.063781 0.666667 -0.153980
339 | v -0.127561 0.333333 -0.307960
340 | v -0.191342 -0.000000 -0.461940
341 | v -0.255122 -0.333333 -0.615920
342 | v -0.318903 -0.666667 -0.769900
343 | v -0.351418 -1.000000 -0.933364
344 | v -0.320152 -1.000000 -0.942848
345 | v -0.288887 -1.000000 -0.952332
346 | v -0.257621 -1.000000 -0.961817
347 | v -0.226356 -1.000000 -0.971301
348 | v -0.032515 0.666667 -0.163464
349 | v -0.065030 0.333333 -0.326928
350 | v -0.097545 -0.000000 -0.490393
351 | v -0.130060 -0.333333 -0.653857
352 | v -0.162575 -0.666667 -0.817321
353 | v -0.162575 -1.000000 -0.983988
354 | v -0.130060 -1.000000 -0.987190
355 | v -0.097545 -1.000000 -0.990393
356 | v -0.065030 -1.000000 -0.993595
357 | v -0.032515 -1.000000 -0.996798
358 | v -0.032515 -0.666667 -0.830131
359 | v -0.065030 -0.666667 -0.826928
360 | v -0.032515 -0.333333 -0.663464
361 | v -0.097545 -0.666667 -0.823726
362 | v -0.065030 -0.333333 -0.660262
363 | v -0.032515 0.000000 -0.496798
364 | v -0.130060 -0.666667 -0.820524
365 | v -0.097545 -0.333333 -0.657059
366 | v -0.065030 0.000000 -0.493595
367 | v -0.032515 0.333333 -0.330131
368 | v -0.193841 -0.666667 -0.807837
369 | v -0.225106 -0.666667 -0.798352
370 | v -0.161326 -0.333333 -0.644373
371 | v -0.256372 -0.666667 -0.788868
372 | v -0.192591 -0.333333 -0.634888
373 | v -0.128811 -0.000000 -0.480908
374 | v -0.287637 -0.666667 -0.779384
375 | v -0.223857 -0.333333 -0.625404
376 | v -0.160076 0.000000 -0.471424
377 | v -0.096296 0.333333 -0.317444
378 | v -0.347717 -0.666667 -0.754498
379 | v -0.376532 -0.666667 -0.739096
380 | v -0.283937 -0.333333 -0.600518
381 | v -0.405346 -0.666667 -0.723695
382 | v -0.312751 -0.333333 -0.585116
383 | v -0.220156 -0.000000 -0.446538
384 | v -0.434161 -0.666667 -0.708293
385 | v -0.341566 -0.333333 -0.569715
386 | v -0.248971 0.000000 -0.431136
387 | v -0.156376 0.333333 -0.292558
388 | v -0.488231 -0.666667 -0.672164
389 | v -0.513487 -0.666667 -0.651437
390 | v -0.395636 -0.333333 -0.533586
391 | v -0.538744 -0.666667 -0.630710
392 | v -0.420892 -0.333333 -0.512859
393 | v -0.303041 -0.000000 -0.395008
394 | v -0.564000 -0.666667 -0.609983
395 | v -0.446149 -0.333333 -0.492132
396 | v -0.328297 0.000000 -0.374281
397 | v -0.210446 0.333333 -0.256429
398 | v -0.609983 -0.666667 -0.563999
399 | v -0.630710 -0.666667 -0.538743
400 | v -0.492132 -0.333333 -0.446148
401 | v -0.651437 -0.666667 -0.513487
402 | v -0.512859 -0.333333 -0.420892
403 | v -0.374281 -0.000000 -0.328297
404 | v -0.672164 -0.666667 -0.488231
405 | v -0.533586 -0.333333 -0.395636
406 | v -0.395008 0.000000 -0.303041
407 | v -0.256429 0.333333 -0.210446
408 | v -0.708293 -0.666667 -0.434161
409 | v -0.723695 -0.666667 -0.405346
410 | v -0.569715 -0.333333 -0.341566
411 | v -0.739096 -0.666667 -0.376532
412 | v -0.585116 -0.333333 -0.312751
413 | v -0.431136 -0.000000 -0.248971
414 | v -0.754498 -0.666667 -0.347717
415 | v -0.600518 -0.333333 -0.283937
416 | v -0.446538 0.000000 -0.220156
417 | v -0.292558 0.333333 -0.156376
418 | v -0.779384 -0.666667 -0.287637
419 | v -0.788868 -0.666667 -0.256372
420 | v -0.625404 -0.333333 -0.223857
421 | v -0.798352 -0.666667 -0.225106
422 | v -0.634888 -0.333333 -0.192591
423 | v -0.471424 -0.000000 -0.160076
424 | v -0.807837 -0.666667 -0.193841
425 | v -0.644373 -0.333333 -0.161326
426 | v -0.480908 0.000000 -0.128811
427 | v -0.317444 0.333333 -0.096296
428 | v -0.820524 -0.666667 -0.130060
429 | v -0.823726 -0.666667 -0.097545
430 | v -0.657059 -0.333333 -0.097545
431 | v -0.826928 -0.666667 -0.065030
432 | v -0.660262 -0.333333 -0.065030
433 | v -0.493595 -0.000000 -0.065030
434 | v -0.830131 -0.666667 -0.032515
435 | v -0.663464 -0.333333 -0.032515
436 | v -0.496798 0.000000 -0.032515
437 | v -0.330131 0.333333 -0.032515
438 | v -0.830131 -0.666667 0.032515
439 | v -0.826928 -0.666667 0.065030
440 | v -0.663464 -0.333333 0.032515
441 | v -0.823726 -0.666667 0.097545
442 | v -0.660262 -0.333333 0.065030
443 | v -0.496798 -0.000000 0.032515
444 | v -0.820524 -0.666667 0.130060
445 | v -0.657059 -0.333333 0.097545
446 | v -0.493595 0.000000 0.065030
447 | v -0.330131 0.333333 0.032515
448 | v -0.807837 -0.666667 0.193841
449 | v -0.798352 -0.666667 0.225106
450 | v -0.644373 -0.333333 0.161326
451 | v -0.788868 -0.666667 0.256372
452 | v -0.634888 -0.333333 0.192591
453 | v -0.480908 -0.000000 0.128811
454 | v -0.779384 -0.666667 0.287637
455 | v -0.625404 -0.333333 0.223857
456 | v -0.471424 0.000000 0.160076
457 | v -0.317444 0.333333 0.096296
458 | v -0.754498 -0.666667 0.347717
459 | v -0.739096 -0.666667 0.376532
460 | v -0.600518 -0.333333 0.283937
461 | v -0.723695 -0.666667 0.405346
462 | v -0.585116 -0.333333 0.312751
463 | v -0.446538 -0.000000 0.220156
464 | v -0.708293 -0.666667 0.434161
465 | v -0.569715 -0.333333 0.341566
466 | v -0.431136 0.000000 0.248971
467 | v -0.292558 0.333333 0.156376
468 | v -0.672164 -0.666667 0.488231
469 | v -0.651437 -0.666667 0.513487
470 | v -0.533586 -0.333333 0.395636
471 | v -0.630710 -0.666667 0.538744
472 | v -0.512859 -0.333333 0.420892
473 | v -0.395008 -0.000000 0.303041
474 | v -0.609983 -0.666667 0.564000
475 | v -0.492132 -0.333333 0.446149
476 | v -0.374280 0.000000 0.328297
477 | v -0.256429 0.333333 0.210446
478 | v -0.564000 -0.666667 0.609983
479 | v -0.538743 -0.666667 0.630710
480 | v -0.446148 -0.333333 0.492132
481 | v -0.513487 -0.666667 0.651437
482 | v -0.420892 -0.333333 0.512859
483 | v -0.328297 -0.000000 0.374281
484 | v -0.488231 -0.666667 0.672164
485 | v -0.395636 -0.333333 0.533586
486 | v -0.303041 0.000000 0.395008
487 | v -0.210446 0.333333 0.256429
488 | v -0.434161 -0.666667 0.708293
489 | v -0.405346 -0.666667 0.723695
490 | v -0.341566 -0.333333 0.569715
491 | v -0.376532 -0.666667 0.739096
492 | v -0.312751 -0.333333 0.585116
493 | v -0.248971 -0.000000 0.431136
494 | v -0.347717 -0.666667 0.754498
495 | v -0.283937 -0.333333 0.600518
496 | v -0.220156 0.000000 0.446538
497 | v -0.156376 0.333333 0.292558
498 | v -0.287637 -0.666667 0.779384
499 | v -0.256372 -0.666667 0.788868
500 | v -0.223857 -0.333333 0.625404
501 | v -0.225106 -0.666667 0.798352
502 | v -0.192591 -0.333333 0.634888
503 | v -0.160076 -0.000000 0.471424
504 | v -0.193841 -0.666667 0.807837
505 | v -0.161326 -0.333333 0.644373
506 | v -0.128811 0.000000 0.480908
507 | v -0.096296 0.333333 0.317444
508 | v -0.130060 -0.666667 0.820524
509 | v -0.097545 -0.666667 0.823726
510 | v -0.097545 -0.333333 0.657059
511 | v -0.065030 -0.666667 0.826928
512 | v -0.065030 -0.333333 0.660262
513 | v -0.065030 -0.000000 0.493595
514 | v -0.032515 -0.666667 0.830131
515 | v -0.032515 -0.333333 0.663464
516 | v -0.032515 0.000000 0.496798
517 | v -0.032515 0.333333 0.330131
518 | v 0.032515 -0.666667 0.830131
519 | v 0.065030 -0.666667 0.826928
520 | v 0.032515 -0.333333 0.663464
521 | v 0.097545 -0.666667 0.823726
522 | v 0.065030 -0.333333 0.660262
523 | v 0.032515 -0.000000 0.496798
524 | v 0.130060 -0.666667 0.820524
525 | v 0.097545 -0.333333 0.657059
526 | v 0.065030 0.000000 0.493595
527 | v 0.032515 0.333333 0.330131
528 | v 0.193841 -0.666667 0.807837
529 | v 0.225106 -0.666667 0.798352
530 | v 0.161326 -0.333333 0.644373
531 | v 0.256372 -0.666667 0.788868
532 | v 0.192591 -0.333333 0.634888
533 | v 0.128811 -0.000000 0.480908
534 | v 0.287637 -0.666667 0.779384
535 | v 0.223857 -0.333333 0.625404
536 | v 0.160076 0.000000 0.471424
537 | v 0.096296 0.333333 0.317444
538 | v 0.347717 -0.666667 0.754498
539 | v 0.376532 -0.666667 0.739096
540 | v 0.283937 -0.333333 0.600518
541 | v 0.405346 -0.666667 0.723695
542 | v 0.312751 -0.333333 0.585116
543 | v 0.220156 -0.000000 0.446538
544 | v 0.434161 -0.666667 0.708293
545 | v 0.341566 -0.333333 0.569715
546 | v 0.248971 0.000000 0.431136
547 | v 0.156376 0.333333 0.292558
548 | v 0.488231 -0.666667 0.672164
549 | v 0.513487 -0.666667 0.651437
550 | v 0.395636 -0.333333 0.533586
551 | v 0.538743 -0.666667 0.630710
552 | v 0.420892 -0.333333 0.512859
553 | v 0.303041 -0.000000 0.395008
554 | v 0.564000 -0.666667 0.609983
555 | v 0.446148 -0.333333 0.492132
556 | v 0.328297 0.000000 0.374281
557 | v 0.210446 0.333333 0.256429
558 | v 0.609983 -0.666667 0.564000
559 | v 0.630710 -0.666667 0.538743
560 | v 0.492132 -0.333333 0.446148
561 | v 0.651437 -0.666667 0.513487
562 | v 0.512859 -0.333333 0.420892
563 | v 0.374281 -0.000000 0.328297
564 | v 0.672164 -0.666667 0.488231
565 | v 0.533586 -0.333333 0.395636
566 | v 0.395008 0.000000 0.303041
567 | v 0.256429 0.333333 0.210446
568 | v 0.708293 -0.666667 0.434161
569 | v 0.723695 -0.666667 0.405346
570 | v 0.569715 -0.333333 0.341566
571 | v 0.739096 -0.666667 0.376532
572 | v 0.585116 -0.333333 0.312751
573 | v 0.431136 -0.000000 0.248971
574 | v 0.754498 -0.666667 0.347717
575 | v 0.600518 -0.333333 0.283937
576 | v 0.446538 0.000000 0.220156
577 | v 0.292558 0.333333 0.156376
578 | v 0.779384 -0.666667 0.287637
579 | v 0.788868 -0.666667 0.256372
580 | v 0.625404 -0.333333 0.223857
581 | v 0.798352 -0.666667 0.225106
582 | v 0.634888 -0.333333 0.192591
583 | v 0.471424 -0.000000 0.160076
584 | v 0.807837 -0.666667 0.193841
585 | v 0.644373 -0.333333 0.161326
586 | v 0.480908 0.000000 0.128811
587 | v 0.317444 0.333333 0.096296
588 | v 0.820524 -0.666667 0.130060
589 | v 0.823726 -0.666667 0.097545
590 | v 0.657059 -0.333333 0.097545
591 | v 0.826928 -0.666667 0.065030
592 | v 0.660262 -0.333333 0.065030
593 | v 0.493595 -0.000000 0.065030
594 | v 0.830131 -0.666667 0.032515
595 | v 0.663464 -0.333333 0.032515
596 | v 0.496798 0.000000 0.032515
597 | v 0.330131 0.333333 0.032515
598 | v 0.830131 -0.666667 -0.032515
599 | v 0.826928 -0.666667 -0.065030
600 | v 0.663464 -0.333333 -0.032515
601 | v 0.823726 -0.666667 -0.097545
602 | v 0.660262 -0.333333 -0.065030
603 | v 0.496798 -0.000000 -0.032515
604 | v 0.820524 -0.666667 -0.130060
605 | v 0.657059 -0.333333 -0.097545
606 | v 0.493595 0.000000 -0.065030
607 | v 0.330131 0.333333 -0.032515
608 | v 0.807837 -0.666667 -0.193841
609 | v 0.798352 -0.666667 -0.225106
610 | v 0.644373 -0.333333 -0.161326
611 | v 0.788868 -0.666667 -0.256372
612 | v 0.634888 -0.333333 -0.192591
613 | v 0.480908 -0.000000 -0.128811
614 | v 0.779384 -0.666667 -0.287637
615 | v 0.625404 -0.333333 -0.223857
616 | v 0.471424 0.000000 -0.160076
617 | v 0.317444 0.333333 -0.096296
618 | v 0.754498 -0.666667 -0.347717
619 | v 0.739096 -0.666667 -0.376532
620 | v 0.600518 -0.333333 -0.283937
621 | v 0.723695 -0.666667 -0.405346
622 | v 0.585116 -0.333333 -0.312751
623 | v 0.446538 -0.000000 -0.220156
624 | v 0.708293 -0.666667 -0.434161
625 | v 0.569715 -0.333333 -0.341566
626 | v 0.431136 0.000000 -0.248971
627 | v 0.292558 0.333333 -0.156376
628 | v 0.672164 -0.666667 -0.488231
629 | v 0.651437 -0.666667 -0.513487
630 | v 0.533586 -0.333333 -0.395636
631 | v 0.630710 -0.666667 -0.538743
632 | v 0.512859 -0.333333 -0.420892
633 | v 0.395008 -0.000000 -0.303041
634 | v 0.609983 -0.666667 -0.564000
635 | v 0.492132 -0.333333 -0.446148
636 | v 0.374281 0.000000 -0.328297
637 | v 0.256429 0.333333 -0.210446
638 | v 0.564000 -0.666667 -0.609983
639 | v 0.538743 -0.666667 -0.630710
640 | v 0.446148 -0.333333 -0.492132
641 | v 0.513487 -0.666667 -0.651437
642 | v 0.420892 -0.333333 -0.512859
643 | v 0.328297 -0.000000 -0.374281
644 | v 0.488231 -0.666667 -0.672164
645 | v 0.395636 -0.333333 -0.533586
646 | v 0.303041 0.000000 -0.395008
647 | v 0.210446 0.333333 -0.256429
648 | v 0.434161 -0.666667 -0.708293
649 | v 0.405346 -0.666667 -0.723695
650 | v 0.341566 -0.333333 -0.569715
651 | v 0.376532 -0.666667 -0.739096
652 | v 0.312751 -0.333333 -0.585116
653 | v 0.248971 -0.000000 -0.431136
654 | v 0.347717 -0.666667 -0.754498
655 | v 0.283937 -0.333333 -0.600518
656 | v 0.220156 0.000000 -0.446538
657 | v 0.156376 0.333333 -0.292558
658 | v 0.287637 -0.666667 -0.779384
659 | v 0.256372 -0.666667 -0.788868
660 | v 0.223857 -0.333333 -0.625404
661 | v 0.225106 -0.666667 -0.798352
662 | v 0.192591 -0.333333 -0.634888
663 | v 0.160076 -0.000000 -0.471424
664 | v 0.193841 -0.666667 -0.807837
665 | v 0.161326 -0.333333 -0.644373
666 | v 0.128811 0.000000 -0.480908
667 | v 0.096296 0.333333 -0.317444
668 | v 0.130060 -0.666667 -0.820524
669 | v 0.097545 -0.666667 -0.823726
670 | v 0.097545 -0.333333 -0.657059
671 | v 0.065030 -0.666667 -0.826928
672 | v 0.065030 -0.333333 -0.660262
673 | v 0.065030 -0.000000 -0.493595
674 | v 0.032515 -0.666667 -0.830131
675 | v 0.032515 -0.333333 -0.663464
676 | v 0.032515 0.000000 -0.496798
677 | v 0.032515 0.333333 -0.330131
678 | vt 0.250000 0.490000
679 | vt 0.250000 0.450000
680 | vt 0.257804 0.489231
681 | vt 0.296822 0.485388
682 | vt 0.289018 0.446157
683 | vt 0.304325 0.483112
684 | vt 0.341844 0.471731
685 | vt 0.326537 0.434776
686 | vt 0.348759 0.468035
687 | vt 0.383337 0.449553
688 | vt 0.361114 0.416294
689 | vt 0.389398 0.444578
690 | vt 0.419706 0.419706
691 | vt 0.391421 0.391421
692 | vt 0.424680 0.413644
693 | vt 0.449553 0.383337
694 | vt 0.416294 0.361114
695 | vt 0.453249 0.376421
696 | vt 0.471731 0.341844
697 | vt 0.434776 0.326537
698 | vt 0.474007 0.334340
699 | vt 0.485388 0.296822
700 | vt 0.446157 0.289018
701 | vt 0.486157 0.289018
702 | vt 0.490000 0.250000
703 | vt 0.450000 0.250000
704 | vt 0.489231 0.242196
705 | vt 0.485388 0.203178
706 | vt 0.446157 0.210982
707 | vt 0.483112 0.195675
708 | vt 0.471731 0.158156
709 | vt 0.434776 0.173463
710 | vt 0.468035 0.151240
711 | vt 0.449553 0.116663
712 | vt 0.416294 0.138886
713 | vt 0.444578 0.110602
714 | vt 0.419706 0.080294
715 | vt 0.391421 0.108579
716 | vt 0.413644 0.075320
717 | vt 0.383337 0.050447
718 | vt 0.361114 0.083706
719 | vt 0.376421 0.046751
720 | vt 0.341844 0.028269
721 | vt 0.326537 0.065224
722 | vt 0.334340 0.025993
723 | vt 0.296822 0.014612
724 | vt 0.289018 0.053843
725 | vt 0.289018 0.013843
726 | vt 0.250000 0.010000
727 | vt 0.250000 0.050000
728 | vt 0.242196 0.010769
729 | vt 0.203178 0.014612
730 | vt 0.210982 0.053843
731 | vt 0.195675 0.016888
732 | vt 0.158156 0.028269
733 | vt 0.173463 0.065224
734 | vt 0.151240 0.031965
735 | vt 0.116663 0.050447
736 | vt 0.138886 0.083706
737 | vt 0.110602 0.055422
738 | vt 0.080294 0.080294
739 | vt 0.108579 0.108579
740 | vt 0.075320 0.086356
741 | vt 0.050447 0.116663
742 | vt 0.083706 0.138886
743 | vt 0.046751 0.123579
744 | vt 0.028269 0.158156
745 | vt 0.065224 0.173463
746 | vt 0.025993 0.165660
747 | vt 0.014612 0.203178
748 | vt 0.053843 0.210982
749 | vt 0.013843 0.210982
750 | vt 0.010000 0.250000
751 | vt 0.050000 0.250000
752 | vt 0.010769 0.257804
753 | vt 0.014612 0.296822
754 | vt 0.053843 0.289018
755 | vt 0.016888 0.304325
756 | vt 0.028269 0.341844
757 | vt 0.065224 0.326537
758 | vt 0.031965 0.348760
759 | vt 0.050447 0.383337
760 | vt 0.083706 0.361114
761 | vt 0.055422 0.389398
762 | vt 0.080294 0.419706
763 | vt 0.108579 0.391421
764 | vt 0.086356 0.424680
765 | vt 0.116663 0.449553
766 | vt 0.138886 0.416294
767 | vt 0.123579 0.453249
768 | vt 0.750000 0.490000
769 | vt 0.757804 0.489231
770 | vt 0.765607 0.488463
771 | vt 0.773411 0.487694
772 | vt 0.781214 0.486926
773 | vt 0.789018 0.486157
774 | vt 0.796822 0.485388
775 | vt 0.804325 0.483112
776 | vt 0.811829 0.480836
777 | vt 0.819333 0.478560
778 | vt 0.826837 0.476284
779 | vt 0.834340 0.474007
780 | vt 0.841844 0.471731
781 | vt 0.848759 0.468035
782 | vt 0.855675 0.464338
783 | vt 0.862590 0.460642
784 | vt 0.869506 0.456945
785 | vt 0.876421 0.453249
786 | vt 0.883337 0.449553
787 | vt 0.889398 0.444578
788 | vt 0.895460 0.439604
789 | vt 0.901521 0.434629
790 | vt 0.907583 0.429655
791 | vt 0.913644 0.424680
792 | vt 0.919706 0.419706
793 | vt 0.924680 0.413644
794 | vt 0.929655 0.407583
795 | vt 0.934629 0.401521
796 | vt 0.939604 0.395460
797 | vt 0.944578 0.389398
798 | vt 0.949553 0.383337
799 | vt 0.953249 0.376421
800 | vt 0.956946 0.369506
801 | vt 0.960642 0.362590
802 | vt 0.964338 0.355675
803 | vt 0.968035 0.348759
804 | vt 0.971731 0.341844
805 | vt 0.974007 0.334340
806 | vt 0.976284 0.326837
807 | vt 0.978560 0.319333
808 | vt 0.980836 0.311829
809 | vt 0.983112 0.304325
810 | vt 0.985388 0.296822
811 | vt 0.986157 0.289018
812 | vt 0.986926 0.281214
813 | vt 0.987694 0.273411
814 | vt 0.988463 0.265607
815 | vt 0.989231 0.257804
816 | vt 0.990000 0.250000
817 | vt 0.989231 0.242196
818 | vt 0.988463 0.234393
819 | vt 0.987694 0.226589
820 | vt 0.986926 0.218786
821 | vt 0.986157 0.210982
822 | vt 0.985388 0.203178
823 | vt 0.983112 0.195675
824 | vt 0.980836 0.188171
825 | vt 0.978560 0.180667
826 | vt 0.976284 0.173163
827 | vt 0.974007 0.165660
828 | vt 0.971731 0.158156
829 | vt 0.968035 0.151240
830 | vt 0.964338 0.144325
831 | vt 0.960642 0.137410
832 | vt 0.956945 0.130494
833 | vt 0.953249 0.123579
834 | vt 0.949553 0.116663
835 | vt 0.944578 0.110602
836 | vt 0.939604 0.104540
837 | vt 0.934629 0.098479
838 | vt 0.929655 0.092417
839 | vt 0.924680 0.086356
840 | vt 0.919706 0.080294
841 | vt 0.913644 0.075320
842 | vt 0.907583 0.070345
843 | vt 0.901521 0.065371
844 | vt 0.895460 0.060396
845 | vt 0.889398 0.055422
846 | vt 0.883337 0.050447
847 | vt 0.876421 0.046751
848 | vt 0.869506 0.043054
849 | vt 0.862590 0.039358
850 | vt 0.855675 0.035662
851 | vt 0.848759 0.031965
852 | vt 0.841844 0.028269
853 | vt 0.834340 0.025993
854 | vt 0.826837 0.023716
855 | vt 0.819333 0.021440
856 | vt 0.811829 0.019164
857 | vt 0.804325 0.016888
858 | vt 0.796822 0.014612
859 | vt 0.789018 0.013843
860 | vt 0.781214 0.013074
861 | vt 0.773411 0.012306
862 | vt 0.765607 0.011537
863 | vt 0.757804 0.010769
864 | vt 0.750000 0.010000
865 | vt 0.742196 0.010769
866 | vt 0.734393 0.011537
867 | vt 0.726589 0.012306
868 | vt 0.718786 0.013074
869 | vt 0.710982 0.013843
870 | vt 0.703178 0.014612
871 | vt 0.695675 0.016888
872 | vt 0.688171 0.019164
873 | vt 0.680667 0.021440
874 | vt 0.673163 0.023716
875 | vt 0.665660 0.025993
876 | vt 0.658156 0.028269
877 | vt 0.651240 0.031965
878 | vt 0.644325 0.035662
879 | vt 0.637410 0.039358
880 | vt 0.630494 0.043055
881 | vt 0.623579 0.046751
882 | vt 0.616663 0.050447
883 | vt 0.610602 0.055422
884 | vt 0.604540 0.060396
885 | vt 0.598479 0.065371
886 | vt 0.592417 0.070345
887 | vt 0.586356 0.075320
888 | vt 0.580294 0.080294
889 | vt 0.575320 0.086356
890 | vt 0.570345 0.092417
891 | vt 0.565371 0.098479
892 | vt 0.560396 0.104540
893 | vt 0.555422 0.110602
894 | vt 0.550447 0.116663
895 | vt 0.546751 0.123579
896 | vt 0.543055 0.130494
897 | vt 0.539358 0.137410
898 | vt 0.535662 0.144325
899 | vt 0.531965 0.151240
900 | vt 0.528269 0.158156
901 | vt 0.525993 0.165660
902 | vt 0.523716 0.173163
903 | vt 0.521440 0.180667
904 | vt 0.519164 0.188171
905 | vt 0.516888 0.195675
906 | vt 0.514612 0.203178
907 | vt 0.513843 0.210982
908 | vt 0.513074 0.218786
909 | vt 0.512306 0.226589
910 | vt 0.511537 0.234393
911 | vt 0.510769 0.242196
912 | vt 0.510000 0.250000
913 | vt 0.510769 0.257804
914 | vt 0.511537 0.265607
915 | vt 0.512306 0.273411
916 | vt 0.513074 0.281214
917 | vt 0.513843 0.289018
918 | vt 0.514612 0.296822
919 | vt 0.516888 0.304325
920 | vt 0.519164 0.311829
921 | vt 0.521440 0.319333
922 | vt 0.523716 0.326837
923 | vt 0.525993 0.334340
924 | vt 0.528269 0.341844
925 | vt 0.531965 0.348760
926 | vt 0.535662 0.355675
927 | vt 0.539358 0.362590
928 | vt 0.543054 0.369506
929 | vt 0.546751 0.376421
930 | vt 0.550447 0.383337
931 | vt 0.555422 0.389398
932 | vt 0.560396 0.395460
933 | vt 0.565371 0.401521
934 | vt 0.570345 0.407583
935 | vt 0.575320 0.413644
936 | vt 0.580294 0.419706
937 | vt 0.586356 0.424680
938 | vt 0.592417 0.429655
939 | vt 0.598479 0.434629
940 | vt 0.604540 0.439604
941 | vt 0.610602 0.444578
942 | vt 0.616663 0.449553
943 | vt 0.623579 0.453249
944 | vt 0.630494 0.456946
945 | vt 0.637410 0.460642
946 | vt 0.644325 0.464338
947 | vt 0.651240 0.468035
948 | vt 0.658156 0.471731
949 | vt 0.665660 0.474007
950 | vt 0.673163 0.476284
951 | vt 0.680667 0.478560
952 | vt 0.688171 0.480836
953 | vt 0.695675 0.483112
954 | vt 0.703178 0.485388
955 | vt 0.710982 0.486157
956 | vt 0.718786 0.486926
957 | vt 0.726589 0.487694
958 | vt 0.734393 0.488463
959 | vt 0.742196 0.489231
960 | vt 0.158156 0.471731
961 | vt 0.173463 0.434776
962 | vt 0.165660 0.474007
963 | vt 0.203178 0.485388
964 | vt 0.210982 0.446157
965 | vt 0.210982 0.486157
966 | vt 0.242196 0.489231
967 | vt 0.234393 0.488463
968 | vt 0.242196 0.449231
969 | vt 0.226589 0.487694
970 | vt 0.234393 0.448463
971 | vt 0.218786 0.486926
972 | vt 0.226589 0.447694
973 | vt 0.218786 0.446926
974 | vt 0.250000 0.410000
975 | vt 0.242196 0.409231
976 | vt 0.250000 0.370000
977 | vt 0.234393 0.408463
978 | vt 0.242196 0.369231
979 | vt 0.250000 0.330000
980 | vt 0.226589 0.407694
981 | vt 0.234393 0.368463
982 | vt 0.242196 0.329231
983 | vt 0.250000 0.290000
984 | vt 0.218786 0.406926
985 | vt 0.226589 0.367694
986 | vt 0.234393 0.328463
987 | vt 0.242196 0.289231
988 | vt 0.250000 0.250000
989 | vt 0.195675 0.483112
990 | vt 0.188171 0.480836
991 | vt 0.203478 0.443881
992 | vt 0.180667 0.478560
993 | vt 0.195974 0.441605
994 | vt 0.173163 0.476284
995 | vt 0.188471 0.439328
996 | vt 0.180967 0.437052
997 | vt 0.211282 0.404649
998 | vt 0.203778 0.402373
999 | vt 0.219085 0.365418
1000 | vt 0.196274 0.400097
1001 | vt 0.211582 0.363142
1002 | vt 0.226889 0.326187
1003 | vt 0.188771 0.397821
1004 | vt 0.204078 0.360866
1005 | vt 0.219385 0.323910
1006 | vt 0.234693 0.286955
1007 | vt 0.151240 0.468035
1008 | vt 0.144325 0.464338
1009 | vt 0.166548 0.431080
1010 | vt 0.137410 0.460642
1011 | vt 0.159632 0.427383
1012 | vt 0.130494 0.456946
1013 | vt 0.152717 0.423687
1014 | vt 0.145801 0.419990
1015 | vt 0.181855 0.394124
1016 | vt 0.174940 0.390428
1017 | vt 0.197163 0.357169
1018 | vt 0.168024 0.386732
1019 | vt 0.190247 0.353473
1020 | vt 0.212470 0.320214
1021 | vt 0.161109 0.383035
1022 | vt 0.183332 0.349776
1023 | vt 0.205554 0.316518
1024 | vt 0.227777 0.283259
1025 | vt 0.110602 0.444578
1026 | vt 0.104540 0.439604
1027 | vt 0.132824 0.411319
1028 | vt 0.098479 0.434629
1029 | vt 0.126763 0.406345
1030 | vt 0.092417 0.429655
1031 | vt 0.120702 0.401370
1032 | vt 0.114640 0.396396
1033 | vt 0.155047 0.378061
1034 | vt 0.148986 0.373086
1035 | vt 0.177270 0.344802
1036 | vt 0.142924 0.368112
1037 | vt 0.171209 0.339827
1038 | vt 0.199493 0.311543
1039 | vt 0.136863 0.363137
1040 | vt 0.165147 0.334853
1041 | vt 0.193431 0.306569
1042 | vt 0.221716 0.278284
1043 | vt 0.075320 0.413644
1044 | vt 0.070345 0.407583
1045 | vt 0.103604 0.385360
1046 | vt 0.065371 0.401521
1047 | vt 0.098630 0.379298
1048 | vt 0.060396 0.395460
1049 | vt 0.093655 0.373237
1050 | vt 0.088681 0.367175
1051 | vt 0.131888 0.357076
1052 | vt 0.126914 0.351014
1053 | vt 0.160173 0.328791
1054 | vt 0.121939 0.344953
1055 | vt 0.155198 0.322730
1056 | vt 0.188457 0.300507
1057 | vt 0.116965 0.338891
1058 | vt 0.150224 0.316668
1059 | vt 0.183482 0.294446
1060 | vt 0.216741 0.272223
1061 | vt 0.046751 0.376421
1062 | vt 0.043054 0.369506
1063 | vt 0.080010 0.354199
1064 | vt 0.039358 0.362590
1065 | vt 0.076313 0.347283
1066 | vt 0.035662 0.355675
1067 | vt 0.072617 0.340368
1068 | vt 0.068921 0.333452
1069 | vt 0.113268 0.331976
1070 | vt 0.109572 0.325060
1071 | vt 0.146527 0.309753
1072 | vt 0.105876 0.318145
1073 | vt 0.142831 0.302837
1074 | vt 0.179786 0.287530
1075 | vt 0.102179 0.311229
1076 | vt 0.139134 0.295922
1077 | vt 0.176090 0.280615
1078 | vt 0.213045 0.265307
1079 | vt 0.025993 0.334340
1080 | vt 0.023716 0.326837
1081 | vt 0.062948 0.319033
1082 | vt 0.021440 0.319333
1083 | vt 0.060672 0.311529
1084 | vt 0.019164 0.311829
1085 | vt 0.058395 0.304026
1086 | vt 0.056119 0.296522
1087 | vt 0.099903 0.303726
1088 | vt 0.097627 0.296222
1089 | vt 0.136858 0.288418
1090 | vt 0.095351 0.288718
1091 | vt 0.134582 0.280915
1092 | vt 0.173813 0.273111
1093 | vt 0.093074 0.281214
1094 | vt 0.132306 0.273411
1095 | vt 0.171537 0.265607
1096 | vt 0.210769 0.257804
1097 | vt 0.013843 0.289018
1098 | vt 0.013074 0.281214
1099 | vt 0.053074 0.281214
1100 | vt 0.012306 0.273411
1101 | vt 0.052306 0.273411
1102 | vt 0.011537 0.265607
1103 | vt 0.051537 0.265607
1104 | vt 0.050769 0.257804
1105 | vt 0.092306 0.273411
1106 | vt 0.091537 0.265607
1107 | vt 0.131537 0.265607
1108 | vt 0.090769 0.257804
1109 | vt 0.130769 0.257804
1110 | vt 0.170769 0.257804
1111 | vt 0.090000 0.250000
1112 | vt 0.130000 0.250000
1113 | vt 0.170000 0.250000
1114 | vt 0.210000 0.250000
1115 | vt 0.010769 0.242196
1116 | vt 0.011537 0.234393
1117 | vt 0.050769 0.242196
1118 | vt 0.012306 0.226589
1119 | vt 0.051537 0.234393
1120 | vt 0.013074 0.218786
1121 | vt 0.052306 0.226589
1122 | vt 0.053074 0.218786
1123 | vt 0.090769 0.242196
1124 | vt 0.091537 0.234393
1125 | vt 0.130769 0.242196
1126 | vt 0.092306 0.226589
1127 | vt 0.131537 0.234393
1128 | vt 0.170769 0.242196
1129 | vt 0.093074 0.218786
1130 | vt 0.132306 0.226589
1131 | vt 0.171537 0.234393
1132 | vt 0.210769 0.242196
1133 | vt 0.016888 0.195675
1134 | vt 0.019164 0.188171
1135 | vt 0.056119 0.203478
1136 | vt 0.021440 0.180667
1137 | vt 0.058395 0.195974
1138 | vt 0.023716 0.173163
1139 | vt 0.060672 0.188471
1140 | vt 0.062948 0.180967
1141 | vt 0.095351 0.211282
1142 | vt 0.097627 0.203778
1143 | vt 0.134582 0.219085
1144 | vt 0.099903 0.196274
1145 | vt 0.136858 0.211582
1146 | vt 0.173813 0.226889
1147 | vt 0.102179 0.188771
1148 | vt 0.139134 0.204078
1149 | vt 0.176090 0.219385
1150 | vt 0.213045 0.234693
1151 | vt 0.031965 0.151240
1152 | vt 0.035662 0.144325
1153 | vt 0.068921 0.166548
1154 | vt 0.039358 0.137410
1155 | vt 0.072617 0.159632
1156 | vt 0.043055 0.130494
1157 | vt 0.076313 0.152717
1158 | vt 0.080010 0.145801
1159 | vt 0.105876 0.181855
1160 | vt 0.109572 0.174940
1161 | vt 0.142831 0.197162
1162 | vt 0.113268 0.168024
1163 | vt 0.146527 0.190247
1164 | vt 0.179786 0.212470
1165 | vt 0.116965 0.161109
1166 | vt 0.150224 0.183332
1167 | vt 0.183482 0.205554
1168 | vt 0.216741 0.227777
1169 | vt 0.055422 0.110602
1170 | vt 0.060396 0.104540
1171 | vt 0.088681 0.132824
1172 | vt 0.065371 0.098479
1173 | vt 0.093655 0.126763
1174 | vt 0.070345 0.092417
1175 | vt 0.098630 0.120702
1176 | vt 0.103604 0.114640
1177 | vt 0.121939 0.155047
1178 | vt 0.126914 0.148986
1179 | vt 0.155198 0.177270
1180 | vt 0.131888 0.142924
1181 | vt 0.160173 0.171209
1182 | vt 0.188457 0.199493
1183 | vt 0.136863 0.136863
1184 | vt 0.165147 0.165147
1185 | vt 0.193431 0.193431
1186 | vt 0.221716 0.221716
1187 | vt 0.086356 0.075320
1188 | vt 0.092417 0.070345
1189 | vt 0.114640 0.103604
1190 | vt 0.098479 0.065371
1191 | vt 0.120702 0.098630
1192 | vt 0.104540 0.060396
1193 | vt 0.126763 0.093655
1194 | vt 0.132824 0.088681
1195 | vt 0.142924 0.131888
1196 | vt 0.148986 0.126914
1197 | vt 0.171209 0.160173
1198 | vt 0.155047 0.121939
1199 | vt 0.177270 0.155198
1200 | vt 0.199493 0.188457
1201 | vt 0.161109 0.116965
1202 | vt 0.183332 0.150224
1203 | vt 0.205554 0.183482
1204 | vt 0.227777 0.216741
1205 | vt 0.123579 0.046751
1206 | vt 0.130494 0.043055
1207 | vt 0.145801 0.080010
1208 | vt 0.137410 0.039358
1209 | vt 0.152717 0.076313
1210 | vt 0.144325 0.035662
1211 | vt 0.159632 0.072617
1212 | vt 0.166548 0.068921
1213 | vt 0.168024 0.113268
1214 | vt 0.174940 0.109572
1215 | vt 0.190247 0.146527
1216 | vt 0.181855 0.105876
1217 | vt 0.197163 0.142831
1218 | vt 0.212470 0.179786
1219 | vt 0.188771 0.102179
1220 | vt 0.204078 0.139134
1221 | vt 0.219385 0.176090
1222 | vt 0.234693 0.213045
1223 | vt 0.165660 0.025993
1224 | vt 0.173163 0.023716
1225 | vt 0.180967 0.062948
1226 | vt 0.180667 0.021440
1227 | vt 0.188471 0.060672
1228 | vt 0.188171 0.019164
1229 | vt 0.195974 0.058395
1230 | vt 0.203478 0.056119
1231 | vt 0.196274 0.099903
1232 | vt 0.203778 0.097627
1233 | vt 0.211582 0.136858
1234 | vt 0.211282 0.095351
1235 | vt 0.219085 0.134582
1236 | vt 0.226889 0.173813
1237 | vt 0.218786 0.093074
1238 | vt 0.226589 0.132306
1239 | vt 0.234393 0.171537
1240 | vt 0.242196 0.210769
1241 | vt 0.210982 0.013843
1242 | vt 0.218786 0.013074
1243 | vt 0.218786 0.053074
1244 | vt 0.226589 0.012306
1245 | vt 0.226589 0.052306
1246 | vt 0.234393 0.011537
1247 | vt 0.234393 0.051537
1248 | vt 0.242196 0.050769
1249 | vt 0.226589 0.092306
1250 | vt 0.234393 0.091537
1251 | vt 0.234393 0.131537
1252 | vt 0.242196 0.090769
1253 | vt 0.242196 0.130769
1254 | vt 0.242196 0.170769
1255 | vt 0.250000 0.090000
1256 | vt 0.250000 0.130000
1257 | vt 0.250000 0.170000
1258 | vt 0.250000 0.210000
1259 | vt 0.257804 0.010769
1260 | vt 0.265607 0.011537
1261 | vt 0.257804 0.050769
1262 | vt 0.273411 0.012306
1263 | vt 0.265607 0.051537
1264 | vt 0.281214 0.013074
1265 | vt 0.273411 0.052306
1266 | vt 0.281214 0.053074
1267 | vt 0.257804 0.090769
1268 | vt 0.265607 0.091537
1269 | vt 0.257804 0.130769
1270 | vt 0.273411 0.092306
1271 | vt 0.265607 0.131537
1272 | vt 0.257804 0.170769
1273 | vt 0.281214 0.093074
1274 | vt 0.273411 0.132306
1275 | vt 0.265607 0.171537
1276 | vt 0.257804 0.210769
1277 | vt 0.304325 0.016888
1278 | vt 0.311829 0.019164
1279 | vt 0.296522 0.056119
1280 | vt 0.319333 0.021440
1281 | vt 0.304026 0.058395
1282 | vt 0.326837 0.023716
1283 | vt 0.311529 0.060672
1284 | vt 0.319033 0.062948
1285 | vt 0.288718 0.095351
1286 | vt 0.296222 0.097627
1287 | vt 0.280915 0.134582
1288 | vt 0.303726 0.099903
1289 | vt 0.288418 0.136858
1290 | vt 0.273111 0.173813
1291 | vt 0.311229 0.102179
1292 | vt 0.295922 0.139134
1293 | vt 0.280615 0.176090
1294 | vt 0.265307 0.213045
1295 | vt 0.348759 0.031965
1296 | vt 0.355675 0.035662
1297 | vt 0.333452 0.068920
1298 | vt 0.362590 0.039358
1299 | vt 0.340368 0.072617
1300 | vt 0.369506 0.043054
1301 | vt 0.347283 0.076313
1302 | vt 0.354199 0.080010
1303 | vt 0.318145 0.105876
1304 | vt 0.325060 0.109572
1305 | vt 0.302837 0.142831
1306 | vt 0.331976 0.113268
1307 | vt 0.309753 0.146527
1308 | vt 0.287530 0.179786
1309 | vt 0.338891 0.116965
1310 | vt 0.316668 0.150224
1311 | vt 0.294446 0.183482
1312 | vt 0.272223 0.216741
1313 | vt 0.389398 0.055422
1314 | vt 0.395460 0.060396
1315 | vt 0.367175 0.088681
1316 | vt 0.401521 0.065371
1317 | vt 0.373237 0.093655
1318 | vt 0.407583 0.070345
1319 | vt 0.379298 0.098630
1320 | vt 0.385360 0.103604
1321 | vt 0.344953 0.121939
1322 | vt 0.351014 0.126914
1323 | vt 0.322730 0.155198
1324 | vt 0.357076 0.131888
1325 | vt 0.328791 0.160173
1326 | vt 0.300507 0.188457
1327 | vt 0.363137 0.136863
1328 | vt 0.334853 0.165147
1329 | vt 0.306569 0.193431
1330 | vt 0.278284 0.221716
1331 | vt 0.424680 0.086356
1332 | vt 0.429655 0.092417
1333 | vt 0.396396 0.114640
1334 | vt 0.434629 0.098479
1335 | vt 0.401370 0.120702
1336 | vt 0.439604 0.104540
1337 | vt 0.406345 0.126763
1338 | vt 0.411319 0.132825
1339 | vt 0.368112 0.142924
1340 | vt 0.373086 0.148986
1341 | vt 0.339827 0.171209
1342 | vt 0.378061 0.155047
1343 | vt 0.344802 0.177270
1344 | vt 0.311543 0.199493
1345 | vt 0.383035 0.161109
1346 | vt 0.349776 0.183332
1347 | vt 0.316518 0.205554
1348 | vt 0.283259 0.227777
1349 | vt 0.453249 0.123579
1350 | vt 0.456946 0.130494
1351 | vt 0.419990 0.145801
1352 | vt 0.460642 0.137410
1353 | vt 0.423687 0.152717
1354 | vt 0.464338 0.144325
1355 | vt 0.427383 0.159632
1356 | vt 0.431080 0.166548
1357 | vt 0.386732 0.168024
1358 | vt 0.390428 0.174940
1359 | vt 0.353473 0.190247
1360 | vt 0.394124 0.181855
1361 | vt 0.357169 0.197163
1362 | vt 0.320214 0.212470
1363 | vt 0.397821 0.188771
1364 | vt 0.360866 0.204078
1365 | vt 0.323910 0.219385
1366 | vt 0.286955 0.234693
1367 | vt 0.474007 0.165660
1368 | vt 0.476284 0.173163
1369 | vt 0.437052 0.180967
1370 | vt 0.478560 0.180667
1371 | vt 0.439328 0.188471
1372 | vt 0.480836 0.188171
1373 | vt 0.441605 0.195974
1374 | vt 0.443881 0.203478
1375 | vt 0.400097 0.196274
1376 | vt 0.402373 0.203778
1377 | vt 0.363142 0.211582
1378 | vt 0.404649 0.211282
1379 | vt 0.365418 0.219085
1380 | vt 0.326187 0.226889
1381 | vt 0.406926 0.218786
1382 | vt 0.367694 0.226589
1383 | vt 0.328463 0.234393
1384 | vt 0.289231 0.242196
1385 | vt 0.486157 0.210982
1386 | vt 0.486926 0.218786
1387 | vt 0.446926 0.218786
1388 | vt 0.487694 0.226589
1389 | vt 0.447694 0.226589
1390 | vt 0.488463 0.234393
1391 | vt 0.448463 0.234393
1392 | vt 0.449231 0.242196
1393 | vt 0.407694 0.226589
1394 | vt 0.408463 0.234393
1395 | vt 0.368463 0.234393
1396 | vt 0.409231 0.242196
1397 | vt 0.369231 0.242196
1398 | vt 0.329231 0.242196
1399 | vt 0.410000 0.250000
1400 | vt 0.370000 0.250000
1401 | vt 0.330000 0.250000
1402 | vt 0.290000 0.250000
1403 | vt 0.489231 0.257804
1404 | vt 0.488463 0.265607
1405 | vt 0.449231 0.257804
1406 | vt 0.487694 0.273411
1407 | vt 0.448463 0.265607
1408 | vt 0.486926 0.281214
1409 | vt 0.447694 0.273411
1410 | vt 0.446926 0.281214
1411 | vt 0.409231 0.257804
1412 | vt 0.408463 0.265607
1413 | vt 0.369231 0.257804
1414 | vt 0.407694 0.273411
1415 | vt 0.368463 0.265607
1416 | vt 0.329231 0.257804
1417 | vt 0.406926 0.281214
1418 | vt 0.367694 0.273411
1419 | vt 0.328463 0.265607
1420 | vt 0.289231 0.257804
1421 | vt 0.483112 0.304325
1422 | vt 0.480836 0.311829
1423 | vt 0.443881 0.296522
1424 | vt 0.478560 0.319333
1425 | vt 0.441605 0.304026
1426 | vt 0.476284 0.326837
1427 | vt 0.439328 0.311529
1428 | vt 0.437052 0.319033
1429 | vt 0.404649 0.288718
1430 | vt 0.402373 0.296222
1431 | vt 0.365418 0.280915
1432 | vt 0.400097 0.303726
1433 | vt 0.363142 0.288418
1434 | vt 0.326187 0.273111
1435 | vt 0.397821 0.311229
1436 | vt 0.360866 0.295922
1437 | vt 0.323910 0.280615
1438 | vt 0.286955 0.265307
1439 | vt 0.468035 0.348759
1440 | vt 0.464338 0.355675
1441 | vt 0.431080 0.333452
1442 | vt 0.460642 0.362590
1443 | vt 0.427383 0.340368
1444 | vt 0.456946 0.369506
1445 | vt 0.423687 0.347283
1446 | vt 0.419990 0.354199
1447 | vt 0.394124 0.318145
1448 | vt 0.390428 0.325060
1449 | vt 0.357169 0.302837
1450 | vt 0.386732 0.331976
1451 | vt 0.353473 0.309753
1452 | vt 0.320214 0.287530
1453 | vt 0.383035 0.338891
1454 | vt 0.349776 0.316668
1455 | vt 0.316518 0.294446
1456 | vt 0.283259 0.272223
1457 | vt 0.444578 0.389398
1458 | vt 0.439604 0.395460
1459 | vt 0.411319 0.367175
1460 | vt 0.434629 0.401521
1461 | vt 0.406345 0.373237
1462 | vt 0.429655 0.407583
1463 | vt 0.401370 0.379298
1464 | vt 0.396396 0.385360
1465 | vt 0.378061 0.344953
1466 | vt 0.373086 0.351014
1467 | vt 0.344802 0.322730
1468 | vt 0.368112 0.357076
1469 | vt 0.339827 0.328791
1470 | vt 0.311543 0.300507
1471 | vt 0.363137 0.363137
1472 | vt 0.334853 0.334853
1473 | vt 0.306569 0.306569
1474 | vt 0.278284 0.278284
1475 | vt 0.413644 0.424680
1476 | vt 0.407583 0.429655
1477 | vt 0.385360 0.396396
1478 | vt 0.401521 0.434629
1479 | vt 0.379298 0.401370
1480 | vt 0.395460 0.439604
1481 | vt 0.373237 0.406345
1482 | vt 0.367175 0.411319
1483 | vt 0.357076 0.368112
1484 | vt 0.351014 0.373086
1485 | vt 0.328791 0.339827
1486 | vt 0.344953 0.378061
1487 | vt 0.322730 0.344802
1488 | vt 0.300507 0.311543
1489 | vt 0.338891 0.383035
1490 | vt 0.316668 0.349776
1491 | vt 0.294446 0.316518
1492 | vt 0.272223 0.283259
1493 | vt 0.376421 0.453249
1494 | vt 0.369506 0.456945
1495 | vt 0.354199 0.419990
1496 | vt 0.362590 0.460642
1497 | vt 0.347283 0.423687
1498 | vt 0.355675 0.464338
1499 | vt 0.340368 0.427383
1500 | vt 0.333452 0.431080
1501 | vt 0.331976 0.386732
1502 | vt 0.325060 0.390428
1503 | vt 0.309753 0.353473
1504 | vt 0.318145 0.394124
1505 | vt 0.302837 0.357169
1506 | vt 0.287530 0.320214
1507 | vt 0.311229 0.397821
1508 | vt 0.295922 0.360866
1509 | vt 0.280615 0.323910
1510 | vt 0.265307 0.286955
1511 | vt 0.334340 0.474007
1512 | vt 0.326837 0.476284
1513 | vt 0.319033 0.437052
1514 | vt 0.319333 0.478560
1515 | vt 0.311529 0.439328
1516 | vt 0.311829 0.480836
1517 | vt 0.304026 0.441605
1518 | vt 0.296522 0.443881
1519 | vt 0.303726 0.400097
1520 | vt 0.296222 0.402373
1521 | vt 0.288418 0.363142
1522 | vt 0.288718 0.404649
1523 | vt 0.280915 0.365418
1524 | vt 0.273111 0.326187
1525 | vt 0.281214 0.406926
1526 | vt 0.273411 0.367694
1527 | vt 0.265607 0.328463
1528 | vt 0.257804 0.289231
1529 | vt 0.289018 0.486157
1530 | vt 0.281214 0.486926
1531 | vt 0.281214 0.446926
1532 | vt 0.273411 0.487694
1533 | vt 0.273411 0.447694
1534 | vt 0.265607 0.488463
1535 | vt 0.265607 0.448463
1536 | vt 0.257804 0.449231
1537 | vt 0.273411 0.407694
1538 | vt 0.265607 0.408463
1539 | vt 0.265607 0.368463
1540 | vt 0.257804 0.409231
1541 | vt 0.257804 0.369231
1542 | vt 0.257804 0.329231
1543 | vn 0.0878 0.4455 -0.8910
1544 | vn 0.2599 0.4455 -0.8567
1545 | vn 0.4220 0.4455 -0.7896
1546 | vn 0.5680 0.4455 -0.6921
1547 | vn 0.6921 0.4455 -0.5680
1548 | vn 0.7896 0.4455 -0.4220
1549 | vn 0.8567 0.4455 -0.2599
1550 | vn 0.8910 0.4455 -0.0878
1551 | vn 0.8910 0.4455 0.0878
1552 | vn 0.8567 0.4455 0.2599
1553 | vn 0.7896 0.4455 0.4220
1554 | vn 0.6921 0.4455 0.5680
1555 | vn 0.5680 0.4455 0.6921
1556 | vn 0.4220 0.4455 0.7896
1557 | vn 0.2599 0.4455 0.8567
1558 | vn 0.0878 0.4455 0.8910
1559 | vn -0.0878 0.4455 0.8910
1560 | vn -0.2599 0.4455 0.8567
1561 | vn -0.4220 0.4455 0.7896
1562 | vn -0.5680 0.4455 0.6921
1563 | vn -0.6921 0.4455 0.5680
1564 | vn -0.7896 0.4455 0.4220
1565 | vn -0.8567 0.4455 0.2599
1566 | vn -0.8910 0.4455 0.0878
1567 | vn -0.8910 0.4455 -0.0878
1568 | vn -0.8567 0.4455 -0.2599
1569 | vn -0.7896 0.4455 -0.4220
1570 | vn -0.6921 0.4455 -0.5680
1571 | vn -0.5680 0.4455 -0.6921
1572 | vn -0.4220 0.4455 -0.7896
1573 | vn 0.0000 -1.0000 -0.0000
1574 | vn -0.2599 0.4455 -0.8567
1575 | vn -0.0878 0.4455 -0.8910
1576 | vn -0.8910 0.4455 -0.0877
1577 | vn -0.0877 0.4455 0.8910
1578 | vn 0.0877 0.4455 0.8910
1579 | vn 0.8910 0.4455 0.0877
1580 | vn 0.0877 0.4455 -0.8910
1581 | usemtl None
1582 | s off
1583 | f 1/1/1 39/2/1 34/3/1
1584 | f 2/4/2 48/5/2 49/6/2
1585 | f 3/7/3 58/8/3 59/9/3
1586 | f 4/10/4 68/11/4 69/12/4
1587 | f 5/13/5 78/14/5 79/15/5
1588 | f 6/16/6 88/17/6 89/18/6
1589 | f 7/19/7 98/20/7 99/21/7
1590 | f 8/22/8 108/23/8 109/24/8
1591 | f 9/25/9 118/26/9 119/27/9
1592 | f 10/28/10 128/29/10 129/30/10
1593 | f 11/31/11 138/32/11 139/33/11
1594 | f 12/34/12 148/35/12 149/36/12
1595 | f 13/37/13 158/38/13 159/39/13
1596 | f 14/40/14 168/41/14 169/42/14
1597 | f 15/43/15 178/44/15 179/45/15
1598 | f 16/46/16 188/47/16 189/48/16
1599 | f 17/49/17 198/50/17 199/51/17
1600 | f 18/52/18 208/53/18 209/54/18
1601 | f 19/55/19 218/56/19 219/57/19
1602 | f 20/58/20 228/59/20 229/60/20
1603 | f 21/61/21 238/62/21 239/63/21
1604 | f 22/64/22 248/65/22 249/66/22
1605 | f 23/67/23 258/68/23 259/69/23
1606 | f 24/70/24 268/71/24 269/72/24
1607 | f 25/73/25 278/74/25 279/75/25
1608 | f 26/76/26 288/77/26 289/78/26
1609 | f 27/79/27 298/80/27 299/81/27
1610 | f 28/82/28 308/83/28 309/84/28
1611 | f 29/85/29 318/86/29 319/87/29
1612 | f 30/88/30 328/89/30 329/90/30
1613 | f 1/91/31 34/92/31 35/93/31 36/94/31 37/95/31 38/96/31 2/97/31 49/98/31 50/99/31 51/100/31 52/101/31 53/102/31 3/103/31 59/104/31 60/105/31 61/106/31 62/107/31 63/108/31 4/109/31 69/110/31 70/111/31 71/112/31 72/113/31 73/114/31 5/115/31 79/116/31 80/117/31 81/118/31 82/119/31 83/120/31 6/121/31 89/122/31 90/123/31 91/124/31 92/125/31 93/126/31 7/127/31 99/128/31 100/129/31 101/130/31 102/131/31 103/132/31 8/133/31 109/134/31 110/135/31 111/136/31 112/137/31 113/138/31 9/139/31 119/140/31 120/141/31 121/142/31 122/143/31 123/144/31 10/145/31 129/146/31 130/147/31 131/148/31 132/149/31 133/150/31 11/151/31 139/152/31 140/153/31 141/154/31 142/155/31 143/156/31 12/157/31 149/158/31 150/159/31 151/160/31 152/161/31 153/162/31 13/163/31 159/164/31 160/165/31 161/166/31 162/167/31 163/168/31 14/169/31 169/170/31 170/171/31 171/172/31 172/173/31 173/174/31 15/175/31 179/176/31 180/177/31 181/178/31 182/179/31 183/180/31 16/181/31 189/182/31 190/183/31 191/184/31 192/185/31 193/186/31 17/187/31 199/188/31 200/189/31 201/190/31 202/191/31 203/192/31 18/193/31 209/194/31 210/195/31 211/196/31 212/197/31 213/198/31 19/199/31 219/200/31 220/201/31 221/202/31 222/203/31 223/204/31 20/205/31 229/206/31 230/207/31 231/208/31 232/209/31 233/210/31 21/211/31 239/212/31 240/213/31 241/214/31 242/215/31 243/216/31 22/217/31 249/218/31 250/219/31 251/220/31 252/221/31 253/222/31 23/223/31 259/224/31 260/225/31 261/226/31 262/227/31 263/228/31 24/229/31 269/230/31 270/231/31 271/232/31 272/233/31 273/234/31 25/235/31 279/236/31 280/237/31 281/238/31 282/239/31 283/240/31 26/241/31 289/242/31 290/243/31 291/244/31 292/245/31 293/246/31 27/247/31 299/248/31 300/249/31 301/250/31 302/251/31 303/252/31 28/253/31 309/254/31 310/255/31 311/256/31 312/257/31 313/258/31 29/259/31 319/260/31 320/261/31 321/262/31 322/263/31 323/264/31 30/265/31 329/266/31 330/267/31 331/268/31 332/269/31 333/270/31 31/271/31 339/272/31 340/273/31 341/274/31 342/275/31 343/276/31 32/277/31 349/278/31 350/279/31 351/280/31 352/281/31 353/282/31
1614 | f 31/283/32 338/284/32 339/285/32
1615 | f 32/286/33 348/287/33 349/288/33
1616 | f 353/289/33 39/2/33 1/1/33
1617 | f 352/290/33 354/291/33 353/289/33
1618 | f 351/292/33 355/293/33 352/290/33
1619 | f 350/294/33 357/295/33 351/292/33
1620 | f 349/288/33 360/296/33 350/294/33
1621 | f 353/289/33 354/291/33 39/2/33
1622 | f 354/291/33 40/297/33 39/2/33
1623 | f 352/290/33 355/293/33 354/291/33
1624 | f 355/293/33 356/298/33 354/291/33
1625 | f 354/291/33 356/298/33 40/297/33
1626 | f 356/298/33 41/299/33 40/297/33
1627 | f 351/292/33 357/295/33 355/293/33
1628 | f 357/295/33 358/300/33 355/293/33
1629 | f 355/293/33 358/300/33 356/298/33
1630 | f 358/300/33 359/301/33 356/298/33
1631 | f 356/298/33 359/301/33 41/299/33
1632 | f 359/301/33 42/302/33 41/299/33
1633 | f 350/294/33 360/296/33 357/295/33
1634 | f 360/296/33 361/303/33 357/295/33
1635 | f 357/295/33 361/303/33 358/300/33
1636 | f 361/303/33 362/304/33 358/300/33
1637 | f 358/300/33 362/304/33 359/301/33
1638 | f 362/304/33 363/305/33 359/301/33
1639 | f 359/301/33 363/305/33 42/302/33
1640 | f 363/305/33 43/306/33 42/302/33
1641 | f 349/288/33 348/287/33 360/296/33
1642 | f 348/287/33 347/307/33 360/296/33
1643 | f 360/296/33 347/307/33 361/303/33
1644 | f 347/307/33 346/308/33 361/303/33
1645 | f 361/303/33 346/308/33 362/304/33
1646 | f 346/308/33 345/309/33 362/304/33
1647 | f 362/304/33 345/309/33 363/305/33
1648 | f 345/309/33 344/310/33 363/305/33
1649 | f 363/305/33 344/310/33 43/306/33
1650 | f 344/310/33 33/311/33 43/306/33
1651 | f 343/312/32 348/287/32 32/286/32
1652 | f 342/313/32 364/314/32 343/312/32
1653 | f 341/315/32 365/316/32 342/313/32
1654 | f 340/317/32 367/318/32 341/315/32
1655 | f 339/285/32 370/319/32 340/317/32
1656 | f 343/312/32 364/314/32 348/287/32
1657 | f 364/314/32 347/307/32 348/287/32
1658 | f 342/313/32 365/316/32 364/314/32
1659 | f 365/316/32 366/320/32 364/314/32
1660 | f 364/314/32 366/320/32 347/307/32
1661 | f 366/320/32 346/308/32 347/307/32
1662 | f 341/315/32 367/318/32 365/316/32
1663 | f 367/318/32 368/321/32 365/316/32
1664 | f 365/316/32 368/321/32 366/320/32
1665 | f 368/321/32 369/322/32 366/320/32
1666 | f 366/320/32 369/322/32 346/308/32
1667 | f 369/322/32 345/309/32 346/308/32
1668 | f 340/317/32 370/319/32 367/318/32
1669 | f 370/319/32 371/323/32 367/318/32
1670 | f 367/318/32 371/323/32 368/321/32
1671 | f 371/323/32 372/324/32 368/321/32
1672 | f 368/321/32 372/324/32 369/322/32
1673 | f 372/324/32 373/325/32 369/322/32
1674 | f 369/322/32 373/325/32 345/309/32
1675 | f 373/325/32 344/310/32 345/309/32
1676 | f 339/285/32 338/284/32 370/319/32
1677 | f 338/284/32 337/326/32 370/319/32
1678 | f 370/319/32 337/326/32 371/323/32
1679 | f 337/326/32 336/327/32 371/323/32
1680 | f 371/323/32 336/327/32 372/324/32
1681 | f 336/327/32 335/328/32 372/324/32
1682 | f 372/324/32 335/328/32 373/325/32
1683 | f 335/328/32 334/329/32 373/325/32
1684 | f 373/325/32 334/329/32 344/310/32
1685 | f 334/329/32 33/311/32 344/310/32
1686 | f 333/330/30 338/284/30 31/283/30
1687 | f 332/331/30 374/332/30 333/330/30
1688 | f 331/333/30 375/334/30 332/331/30
1689 | f 330/335/30 377/336/30 331/333/30
1690 | f 329/90/30 380/337/30 330/335/30
1691 | f 333/330/30 374/332/30 338/284/30
1692 | f 374/332/30 337/326/30 338/284/30
1693 | f 332/331/30 375/334/30 374/332/30
1694 | f 375/334/30 376/338/30 374/332/30
1695 | f 374/332/30 376/338/30 337/326/30
1696 | f 376/338/30 336/327/30 337/326/30
1697 | f 331/333/30 377/336/30 375/334/30
1698 | f 377/336/30 378/339/30 375/334/30
1699 | f 375/334/30 378/339/30 376/338/30
1700 | f 378/339/30 379/340/30 376/338/30
1701 | f 376/338/30 379/340/30 336/327/30
1702 | f 379/340/30 335/328/30 336/327/30
1703 | f 330/335/30 380/337/30 377/336/30
1704 | f 380/337/30 381/341/30 377/336/30
1705 | f 377/336/30 381/341/30 378/339/30
1706 | f 381/341/30 382/342/30 378/339/30
1707 | f 378/339/30 382/342/30 379/340/30
1708 | f 382/342/30 383/343/30 379/340/30
1709 | f 379/340/30 383/343/30 335/328/30
1710 | f 383/343/30 334/329/30 335/328/30
1711 | f 329/90/30 328/89/30 380/337/30
1712 | f 328/89/30 327/344/30 380/337/30
1713 | f 380/337/30 327/344/30 381/341/30
1714 | f 327/344/30 326/345/30 381/341/30
1715 | f 381/341/30 326/345/30 382/342/30
1716 | f 326/345/30 325/346/30 382/342/30
1717 | f 382/342/30 325/346/30 383/343/30
1718 | f 325/346/30 324/347/30 383/343/30
1719 | f 383/343/30 324/347/30 334/329/30
1720 | f 324/347/30 33/311/30 334/329/30
1721 | f 323/348/29 328/89/29 30/88/29
1722 | f 322/349/29 384/350/29 323/348/29
1723 | f 321/351/29 385/352/29 322/349/29
1724 | f 320/353/29 387/354/29 321/351/29
1725 | f 319/87/29 390/355/29 320/353/29
1726 | f 323/348/29 384/350/29 328/89/29
1727 | f 384/350/29 327/344/29 328/89/29
1728 | f 322/349/29 385/352/29 384/350/29
1729 | f 385/352/29 386/356/29 384/350/29
1730 | f 384/350/29 386/356/29 327/344/29
1731 | f 386/356/29 326/345/29 327/344/29
1732 | f 321/351/29 387/354/29 385/352/29
1733 | f 387/354/29 388/357/29 385/352/29
1734 | f 385/352/29 388/357/29 386/356/29
1735 | f 388/357/29 389/358/29 386/356/29
1736 | f 386/356/29 389/358/29 326/345/29
1737 | f 389/358/29 325/346/29 326/345/29
1738 | f 320/353/29 390/355/29 387/354/29
1739 | f 390/355/29 391/359/29 387/354/29
1740 | f 387/354/29 391/359/29 388/357/29
1741 | f 391/359/29 392/360/29 388/357/29
1742 | f 388/357/29 392/360/29 389/358/29
1743 | f 392/360/29 393/361/29 389/358/29
1744 | f 389/358/29 393/361/29 325/346/29
1745 | f 393/361/29 324/347/29 325/346/29
1746 | f 319/87/29 318/86/29 390/355/29
1747 | f 318/86/29 317/362/29 390/355/29
1748 | f 390/355/29 317/362/29 391/359/29
1749 | f 317/362/29 316/363/29 391/359/29
1750 | f 391/359/29 316/363/29 392/360/29
1751 | f 316/363/29 315/364/29 392/360/29
1752 | f 392/360/29 315/364/29 393/361/29
1753 | f 315/364/29 314/365/29 393/361/29
1754 | f 393/361/29 314/365/29 324/347/29
1755 | f 314/365/29 33/311/29 324/347/29
1756 | f 313/366/28 318/86/28 29/85/28
1757 | f 312/367/28 394/368/28 313/366/28
1758 | f 311/369/28 395/370/28 312/367/28
1759 | f 310/371/28 397/372/28 311/369/28
1760 | f 309/84/28 400/373/28 310/371/28
1761 | f 313/366/28 394/368/28 318/86/28
1762 | f 394/368/28 317/362/28 318/86/28
1763 | f 312/367/28 395/370/28 394/368/28
1764 | f 395/370/28 396/374/28 394/368/28
1765 | f 394/368/28 396/374/28 317/362/28
1766 | f 396/374/28 316/363/28 317/362/28
1767 | f 311/369/28 397/372/28 395/370/28
1768 | f 397/372/28 398/375/28 395/370/28
1769 | f 395/370/28 398/375/28 396/374/28
1770 | f 398/375/28 399/376/28 396/374/28
1771 | f 396/374/28 399/376/28 316/363/28
1772 | f 399/376/28 315/364/28 316/363/28
1773 | f 310/371/28 400/373/28 397/372/28
1774 | f 400/373/28 401/377/28 397/372/28
1775 | f 397/372/28 401/377/28 398/375/28
1776 | f 401/377/28 402/378/28 398/375/28
1777 | f 398/375/28 402/378/28 399/376/28
1778 | f 402/378/28 403/379/28 399/376/28
1779 | f 399/376/28 403/379/28 315/364/28
1780 | f 403/379/28 314/365/28 315/364/28
1781 | f 309/84/28 308/83/28 400/373/28
1782 | f 308/83/28 307/380/28 400/373/28
1783 | f 400/373/28 307/380/28 401/377/28
1784 | f 307/380/28 306/381/28 401/377/28
1785 | f 401/377/28 306/381/28 402/378/28
1786 | f 306/381/28 305/382/28 402/378/28
1787 | f 402/378/28 305/382/28 403/379/28
1788 | f 305/382/28 304/383/28 403/379/28
1789 | f 403/379/28 304/383/28 314/365/28
1790 | f 304/383/28 33/311/28 314/365/28
1791 | f 303/384/27 308/83/27 28/82/27
1792 | f 302/385/27 404/386/27 303/384/27
1793 | f 301/387/27 405/388/27 302/385/27
1794 | f 300/389/27 407/390/27 301/387/27
1795 | f 299/81/27 410/391/27 300/389/27
1796 | f 303/384/27 404/386/27 308/83/27
1797 | f 404/386/27 307/380/27 308/83/27
1798 | f 302/385/27 405/388/27 404/386/27
1799 | f 405/388/27 406/392/27 404/386/27
1800 | f 404/386/27 406/392/27 307/380/27
1801 | f 406/392/27 306/381/27 307/380/27
1802 | f 301/387/27 407/390/27 405/388/27
1803 | f 407/390/27 408/393/27 405/388/27
1804 | f 405/388/27 408/393/27 406/392/27
1805 | f 408/393/27 409/394/27 406/392/27
1806 | f 406/392/27 409/394/27 306/381/27
1807 | f 409/394/27 305/382/27 306/381/27
1808 | f 300/389/27 410/391/27 407/390/27
1809 | f 410/391/27 411/395/27 407/390/27
1810 | f 407/390/27 411/395/27 408/393/27
1811 | f 411/395/27 412/396/27 408/393/27
1812 | f 408/393/27 412/396/27 409/394/27
1813 | f 412/396/27 413/397/27 409/394/27
1814 | f 409/394/27 413/397/27 305/382/27
1815 | f 413/397/27 304/383/27 305/382/27
1816 | f 299/81/27 298/80/27 410/391/27
1817 | f 298/80/27 297/398/27 410/391/27
1818 | f 410/391/27 297/398/27 411/395/27
1819 | f 297/398/27 296/399/27 411/395/27
1820 | f 411/395/27 296/399/27 412/396/27
1821 | f 296/399/27 295/400/27 412/396/27
1822 | f 412/396/27 295/400/27 413/397/27
1823 | f 295/400/27 294/401/27 413/397/27
1824 | f 413/397/27 294/401/27 304/383/27
1825 | f 294/401/27 33/311/27 304/383/27
1826 | f 293/402/26 298/80/26 27/79/26
1827 | f 292/403/26 414/404/26 293/402/26
1828 | f 291/405/26 415/406/26 292/403/26
1829 | f 290/407/26 417/408/26 291/405/26
1830 | f 289/78/26 420/409/26 290/407/26
1831 | f 293/402/26 414/404/26 298/80/26
1832 | f 414/404/26 297/398/26 298/80/26
1833 | f 292/403/26 415/406/26 414/404/26
1834 | f 415/406/26 416/410/26 414/404/26
1835 | f 414/404/26 416/410/26 297/398/26
1836 | f 416/410/26 296/399/26 297/398/26
1837 | f 291/405/26 417/408/26 415/406/26
1838 | f 417/408/26 418/411/26 415/406/26
1839 | f 415/406/26 418/411/26 416/410/26
1840 | f 418/411/26 419/412/26 416/410/26
1841 | f 416/410/26 419/412/26 296/399/26
1842 | f 419/412/26 295/400/26 296/399/26
1843 | f 290/407/26 420/409/26 417/408/26
1844 | f 420/409/26 421/413/26 417/408/26
1845 | f 417/408/26 421/413/26 418/411/26
1846 | f 421/413/26 422/414/26 418/411/26
1847 | f 418/411/26 422/414/26 419/412/26
1848 | f 422/414/26 423/415/26 419/412/26
1849 | f 419/412/26 423/415/26 295/400/26
1850 | f 423/415/26 294/401/26 295/400/26
1851 | f 289/78/26 288/77/26 420/409/26
1852 | f 288/77/26 287/416/26 420/409/26
1853 | f 420/409/26 287/416/26 421/413/26
1854 | f 287/416/26 286/417/26 421/413/26
1855 | f 421/413/26 286/417/26 422/414/26
1856 | f 286/417/26 285/418/26 422/414/26
1857 | f 422/414/26 285/418/26 423/415/26
1858 | f 285/418/26 284/419/26 423/415/26
1859 | f 423/415/26 284/419/26 294/401/26
1860 | f 284/419/26 33/311/26 294/401/26
1861 | f 283/420/25 288/77/25 26/76/25
1862 | f 282/421/25 424/422/25 283/420/25
1863 | f 281/423/25 425/424/25 282/421/25
1864 | f 280/425/25 427/426/25 281/423/25
1865 | f 279/75/25 430/427/25 280/425/25
1866 | f 283/420/25 424/422/25 288/77/25
1867 | f 424/422/25 287/416/25 288/77/25
1868 | f 282/421/25 425/424/25 424/422/25
1869 | f 425/424/25 426/428/25 424/422/25
1870 | f 424/422/25 426/428/25 287/416/25
1871 | f 426/428/25 286/417/25 287/416/25
1872 | f 281/423/34 427/426/34 425/424/34
1873 | f 427/426/25 428/429/25 425/424/25
1874 | f 425/424/25 428/429/25 426/428/25
1875 | f 428/429/25 429/430/25 426/428/25
1876 | f 426/428/25 429/430/25 286/417/25
1877 | f 429/430/25 285/418/25 286/417/25
1878 | f 280/425/25 430/427/25 427/426/25
1879 | f 430/427/25 431/431/25 427/426/25
1880 | f 427/426/25 431/431/25 428/429/25
1881 | f 431/431/25 432/432/25 428/429/25
1882 | f 428/429/25 432/432/25 429/430/25
1883 | f 432/432/25 433/433/25 429/430/25
1884 | f 429/430/25 433/433/25 285/418/25
1885 | f 433/433/25 284/419/25 285/418/25
1886 | f 279/75/25 278/74/25 430/427/25
1887 | f 278/74/25 277/434/25 430/427/25
1888 | f 430/427/25 277/434/25 431/431/25
1889 | f 277/434/25 276/435/25 431/431/25
1890 | f 431/431/25 276/435/25 432/432/25
1891 | f 276/435/25 275/436/25 432/432/25
1892 | f 432/432/25 275/436/25 433/433/25
1893 | f 275/436/25 274/437/25 433/433/25
1894 | f 433/433/25 274/437/25 284/419/25
1895 | f 274/437/25 33/311/25 284/419/25
1896 | f 273/438/24 278/74/24 25/73/24
1897 | f 272/439/24 434/440/24 273/438/24
1898 | f 271/441/24 435/442/24 272/439/24
1899 | f 270/443/24 437/444/24 271/441/24
1900 | f 269/72/24 440/445/24 270/443/24
1901 | f 273/438/24 434/440/24 278/74/24
1902 | f 434/440/24 277/434/24 278/74/24
1903 | f 272/439/24 435/442/24 434/440/24
1904 | f 435/442/24 436/446/24 434/440/24
1905 | f 434/440/24 436/446/24 277/434/24
1906 | f 436/446/24 276/435/24 277/434/24
1907 | f 271/441/24 437/444/24 435/442/24
1908 | f 437/444/24 438/447/24 435/442/24
1909 | f 435/442/24 438/447/24 436/446/24
1910 | f 438/447/24 439/448/24 436/446/24
1911 | f 436/446/24 439/448/24 276/435/24
1912 | f 439/448/24 275/436/24 276/435/24
1913 | f 270/443/24 440/445/24 437/444/24
1914 | f 440/445/24 441/449/24 437/444/24
1915 | f 437/444/24 441/449/24 438/447/24
1916 | f 441/449/24 442/450/24 438/447/24
1917 | f 438/447/24 442/450/24 439/448/24
1918 | f 442/450/24 443/451/24 439/448/24
1919 | f 439/448/24 443/451/24 275/436/24
1920 | f 443/451/24 274/437/24 275/436/24
1921 | f 269/72/24 268/71/24 440/445/24
1922 | f 268/71/24 267/452/24 440/445/24
1923 | f 440/445/24 267/452/24 441/449/24
1924 | f 267/452/24 266/453/24 441/449/24
1925 | f 441/449/24 266/453/24 442/450/24
1926 | f 266/453/24 265/454/24 442/450/24
1927 | f 442/450/24 265/454/24 443/451/24
1928 | f 265/454/24 264/455/24 443/451/24
1929 | f 443/451/24 264/455/24 274/437/24
1930 | f 264/455/24 33/311/24 274/437/24
1931 | f 263/456/23 268/71/23 24/70/23
1932 | f 262/457/23 444/458/23 263/456/23
1933 | f 261/459/23 445/460/23 262/457/23
1934 | f 260/461/23 447/462/23 261/459/23
1935 | f 259/69/23 450/463/23 260/461/23
1936 | f 263/456/23 444/458/23 268/71/23
1937 | f 444/458/23 267/452/23 268/71/23
1938 | f 262/457/23 445/460/23 444/458/23
1939 | f 445/460/23 446/464/23 444/458/23
1940 | f 444/458/23 446/464/23 267/452/23
1941 | f 446/464/23 266/453/23 267/452/23
1942 | f 261/459/23 447/462/23 445/460/23
1943 | f 447/462/23 448/465/23 445/460/23
1944 | f 445/460/23 448/465/23 446/464/23
1945 | f 448/465/23 449/466/23 446/464/23
1946 | f 446/464/23 449/466/23 266/453/23
1947 | f 449/466/23 265/454/23 266/453/23
1948 | f 260/461/23 450/463/23 447/462/23
1949 | f 450/463/23 451/467/23 447/462/23
1950 | f 447/462/23 451/467/23 448/465/23
1951 | f 451/467/23 452/468/23 448/465/23
1952 | f 448/465/23 452/468/23 449/466/23
1953 | f 452/468/23 453/469/23 449/466/23
1954 | f 449/466/23 453/469/23 265/454/23
1955 | f 453/469/23 264/455/23 265/454/23
1956 | f 259/69/23 258/68/23 450/463/23
1957 | f 258/68/23 257/470/23 450/463/23
1958 | f 450/463/23 257/470/23 451/467/23
1959 | f 257/470/23 256/471/23 451/467/23
1960 | f 451/467/23 256/471/23 452/468/23
1961 | f 256/471/23 255/472/23 452/468/23
1962 | f 452/468/23 255/472/23 453/469/23
1963 | f 255/472/23 254/473/23 453/469/23
1964 | f 453/469/23 254/473/23 264/455/23
1965 | f 254/473/23 33/311/23 264/455/23
1966 | f 253/474/22 258/68/22 23/67/22
1967 | f 252/475/22 454/476/22 253/474/22
1968 | f 251/477/22 455/478/22 252/475/22
1969 | f 250/479/22 457/480/22 251/477/22
1970 | f 249/66/22 460/481/22 250/479/22
1971 | f 253/474/22 454/476/22 258/68/22
1972 | f 454/476/22 257/470/22 258/68/22
1973 | f 252/475/22 455/478/22 454/476/22
1974 | f 455/478/22 456/482/22 454/476/22
1975 | f 454/476/22 456/482/22 257/470/22
1976 | f 456/482/22 256/471/22 257/470/22
1977 | f 251/477/22 457/480/22 455/478/22
1978 | f 457/480/22 458/483/22 455/478/22
1979 | f 455/478/22 458/483/22 456/482/22
1980 | f 458/483/22 459/484/22 456/482/22
1981 | f 456/482/22 459/484/22 256/471/22
1982 | f 459/484/22 255/472/22 256/471/22
1983 | f 250/479/22 460/481/22 457/480/22
1984 | f 460/481/22 461/485/22 457/480/22
1985 | f 457/480/22 461/485/22 458/483/22
1986 | f 461/485/22 462/486/22 458/483/22
1987 | f 458/483/22 462/486/22 459/484/22
1988 | f 462/486/22 463/487/22 459/484/22
1989 | f 459/484/22 463/487/22 255/472/22
1990 | f 463/487/22 254/473/22 255/472/22
1991 | f 249/66/22 248/65/22 460/481/22
1992 | f 248/65/22 247/488/22 460/481/22
1993 | f 460/481/22 247/488/22 461/485/22
1994 | f 247/488/22 246/489/22 461/485/22
1995 | f 461/485/22 246/489/22 462/486/22
1996 | f 246/489/22 245/490/22 462/486/22
1997 | f 462/486/22 245/490/22 463/487/22
1998 | f 245/490/22 244/491/22 463/487/22
1999 | f 463/487/22 244/491/22 254/473/22
2000 | f 244/491/22 33/311/22 254/473/22
2001 | f 243/492/21 248/65/21 22/64/21
2002 | f 242/493/21 464/494/21 243/492/21
2003 | f 241/495/21 465/496/21 242/493/21
2004 | f 240/497/21 467/498/21 241/495/21
2005 | f 239/63/21 470/499/21 240/497/21
2006 | f 243/492/21 464/494/21 248/65/21
2007 | f 464/494/21 247/488/21 248/65/21
2008 | f 242/493/21 465/496/21 464/494/21
2009 | f 465/496/21 466/500/21 464/494/21
2010 | f 464/494/21 466/500/21 247/488/21
2011 | f 466/500/21 246/489/21 247/488/21
2012 | f 241/495/21 467/498/21 465/496/21
2013 | f 467/498/21 468/501/21 465/496/21
2014 | f 465/496/21 468/501/21 466/500/21
2015 | f 468/501/21 469/502/21 466/500/21
2016 | f 466/500/21 469/502/21 246/489/21
2017 | f 469/502/21 245/490/21 246/489/21
2018 | f 240/497/21 470/499/21 467/498/21
2019 | f 470/499/21 471/503/21 467/498/21
2020 | f 467/498/21 471/503/21 468/501/21
2021 | f 471/503/21 472/504/21 468/501/21
2022 | f 468/501/21 472/504/21 469/502/21
2023 | f 472/504/21 473/505/21 469/502/21
2024 | f 469/502/21 473/505/21 245/490/21
2025 | f 473/505/21 244/491/21 245/490/21
2026 | f 239/63/21 238/62/21 470/499/21
2027 | f 238/62/21 237/506/21 470/499/21
2028 | f 470/499/21 237/506/21 471/503/21
2029 | f 237/506/21 236/507/21 471/503/21
2030 | f 471/503/21 236/507/21 472/504/21
2031 | f 236/507/21 235/508/21 472/504/21
2032 | f 472/504/21 235/508/21 473/505/21
2033 | f 235/508/21 234/509/21 473/505/21
2034 | f 473/505/21 234/509/21 244/491/21
2035 | f 234/509/21 33/311/21 244/491/21
2036 | f 233/510/20 238/62/20 21/61/20
2037 | f 232/511/20 474/512/20 233/510/20
2038 | f 231/513/20 475/514/20 232/511/20
2039 | f 230/515/20 477/516/20 231/513/20
2040 | f 229/60/20 480/517/20 230/515/20
2041 | f 233/510/20 474/512/20 238/62/20
2042 | f 474/512/20 237/506/20 238/62/20
2043 | f 232/511/20 475/514/20 474/512/20
2044 | f 475/514/20 476/518/20 474/512/20
2045 | f 474/512/20 476/518/20 237/506/20
2046 | f 476/518/20 236/507/20 237/506/20
2047 | f 231/513/20 477/516/20 475/514/20
2048 | f 477/516/20 478/519/20 475/514/20
2049 | f 475/514/20 478/519/20 476/518/20
2050 | f 478/519/20 479/520/20 476/518/20
2051 | f 476/518/20 479/520/20 236/507/20
2052 | f 479/520/20 235/508/20 236/507/20
2053 | f 230/515/20 480/517/20 477/516/20
2054 | f 480/517/20 481/521/20 477/516/20
2055 | f 477/516/20 481/521/20 478/519/20
2056 | f 481/521/20 482/522/20 478/519/20
2057 | f 478/519/20 482/522/20 479/520/20
2058 | f 482/522/20 483/523/20 479/520/20
2059 | f 479/520/20 483/523/20 235/508/20
2060 | f 483/523/20 234/509/20 235/508/20
2061 | f 229/60/20 228/59/20 480/517/20
2062 | f 228/59/20 227/524/20 480/517/20
2063 | f 480/517/20 227/524/20 481/521/20
2064 | f 227/524/20 226/525/20 481/521/20
2065 | f 481/521/20 226/525/20 482/522/20
2066 | f 226/525/20 225/526/20 482/522/20
2067 | f 482/522/20 225/526/20 483/523/20
2068 | f 225/526/20 224/527/20 483/523/20
2069 | f 483/523/20 224/527/20 234/509/20
2070 | f 224/527/20 33/311/20 234/509/20
2071 | f 223/528/19 228/59/19 20/58/19
2072 | f 222/529/19 484/530/19 223/528/19
2073 | f 221/531/19 485/532/19 222/529/19
2074 | f 220/533/19 487/534/19 221/531/19
2075 | f 219/57/19 490/535/19 220/533/19
2076 | f 223/528/19 484/530/19 228/59/19
2077 | f 484/530/19 227/524/19 228/59/19
2078 | f 222/529/19 485/532/19 484/530/19
2079 | f 485/532/19 486/536/19 484/530/19
2080 | f 484/530/19 486/536/19 227/524/19
2081 | f 486/536/19 226/525/19 227/524/19
2082 | f 221/531/19 487/534/19 485/532/19
2083 | f 487/534/19 488/537/19 485/532/19
2084 | f 485/532/19 488/537/19 486/536/19
2085 | f 488/537/19 489/538/19 486/536/19
2086 | f 486/536/19 489/538/19 226/525/19
2087 | f 489/538/19 225/526/19 226/525/19
2088 | f 220/533/19 490/535/19 487/534/19
2089 | f 490/535/19 491/539/19 487/534/19
2090 | f 487/534/19 491/539/19 488/537/19
2091 | f 491/539/19 492/540/19 488/537/19
2092 | f 488/537/19 492/540/19 489/538/19
2093 | f 492/540/19 493/541/19 489/538/19
2094 | f 489/538/19 493/541/19 225/526/19
2095 | f 493/541/19 224/527/19 225/526/19
2096 | f 219/57/19 218/56/19 490/535/19
2097 | f 218/56/19 217/542/19 490/535/19
2098 | f 490/535/19 217/542/19 491/539/19
2099 | f 217/542/19 216/543/19 491/539/19
2100 | f 491/539/19 216/543/19 492/540/19
2101 | f 216/543/19 215/544/19 492/540/19
2102 | f 492/540/19 215/544/19 493/541/19
2103 | f 215/544/19 214/545/19 493/541/19
2104 | f 493/541/19 214/545/19 224/527/19
2105 | f 214/545/19 33/311/19 224/527/19
2106 | f 213/546/18 218/56/18 19/55/18
2107 | f 212/547/18 494/548/18 213/546/18
2108 | f 211/549/18 495/550/18 212/547/18
2109 | f 210/551/18 497/552/18 211/549/18
2110 | f 209/54/18 500/553/18 210/551/18
2111 | f 213/546/18 494/548/18 218/56/18
2112 | f 494/548/18 217/542/18 218/56/18
2113 | f 212/547/18 495/550/18 494/548/18
2114 | f 495/550/18 496/554/18 494/548/18
2115 | f 494/548/18 496/554/18 217/542/18
2116 | f 496/554/18 216/543/18 217/542/18
2117 | f 211/549/18 497/552/18 495/550/18
2118 | f 497/552/18 498/555/18 495/550/18
2119 | f 495/550/18 498/555/18 496/554/18
2120 | f 498/555/18 499/556/18 496/554/18
2121 | f 496/554/18 499/556/18 216/543/18
2122 | f 499/556/18 215/544/18 216/543/18
2123 | f 210/551/18 500/553/18 497/552/18
2124 | f 500/553/18 501/557/18 497/552/18
2125 | f 497/552/18 501/557/18 498/555/18
2126 | f 501/557/18 502/558/18 498/555/18
2127 | f 498/555/18 502/558/18 499/556/18
2128 | f 502/558/18 503/559/18 499/556/18
2129 | f 499/556/18 503/559/18 215/544/18
2130 | f 503/559/18 214/545/18 215/544/18
2131 | f 209/54/18 208/53/18 500/553/18
2132 | f 208/53/18 207/560/18 500/553/18
2133 | f 500/553/18 207/560/18 501/557/18
2134 | f 207/560/18 206/561/18 501/557/18
2135 | f 501/557/18 206/561/18 502/558/18
2136 | f 206/561/18 205/562/18 502/558/18
2137 | f 502/558/18 205/562/18 503/559/18
2138 | f 205/562/18 204/563/18 503/559/18
2139 | f 503/559/18 204/563/18 214/545/18
2140 | f 204/563/18 33/311/18 214/545/18
2141 | f 203/564/17 208/53/17 18/52/17
2142 | f 202/565/17 504/566/17 203/564/17
2143 | f 201/567/17 505/568/17 202/565/17
2144 | f 200/569/17 507/570/17 201/567/17
2145 | f 199/51/17 510/571/17 200/569/17
2146 | f 203/564/17 504/566/17 208/53/17
2147 | f 504/566/17 207/560/17 208/53/17
2148 | f 202/565/17 505/568/17 504/566/17
2149 | f 505/568/17 506/572/17 504/566/17
2150 | f 504/566/17 506/572/17 207/560/17
2151 | f 506/572/17 206/561/17 207/560/17
2152 | f 201/567/35 507/570/35 505/568/35
2153 | f 507/570/17 508/573/17 505/568/17
2154 | f 505/568/17 508/573/17 506/572/17
2155 | f 508/573/17 509/574/17 506/572/17
2156 | f 506/572/17 509/574/17 206/561/17
2157 | f 509/574/17 205/562/17 206/561/17
2158 | f 200/569/17 510/571/17 507/570/17
2159 | f 510/571/17 511/575/17 507/570/17
2160 | f 507/570/17 511/575/17 508/573/17
2161 | f 511/575/17 512/576/17 508/573/17
2162 | f 508/573/17 512/576/17 509/574/17
2163 | f 512/576/17 513/577/17 509/574/17
2164 | f 509/574/17 513/577/17 205/562/17
2165 | f 513/577/17 204/563/17 205/562/17
2166 | f 199/51/17 198/50/17 510/571/17
2167 | f 198/50/17 197/578/17 510/571/17
2168 | f 510/571/17 197/578/17 511/575/17
2169 | f 197/578/17 196/579/17 511/575/17
2170 | f 511/575/17 196/579/17 512/576/17
2171 | f 196/579/17 195/580/17 512/576/17
2172 | f 512/576/17 195/580/17 513/577/17
2173 | f 195/580/17 194/581/17 513/577/17
2174 | f 513/577/17 194/581/17 204/563/17
2175 | f 194/581/17 33/311/17 204/563/17
2176 | f 193/582/16 198/50/16 17/49/16
2177 | f 192/583/16 514/584/16 193/582/16
2178 | f 191/585/16 515/586/16 192/583/16
2179 | f 190/587/16 517/588/16 191/585/16
2180 | f 189/48/16 520/589/16 190/587/16
2181 | f 193/582/16 514/584/16 198/50/16
2182 | f 514/584/16 197/578/16 198/50/16
2183 | f 192/583/36 515/586/36 514/584/36
2184 | f 515/586/16 516/590/16 514/584/16
2185 | f 514/584/16 516/590/16 197/578/16
2186 | f 516/590/16 196/579/16 197/578/16
2187 | f 191/585/16 517/588/16 515/586/16
2188 | f 517/588/16 518/591/16 515/586/16
2189 | f 515/586/16 518/591/16 516/590/16
2190 | f 518/591/16 519/592/16 516/590/16
2191 | f 516/590/16 519/592/16 196/579/16
2192 | f 519/592/16 195/580/16 196/579/16
2193 | f 190/587/16 520/589/16 517/588/16
2194 | f 520/589/16 521/593/16 517/588/16
2195 | f 517/588/16 521/593/16 518/591/16
2196 | f 521/593/16 522/594/16 518/591/16
2197 | f 518/591/16 522/594/16 519/592/16
2198 | f 522/594/16 523/595/16 519/592/16
2199 | f 519/592/16 523/595/16 195/580/16
2200 | f 523/595/16 194/581/16 195/580/16
2201 | f 189/48/16 188/47/16 520/589/16
2202 | f 188/47/16 187/596/16 520/589/16
2203 | f 520/589/16 187/596/16 521/593/16
2204 | f 187/596/16 186/597/16 521/593/16
2205 | f 521/593/16 186/597/16 522/594/16
2206 | f 186/597/16 185/598/16 522/594/16
2207 | f 522/594/16 185/598/16 523/595/16
2208 | f 185/598/16 184/599/16 523/595/16
2209 | f 523/595/16 184/599/16 194/581/16
2210 | f 184/599/16 33/311/16 194/581/16
2211 | f 183/600/15 188/47/15 16/46/15
2212 | f 182/601/15 524/602/15 183/600/15
2213 | f 181/603/15 525/604/15 182/601/15
2214 | f 180/605/15 527/606/15 181/603/15
2215 | f 179/45/15 530/607/15 180/605/15
2216 | f 183/600/15 524/602/15 188/47/15
2217 | f 524/602/15 187/596/15 188/47/15
2218 | f 182/601/15 525/604/15 524/602/15
2219 | f 525/604/15 526/608/15 524/602/15
2220 | f 524/602/15 526/608/15 187/596/15
2221 | f 526/608/15 186/597/15 187/596/15
2222 | f 181/603/15 527/606/15 525/604/15
2223 | f 527/606/15 528/609/15 525/604/15
2224 | f 525/604/15 528/609/15 526/608/15
2225 | f 528/609/15 529/610/15 526/608/15
2226 | f 526/608/15 529/610/15 186/597/15
2227 | f 529/610/15 185/598/15 186/597/15
2228 | f 180/605/15 530/607/15 527/606/15
2229 | f 530/607/15 531/611/15 527/606/15
2230 | f 527/606/15 531/611/15 528/609/15
2231 | f 531/611/15 532/612/15 528/609/15
2232 | f 528/609/15 532/612/15 529/610/15
2233 | f 532/612/15 533/613/15 529/610/15
2234 | f 529/610/15 533/613/15 185/598/15
2235 | f 533/613/15 184/599/15 185/598/15
2236 | f 179/45/15 178/44/15 530/607/15
2237 | f 178/44/15 177/614/15 530/607/15
2238 | f 530/607/15 177/614/15 531/611/15
2239 | f 177/614/15 176/615/15 531/611/15
2240 | f 531/611/15 176/615/15 532/612/15
2241 | f 176/615/15 175/616/15 532/612/15
2242 | f 532/612/15 175/616/15 533/613/15
2243 | f 175/616/15 174/617/15 533/613/15
2244 | f 533/613/15 174/617/15 184/599/15
2245 | f 174/617/15 33/311/15 184/599/15
2246 | f 173/618/14 178/44/14 15/43/14
2247 | f 172/619/14 534/620/14 173/618/14
2248 | f 171/621/14 535/622/14 172/619/14
2249 | f 170/623/14 537/624/14 171/621/14
2250 | f 169/42/14 540/625/14 170/623/14
2251 | f 173/618/14 534/620/14 178/44/14
2252 | f 534/620/14 177/614/14 178/44/14
2253 | f 172/619/14 535/622/14 534/620/14
2254 | f 535/622/14 536/626/14 534/620/14
2255 | f 534/620/14 536/626/14 177/614/14
2256 | f 536/626/14 176/615/14 177/614/14
2257 | f 171/621/14 537/624/14 535/622/14
2258 | f 537/624/14 538/627/14 535/622/14
2259 | f 535/622/14 538/627/14 536/626/14
2260 | f 538/627/14 539/628/14 536/626/14
2261 | f 536/626/14 539/628/14 176/615/14
2262 | f 539/628/14 175/616/14 176/615/14
2263 | f 170/623/14 540/625/14 537/624/14
2264 | f 540/625/14 541/629/14 537/624/14
2265 | f 537/624/14 541/629/14 538/627/14
2266 | f 541/629/14 542/630/14 538/627/14
2267 | f 538/627/14 542/630/14 539/628/14
2268 | f 542/630/14 543/631/14 539/628/14
2269 | f 539/628/14 543/631/14 175/616/14
2270 | f 543/631/14 174/617/14 175/616/14
2271 | f 169/42/14 168/41/14 540/625/14
2272 | f 168/41/14 167/632/14 540/625/14
2273 | f 540/625/14 167/632/14 541/629/14
2274 | f 167/632/14 166/633/14 541/629/14
2275 | f 541/629/14 166/633/14 542/630/14
2276 | f 166/633/14 165/634/14 542/630/14
2277 | f 542/630/14 165/634/14 543/631/14
2278 | f 165/634/14 164/635/14 543/631/14
2279 | f 543/631/14 164/635/14 174/617/14
2280 | f 164/635/14 33/311/14 174/617/14
2281 | f 163/636/13 168/41/13 14/40/13
2282 | f 162/637/13 544/638/13 163/636/13
2283 | f 161/639/13 545/640/13 162/637/13
2284 | f 160/641/13 547/642/13 161/639/13
2285 | f 159/39/13 550/643/13 160/641/13
2286 | f 163/636/13 544/638/13 168/41/13
2287 | f 544/638/13 167/632/13 168/41/13
2288 | f 162/637/13 545/640/13 544/638/13
2289 | f 545/640/13 546/644/13 544/638/13
2290 | f 544/638/13 546/644/13 167/632/13
2291 | f 546/644/13 166/633/13 167/632/13
2292 | f 161/639/13 547/642/13 545/640/13
2293 | f 547/642/13 548/645/13 545/640/13
2294 | f 545/640/13 548/645/13 546/644/13
2295 | f 548/645/13 549/646/13 546/644/13
2296 | f 546/644/13 549/646/13 166/633/13
2297 | f 549/646/13 165/634/13 166/633/13
2298 | f 160/641/13 550/643/13 547/642/13
2299 | f 550/643/13 551/647/13 547/642/13
2300 | f 547/642/13 551/647/13 548/645/13
2301 | f 551/647/13 552/648/13 548/645/13
2302 | f 548/645/13 552/648/13 549/646/13
2303 | f 552/648/13 553/649/13 549/646/13
2304 | f 549/646/13 553/649/13 165/634/13
2305 | f 553/649/13 164/635/13 165/634/13
2306 | f 159/39/13 158/38/13 550/643/13
2307 | f 158/38/13 157/650/13 550/643/13
2308 | f 550/643/13 157/650/13 551/647/13
2309 | f 157/650/13 156/651/13 551/647/13
2310 | f 551/647/13 156/651/13 552/648/13
2311 | f 156/651/13 155/652/13 552/648/13
2312 | f 552/648/13 155/652/13 553/649/13
2313 | f 155/652/13 154/653/13 553/649/13
2314 | f 553/649/13 154/653/13 164/635/13
2315 | f 154/653/13 33/311/13 164/635/13
2316 | f 153/654/12 158/38/12 13/37/12
2317 | f 152/655/12 554/656/12 153/654/12
2318 | f 151/657/12 555/658/12 152/655/12
2319 | f 150/659/12 557/660/12 151/657/12
2320 | f 149/36/12 560/661/12 150/659/12
2321 | f 153/654/12 554/656/12 158/38/12
2322 | f 554/656/12 157/650/12 158/38/12
2323 | f 152/655/12 555/658/12 554/656/12
2324 | f 555/658/12 556/662/12 554/656/12
2325 | f 554/656/12 556/662/12 157/650/12
2326 | f 556/662/12 156/651/12 157/650/12
2327 | f 151/657/12 557/660/12 555/658/12
2328 | f 557/660/12 558/663/12 555/658/12
2329 | f 555/658/12 558/663/12 556/662/12
2330 | f 558/663/12 559/664/12 556/662/12
2331 | f 556/662/12 559/664/12 156/651/12
2332 | f 559/664/12 155/652/12 156/651/12
2333 | f 150/659/12 560/661/12 557/660/12
2334 | f 560/661/12 561/665/12 557/660/12
2335 | f 557/660/12 561/665/12 558/663/12
2336 | f 561/665/12 562/666/12 558/663/12
2337 | f 558/663/12 562/666/12 559/664/12
2338 | f 562/666/12 563/667/12 559/664/12
2339 | f 559/664/12 563/667/12 155/652/12
2340 | f 563/667/12 154/653/12 155/652/12
2341 | f 149/36/12 148/35/12 560/661/12
2342 | f 148/35/12 147/668/12 560/661/12
2343 | f 560/661/12 147/668/12 561/665/12
2344 | f 147/668/12 146/669/12 561/665/12
2345 | f 561/665/12 146/669/12 562/666/12
2346 | f 146/669/12 145/670/12 562/666/12
2347 | f 562/666/12 145/670/12 563/667/12
2348 | f 145/670/12 144/671/12 563/667/12
2349 | f 563/667/12 144/671/12 154/653/12
2350 | f 144/671/12 33/311/12 154/653/12
2351 | f 143/672/11 148/35/11 12/34/11
2352 | f 142/673/11 564/674/11 143/672/11
2353 | f 141/675/11 565/676/11 142/673/11
2354 | f 140/677/11 567/678/11 141/675/11
2355 | f 139/33/11 570/679/11 140/677/11
2356 | f 143/672/11 564/674/11 148/35/11
2357 | f 564/674/11 147/668/11 148/35/11
2358 | f 142/673/11 565/676/11 564/674/11
2359 | f 565/676/11 566/680/11 564/674/11
2360 | f 564/674/11 566/680/11 147/668/11
2361 | f 566/680/11 146/669/11 147/668/11
2362 | f 141/675/11 567/678/11 565/676/11
2363 | f 567/678/11 568/681/11 565/676/11
2364 | f 565/676/11 568/681/11 566/680/11
2365 | f 568/681/11 569/682/11 566/680/11
2366 | f 566/680/11 569/682/11 146/669/11
2367 | f 569/682/11 145/670/11 146/669/11
2368 | f 140/677/11 570/679/11 567/678/11
2369 | f 570/679/11 571/683/11 567/678/11
2370 | f 567/678/11 571/683/11 568/681/11
2371 | f 571/683/11 572/684/11 568/681/11
2372 | f 568/681/11 572/684/11 569/682/11
2373 | f 572/684/11 573/685/11 569/682/11
2374 | f 569/682/11 573/685/11 145/670/11
2375 | f 573/685/11 144/671/11 145/670/11
2376 | f 139/33/11 138/32/11 570/679/11
2377 | f 138/32/11 137/686/11 570/679/11
2378 | f 570/679/11 137/686/11 571/683/11
2379 | f 137/686/11 136/687/11 571/683/11
2380 | f 571/683/11 136/687/11 572/684/11
2381 | f 136/687/11 135/688/11 572/684/11
2382 | f 572/684/11 135/688/11 573/685/11
2383 | f 135/688/11 134/689/11 573/685/11
2384 | f 573/685/11 134/689/11 144/671/11
2385 | f 134/689/11 33/311/11 144/671/11
2386 | f 133/690/10 138/32/10 11/31/10
2387 | f 132/691/10 574/692/10 133/690/10
2388 | f 131/693/10 575/694/10 132/691/10
2389 | f 130/695/10 577/696/10 131/693/10
2390 | f 129/30/10 580/697/10 130/695/10
2391 | f 133/690/10 574/692/10 138/32/10
2392 | f 574/692/10 137/686/10 138/32/10
2393 | f 132/691/10 575/694/10 574/692/10
2394 | f 575/694/10 576/698/10 574/692/10
2395 | f 574/692/10 576/698/10 137/686/10
2396 | f 576/698/10 136/687/10 137/686/10
2397 | f 131/693/10 577/696/10 575/694/10
2398 | f 577/696/10 578/699/10 575/694/10
2399 | f 575/694/10 578/699/10 576/698/10
2400 | f 578/699/10 579/700/10 576/698/10
2401 | f 576/698/10 579/700/10 136/687/10
2402 | f 579/700/10 135/688/10 136/687/10
2403 | f 130/695/10 580/697/10 577/696/10
2404 | f 580/697/10 581/701/10 577/696/10
2405 | f 577/696/10 581/701/10 578/699/10
2406 | f 581/701/10 582/702/10 578/699/10
2407 | f 578/699/10 582/702/10 579/700/10
2408 | f 582/702/10 583/703/10 579/700/10
2409 | f 579/700/10 583/703/10 135/688/10
2410 | f 583/703/10 134/689/10 135/688/10
2411 | f 129/30/10 128/29/10 580/697/10
2412 | f 128/29/10 127/704/10 580/697/10
2413 | f 580/697/10 127/704/10 581/701/10
2414 | f 127/704/10 126/705/10 581/701/10
2415 | f 581/701/10 126/705/10 582/702/10
2416 | f 126/705/10 125/706/10 582/702/10
2417 | f 582/702/10 125/706/10 583/703/10
2418 | f 125/706/10 124/707/10 583/703/10
2419 | f 583/703/10 124/707/10 134/689/10
2420 | f 124/707/10 33/311/10 134/689/10
2421 | f 123/708/9 128/29/9 10/28/9
2422 | f 122/709/9 584/710/9 123/708/9
2423 | f 121/711/9 585/712/9 122/709/9
2424 | f 120/713/9 587/714/9 121/711/9
2425 | f 119/27/9 590/715/9 120/713/9
2426 | f 123/708/9 584/710/9 128/29/9
2427 | f 584/710/9 127/704/9 128/29/9
2428 | f 122/709/9 585/712/9 584/710/9
2429 | f 585/712/9 586/716/9 584/710/9
2430 | f 584/710/9 586/716/9 127/704/9
2431 | f 586/716/9 126/705/9 127/704/9
2432 | f 121/711/37 587/714/37 585/712/37
2433 | f 587/714/9 588/717/9 585/712/9
2434 | f 585/712/9 588/717/9 586/716/9
2435 | f 588/717/9 589/718/9 586/716/9
2436 | f 586/716/9 589/718/9 126/705/9
2437 | f 589/718/9 125/706/9 126/705/9
2438 | f 120/713/9 590/715/9 587/714/9
2439 | f 590/715/9 591/719/9 587/714/9
2440 | f 587/714/9 591/719/9 588/717/9
2441 | f 591/719/9 592/720/9 588/717/9
2442 | f 588/717/9 592/720/9 589/718/9
2443 | f 592/720/9 593/721/9 589/718/9
2444 | f 589/718/9 593/721/9 125/706/9
2445 | f 593/721/9 124/707/9 125/706/9
2446 | f 119/27/9 118/26/9 590/715/9
2447 | f 118/26/9 117/722/9 590/715/9
2448 | f 590/715/9 117/722/9 591/719/9
2449 | f 117/722/9 116/723/9 591/719/9
2450 | f 591/719/9 116/723/9 592/720/9
2451 | f 116/723/9 115/724/9 592/720/9
2452 | f 592/720/9 115/724/9 593/721/9
2453 | f 115/724/9 114/725/9 593/721/9
2454 | f 593/721/9 114/725/9 124/707/9
2455 | f 114/725/9 33/311/9 124/707/9
2456 | f 113/726/8 118/26/8 9/25/8
2457 | f 112/727/8 594/728/8 113/726/8
2458 | f 111/729/8 595/730/8 112/727/8
2459 | f 110/731/8 597/732/8 111/729/8
2460 | f 109/24/8 600/733/8 110/731/8
2461 | f 113/726/8 594/728/8 118/26/8
2462 | f 594/728/8 117/722/8 118/26/8
2463 | f 112/727/8 595/730/8 594/728/8
2464 | f 595/730/8 596/734/8 594/728/8
2465 | f 594/728/8 596/734/8 117/722/8
2466 | f 596/734/8 116/723/8 117/722/8
2467 | f 111/729/8 597/732/8 595/730/8
2468 | f 597/732/8 598/735/8 595/730/8
2469 | f 595/730/8 598/735/8 596/734/8
2470 | f 598/735/8 599/736/8 596/734/8
2471 | f 596/734/8 599/736/8 116/723/8
2472 | f 599/736/8 115/724/8 116/723/8
2473 | f 110/731/8 600/733/8 597/732/8
2474 | f 600/733/8 601/737/8 597/732/8
2475 | f 597/732/8 601/737/8 598/735/8
2476 | f 601/737/8 602/738/8 598/735/8
2477 | f 598/735/8 602/738/8 599/736/8
2478 | f 602/738/8 603/739/8 599/736/8
2479 | f 599/736/8 603/739/8 115/724/8
2480 | f 603/739/8 114/725/8 115/724/8
2481 | f 109/24/8 108/23/8 600/733/8
2482 | f 108/23/8 107/740/8 600/733/8
2483 | f 600/733/8 107/740/8 601/737/8
2484 | f 107/740/8 106/741/8 601/737/8
2485 | f 601/737/8 106/741/8 602/738/8
2486 | f 106/741/8 105/742/8 602/738/8
2487 | f 602/738/8 105/742/8 603/739/8
2488 | f 105/742/8 104/743/8 603/739/8
2489 | f 603/739/8 104/743/8 114/725/8
2490 | f 104/743/8 33/311/8 114/725/8
2491 | f 103/744/7 108/23/7 8/22/7
2492 | f 102/745/7 604/746/7 103/744/7
2493 | f 101/747/7 605/748/7 102/745/7
2494 | f 100/749/7 607/750/7 101/747/7
2495 | f 99/21/7 610/751/7 100/749/7
2496 | f 103/744/7 604/746/7 108/23/7
2497 | f 604/746/7 107/740/7 108/23/7
2498 | f 102/745/7 605/748/7 604/746/7
2499 | f 605/748/7 606/752/7 604/746/7
2500 | f 604/746/7 606/752/7 107/740/7
2501 | f 606/752/7 106/741/7 107/740/7
2502 | f 101/747/7 607/750/7 605/748/7
2503 | f 607/750/7 608/753/7 605/748/7
2504 | f 605/748/7 608/753/7 606/752/7
2505 | f 608/753/7 609/754/7 606/752/7
2506 | f 606/752/7 609/754/7 106/741/7
2507 | f 609/754/7 105/742/7 106/741/7
2508 | f 100/749/7 610/751/7 607/750/7
2509 | f 610/751/7 611/755/7 607/750/7
2510 | f 607/750/7 611/755/7 608/753/7
2511 | f 611/755/7 612/756/7 608/753/7
2512 | f 608/753/7 612/756/7 609/754/7
2513 | f 612/756/7 613/757/7 609/754/7
2514 | f 609/754/7 613/757/7 105/742/7
2515 | f 613/757/7 104/743/7 105/742/7
2516 | f 99/21/7 98/20/7 610/751/7
2517 | f 98/20/7 97/758/7 610/751/7
2518 | f 610/751/7 97/758/7 611/755/7
2519 | f 97/758/7 96/759/7 611/755/7
2520 | f 611/755/7 96/759/7 612/756/7
2521 | f 96/759/7 95/760/7 612/756/7
2522 | f 612/756/7 95/760/7 613/757/7
2523 | f 95/760/7 94/761/7 613/757/7
2524 | f 613/757/7 94/761/7 104/743/7
2525 | f 94/761/7 33/311/7 104/743/7
2526 | f 93/762/6 98/20/6 7/19/6
2527 | f 92/763/6 614/764/6 93/762/6
2528 | f 91/765/6 615/766/6 92/763/6
2529 | f 90/767/6 617/768/6 91/765/6
2530 | f 89/18/6 620/769/6 90/767/6
2531 | f 93/762/6 614/764/6 98/20/6
2532 | f 614/764/6 97/758/6 98/20/6
2533 | f 92/763/6 615/766/6 614/764/6
2534 | f 615/766/6 616/770/6 614/764/6
2535 | f 614/764/6 616/770/6 97/758/6
2536 | f 616/770/6 96/759/6 97/758/6
2537 | f 91/765/6 617/768/6 615/766/6
2538 | f 617/768/6 618/771/6 615/766/6
2539 | f 615/766/6 618/771/6 616/770/6
2540 | f 618/771/6 619/772/6 616/770/6
2541 | f 616/770/6 619/772/6 96/759/6
2542 | f 619/772/6 95/760/6 96/759/6
2543 | f 90/767/6 620/769/6 617/768/6
2544 | f 620/769/6 621/773/6 617/768/6
2545 | f 617/768/6 621/773/6 618/771/6
2546 | f 621/773/6 622/774/6 618/771/6
2547 | f 618/771/6 622/774/6 619/772/6
2548 | f 622/774/6 623/775/6 619/772/6
2549 | f 619/772/6 623/775/6 95/760/6
2550 | f 623/775/6 94/761/6 95/760/6
2551 | f 89/18/6 88/17/6 620/769/6
2552 | f 88/17/6 87/776/6 620/769/6
2553 | f 620/769/6 87/776/6 621/773/6
2554 | f 87/776/6 86/777/6 621/773/6
2555 | f 621/773/6 86/777/6 622/774/6
2556 | f 86/777/6 85/778/6 622/774/6
2557 | f 622/774/6 85/778/6 623/775/6
2558 | f 85/778/6 84/779/6 623/775/6
2559 | f 623/775/6 84/779/6 94/761/6
2560 | f 84/779/6 33/311/6 94/761/6
2561 | f 83/780/5 88/17/5 6/16/5
2562 | f 82/781/5 624/782/5 83/780/5
2563 | f 81/783/5 625/784/5 82/781/5
2564 | f 80/785/5 627/786/5 81/783/5
2565 | f 79/15/5 630/787/5 80/785/5
2566 | f 83/780/5 624/782/5 88/17/5
2567 | f 624/782/5 87/776/5 88/17/5
2568 | f 82/781/5 625/784/5 624/782/5
2569 | f 625/784/5 626/788/5 624/782/5
2570 | f 624/782/5 626/788/5 87/776/5
2571 | f 626/788/5 86/777/5 87/776/5
2572 | f 81/783/5 627/786/5 625/784/5
2573 | f 627/786/5 628/789/5 625/784/5
2574 | f 625/784/5 628/789/5 626/788/5
2575 | f 628/789/5 629/790/5 626/788/5
2576 | f 626/788/5 629/790/5 86/777/5
2577 | f 629/790/5 85/778/5 86/777/5
2578 | f 80/785/5 630/787/5 627/786/5
2579 | f 630/787/5 631/791/5 627/786/5
2580 | f 627/786/5 631/791/5 628/789/5
2581 | f 631/791/5 632/792/5 628/789/5
2582 | f 628/789/5 632/792/5 629/790/5
2583 | f 632/792/5 633/793/5 629/790/5
2584 | f 629/790/5 633/793/5 85/778/5
2585 | f 633/793/5 84/779/5 85/778/5
2586 | f 79/15/5 78/14/5 630/787/5
2587 | f 78/14/5 77/794/5 630/787/5
2588 | f 630/787/5 77/794/5 631/791/5
2589 | f 77/794/5 76/795/5 631/791/5
2590 | f 631/791/5 76/795/5 632/792/5
2591 | f 76/795/5 75/796/5 632/792/5
2592 | f 632/792/5 75/796/5 633/793/5
2593 | f 75/796/5 74/797/5 633/793/5
2594 | f 633/793/5 74/797/5 84/779/5
2595 | f 74/797/5 33/311/5 84/779/5
2596 | f 73/798/4 78/14/4 5/13/4
2597 | f 72/799/4 634/800/4 73/798/4
2598 | f 71/801/4 635/802/4 72/799/4
2599 | f 70/803/4 637/804/4 71/801/4
2600 | f 69/12/4 640/805/4 70/803/4
2601 | f 73/798/4 634/800/4 78/14/4
2602 | f 634/800/4 77/794/4 78/14/4
2603 | f 72/799/4 635/802/4 634/800/4
2604 | f 635/802/4 636/806/4 634/800/4
2605 | f 634/800/4 636/806/4 77/794/4
2606 | f 636/806/4 76/795/4 77/794/4
2607 | f 71/801/4 637/804/4 635/802/4
2608 | f 637/804/4 638/807/4 635/802/4
2609 | f 635/802/4 638/807/4 636/806/4
2610 | f 638/807/4 639/808/4 636/806/4
2611 | f 636/806/4 639/808/4 76/795/4
2612 | f 639/808/4 75/796/4 76/795/4
2613 | f 70/803/4 640/805/4 637/804/4
2614 | f 640/805/4 641/809/4 637/804/4
2615 | f 637/804/4 641/809/4 638/807/4
2616 | f 641/809/4 642/810/4 638/807/4
2617 | f 638/807/4 642/810/4 639/808/4
2618 | f 642/810/4 643/811/4 639/808/4
2619 | f 639/808/4 643/811/4 75/796/4
2620 | f 643/811/4 74/797/4 75/796/4
2621 | f 69/12/4 68/11/4 640/805/4
2622 | f 68/11/4 67/812/4 640/805/4
2623 | f 640/805/4 67/812/4 641/809/4
2624 | f 67/812/4 66/813/4 641/809/4
2625 | f 641/809/4 66/813/4 642/810/4
2626 | f 66/813/4 65/814/4 642/810/4
2627 | f 642/810/4 65/814/4 643/811/4
2628 | f 65/814/4 64/815/4 643/811/4
2629 | f 643/811/4 64/815/4 74/797/4
2630 | f 64/815/4 33/311/4 74/797/4
2631 | f 63/816/3 68/11/3 4/10/3
2632 | f 62/817/3 644/818/3 63/816/3
2633 | f 61/819/3 645/820/3 62/817/3
2634 | f 60/821/3 647/822/3 61/819/3
2635 | f 59/9/3 650/823/3 60/821/3
2636 | f 63/816/3 644/818/3 68/11/3
2637 | f 644/818/3 67/812/3 68/11/3
2638 | f 62/817/3 645/820/3 644/818/3
2639 | f 645/820/3 646/824/3 644/818/3
2640 | f 644/818/3 646/824/3 67/812/3
2641 | f 646/824/3 66/813/3 67/812/3
2642 | f 61/819/3 647/822/3 645/820/3
2643 | f 647/822/3 648/825/3 645/820/3
2644 | f 645/820/3 648/825/3 646/824/3
2645 | f 648/825/3 649/826/3 646/824/3
2646 | f 646/824/3 649/826/3 66/813/3
2647 | f 649/826/3 65/814/3 66/813/3
2648 | f 60/821/3 650/823/3 647/822/3
2649 | f 650/823/3 651/827/3 647/822/3
2650 | f 647/822/3 651/827/3 648/825/3
2651 | f 651/827/3 652/828/3 648/825/3
2652 | f 648/825/3 652/828/3 649/826/3
2653 | f 652/828/3 653/829/3 649/826/3
2654 | f 649/826/3 653/829/3 65/814/3
2655 | f 653/829/3 64/815/3 65/814/3
2656 | f 59/9/3 58/8/3 650/823/3
2657 | f 58/8/3 57/830/3 650/823/3
2658 | f 650/823/3 57/830/3 651/827/3
2659 | f 57/830/3 56/831/3 651/827/3
2660 | f 651/827/3 56/831/3 652/828/3
2661 | f 56/831/3 55/832/3 652/828/3
2662 | f 652/828/3 55/832/3 653/829/3
2663 | f 55/832/3 54/833/3 653/829/3
2664 | f 653/829/3 54/833/3 64/815/3
2665 | f 54/833/3 33/311/3 64/815/3
2666 | f 53/834/2 58/8/2 3/7/2
2667 | f 52/835/2 654/836/2 53/834/2
2668 | f 51/837/2 655/838/2 52/835/2
2669 | f 50/839/2 657/840/2 51/837/2
2670 | f 49/6/2 660/841/2 50/839/2
2671 | f 53/834/2 654/836/2 58/8/2
2672 | f 654/836/2 57/830/2 58/8/2
2673 | f 52/835/2 655/838/2 654/836/2
2674 | f 655/838/2 656/842/2 654/836/2
2675 | f 654/836/2 656/842/2 57/830/2
2676 | f 656/842/2 56/831/2 57/830/2
2677 | f 51/837/2 657/840/2 655/838/2
2678 | f 657/840/2 658/843/2 655/838/2
2679 | f 655/838/2 658/843/2 656/842/2
2680 | f 658/843/2 659/844/2 656/842/2
2681 | f 656/842/2 659/844/2 56/831/2
2682 | f 659/844/2 55/832/2 56/831/2
2683 | f 50/839/2 660/841/2 657/840/2
2684 | f 660/841/2 661/845/2 657/840/2
2685 | f 657/840/2 661/845/2 658/843/2
2686 | f 661/845/2 662/846/2 658/843/2
2687 | f 658/843/2 662/846/2 659/844/2
2688 | f 662/846/2 663/847/2 659/844/2
2689 | f 659/844/2 663/847/2 55/832/2
2690 | f 663/847/2 54/833/2 55/832/2
2691 | f 49/6/2 48/5/2 660/841/2
2692 | f 48/5/2 47/848/2 660/841/2
2693 | f 660/841/2 47/848/2 661/845/2
2694 | f 47/848/2 46/849/2 661/845/2
2695 | f 661/845/2 46/849/2 662/846/2
2696 | f 46/849/2 45/850/2 662/846/2
2697 | f 662/846/2 45/850/2 663/847/2
2698 | f 45/850/2 44/851/2 663/847/2
2699 | f 663/847/2 44/851/2 54/833/2
2700 | f 44/851/2 33/311/2 54/833/2
2701 | f 38/852/1 48/5/1 2/4/1
2702 | f 37/853/1 664/854/1 38/852/1
2703 | f 36/855/1 665/856/1 37/853/1
2704 | f 35/857/1 667/858/1 36/855/1
2705 | f 34/3/1 670/859/1 35/857/1
2706 | f 38/852/1 664/854/1 48/5/1
2707 | f 664/854/1 47/848/1 48/5/1
2708 | f 37/853/1 665/856/1 664/854/1
2709 | f 665/856/1 666/860/1 664/854/1
2710 | f 664/854/1 666/860/1 47/848/1
2711 | f 666/860/1 46/849/1 47/848/1
2712 | f 36/855/38 667/858/38 665/856/38
2713 | f 667/858/1 668/861/1 665/856/1
2714 | f 665/856/1 668/861/1 666/860/1
2715 | f 668/861/1 669/862/1 666/860/1
2716 | f 666/860/1 669/862/1 46/849/1
2717 | f 669/862/1 45/850/1 46/849/1
2718 | f 35/857/1 670/859/1 667/858/1
2719 | f 670/859/1 671/863/1 667/858/1
2720 | f 667/858/1 671/863/1 668/861/1
2721 | f 671/863/1 672/864/1 668/861/1
2722 | f 668/861/1 672/864/1 669/862/1
2723 | f 672/864/1 673/865/1 669/862/1
2724 | f 669/862/1 673/865/1 45/850/1
2725 | f 673/865/1 44/851/1 45/850/1
2726 | f 34/3/1 39/2/1 670/859/1
2727 | f 39/2/1 40/297/1 670/859/1
2728 | f 670/859/1 40/297/1 671/863/1
2729 | f 40/297/1 41/299/1 671/863/1
2730 | f 671/863/1 41/299/1 672/864/1
2731 | f 41/299/1 42/302/1 672/864/1
2732 | f 672/864/1 42/302/1 673/865/1
2733 | f 42/302/1 43/306/1 673/865/1
2734 | f 673/865/1 43/306/1 44/851/1
2735 | f 43/306/1 33/311/1 44/851/1
2736 |
--------------------------------------------------------------------------------