forked from graphdeco-inria/gaussian-splatting
-
Notifications
You must be signed in to change notification settings - Fork 2
/
tracking.py
271 lines (214 loc) · 69.7 KB
/
tracking.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
from plyfile import PlyData, PlyElement
import numpy as np
import torch
import torch.nn.functional as f
import torch.optim as optim
from torch import nn
from torch.utils.data import DataLoader, Dataset
from torchvision import datasets
from torchvision.transforms import ToTensor
import time
from datetime import datetime
import os
os.environ["OPENCV_IO_ENABLE_OPENEXR"]="1"
import cv2
def RotationFromQuat(quat, device):
axis = f.normalize(quat[0:3], dim = 0)
x, y, z, q3 = torch.unbind(quat)
q0, q1, q2 = torch.unbind(axis)
extr_r = torch.stack(
(
2 * (q0 * q0 + q1 * q1) - 1,
2 * (q1 * q2 - q0 * q3),
2 * (q1 * q3 + q0 * q2),
2 * (q1 * q2 + q0 * q3),
2 * (q0 * q0 + q2 * q2) - 1,
2 * (q2 * q3 - q0 * q1),
2 * (q1 * q3 - q0 * q2),
2 * (q2 * q3 + q0 * q1),
2 * (q0 * q0 + q3 * q3) - 1
),
-1,
).reshape(3, 3)
extr_r.to(device)
return extr_r
def GenerateUVTensor():
width = 640
height = 480
u = torch.arange(width)
for i in range (height-1):
u = torch.vstack((u, torch.arange(width)))
v = torch.tile(torch.arange(height), (1, 1)).T
for i in range (width-1):
v = torch.hstack((v, torch.tile(torch.arange(height), (1, 1)).T))
uv = torch.stack((u, v), dim = 2)
return uv
def CreateIntrinsics():
fx = 535.4
fy = 539.2
cx = 320.1
cy = 247.6
intr = torch.zeros(3, 3)
intr[0][0] = fx
intr[0][2] = cx
intr[1][1] = fy
intr[1][2] = cy
intr[2][2] = 1
return intr
def CreateInvIntrinsics():
fx = 535.4
fy = 539.2
cx = 320.1
cy = 247.6
inv_intr = torch.zeros(3, 3)
inv_intr[0][0] = 1/fx
inv_intr[0][2] = -cx/fx
inv_intr[1][1] = 1/fy
inv_intr[1][2] = -cy/fy
inv_intr[2][2] = 1
return inv_intr
def CreateXYZ(uv, depth, inv_intr, extr_quat, extr_t, device):
extr_r = RotationFromQuat(extr_quat, device)
scale_factor = 5000.0
ones = torch.ones((uv.shape[0], uv.shape[1], 1)).to(device)
uv_one = torch.cat((uv, ones), dim=2)
uv_one = torch.unsqueeze(uv_one, dim = 2)
xy_one = torch.tensordot(uv_one, inv_intr, dims=([3], [1])).squeeze()
d = depth.unsqueeze(dim=2)
d = d/scale_factor
xyz = torch.mul(xy_one, d)
xyz = torch.flatten(xyz, start_dim=0, end_dim=1).to(device)
#filter by depth
mask1 = xyz[:, 2] <= 3
xyz = xyz[mask1]
mask2 = xyz[:, 2] > 0.5
xyz = xyz[mask2]
xyz_tensor = torch.tensordot(xyz, extr_r, dims=([1], [1]))
xyz_tensor = torch.add(xyz_tensor, extr_t)
return xyz_tensor
def ReProjectLoss(xyz_tensor, depth_target, extr_quat, extr_t, intr, device):
scale_factor = 5000.0
extr_r = RotationFromQuat(extr_quat, device)
xyz_tensor = torch.add(xyz_tensor, -extr_t)
xyz_tensor = torch.tensordot(xyz_tensor, extr_r.T, dims=([1], [1]))
projected = torch.tensordot(xyz_tensor, intr, dims=([1], [1]))
z_mask = projected[:, 2] > 0
projected = projected[z_mask]
z = projected[:, 2].unsqueeze(dim=1)
# print(projected[:, 2].shape)
# print(z.shape)
# projected[:, 0] = projected[:, 0]/projected[:, 2]
# projected[:, 1] = projected[:, 1]/projected[:, 2]
projected = projected/z
projected[:, 2] = z.squeeze()
w_mask1 = projected[:, 0] > 0
projected = projected[w_mask1]
w_mask2 = projected[:, 0] <= 639
projected = projected[w_mask2]
h_mask1 = projected[:, 1] > 0
projected = projected[h_mask1]
h_mask2 = projected[:, 1] <= 479
projected = (projected[h_mask2]).to(torch.float)
d_mask1 = projected[:, 2] <= 3.0
projected = projected[d_mask1]
d_mask2 = projected[:, 2] > 0.5
projected = projected[d_mask2]
z = projected[:, 2].unsqueeze(dim=1)
index_vector = projected[:, :2]
t = (torch.from_numpy(np.array([1, 640])).unsqueeze(dim=1)).to(torch.float).to(device)
index_vector = torch.tensordot(index_vector, t, dims=([1], [0])).squeeze().to(torch.int64)
target_d = torch.take(depth_target, index_vector).unsqueeze(dim=1)/scale_factor
# print(f'projected: {projected.shape} | target_d: {target_d.shape} | z: {z.shape}')
loss = torch.abs(z - target_d)
mask_loss = loss[:] < 0.05
loss = loss[mask_loss]
sqr_loss = torch.square(loss)
# loss = torch.mean(loss)
# print(loss.is_leaf)
# loss = torch.tensor(torch.mean(torch.abs(z - target_d)/scale_factor), requires_grad = True, device=device)
# print(loss.is_leaf)
# loss = torch.tensor(torch.zeros(1), requires_grad=True, device = 'cuda:0')
return torch.sum(sqr_loss)
def StorPly(xyz_tensor, num):
dtype = [('x', 'f4'), ('y', 'f4'), ('z', 'f4'),
('nx', 'f4'), ('ny', 'f4'), ('nz', 'f4'),
('red', 'u1'), ('green', 'u1'), ('blue', 'u1')]
xyz_list = xyz_tensor.detach().cpu().numpy()
normals = np.zeros_like(xyz_list)
color_list = np.ones_like(xyz_list) * 100
# print(xyz_list.shape)
# print(normals.shape)
# print(color_list.shape)
#
elements = np.empty(xyz_list.shape[0], dtype=dtype)
attributes = np.concatenate((xyz_list, normals, color_list), axis=1)
elements[:] = list(map(tuple, attributes))
#
ply_path = f'C:/lab/research/dataset/arkit_diet/tracking_test/ply_customed{num}.ply'
vertex_element = PlyElement.describe(elements, 'vertex')
ply_data = PlyData([vertex_element])
ply_data.write(ply_path)
device = 'cuda:0'
# path = "C:\lab\research\dataset\rgbd_dataset_freiburg3_long_office_household\depth"
path = "c:/lab/research/dataset/rgbd_dataset_freiburg3_long_office_household/depth/"
depth_ref = cv2.imread(f'{path}1341847980.723020.png', cv2.IMREAD_ANYCOLOR | cv2.IMREAD_ANYDEPTH)
depth_ref = torch.from_numpy(np.array(depth_ref, dtype = np.float16)).to(device)
# cv2.imshow('ref', depth_ref/5000)
target_list = ["1341847980.723020.png", "1341847980.754755.png", "1341847980.786879.png", "1341847980.822989.png", "1341847980.854690.png", "1341847980.890737.png", "1341847980.922989.png", "1341847980.954676.png", "1341847980.990724.png", "1341847981.022728.png", "1341847981.054773.png", "1341847981.090786.png", "1341847981.123049.png", "1341847981.158648.png", "1341847981.190650.png", "1341847981.222989.png", "1341847981.258781.png", "1341847981.290854.png", "1341847981.322934.png", "1341847981.358724.png", "1341847981.390852.png", "1341847981.426732.png", "1341847981.459399.png", "1341847981.493435.png", "1341847981.527062.png", "1341847981.558770.png", "1341847981.594880.png", "1341847981.626685.png", "1341847981.658793.png", "1341847981.694765.png", "1341847981.726727.png", "1341847981.758922.png", "1341847981.794679.png", "1341847981.826688.png", "1341847981.862742.png", "1341847981.894645.png", "1341847981.927087.png", "1341847981.994858.png", "1341847982.062794.png", "1341847982.095304.png", "1341847982.130739.png", "1341847982.162746.png", "1341847982.194690.png", "1341847982.230626.png", "1341847982.262694.png", "1341847982.295020.png", "1341847982.330680.png", "1341847982.398929.png", "1341847982.430799.png", "1341847982.462632.png", "1341847982.498627.png", "1341847982.530781.png", "1341847982.566676.png", "1341847982.598757.png", "1341847982.630827.png", "1341847982.666629.png", "1341847982.698652.png", "1341847982.731415.png", "1341847982.766748.png", "1341847982.798982.png", "1341847982.834818.png", "1341847982.866706.png", "1341847982.898764.png", "1341847982.934825.png", "1341847982.966733.png", "1341847982.998830.png", "1341847983.034747.png", "1341847983.066757.png", "1341847983.102773.png", "1341847983.134819.png", "1341847983.166667.png", "1341847983.202670.png", "1341847983.235241.png", "1341847983.266928.png", "1341847983.302721.png", "1341847983.334745.png", "1341847983.370946.png", "1341847983.402685.png", "1341847983.434724.png", "1341847983.470687.png", "1341847983.502784.png", "1341847983.535375.png", "1341847983.570707.png", "1341847983.602750.png", "1341847983.638747.png", "1341847983.702880.png", "1341847983.738756.png", "1341847983.770716.png", "1341847983.806687.png", "1341847983.838762.png", "1341847983.870739.png", "1341847983.906718.png", "1341847983.938781.png", "1341847983.971345.png", "1341847984.006741.png", "1341847984.038747.png", "1341847984.074751.png", "1341847984.106788.png", "1341847984.138713.png", "1341847984.174870.png", "1341847984.206723.png", "1341847984.238681.png", "1341847984.274814.png", "1341847984.306728.png", "1341847984.343117.png", "1341847984.406738.png", "1341847984.443623.png", "1341847984.474678.png", "1341847984.506771.png", "1341847984.542793.png", "1341847984.574826.png", "1341847984.611288.png", "1341847984.642687.png", "1341847984.674831.png", "1341847984.710661.png", "1341847984.743366.png", "1341847984.778893.png", "1341847984.810686.png", "1341847984.842727.png", "1341847984.878804.png", "1341847984.910638.png", "1341847984.943074.png", "1341847984.979255.png", "1341847985.010645.png", "1341847985.046651.png", "1341847985.078715.png", "1341847985.110785.png", "1341847985.146837.png", "1341847985.178715.png", "1341847985.210881.png", "1341847985.246755.png", "1341847985.279393.png", "1341847985.314667.png", "1341847985.347567.png", "1341847985.379393.png", "1341847985.414665.png", "1341847985.446867.png", "1341847985.478701.png", "1341847985.515080.png", "1341847985.547228.png", "1341847985.582613.png", "1341847985.614794.png", "1341847985.647135.png", "1341847985.682855.png", "1341847985.714738.png", "1341847985.747012.png", "1341847985.782792.png", "1341847985.814724.png", "1341847985.850752.png", "1341847985.882825.png", "1341847985.915001.png", "1341847985.950789.png", "1341847985.983184.png", "1341847986.018774.png", "1341847986.052003.png", "1341847986.082622.png", "1341847986.118737.png", "1341847986.150649.png", "1341847986.182659.png", "1341847986.218696.png", "1341847986.250603.png", "1341847986.286745.png", "1341847986.318694.png", "1341847986.326815.png", "1341847986.360005.png", "1341847986.395174.png", "1341847986.425890.png", "1341847986.458500.png", "1341847986.493756.png", "1341847986.525809.png", "1341847986.561718.png", "1341847986.594246.png", "1341847986.625755.png", "1341847986.662611.png", "1341847986.693835.png", "1341847986.726876.png", "1341847986.762633.png", "1341847986.793820.png", "1341847986.829832.png", "1341847986.886842.png", "1341847986.922755.png", "1341847986.954745.png", "1341847986.990660.png", "1341847987.022913.png", "1341847987.054639.png", "1341847987.091553.png", "1341847987.123270.png", "1341847987.190730.png", "1341847987.259272.png", "1341847987.291556.png", "1341847987.322841.png", "1341847987.390738.png", "1341847987.423694.png", "1341847987.458651.png", "1341847987.490783.png", "1341847987.526770.png", "1341847987.558708.png", "1341847987.590797.png", "1341847987.626940.png", "1341847987.659671.png", "1341847987.691690.png", "1341847987.726755.png", "1341847987.758755.png", "1341847987.795290.png", "1341847987.826758.png", "1341847987.858761.png", "1341847987.865947.png", "1341847987.897811.png", "1341847987.933810.png", "1341847987.965906.png", "1341847987.997809.png", "1341847988.033804.png", "1341847988.066172.png", "1341847988.098177.png", "1341847988.133778.png", "1341847988.165826.png", "1341847988.201741.png", "1341847988.233789.png", "1341847988.265717.png", "1341847988.301805.png", "1341847988.333771.png", "1341847988.369734.png", "1341847988.401770.png", "1341847988.434023.png", "1341847988.469802.png", "1341847988.502545.png", "1341847988.537793.png", "1341847988.569710.png", "1341847988.601811.png", "1341847988.637776.png", "1341847988.669832.png", "1341847988.706208.png", "1341847988.737953.png", "1341847988.769758.png", "1341847988.806076.png", "1341847988.837915.png", "1341847988.873942.png", "1341847988.937882.png", "1341847988.998765.png", "1341847989.034698.png", "1341847989.066676.png", "1341847989.099249.png", "1341847989.134698.png", "1341847989.166691.png", "1341847989.202772.png", "1341847989.234770.png", "1341847989.266663.png", "1341847989.302804.png", "1341847989.334903.png", "1341847989.366730.png", "1341847989.402790.png", "1341847989.434864.png", "1341847989.470743.png", "1341847989.502627.png", "1341847989.534720.png", "1341847989.570732.png", "1341847989.603280.png", "1341847989.634762.png", "1341847989.670637.png", "1341847989.702641.png", "1341847989.739046.png", "1341847989.770752.png", "1341847989.802917.png", "1341847989.838797.png", "1341847989.870960.png", "1341847989.902737.png", "1341847989.939021.png", "1341847989.970757.png", "1341847990.006941.png", "1341847990.039022.png", "1341847990.070724.png", "1341847990.106746.png", "1341847990.139215.png", "1341847990.171115.png", "1341847990.207058.png", "1341847990.238939.png", "1341847990.274725.png", "1341847990.307302.png", "1341847990.339128.png", "1341847990.374681.png", "1341847990.407262.png", "1341847990.442590.png", "1341847990.474662.png", "1341847990.506835.png", "1341847990.542844.png", "1341847990.574721.png", "1341847990.642801.png", "1341847990.674803.png", "1341847990.711535.png", "1341847990.742736.png", "1341847990.774681.png", "1341847990.810817.png", "1341847990.842732.png", "1341847990.874776.png", "1341847990.910852.png", "1341847990.942701.png", "1341847990.978843.png", "1341847991.011241.png", "1341847991.042762.png", "1341847991.078699.png", "1341847991.111338.png", "1341847991.142813.png", "1341847991.178815.png", "1341847991.210701.png", "1341847991.246874.png", "1341847991.278763.png", "1341847991.310849.png", "1341847991.346739.png", "1341847991.378827.png", "1341847991.414740.png", "1341847991.446753.png", "1341847991.478846.png", "1341847991.514730.png", "1341847991.546739.png", "1341847991.578924.png", "1341847991.614880.png", "1341847991.646733.png", "1341847991.689946.png", "1341847991.746844.png", "1341847991.782683.png", "1341847991.814763.png", "1341847991.846745.png", "1341847991.882794.png", "1341847991.915861.png", "1341847991.951013.png", "1341847991.982873.png", "1341847992.014777.png", "1341847992.050662.png", "1341847992.082807.png", "1341847992.114861.png", "1341847992.150826.png", "1341847992.182830.png", "1341847992.218794.png", "1341847992.250777.png", "1341847992.318697.png", "1341847992.350709.png", "1341847992.382868.png", "1341847992.418869.png", "1341847992.450837.png", "1341847992.487395.png", "1341847992.518771.png", "1341847992.550630.png", "1341847992.586755.png", "1341847992.618846.png", "1341847992.654748.png", "1341847992.686855.png", "1341847992.718740.png", "1341847992.754788.png", "1341847992.786663.png", "1341847992.818748.png", "1341847992.854878.png", "1341847992.886642.png", "1341847992.922733.png", "1341847992.955395.png", "1341847992.986737.png", "1341847993.022781.png", "1341847993.054770.png", "1341847993.086778.png", "1341847993.122697.png", "1341847993.154697.png", "1341847993.190813.png", "1341847993.222720.png", "1341847993.261866.png", "1341847993.322820.png", "1341847993.354727.png", "1341847993.391295.png", "1341847993.422772.png", "1341847993.458981.png", "1341847993.490694.png", "1341847993.522726.png", "1341847993.558743.png", "1341847993.591005.png", "1341847993.626777.png", "1341847993.658977.png", "1341847993.691246.png", "1341847993.727881.png", "1341847993.791002.png", "1341847993.826846.png", "1341847993.858904.png", "1341847993.894838.png", "1341847993.902671.png", "1341847993.933692.png", "1341847993.965832.png", "1341847994.002756.png", "1341847994.034124.png", "1341847994.065765.png", "1341847994.101785.png", "1341847994.133915.png", "1341847994.169723.png", "1341847994.201710.png", "1341847994.233648.png", "1341847994.269699.png", "1341847994.301791.png", "1341847994.333773.png", "1341847994.369729.png", "1341847994.401681.png", "1341847994.434241.png", "1341847994.469702.png", "1341847994.501770.png", "1341847994.537760.png", "1341847994.570212.png", "1341847994.601735.png", "1341847994.637851.png", "1341847994.669907.png", "1341847994.701657.png", "1341847994.769892.png", "1341847994.831318.png", "1341847994.866892.png", "1341847994.898740.png", "1341847994.930781.png", "1341847994.966794.png", "1341847994.998726.png", "1341847995.030829.png", "1341847995.066736.png", "1341847995.098802.png", "1341847995.134968.png", "1341847995.166683.png", "1341847995.198800.png", "1341847995.234690.png", "1341847995.266841.png", "1341847995.298807.png", "1341847995.334708.png", "1341847995.366716.png", "1341847995.402804.png", "1341847995.434769.png", "1341847995.466791.png", "1341847995.502726.png", "1341847995.534803.png", "1341847995.566696.png", "1341847995.602714.png", "1341847995.634845.png", "1341847995.670798.png", "1341847995.702795.png", "1341847995.734786.png", "1341847995.770716.png", "1341847995.802771.png", "1341847995.838812.png", "1341847995.870667.png", "1341847995.902829.png", "1341847995.938742.png", "1341847995.970762.png", "1341847996.002725.png", "1341847996.038793.png", "1341847996.070742.png", "1341847996.106752.png", "1341847996.138877.png", "1341847996.170740.png", "1341847996.206677.png", "1341847996.239037.png", "1341847996.270779.png", "1341847996.338989.png", "1341847996.374732.png", "1341847996.406731.png", "1341847996.438706.png", "1341847996.474837.png", "1341847996.506720.png", "1341847996.538791.png", "1341847996.574812.png", "1341847996.607158.png", "1341847996.642767.png", "1341847996.674789.png", "1341847996.706910.png", "1341847996.742685.png", "1341847996.774759.png", "1341847996.806842.png", "1341847996.842787.png", "1341847996.874793.png", "1341847996.911011.png", "1341847996.943167.png", "1341847996.974796.png", "1341847997.010766.png", "1341847997.042684.png", "1341847997.078744.png", "1341847997.143035.png", "1341847997.178824.png", "1341847997.210908.png", "1341847997.242983.png", "1341847997.279364.png", "1341847997.311453.png", "1341847997.346654.png", "1341847997.378700.png", "1341847997.411689.png", "1341847997.446712.png", "1341847997.478763.png", "1341847997.511370.png", "1341847997.546615.png", "1341847997.578767.png", "1341847997.614761.png", "1341847997.647012.png", "1341847997.678858.png", "1341847997.714649.png", "1341847997.746633.png", "1341847997.778758.png", "1341847997.846947.png", "1341847997.883109.png", "1341847997.915187.png", "1341847997.947048.png", "1341847997.982857.png", "1341847998.014891.png", "1341847998.050878.png", "1341847998.082647.png", "1341847998.114767.png", "1341847998.123265.png", "1341847998.154516.png", "1341847998.185678.png", "1341847998.253822.png", "1341847998.318825.png", "1341847998.351221.png", "1341847998.382744.png", "1341847998.419264.png", "1341847998.450814.png", "1341847998.484057.png", "1341847998.518744.png", "1341847998.550766.png", "1341847998.586754.png", "1341847998.618853.png", "1341847998.650754.png", "1341847998.686872.png", "1341847998.718754.png", "1341847998.750862.png", "1341847998.786777.png", "1341847998.818773.png", "1341847998.854733.png", "1341847998.886727.png", "1341847998.918681.png", "1341847998.954812.png", "1341847998.986738.png", "1341847999.018827.png", "1341847999.054947.png", "1341847999.086789.png", "1341847999.122734.png", "1341847999.154910.png", "1341847999.186756.png", "1341847999.222728.png", "1341847999.291097.png", "1341847999.322715.png", "1341847999.354880.png", "1341847999.390873.png", "1341847999.423953.png", "1341847999.454965.png", "1341847999.490960.png", "1341847999.522711.png", "1341847999.558949.png", "1341847999.590703.png", "1341847999.622914.png", "1341847999.658860.png", "1341847999.691169.png", "1341847999.722745.png", "1341847999.758816.png", "1341847999.791018.png", "1341847999.826760.png", "1341847999.858819.png", "1341847999.897755.png", "1341847999.958798.png", "1341847999.991017.png", "1341848000.026670.png", "1341848000.058808.png", "1341848000.094794.png", "1341848000.126804.png", "1341848000.158647.png", "1341848000.194844.png", "1341848000.228401.png", "1341848000.267040.png", "1341848000.327144.png", "1341848000.362714.png", "1341848000.394668.png", "1341848000.426894.png", "1341848000.462704.png", "1341848000.494720.png", "1341848000.530871.png", "1341848000.562803.png", "1341848000.594876.png", "1341848000.630658.png", "1341848000.662683.png", "1341848000.695394.png", "1341848000.730825.png", "1341848000.762704.png", "1341848000.798754.png", "1341848000.830744.png", "1341848000.862762.png", "1341848000.898741.png", "1341848000.930740.png", "1341848000.963623.png", "1341848000.998807.png", "1341848001.030757.png", "1341848001.067105.png", "1341848001.098830.png", "1341848001.130736.png", "1341848001.166693.png", "1341848001.206049.png", "1341848001.266790.png", "1341848001.299167.png", "1341848001.334830.png", "1341848001.366725.png", "1341848001.399293.png", "1341848001.434760.png", "1341848001.466756.png", "1341848001.502748.png", "1341848001.535602.png", "1341848001.567686.png", "1341848001.603041.png", "1341848001.634679.png", "1341848001.666695.png", "1341848001.734874.png", "1341848001.771400.png", "1341848001.803395.png", "1341848001.834778.png", "1341848001.870742.png", "1341848001.902764.png", "1341848001.934794.png", "1341848001.970782.png", "1341848002.002752.png", "1341848002.038880.png", "1341848002.070781.png", "1341848002.102819.png", "1341848002.138667.png", "1341848002.171908.png", "1341848002.202713.png", "1341848002.238742.png", "1341848002.270780.png", "1341848002.306724.png", "1341848002.338920.png", "1341848002.371472.png", "1341848002.406802.png", "1341848002.438797.png", "1341848002.474720.png", "1341848002.506777.png", "1341848002.539346.png", "1341848002.574741.png", "1341848002.606818.png", "1341848002.639381.png", "1341848002.674664.png", "1341848002.713950.png", "1341848002.774778.png", "1341848002.806797.png", "1341848002.842854.png", "1341848002.875294.png", "1341848002.906670.png", "1341848002.943336.png", "1341848002.974617.png", "1341848003.010926.png", "1341848003.042649.png", "1341848003.075599.png", "1341848003.110659.png", "1341848003.142643.png", "1341848003.243104.png", "1341848003.278901.png", "1341848003.310752.png", "1341848003.342720.png", "1341848003.379019.png", "1341848003.410799.png", "1341848003.442757.png", "1341848003.478734.png", "1341848003.510745.png", "1341848003.548421.png", "1341848003.578762.png", "1341848003.617927.png", "1341848003.649997.png", "1341848003.685833.png", "1341848003.718179.png", "1341848003.753810.png", "1341848003.785825.png", "1341848003.817959.png", "1341848003.853983.png", "1341848003.885767.png", "1341848003.921702.png", "1341848003.953837.png", "1341848003.986490.png", "1341848004.021656.png", "1341848004.053793.png", "1341848004.089739.png", "1341848004.121723.png", "1341848004.154409.png", "1341848004.189798.png", "1341848004.221783.png", "1341848004.257772.png", "1341848004.289860.png", "1341848004.321834.png", "1341848004.357948.png", "1341848004.389798.png", "1341848004.421982.png", "1341848004.457769.png", "1341848004.489811.png", "1341848004.525737.png", "1341848004.557799.png", "1341848004.590427.png", "1341848004.625778.png", "1341848004.657913.png", "1341848004.689888.png", "1341848004.725831.png", "1341848004.757745.png", "1341848004.789719.png", "1341848004.825792.png", "1341848004.857726.png", "1341848004.889806.png", "1341848004.925821.png", "1341848004.957773.png", "1341848004.993863.png", "1341848005.025661.png", "1341848005.058466.png", "1341848005.093906.png", "1341848005.125710.png", "1341848005.157676.png", "1341848005.193763.png", "1341848005.225725.png", "1341848005.257761.png", "1341848005.293733.png", "1341848005.325901.png", "1341848005.357695.png", "1341848005.393707.png", "1341848005.425710.png", "1341848005.461862.png", "1341848005.493702.png", "1341848005.526425.png", "1341848005.561806.png", "1341848005.593689.png", "1341848005.629854.png", "1341848005.661818.png", "1341848005.693782.png", "1341848005.729756.png", "1341848005.761763.png", "1341848005.797870.png", "1341848005.829931.png", "1341848005.861711.png", "1341848005.897803.png", "1341848005.929669.png", "1341848005.965690.png", "1341848005.997817.png", "1341848006.029788.png", "1341848006.065861.png", "1341848006.097878.png", "1341848006.133702.png", "1341848006.165828.png", "1341848006.197630.png", "1341848006.233815.png", "1341848006.265800.png", "1341848006.301785.png", "1341848006.333730.png", "1341848006.366634.png", "1341848006.401777.png", "1341848006.433743.png", "1341848006.469729.png", "1341848006.501683.png", "1341848006.533763.png", "1341848006.569755.png", "1341848006.602403.png", "1341848006.637885.png", "1341848006.670137.png", "1341848006.701816.png", "1341848006.737832.png", "1341848006.769771.png", "1341848006.801992.png", "1341848006.837904.png", "1341848006.870742.png", "1341848006.901778.png", "1341848006.937752.png", "1341848006.969722.png", "1341848007.005815.png", "1341848007.037850.png", "1341848007.069726.png", "1341848007.105713.png", "1341848007.138464.png", "1341848007.169667.png", "1341848007.205760.png", "1341848007.237958.png", "1341848007.298924.png", "1341848007.331488.png", "1341848007.366720.png", "1341848007.398712.png", "1341848007.434822.png", "1341848007.466740.png", "1341848007.498777.png", "1341848007.534850.png", "1341848007.566737.png", "1341848007.598741.png", "1341848007.634838.png", "1341848007.666683.png", "1341848007.702831.png", "1341848007.734671.png", "1341848007.766939.png", "1341848007.802912.png", "1341848007.834998.png", "1341848007.866768.png", "1341848007.902804.png", "1341848007.934873.png", "1341848007.970706.png", "1341848008.002724.png", "1341848008.034876.png", "1341848008.070834.png", "1341848008.103236.png", "1341848008.138821.png", "1341848008.171117.png", "1341848008.202763.png", "1341848008.238773.png", "1341848008.270729.png", "1341848008.302791.png", "1341848008.338801.png", "1341848008.370758.png", "1341848008.438900.png", "1341848008.471606.png", "1341848008.506888.png", "1341848008.538800.png", "1341848008.571285.png", "1341848008.606724.png", "1341848008.638729.png", "1341848008.674663.png", "1341848008.706846.png", "1341848008.738715.png", "1341848008.775111.png", "1341848008.806917.png", "1341848008.838814.png", "1341848008.875086.png", "1341848008.906700.png", "1341848008.943141.png", "1341848008.974742.png", "1341848009.006865.png", "1341848009.042907.png", "1341848009.110847.png", "1341848009.142810.png", "1341848009.174705.png", "1341848009.210730.png", "1341848009.243384.png", "1341848009.274703.png", "1341848009.310929.png", "1341848009.342912.png", "1341848009.378717.png", "1341848009.443003.png", "1341848009.479061.png", "1341848009.510651.png", "1341848009.542831.png", "1341848009.578828.png", "1341848009.610985.png", "1341848009.646890.png", "1341848009.678709.png", "1341848009.710857.png", "1341848009.746840.png", "1341848009.778966.png", "1341848009.810678.png", "1341848009.846812.png", "1341848009.878704.png", "1341848009.914830.png", "1341848009.947019.png", "1341848009.979030.png", "1341848010.014838.png", "1341848010.047807.png", "1341848010.082721.png", "1341848010.114802.png", "1341848010.146785.png", "1341848010.182775.png", "1341848010.214759.png", "1341848010.246841.png", "1341848010.282781.png", "1341848010.314763.png", "1341848010.351621.png", "1341848010.382839.png", "1341848010.414716.png", "1341848010.450889.png", "1341848010.483600.png", "1341848010.514800.png", "1341848010.550812.png", "1341848010.582885.png", "1341848010.618730.png", "1341848010.650976.png", "1341848010.682652.png", "1341848010.719184.png", "1341848010.751486.png", "1341848010.782730.png", "1341848010.818854.png", "1341848010.851350.png", "1341848010.886724.png", "1341848010.918846.png", "1341848010.951377.png", "1341848010.986772.png", "1341848011.019273.png", "1341848011.051039.png", "1341848011.086773.png", "1341848011.118723.png", "1341848011.154649.png", "1341848011.186703.png", "1341848011.219111.png", "1341848011.254713.png", "1341848011.286673.png", "1341848011.322826.png", "1341848011.354764.png", "1341848011.386775.png", "1341848011.422732.png", "1341848011.454701.png", "1341848011.486777.png", "1341848011.522895.png", "1341848011.554735.png", "1341848011.590936.png", "1341848011.622767.png", "1341848011.655386.png", "1341848011.690790.png", "1341848011.722645.png", "1341848011.754833.png", "1341848011.790843.png", "1341848011.822722.png", "1341848011.859228.png", "1341848011.890702.png", "1341848011.923583.png", "1341848011.958858.png", "1341848011.991385.png", "1341848012.022777.png", "1341848012.058886.png", "1341848012.091474.png", "1341848012.126875.png", "1341848012.191005.png", "1341848012.226789.png", "1341848012.258767.png", "1341848012.295262.png", "1341848012.326913.png", "1341848012.359263.png", "1341848012.394744.png", "1341848012.426870.png", "1341848012.458819.png", "1341848012.494718.png", "1341848012.526771.png", "1341848012.562751.png", "1341848012.595251.png", "1341848012.626789.png", "1341848012.662786.png", "1341848012.695354.png", "1341848012.726885.png", "1341848012.762686.png", "1341848012.794773.png", "1341848012.830698.png", "1341848012.862809.png", "1341848012.894767.png", "1341848012.930882.png", "1341848012.962985.png", "1341848012.994868.png", "1341848013.030973.png", "1341848013.063076.png", "1341848013.098799.png", "1341848013.130848.png", "1341848013.162778.png", "1341848013.198734.png", "1341848013.230869.png", "1341848013.262743.png", "1341848013.298774.png", "1341848013.330792.png", "1341848013.366741.png", "1341848013.398774.png", "1341848013.430871.png", "1341848013.466977.png", "1341848013.498821.png", "1341848013.534803.png", "1341848013.566708.png", "1341848013.598783.png", "1341848013.634835.png", "1341848013.666681.png", "1341848013.698836.png", "1341848013.734633.png", "1341848013.766854.png", "1341848013.802736.png", "1341848013.834816.png", "1341848013.866814.png", "1341848013.902763.png", "1341848013.966791.png", "1341848014.002734.png", "1341848014.034991.png", "1341848014.071022.png", "1341848014.102699.png", "1341848014.134744.png", "1341848014.170789.png", "1341848014.202677.png", "1341848014.234775.png", "1341848014.270773.png", "1341848014.302751.png", "1341848014.338717.png", "1341848014.370821.png", "1341848014.438869.png", "1341848014.470797.png", "1341848014.506658.png", "1341848014.538744.png", "1341848014.570803.png", "1341848014.606882.png", "1341848014.638705.png", "1341848014.671380.png", "1341848014.706993.png", "1341848014.738705.png", "1341848014.774767.png", "1341848014.806684.png", "1341848014.838775.png", "1341848014.874729.png", "1341848014.906657.png", "1341848014.938709.png", "1341848014.974719.png", "1341848015.006672.png", "1341848015.042656.png", "1341848015.074894.png", "1341848015.106864.png", "1341848015.142708.png", "1341848015.174741.png", "1341848015.207717.png", "1341848015.243592.png", "1341848015.274791.png", "1341848015.310805.png", "1341848015.342916.png", "1341848015.374754.png", "1341848015.410669.png", "1341848015.442801.png", "1341848015.474976.png", "1341848015.510957.png", "1341848015.543288.png", "1341848015.578968.png", "1341848015.581781.png", "1341848015.618482.png", "1341848015.650136.png", "1341848015.685825.png", "1341848015.719587.png", "1341848015.749843.png", "1341848015.785775.png", "1341848015.817912.png", "1341848015.854043.png", "1341848015.885668.png", "1341848015.917819.png", "1341848015.954061.png", "1341848015.987003.png", "1341848016.021701.png", "1341848016.053969.png", "1341848016.085742.png", "1341848016.121873.png", "1341848016.153858.png", "1341848016.185803.png", "1341848016.221788.png", "1341848016.253706.png", "1341848016.289975.png", "1341848016.322971.png", "1341848016.354394.png", "1341848016.389816.png", "1341848016.422556.png", "1341848016.454511.png", "1341848016.490717.png", "1341848016.521830.png", "1341848016.554621.png", "1341848016.589841.png", "1341848016.622571.png", "1341848016.657879.png", "1341848016.689920.png", "1341848016.757902.png", "1341848016.818829.png", "1341848016.850779.png", "1341848016.882773.png", "1341848016.918954.png", "1341848016.950732.png", "1341848016.986668.png", "1341848017.018699.png", "1341848017.050790.png", "1341848017.087686.png", "1341848017.118659.png", "1341848017.150706.png", "1341848017.186867.png", "1341848017.218781.png", "1341848017.254710.png", "1341848017.286649.png", "1341848017.318710.png", "1341848017.354762.png", "1341848017.387567.png", "1341848017.418853.png", "1341848017.454807.png", "1341848017.486724.png", "1341848017.522742.png", "1341848017.554807.png", "1341848017.587857.png", "1341848017.622730.png", "1341848017.654844.png", "1341848017.686847.png", "1341848017.722849.png", "1341848017.754796.png", "1341848017.790714.png", "1341848017.823281.png", "1341848017.854745.png", "1341848017.890747.png", "1341848017.922849.png", "1341848017.958669.png", "1341848017.990698.png", "1341848018.022686.png", "1341848018.058780.png", "1341848018.091600.png", "1341848018.122774.png", "1341848018.159160.png", "1341848018.190833.png", "1341848018.226676.png", "1341848018.258776.png", "1341848018.290763.png", "1341848018.326836.png", "1341848018.333920.png", "1341848018.367246.png", "1341848018.398249.png", "1341848018.433789.png", "1341848018.465797.png", "1341848018.501833.png", "1341848018.534528.png", "1341848018.565868.png", "1341848018.601762.png", "1341848018.633745.png", "1341848018.669908.png", "1341848018.701811.png", "1341848018.733907.png", "1341848018.769731.png", "1341848018.802331.png", "1341848018.833794.png", "1341848018.869812.png", "1341848018.902019.png", "1341848018.933805.png", "1341848018.969703.png", "1341848019.002352.png", "1341848019.069892.png", "1341848019.130828.png", "1341848019.162677.png", "1341848019.198662.png", "1341848019.231515.png", "1341848019.262747.png", "1341848019.298728.png", "1341848019.330801.png", "1341848019.362719.png", "1341848019.398731.png", "1341848019.431071.png", "1341848019.467528.png", "1341848019.498786.png", "1341848019.530845.png", "1341848019.567145.png", "1341848019.598763.png", "1341848019.630664.png", "1341848019.666895.png", "1341848019.698714.png", "1341848019.734778.png", "1341848019.767180.png", "1341848019.798730.png", "1341848019.835148.png", "1341848019.898856.png", "1341848019.935323.png", "1341848019.966718.png", "1341848020.002827.png", "1341848020.034751.png", "1341848020.066711.png", "1341848020.102828.png", "1341848020.134797.png", "1341848020.170870.png", "1341848020.202731.png", "1341848020.234962.png", "1341848020.271164.png", "1341848020.302781.png", "1341848020.334915.png", "1341848020.370828.png", "1341848020.438829.png", "1341848020.471215.png", "1341848020.502708.png", "1341848020.538775.png", "1341848020.570808.png", "1341848020.602784.png", "1341848020.638951.png", "1341848020.670825.png", "1341848020.706711.png", "1341848020.739029.png", "1341848020.770832.png", "1341848020.807293.png", "1341848020.839106.png", "1341848020.870982.png", "1341848020.906626.png", "1341848020.938813.png", "1341848020.974888.png", "1341848021.006653.png", "1341848021.039683.png", "1341848021.074778.png", "1341848021.106711.png", "1341848021.142912.png", "1341848021.175064.png", "1341848021.206716.png", "1341848021.242711.png", "1341848021.274910.png", "1341848021.307304.png", "1341848021.347770.png", "1341848021.378757.png", "1341848021.385282.png", "1341848021.414623.png", "1341848021.456491.png", "1341848021.488948.png", "1341848021.514729.png", "1341848021.551117.png", "1341848021.618003.png", "1341848021.678782.png", "1341848021.710760.png", "1341848021.742825.png", "1341848021.779227.png", "1341848021.810903.png", "1341848021.844607.png", "1341848021.878906.png", "1341848021.910642.png", "1341848021.946736.png", "1341848021.978772.png", "1341848022.010803.png", "1341848022.046726.png", "1341848022.079245.png", "1341848022.111657.png", "1341848022.146788.png", "1341848022.179046.png", "1341848022.214790.png", "1341848022.247466.png", "1341848022.279313.png", "1341848022.314776.png", "1341848022.346915.png", "1341848022.354136.png", "1341848022.388540.png", "1341848022.418465.png", "1341848022.454189.png", "1341848022.485655.png", "1341848022.522527.png", "1341848022.554515.png", "1341848022.586079.png", "1341848022.621834.png", "1341848022.654220.png", "1341848022.690339.png", "1341848022.722043.png", "1341848022.783028.png", "1341848022.814851.png", "1341848022.851481.png", "1341848022.882730.png", "1341848022.918869.png", "1341848022.950861.png", "1341848022.982744.png", "1341848023.018832.png", "1341848023.050781.png", "1341848023.082824.png", "1341848023.118804.png", "1341848023.151020.png", "1341848023.186714.png", "1341848023.218801.png", "1341848023.286974.png", "1341848023.318791.png", "1341848023.354851.png", "1341848023.387380.png", "1341848023.418747.png", "1341848023.454727.png", "1341848023.487102.png", "1341848023.518691.png", "1341848023.555084.png", "1341848023.586829.png", "1341848023.622864.png", "1341848023.687231.png", "1341848023.722722.png", "1341848023.754708.png", "1341848023.786872.png", "1341848023.822813.png", "1341848023.854837.png", "1341848023.891258.png", "1341848023.922935.png", "1341848023.955360.png", "1341848023.990753.png", "1341848024.022689.png", "1341848024.054737.png", "1341848024.122894.png", "1341848024.158798.png", "1341848024.190998.png", "1341848024.222850.png", "1341848024.258842.png", "1341848024.290872.png", "1341848024.322718.png", "1341848024.358801.png", "1341848024.391387.png", "1341848024.427236.png", "1341848024.458805.png", "1341848024.491036.png", "1341848024.526824.png", "1341848024.558650.png", "1341848024.594752.png", "1341848024.626676.png", "1341848024.658732.png", "1341848024.694844.png", "1341848024.727084.png", "1341848024.758959.png", "1341848024.794722.png", "1341848024.826800.png", "1341848024.862820.png", "1341848024.894797.png", "1341848024.927028.png", "1341848024.962751.png", "1341848024.994762.png", "1341848025.026914.png", "1341848025.062709.png", "1341848025.131097.png", "1341848025.167799.png", "1341848025.198408.png", "1341848025.230676.png", "1341848025.262716.png", "1341848025.294760.png", "1341848025.330673.png", "1341848025.363045.png", "1341848025.398864.png", "1341848025.430702.png", "1341848025.462851.png", "1341848025.498694.png", "1341848025.530813.png", "1341848025.566774.png", "1341848025.598755.png", "1341848025.630827.png", "1341848025.666699.png", "1341848025.698772.png", "1341848025.730736.png", "1341848025.766728.png", "1341848025.798965.png", "1341848025.834852.png", "1341848025.866702.png", "1341848025.898811.png", "1341848025.934850.png", "1341848025.967180.png", "1341848025.998763.png", "1341848026.034672.png", "1341848026.066885.png", "1341848026.102834.png", "1341848026.134679.png", "1341848026.167384.png", "1341848026.202788.png", "1341848026.234963.png", "1341848026.267027.png", "1341848026.302871.png", "1341848026.334861.png", "1341848026.371055.png", "1341848026.402746.png", "1341848026.434767.png", "1341848026.470906.png", "1341848026.502716.png", "1341848026.534781.png", "1341848026.570890.png", "1341848026.602778.png", "1341848026.642025.png", "1341848026.702812.png", "1341848026.738850.png", "1341848026.770822.png", "1341848026.806756.png", "1341848026.838685.png", "1341848026.878058.png", "1341848026.938914.png", "1341848026.970715.png", "1341848027.006847.png", "1341848027.038724.png", "1341848027.074808.png", "1341848027.106672.png", "1341848027.138707.png", "1341848027.174845.png", "1341848027.207228.png", "1341848027.238712.png", "1341848027.274713.png", "1341848027.306742.png", "1341848027.342833.png", "1341848027.374989.png", "1341848027.406863.png", "1341848027.442981.png", "1341848027.474828.png", "1341848027.506780.png", "1341848027.543335.png", "1341848027.575728.png", "1341848027.611142.png", "1341848027.643153.png", "1341848027.674775.png", "1341848027.711730.png", "1341848027.742804.png", "1341848027.778817.png", "1341848027.810851.png", "1341848027.842862.png", "1341848027.878682.png", "1341848027.911189.png", "1341848027.942760.png", "1341848027.978770.png", "1341848028.011132.png", "1341848028.046719.png", "1341848028.079918.png", "1341848028.112250.png", "1341848028.150704.png", "1341848028.179434.png", "1341848028.187273.png", "1341848028.255491.png", "1341848028.315859.png", "1341848028.378974.png", "1341848028.415502.png", "1341848028.447654.png", "1341848028.483591.png", "1341848028.514716.png", "1341848028.546624.png", "1341848028.582765.png", "1341848028.614668.png", "1341848028.646780.png", "1341848028.653785.png", "1341848028.721886.png", "1341848028.782881.png", "1341848028.814775.png", "1341848028.850785.png", "1341848028.882756.png", "1341848028.914857.png", "1341848028.951062.png", "1341848028.982706.png", "1341848029.018750.png", "1341848029.082899.png", "1341848029.118814.png", "1341848029.151467.png", "1341848029.182687.png", "1341848029.218723.png", "1341848029.250646.png", "1341848029.286988.png", "1341848029.320239.png", "1341848029.351197.png", "1341848029.386940.png", "1341848029.418775.png", "1341848029.450896.png", "1341848029.486809.png", "1341848029.519151.png", "1341848029.554734.png", "1341848029.587004.png", "1341848029.618729.png", "1341848029.655324.png", "1341848029.686905.png", "1341848029.718815.png", "1341848029.754809.png", "1341848029.787734.png", "1341848029.822795.png", "1341848029.854831.png", "1341848029.888015.png", "1341848029.923583.png", "1341848029.954654.png", "1341848029.990907.png", "1341848030.022894.png", "1341848030.054803.png", "1341848030.090796.png", "1341848030.122805.png", "1341848030.154932.png", "1341848030.190756.png", "1341848030.222780.png", "1341848030.258949.png", "1341848030.290914.png", "1341848030.323592.png", "1341848030.358972.png", "1341848030.390848.png", "1341848030.422812.png", "1341848030.458900.png", "1341848030.490939.png", "1341848030.526729.png", "1341848030.565858.png", "1341848030.627016.png", "1341848030.658937.png", "1341848030.690669.png", "1341848030.726776.png", "1341848030.758782.png", "1341848030.794790.png", "1341848030.827510.png", "1341848030.860076.png", "1341848030.894737.png", "1341848030.926760.png", "1341848030.958740.png", "1341848030.994752.png", "1341848031.026758.png", "1341848031.062796.png", "1341848031.094801.png", "1341848031.126837.png", "1341848031.162900.png", "1341848031.194721.png", "1341848031.231582.png", "1341848031.262738.png", "1341848031.294789.png", "1341848031.330775.png", "1341848031.363880.png", "1341848031.394778.png", "1341848031.430627.png", "1341848031.462968.png", "1341848031.472171.png", "1341848031.502139.png", "1341848031.562937.png", "1341848031.598770.png", "1341848031.630831.png", "1341848031.663486.png", "1341848031.698824.png", "1341848031.730691.png", "1341848031.766694.png", "1341848031.798754.png", "1341848031.831520.png", "1341848031.866772.png", "1341848031.898737.png", "1341848031.931492.png", "1341848031.966709.png", "1341848031.998759.png", "1341848032.034732.png", "1341848032.066736.png", "1341848032.098745.png", "1341848032.134784.png", "1341848032.166979.png", "1341848032.203097.png", "1341848032.234711.png", "1341848032.266756.png", "1341848032.302891.png", "1341848032.334681.png", "1341848032.367298.png", "1341848032.402996.png", "1341848032.434774.png", "1341848032.470848.png", "1341848032.502987.png", "1341848032.534750.png", "1341848032.570937.png", "1341848032.603067.png", "1341848032.634766.png", "1341848032.670791.png", "1341848032.702808.png", "1341848032.738747.png", "1341848032.770781.png", "1341848032.803038.png", "1341848032.838796.png", "1341848032.870753.png", "1341848032.902950.png", "1341848032.938895.png", "1341848032.970839.png", "1341848033.006708.png", "1341848033.039254.png", "1341848033.070860.png", "1341848033.106966.png", "1341848033.139123.png", "1341848033.170754.png", "1341848033.206871.png", "1341848033.239415.png", "1341848033.274956.png", "1341848033.306706.png", "1341848033.338847.png", "1341848033.374830.png", "1341848033.406820.png", "1341848033.443142.png", "1341848033.474682.png", "1341848033.506821.png", "1341848033.542898.png", "1341848033.575008.png", "1341848033.606896.png", "1341848033.642954.png", "1341848033.674937.png", "1341848033.710835.png", "1341848033.742812.png", "1341848033.774832.png", "1341848033.811932.png", "1341848033.842813.png", "1341848033.874896.png", "1341848033.911372.png", "1341848033.942768.png", "1341848033.978933.png", "1341848034.010820.png", "1341848034.042730.png", "1341848034.078815.png", "1341848034.110948.png", "1341848034.142724.png", "1341848034.178845.png", "1341848034.210706.png", "1341848034.246736.png", "1341848034.278759.png", "1341848034.310746.png", "1341848034.318578.png", "1341848034.353802.png", "1341848034.386178.png", "1341848034.421782.png", "1341848034.454621.png", "1341848034.485690.png", "1341848034.521758.png", "1341848034.553808.png", "1341848034.585791.png", "1341848034.654020.png", "1341848034.715221.png", "1341848034.746757.png", "1341848034.782867.png", "1341848034.814783.png", "1341848034.846883.png", "1341848034.882748.png", "1341848034.914862.png", "1341848034.952538.png", "1341848034.983102.png", "1341848035.014963.png", "1341848035.051588.png", "1341848035.084843.png", "1341848035.119920.png", "1341848035.219021.png", "1341848035.284280.png", "1341848035.320216.png", "1341848035.351243.png", "1341848035.383631.png", "1341848035.423486.png", "1341848035.486844.png", "1341848035.518643.png", "1341848035.550866.png", "1341848035.586745.png", "1341848035.619346.png", "1341848035.654670.png", "1341848035.686737.png", "1341848035.718808.png", "1341848035.756650.png", "1341848035.786744.png", "1341848035.818816.png", "1341848035.854749.png", "1341848035.886726.png", "1341848035.922862.png", "1341848035.954650.png", "1341848035.986765.png", "1341848036.022805.png", "1341848036.054940.png", "1341848036.087039.png", "1341848036.122749.png", "1341848036.154843.png", "1341848036.190873.png", "1341848036.223325.png", "1341848036.254719.png", "1341848036.290792.png", "1341848036.354932.png", "1341848036.390859.png", "1341848036.458857.png", "1341848036.491256.png", "1341848036.522744.png", "1341848036.558959.png", "1341848036.590845.png", "1341848036.626814.png", "1341848036.659276.png", "1341848036.691212.png", "1341848036.727207.png", "1341848036.758965.png", "1341848036.790795.png", "1341848036.827011.png", "1341848036.858692.png", "1341848036.926861.png", "1341848036.958741.png", "1341848036.994877.png", "1341848037.026816.png", "1341848037.061067.png", "1341848037.094704.png", "1341848037.126721.png", "1341848037.162827.png", "1341848037.194761.png", "1341848037.227067.png", "1341848037.263842.png", "1341848037.295209.png", "1341848037.326883.png", "1341848037.362781.png", "1341848037.395068.png", "1341848037.431014.png", "1341848037.462779.png", "1341848037.530750.png", "1341848037.562996.png", "1341848037.595772.png", "1341848037.631133.png", "1341848037.662683.png", "1341848037.698730.png", "1341848037.730978.png", "1341848037.769809.png", "1341848037.837827.png", "1341848037.898948.png", "1341848037.930977.png", "1341848037.966899.png", "1341848037.998697.png", "1341848038.030940.png", "1341848038.066878.png", "1341848038.098693.png", "1341848038.134674.png", "1341848038.166692.png", "1341848038.198737.png", "1341848038.234752.png", "1341848038.266678.png", "1341848038.274266.png", "1341848038.306668.png", "1341848038.341971.png", "1341848038.374124.png", "1341848038.409820.png", "1341848038.442214.png", "1341848038.473912.png", "1341848038.510216.png", "1341848038.566894.png", "1341848038.603019.png", "1341848038.634757.png", "1341848038.670717.png", "1341848038.702904.png", "1341848038.734810.png", "1341848038.770771.png", "1341848038.802827.png", "1341848038.838789.png", "1341848038.871181.png", "1341848038.903335.png", "1341848038.938797.png", "1341848038.970800.png", "1341848039.002655.png", "1341848039.038923.png", "1341848039.070823.png", "1341848039.106791.png", "1341848039.138659.png", "1341848039.170769.png", "1341848039.206838.png", "1341848039.239191.png", "1341848039.270979.png", "1341848039.306767.png", "1341848039.338904.png", "1341848039.375554.png", "1341848039.407826.png", "1341848039.438869.png", "1341848039.474885.png", "1341848039.508068.png", "1341848039.538673.png", "1341848039.574934.png", "1341848039.606737.png", "1341848039.642732.png", "1341848039.674771.png", "1341848039.707178.png", "1341848039.743701.png", "1341848039.775351.png", "1341848039.807101.png", "1341848039.843291.png", "1341848039.874734.png", "1341848039.881841.png", "1341848039.943397.png", "1341848039.974838.png", "1341848040.010730.png", "1341848040.042790.png", "1341848040.078739.png", "1341848040.110865.png", "1341848040.142781.png", "1341848040.178825.png", "1341848040.211044.png", "1341848040.242703.png", "1341848040.278972.png", "1341848040.310730.png", "1341848040.346941.png", "1341848040.378824.png", "1341848040.410915.png", "1341848040.446754.png", "1341848040.478753.png", "1341848040.510881.png", "1341848040.578922.png", "1341848040.614969.png", "1341848040.646773.png", "1341848040.679046.png", "1341848040.714664.png", "1341848040.746831.png", "1341848040.778786.png", "1341848040.814687.png", "1341848040.846924.png", "1341848040.883358.png", "1341848040.914798.png", "1341848040.946870.png", "1341848040.985270.png", "1341848041.023937.png", "1341848041.058889.png", "1341848041.095717.png", "1341848041.122200.png", "1341848041.189991.png", "1341848041.250741.png", "1341848041.284122.png", "1341848041.320300.png", "1341848041.356564.png", "1341848041.385925.png", "1341848041.418779.png", "1341848041.451522.png", "1341848041.483609.png", "1341848041.519116.png", "1341848041.551098.png", "1341848041.586822.png", "1341848041.618759.png", "1341848041.650973.png", "1341848041.686793.png", "1341848041.718845.png", "1341848041.750796.png", "1341848041.786723.png", "1341848041.818714.png", "1341848041.854755.png", "1341848041.886728.png", "1341848041.918730.png", "1341848041.986734.png", "1341848042.019582.png", "1341848042.054650.png", "1341848042.089516.png", "1341848042.122905.png", "1341848042.154807.png", "1341848042.186794.png", "1341848042.222915.png", "1341848042.254771.png", "1341848042.290712.png", "1341848042.322792.png", "1341848042.355022.png", "1341848042.390726.png", "1341848042.423290.png", "1341848042.429783.png", "1341848042.490969.png", "1341848042.522727.png", "1341848042.558699.png", "1341848042.590860.png", "1341848042.622787.png", "1341848042.658766.png", "1341848042.690822.png", "1341848042.697819.png", "1341848042.729807.png", "1341848042.761653.png", "1341848042.797965.png", "1341848042.829769.png", "1341848042.861744.png", "1341848042.897784.png", "1341848042.929876.png", "1341848042.965723.png", "1341848042.998639.png", "1341848043.030388.png", "1341848043.065763.png", "1341848043.097882.png", "1341848043.133981.png", "1341848043.165803.png", "1341848043.201911.png", "1341848043.233874.png", "1341848043.265835.png", "1341848043.301842.png", "1341848043.334065.png", "1341848043.369863.png", "1341848043.401757.png", "1341848043.433974.png", "1341848043.469655.png", "1341848043.501719.png", "1341848043.537840.png", "1341848043.569696.png", "1341848043.601863.png", "1341848043.637825.png", "1341848043.670837.png", "1341848043.701997.png", "1341848043.738719.png", "1341848043.769854.png", "1341848043.805831.png", "1341848043.837882.png", "1341848043.870385.png", "1341848043.905743.png", "1341848043.938044.png", "1341848043.969839.png", "1341848044.005940.png", "1341848044.037722.png", "1341848044.073825.png", "1341848044.105831.png", "1341848044.137734.png", "1341848044.173851.png", "1341848044.205765.png", "1341848044.237808.png", "1341848044.273852.png", "1341848044.305751.png", "1341848044.338467.png", "1341848044.373771.png", "1341848044.406389.png", "1341848044.441804.png", "1341848044.473726.png", "1341848044.505703.png", "1341848044.541889.png", "1341848044.573776.png", "1341848044.605851.png", "1341848044.641753.png", "1341848044.706034.png", "1341848044.771614.png", "1341848044.803289.png", "1341848044.834869.png", "1341848044.870710.png", "1341848044.902865.png", "1341848044.970831.png", "1341848045.002657.png", "1341848045.038769.png", "1341848045.071339.png", "1341848045.102854.png", "1341848045.139311.png", "1341848045.170788.png", "1341848045.202711.png", "1341848045.238927.png", "1341848045.270857.png", "1341848045.306863.png", "1341848045.338809.png", "1341848045.370820.png", "1341848045.406744.png", "1341848045.438734.png", "1341848045.474832.png", "1341848045.538904.png", "1341848045.607002.png", "1341848045.645941.png", "1341848045.707020.png", "1341848045.743136.png", "1341848045.774792.png", "1341848045.807673.png", "1341848045.842900.png", "1341848045.875086.png", "1341848045.906846.png", "1341848045.942880.png", "1341848045.974792.png", "1341848046.010772.png", "1341848046.042856.png", "1341848046.074759.png", "1341848046.111023.png", "1341848046.142790.png", "1341848046.174734.png", "1341848046.182775.png", "1341848046.219760.png", "1341848046.249758.png", "1341848046.284157.png", "1341848046.317760.png", "1341848046.349752.png", "1341848046.382801.png", "1341848046.417780.png", "1341848046.449814.png", "1341848046.485866.png", "1341848046.517776.png", "1341848046.549677.png", "1341848046.586113.png", "1341848046.617799.png", "1341848046.653760.png", "1341848046.715121.png", "1341848046.746904.png", "1341848046.778755.png", "1341848046.814769.png", "1341848046.846875.png", "1341848046.878814.png", "1341848046.915688.png", "1341848046.947809.png", "1341848046.983538.png", "1341848047.015187.png", "1341848047.047899.png", "1341848047.090622.png", "1341848047.148403.png", "1341848047.214908.png", "1341848047.250958.png", "1341848047.283384.png", "1341848047.314838.png", "1341848047.350663.png", "1341848047.383072.png", "1341848047.414794.png", "1341848047.450870.png", "1341848047.482683.png", "1341848047.518985.png", "1341848047.551401.png", "1341848047.582975.png", "1341848047.619010.png", "1341848047.650786.png", "1341848047.686710.png", "1341848047.750865.png", "1341848047.786706.png", "1341848047.818832.png", "1341848047.850844.png", "1341848047.886871.png", "1341848047.918881.png", "1341848047.954736.png", "1341848047.986794.png", "1341848048.019427.png", "1341848048.054958.png", "1341848048.086796.png", "1341848048.119190.png", "1341848048.154706.png", "1341848048.186737.png", "1341848048.222998.png", "1341848048.254981.png", "1341848048.286675.png", "1341848048.322868.png", "1341848048.354767.png", "1341848048.387170.png", "1341848048.422664.png", "1341848048.454947.png", "1341848048.490748.png", "1341848048.522819.png", "1341848048.555714.png", "1341848048.590665.png", "1341848048.622669.png", "1341848048.658771.png", "1341848048.690804.png", "1341848048.722725.png", "1341848048.758865.png", "1341848048.791827.png", "1341848048.822751.png", "1341848048.858682.png", "1341848048.891115.png", "1341848048.926806.png", "1341848048.958976.png", "1341848048.990852.png", "1341848049.026726.png", "1341848049.058854.png", "1341848049.090734.png", "1341848049.126771.png", "1341848049.158868.png", "1341848049.194728.png", "1341848049.226785.png", "1341848049.258839.png", "1341848049.294771.png", "1341848049.326876.png", "1341848049.358834.png", "1341848049.394804.png", "1341848049.427229.png", "1341848049.462781.png", "1341848049.494750.png", "1341848049.526823.png", "1341848049.562822.png", "1341848049.594778.png", "1341848049.626847.png", "1341848049.662727.png", "1341848049.695078.png", "1341848049.730887.png", "1341848049.763163.png", "1341848049.794771.png", "1341848049.830836.png", "1341848049.862754.png", "1341848049.930867.png", "1341848049.963083.png", "1341848049.998810.png", "1341848050.030833.png", "1341848050.062676.png", "1341848050.098702.png", "1341848050.130726.png", "1341848050.167181.png", "1341848050.198752.png", "1341848050.230862.png", "1341848050.266756.png", "1341848050.298860.png", "1341848050.330736.png", "1341848050.366800.png", "1341848050.398776.png", "1341848050.434797.png", "1341848050.466671.png", "1341848050.499214.png", "1341848050.534897.png", "1341848050.566851.png", "1341848050.598800.png", "1341848050.634764.png", "1341848050.666834.png", "1341848050.702859.png", "1341848050.734804.png", "1341848050.766912.png", "1341848050.802891.png", "1341848050.834812.png", "1341848050.870939.png", "1341848050.902807.png", "1341848050.934824.png", "1341848050.970880.png", "1341848051.002816.png", "1341848051.035029.png", "1341848051.070827.png", "1341848051.102758.png", "1341848051.138744.png", "1341848051.170688.png", "1341848051.238791.png", "1341848051.270880.png", "1341848051.302805.png", "1341848051.338751.png", "1341848051.370907.png", "1341848051.406741.png", "1341848051.440034.png", "1341848051.470921.png", "1341848051.506733.png", "1341848051.538947.png", "1341848051.570784.png", "1341848051.606826.png", "1341848051.638893.png", "1341848051.674731.png", "1341848051.706731.png", "1341848051.738822.png", "1341848051.774838.png", "1341848051.806721.png", "1341848051.838774.png", "1341848051.875000.png", "1341848051.907209.png", "1341848051.942718.png", "1341848051.974829.png", "1341848052.006768.png", "1341848052.042793.png", "1341848052.074895.png", "1341848052.143046.png", "1341848052.179162.png", "1341848052.211672.png", "1341848052.243754.png", "1341848052.312593.png", "1341848052.342908.png", "1341848052.379633.png", "1341848052.413797.png", "1341848052.446183.png", "1341848052.481647.png", "1341848052.544440.png", "1341848052.579179.png", "1341848052.617779.png", "1341848052.678766.png", "1341848052.711174.png", "1341848052.746908.png", "1341848052.778723.png", "1341848052.810907.png", "1341848052.846871.png", "1341848052.878844.png", "1341848052.914725.png", "1341848052.946716.png", "1341848052.978840.png", "1341848053.014807.png", "1341848053.046724.png", "1341848053.082679.png", "1341848053.114860.png", "1341848053.148476.png", "1341848053.184337.png", "1341848053.214830.png", "1341848053.247980.png", "1341848053.292717.png", "1341848053.321732.png", "1341848053.356259.png", "1341848053.386732.png", "1341848053.421802.png", "1341848053.453759.png", "1341848053.485752.png", "1341848053.521768.png", "1341848053.553936.png", "1341848053.589767.png", "1341848053.621933.png", "1341848053.653842.png", "1341848053.689746.png", "1341848053.721712.png", "1341848053.758077.png", "1341848053.789892.png", "1341848053.821676.png", "1341848053.857801.png", "1341848053.889811.png", "1341848053.951082.png", "1341848053.986846.png", "1341848054.051048.png", "1341848054.086792.png", "1341848054.118865.png", "1341848054.155064.png", "1341848054.186722.png", "1341848054.219042.png", "1341848054.254842.png", "1341848054.286818.png", "1341848054.323319.png", "1341848054.354803.png", "1341848054.387855.png", "1341848054.423322.png", "1341848054.454751.png", "1341848054.486948.png", "1341848054.522735.png", "1341848054.554880.png", "1341848054.590808.png", "1341848054.622722.png", "1341848054.656477.png", "1341848054.691042.png", "1341848054.723258.png", "1341848054.755241.png", "1341848054.791409.png", "1341848054.823565.png", "1341848054.859037.png", "1341848054.890944.png", "1341848054.923230.png", "1341848054.958755.png", "1341848054.991085.png", "1341848055.023079.png", "1341848055.058760.png", "1341848055.090811.png", "1341848055.127018.png", "1341848055.159232.png", "1341848055.191010.png", "1341848055.226790.png", "1341848055.259331.png", "1341848055.294747.png", "1341848055.326811.png", "1341848055.359026.png", "1341848055.394755.png", "1341848055.426846.png", "1341848055.458862.png", "1341848055.494780.png", "1341848055.526772.png", "1341848055.562659.png", "1341848055.594704.png", "1341848055.626690.png", "1341848055.662971.png", "1341848055.694815.png", "1341848055.726799.png", "1341848055.762858.png", "1341848055.795020.png", "1341848055.830827.png", "1341848055.862847.png", "1341848055.894806.png", "1341848055.930688.png", "1341848055.962807.png", "1341848055.994743.png", "1341848056.030743.png", "1341848056.062796.png", "1341848056.098811.png", "1341848056.130661.png", "1341848056.162741.png", "1341848056.198760.png", "1341848056.230784.png", "1341848056.263942.png", "1341848056.298811.png", "1341848056.330687.png", "1341848056.366752.png", "1341848056.399274.png", "1341848056.430803.png", "1341848056.466874.png", "1341848056.498914.png", "1341848056.534856.png", "1341848056.566742.png", "1341848056.599048.png", "1341848056.635005.png", "1341848056.666800.png", "1341848056.698898.png", "1341848056.735297.png", "1341848056.766792.png", "1341848056.802899.png", "1341848056.835035.png", "1341848056.866671.png", "1341848056.902779.png", "1341848056.934953.png", "1341848056.966823.png", "1341848057.002763.png", "1341848057.035020.png", "1341848057.070988.png", "1341848057.102797.png", "1341848057.134974.png", "1341848057.170751.png", "1341848057.202667.png", "1341848057.234693.png", "1341848057.270823.png", "1341848057.302980.png", "1341848057.338780.png", "1341848057.370867.png", "1341848057.402756.png", "1341848057.438880.png", "1341848057.470718.png", "1341848057.506753.png", "1341848057.538804.png", "1341848057.571100.png", "1341848057.606677.png", "1341848057.638855.png", "1341848057.671015.png", "1341848057.706841.png", "1341848057.739645.png", "1341848057.775609.png", "1341848057.806912.png", "1341848057.838766.png", "1341848057.874847.png", "1341848057.906846.png", "1341848057.938888.png", "1341848057.975330.png", "1341848058.006850.png", "1341848058.042790.png", "1341848058.075985.png", "1341848058.106860.png", "1341848058.142719.png", "1341848058.174770.png", "1341848058.207102.png", "1341848058.242749.png", "1341848058.274839.png", "1341848058.310722.png", "1341848058.343218.png", "1341848058.374917.png", "1341848058.410676.png", "1341848058.442828.png", "1341848058.474753.png", "1341848058.542987.png", "1341848058.578964.png", "1341848058.610871.png", "1341848058.643076.png", "1341848058.678770.png", "1341848058.710766.png", "1341848058.746854.png", "1341848058.778785.png", "1341848058.811237.png", "1341848058.846867.png", "1341848058.880257.png", "1341848058.946831.png", "1341848058.978887.png", "1341848059.014688.png", "1341848059.046732.png", "1341848059.078837.png", "1341848059.114705.png", "1341848059.146722.png", "1341848059.178787.png", "1341848059.214758.png", "1341848059.246787.png", "1341848059.282764.png", "1341848059.314695.png", "1341848059.346817.png", "1341848059.382710.png", "1341848059.414763.png", "1341848059.446880.png", "1341848059.482709.png", "1341848059.514665.png", "1341848059.550789.png", "1341848059.582712.png", "1341848059.614760.png", "1341848059.650736.png", "1341848059.682765.png", "1341848059.718727.png", "1341848059.750937.png", "1341848059.782784.png", "1341848059.818786.png", "1341848059.850742.png", "1341848059.882739.png", "1341848059.918781.png", "1341848059.951468.png", "1341848059.986870.png", "1341848060.018699.png", "1341848060.050726.png", "1341848060.086804.png", "1341848060.118826.png", "1341848060.152187.png", "1341848060.186902.png", "1341848060.218926.png", "1341848060.255357.png", "1341848060.287482.png", "1341848060.318945.png", "1341848060.354688.png", "1341848060.387291.png", "1341848060.418684.png", "1341848060.454794.png", "1341848060.486771.png", "1341848060.523008.png", "1341848060.554724.png", "1341848060.586706.png", "1341848060.622721.png", "1341848060.656113.png", "1341848060.687324.png", "1341848060.724561.png", "1341848060.757889.png", "1341848060.791034.png", "1341848060.829094.png", "1341848060.863663.png", "1341848060.926419.png", "1341848060.961890.png", "1341848060.997593.png", "1341848061.031332.png", "1341848061.062516.png", "1341848061.101130.png", "1341848061.129853.png", "1341848061.197987.png", "1341848061.259586.png", "1341848061.290998.png", "1341848061.326647.png", "1341848061.358908.png", "1341848061.391495.png", "1341848061.426942.png", "1341848061.458854.png", "1341848061.495433.png", "1341848061.526886.png", "1341848061.558836.png", "1341848061.594776.png", "1341848061.626753.png", "1341848061.658845.png", "1341848061.694932.png", "1341848061.726750.png", "1341848061.762840.png", "1341848061.795285.png", "1341848061.826754.png", "1341848061.862902.png", "1341848061.894887.png", "1341848061.930754.png", "1341848061.962857.png", "1341848061.997201.png", "1341848062.030723.png", "1341848062.064058.png", "1341848062.094893.png", "1341848062.130816.png", "1341848062.163399.png", "1341848062.198960.png", "1341848062.230763.png", "1341848062.262858.png", "1341848062.299285.png", "1341848062.330968.png", "1341848062.362798.png", "1341848062.398836.png", "1341848062.430844.png", "1341848062.466879.png", "1341848062.498743.png", "1341848062.530759.png", "1341848062.566959.png", "1341848062.598829.png", "1341848062.630824.png", "1341848062.666771.png", "1341848062.698743.png", "1341848062.734939.png", "1341848062.766877.png", "1341848062.798764.png", "1341848062.834849.png", "1341848062.867238.png", "1341848062.899092.png", "1341848062.934977.png", "1341848062.966957.png", "1341848063.002915.png", "1341848063.035491.png", "1341848063.066749.png", "1341848063.102832.png", "1341848063.135160.png", "1341848063.170794.png", "1341848063.202765.png", "1341848063.235006.png", "1341848063.270816.png", "1341848063.302814.png", "1341848063.335470.png", "1341848063.370688.png", "1341848063.402728.png", "1341848063.439294.png", "1341848063.470764.png", "1341848063.502801.png", "1341848063.538751.png", "1341848063.541821.png", "1341848063.577827.png", "1341848063.609780.png", "1341848063.643057.png", "1341848063.677981.png", "1341848063.709915.png", "1341848063.745783.png", "1341848063.777929.png", "1341848063.809857.png", "1341848063.845775.png", "1341848063.877913.png", "1341848063.913781.png", "1341848063.946407.png", "1341848063.977868.png", "1341848064.013963.png", "1341848064.045830.png", "1341848064.081716.png", "1341848064.113699.png", "1341848064.145896.png", "1341848064.181871.png", "1341848064.213916.png", "1341848064.249803.png", "1341848064.283921.png", "1341848064.313821.png", "1341848064.349800.png", "1341848064.382881.png", "1341848064.418076.png", "1341848064.449781.png", "1341848064.481794.png", "1341848064.518639.png", "1341848064.549726.png", "1341848064.581772.png", "1341848064.617728.png", "1341848064.649739.png", "1341848064.685871.png", "1341848064.749986.png", "1341848064.810771.png", "1341848064.842765.png", "1341848064.878871.png", "1341848064.910861.png", "1341848064.946870.png", "1341848064.978833.png", "1341848065.010849.png", "1341848065.046796.png", "1341848065.078740.png", "1341848065.110913.png", "1341848065.146705.png", "1341848065.178872.png", "1341848065.214817.png", "1341848065.246815.png", "1341848065.278785.png", "1341848065.314782.png", "1341848065.346874.png", "1341848065.382883.png", "1341848065.414947.png", "1341848065.447032.png", "1341848065.483011.png", "1341848065.515200.png", "1341848065.546929.png", "1341848065.582781.png", "1341848065.615224.png", "1341848065.682923.png", "1341848065.714841.png", "1341848065.750692.png", "1341848065.782781.png", "1341848065.814773.png", "1341848065.850775.png", "1341848065.918742.png", "1341848065.950803.png", "1341848065.982829.png", "1341848066.018836.png", "1341848066.050784.png", "1341848066.082851.png", "1341848066.118762.png", "1341848066.151663.png", "1341848066.186806.png", "1341848066.218701.png", "1341848066.250794.png", "1341848066.286752.png", "1341848066.318714.png", "1341848066.354854.png", "1341848066.386795.png", "1341848066.418853.png", "1341848066.454708.png", "1341848066.486902.png", "1341848066.523149.png", "1341848066.560526.png", "1341848066.624153.png", "1341848066.655262.png", "1341848066.686818.png", "1341848066.698980.png", "1341848066.733333.png", "1341848066.765329.png", "1341848066.795567.png", "1341848066.834424.png", "1341848066.862114.png", "1341848066.905636.png", "1341848066.930239.png", "1341848066.998757.png", "1341848067.054719.png", "1341848067.090960.png", "1341848067.122977.png", "1341848067.158843.png", "1341848067.191172.png", "1341848067.223798.png", "1341848067.258827.png", "1341848067.322831.png", "1341848067.358740.png", "1341848067.390723.png", "1341848067.426896.png", "1341848067.458759.png", "1341848067.491567.png", "1341848067.526716.png", "1341848067.558783.png", "1341848067.594669.png", "1341848067.626667.png", "1341848067.659013.png", "1341848067.694912.png", "1341848067.727398.png", "1341848067.758683.png", "1341848067.794832.png", "1341848067.826810.png", "1341848067.862836.png"]
depth_cnt =200
depth_list = []
for i in range(depth_cnt):
filename = target_list[(i+1)]
depth = cv2.imread(f'{path}{filename}', cv2.IMREAD_ANYCOLOR | cv2.IMREAD_ANYDEPTH)
depth_list.append(torch.from_numpy(np.array(depth, dtype = np.float16)).to(device))
# depth_target = cv2.imread(f'{path}1341847985.146837.png', cv2.IMREAD_ANYCOLOR | cv2.IMREAD_ANYDEPTH)
# depth_target = torch.from_numpy(np.array(depth_target, dtype = np.float16)).to(device)
# cv2.imshow('target', depth_target/5000)
uv = GenerateUVTensor().to(device)
inv_intr = CreateInvIntrinsics().to(device)
intr = CreateIntrinsics().to(device)
np_quat = np.array([1.0, 0.0, 0.0, 0.0])
extr_quat = torch.tensor(np_quat, dtype = torch.float32, requires_grad=True, device=device)
extr_t = torch.zeros(1, 3, requires_grad=True, device=device)
xyz_ref = CreateXYZ(uv.clone(), depth_ref, inv_intr, extr_quat.detach(), extr_t.detach(), device)
StorPly(xyz_ref, 0)
# uvz_target = CreateUVZ(uv.clone(), depth_target, intr)
optimizer = optim.Adam([extr_quat, extr_t], lr=0.0001)
optimizer.param_groups[0]['capturable'] = True
optimizer.param_groups[0]['differentiable'] = True
# optimizer = optim.SGD([extr_quat, extr_t], lr=0.1, momentum=0.9)
# optimizer.param_groups[0]['capturable'] = True
# optimizer.param_groups[0]['differentiable'] = True
dt0 = datetime.now()
for i in range(depth_cnt):
print(f'{i+1} frame ')
depth_ref = depth_list[i]
depth_target = depth_list[i+1]
epoch_num = 1000
xyz_ref = CreateXYZ(uv.clone(), depth_ref, inv_intr, extr_quat.detach(), extr_t.detach(), device)
for epoch in range(epoch_num):
# dt1 = datetime.now()
optimizer.zero_grad()
loss = ReProjectLoss(xyz_ref, depth_target, extr_quat, extr_t, intr, device)
loss.retain_grad()
loss.backward()
optimizer.step()
optimizer.zero_grad()
# dt2 = datetime.now()
# print(f'time {epoch}: {dt2 - dt1}: {loss}')
# if(epoch == 100):
# dt3 = datetime.now()
# print(f'time total {dt3 - dt0}')
dtend = datetime.now()
loss = ReProjectLoss(xyz_ref, depth_target, extr_quat, extr_t, intr, device)
print(loss)
print(f'time total {dtend - dt0}')
print(extr_quat)
print(extr_t)
xyz_target = CreateXYZ(uv.clone(), depth_target, inv_intr, extr_quat.detach(), extr_t.detach(), device)
StorPly(xyz_target, i+1)
# extr_r = torch.eye(3, 3, requires_grad=True, device=device)
# extr_t = torch.zeros(1, 3, requires_grad=True, device=device)
# xyz_target = CreateXYZ(uv.clone(), depth_list[99], inv_intr, extr_r.detach(), extr_t.detach(), device)
# StorPly(xyz_target, 111)
# print(optimizer)