Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Xts Acts
提交
683018fc
X
Xts Acts
项目概览
OpenHarmony
/
Xts Acts
大约 1 年 前同步成功
通知
9
Star
22
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
X
Xts Acts
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
683018fc
编写于
3月 05, 2022
作者:
O
openharmony_ci
提交者:
Gitee
3月 05, 2022
浏览文件
操作
浏览文件
下载
差异文件
!2201 Update xts test cases in image.
Merge pull request !2201 from wangxiaokai/master
上级
7d08e5f8
cce5faf8
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
2954 addition
and
1928 deletion
+2954
-1928
multimedia/image/image_js_standard/src/main/js/test/List.test.js
...dia/image/image_js_standard/src/main/js/test/List.test.js
+1
-1
multimedia/image/image_js_standard/src/main/js/test/image.test.js
...ia/image/image_js_standard/src/main/js/test/image.test.js
+2211
-1927
multimedia/image/image_js_standard/src/main/js/test/testImg.js
...media/image/image_js_standard/src/main/js/test/testImg.js
+742
-0
未找到文件。
multimedia/image/image_js_standard/src/main/js/test/List.test.js
浏览文件 @
683018fc
...
...
@@ -13,4 +13,4 @@
* limitations under the License.
*/
require
(
'
./Image.test.js
'
)
\ No newline at end of file
require
(
'
./image.test.js
'
)
\ No newline at end of file
multimedia/image/image_js_standard/src/main/js/test/image.test.js
浏览文件 @
683018fc
仅显示部分。点此显示全部。
...
...
@@ -15,6 +15,7 @@
import
image
from
'
@ohos.multimedia.image
'
import
{
describe
,
beforeAll
,
beforeEach
,
afterEach
,
afterAll
,
it
,
expect
}
from
'
deccjsunit/index
'
import
{
testPng
,
testJpg
}
from
'
./testImg
'
describe
(
'
Image
'
,
function
()
{
...
...
@@ -35,21 +36,20 @@ describe('Image', function () {
console
.
info
(
'
afterAll case
'
);
})
/* *
* @tc.number : TC_001
* @tc.name : create pixelmap object
* @tc.desc : 1.创建InitializationOptions对象opts
* 2.设置color,colorlength,offset,width,height,pixeFormat,alphyType
* 3.使用color,colorlength, offset,width和opts创建PixelMap对象newPixelMap
* 4.验证newPixelMap对象不为null
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_001
* @tc.name : create pixelmap object
* @tc.desc : 1.create InitializationOptions object
* 2.set color,colorlength,offset,width,height,pixeFormat,alphyType
* 3.using color,colorlength,offsetwidth and opts create newPixelMap
* 4.return newpixelmap not empty
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it
(
'
TC_001
'
,
0
,
async
function
(
done
)
{
const
Color
=
new
ArrayBuffer
(
96
);
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
4
,
scaleMode
:
1
,
size
:
{
height
:
2
,
width
:
3
}
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
3
,
scaleMode
:
1
,
size
:
{
height
:
2
,
width
:
3
}
}
image
.
createPixelMap
(
Color
,
opts
)
.
then
(
pixelmap
=>
{
expect
(
pixelmap
!==
null
).
assertTrue
();
...
...
@@ -63,21 +63,20 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_001-1
* @tc.name : create pixelmap object
* @tc.desc : 1.创建InitializationOptions对象opts
* 2.设置color,colorlength,offset,width,height,pixeFormat,alphyType
* 3.使用color,colorlength, offset,width和opts创建PixelMap对象newPixelMap
* 4.验证newPixelMap对象不为null
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_001-1
* @tc.name : create pixelmap object
* @tc.desc : 1.create InitializationOptions object
* 2.set color,colorlength,offset,width,height,pixeFormat,alphyType
* 3.using color,colorlength, offset,width and opts create newPixelMap
* 4.return newpixelmap not empty
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it
(
'
TC_001-1
'
,
0
,
async
function
(
done
)
{
const
Color
=
new
ArrayBuffer
(
96
);
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
4
,
scaleMode
:
1
,
size
:
{
height
:
2
,
width
:
3
}
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
3
,
scaleMode
:
1
,
size
:
{
height
:
2
,
width
:
3
}
}
image
.
createPixelMap
(
Color
,
opts
,
pixelmap
=>
{
expect
(
pixelmap
!==
null
).
assertTrue
();
console
.
info
(
'
TC_001-1 success
'
);
...
...
@@ -90,18 +89,17 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_001-2
* @tc.name : create pixelmap object
* @tc.desc : 1.创建InitializationOptions对象opts
* 2.设置color,colorlength,offset,width,height,pixeFormat,alphyType
* 3.使用color,colorlength, offset,width和opts创建PixelMap对象newPixelMap
* 4.验证newPixelMap对象不为null
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_001-2
* @tc.name : create pixelmap object
* @tc.desc : 1.create InitializationOptions object
* 2.set color,colorlength,offset,width,height,pixeFormat,alphyType
* 3.usingcolor,colorlength, offset,width and opts create newPixelMap
* 4.return newpixelmap not empty
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it
(
'
TC_001-2
'
,
0
,
async
function
(
done
)
{
const
Color
=
new
ArrayBuffer
(
96
);
let
opts
=
{
alphaType
:
1
,
editable
:
true
,
pixelFormat
:
0
,
scaleMode
:
2
,
size
:
{
height
:
2
,
width
:
3
}
}
...
...
@@ -117,21 +115,20 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_001-3
* @tc.name : create pixelmap object
* @tc.desc : 1.创建InitializationOptions对象opts
* 2.设置color,colorlength,offset,width,height,pixeFormat,alphyType
* 3.使用color,colorlength, offset,width和opts创建PixelMap对象newPixelMap
* 4.验证newPixelMap对象不为null
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_001-3
* @tc.name : create pixelmap object
* @tc.desc : 1.create InitializationOptions object
* 2.set color,colorlength,offset,width,height,pixeFormat,alphyType
* 3.usingcolor,colorlength,offset,width and opts create newPixelMap
* 4.return newpixelmap not empty
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it
(
'
TC_001-3
'
,
0
,
async
function
(
done
)
{
const
Color
=
new
ArrayBuffer
(
96
);
let
opts
=
{
alphaType
:
2
,
editable
:
true
,
pixelFormat
:
1
,
scaleMode
:
1
,
size
:
{
height
:
2
,
width
:
3
}
}
let
opts
=
{
alphaType
:
2
,
editable
:
true
,
pixelFormat
:
3
,
scaleMode
:
1
,
size
:
{
height
:
2
,
width
:
3
}
}
image
.
createPixelMap
(
Color
,
opts
,
pixelmap
=>
{
expect
(
pixelmap
!==
null
).
assertTrue
();
console
.
info
(
'
TC_001-3 success
'
);
...
...
@@ -144,19 +141,18 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_001-4
* @tc.name : create pixelmap object
* @tc.desc : 1.创建InitializationOptions对象opts
* 2.设置color,colorlength,offset,width,height,pixeFormat,alphyType
* 3.使用color,colorlength, offset,width和opts创建PixelMap对象newPixelMap
* 4.验证newPixelMap对象不为null
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
it
(
'
TC_001-4
'
,
0
,
async
function
(
done
)
{
/**
* @tc.number : TC_001-4
* @tc.name : create pixelmap object
* @tc.desc : 1.create InitializationOptions object
* 2.set color,colorlength,offset,width,height,pixeFormat,alphyType
* 3.usingcolor,colorlength,offset,width and opts create newPixelMap
* 4.return newpixelmap not empty
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it
(
'
TC_001-4
'
,
0
,
async
function
(
done
)
{
const
Color
=
new
ArrayBuffer
(
96
);
let
opts
=
{
alphaType
:
3
,
editable
:
false
,
pixelFormat
:
2
,
scaleMode
:
2
,
size
:
{
height
:
2
,
width
:
3
}
}
image
.
createPixelMap
(
Color
,
opts
,
pixelmap
=>
{
...
...
@@ -171,18 +167,17 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_001-5
* @tc.name : create pixelmap object
* @tc.desc : 1.创建InitializationOptions对象opts
* 2.设置color,colorlength,offset,width,height,pixeFormat,alphyType
* 3.使用color,colorlength, offset,width和opts创建PixelMap对象newPixelMap
* 4.验证newPixelMap对象不为null
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_001-5
* @tc.name : create pixelmap object
* @tc.desc : 1.create InitializationOptions object
* 2.set color,colorlength,offset,width,height,pixeFormat,alphyType
* 3.usingcolor,colorlength,offset,width and opts create newPixelMap
* 4.return newpixelmap not empty
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it
(
'
TC_001-5
'
,
0
,
async
function
(
done
)
{
const
Color
=
new
ArrayBuffer
(
96
);
let
opts
=
{
alphaType
:
3
,
editable
:
true
,
pixelFormat
:
2
,
scaleMode
:
1
,
size
:
{
height
:
-
1
,
width
:
-
1
}
}
...
...
@@ -190,26 +185,24 @@ describe('Image', function () {
expect
(
pixelmap
!==
null
).
assertTrue
();
console
.
info
(
'
TC_001-5 success
'
);
done
();
})
.
catch
(
error
=>
{
console
.
log
(
'
TC_001-5 error:
'
+
error
);
}).
catch
(
error
=>
{
console
.
log
(
'
TC_001-4 error:
'
+
error
);
expect
().
assertFail
();
done
();
})
})
/* *
* @tc.number : TC_020
* @tc.name : read Pixels To Buffer
* @tc.desc : read all pixels to an buffer
* 1.创建PixelMap,buffer
* 2.调用readPixelsToBuffer读取pixels
* 3.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_020
* @tc.name : read Pixels To Buffer
* @tc.desc : read all pixels to an buffer
* 1.create PixelMap,buffer
* 2.call readPixelsToBuffer
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_020
'
,
0
,
async
function
(
done
)
{
console
.
info
(
'
TC_020 in
'
);
const
color
=
new
ArrayBuffer
(
96
);
...
...
@@ -218,7 +211,7 @@ describe('Image', function () {
bufferArr
[
i
]
=
i
+
1
;
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
4
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
3
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
image
.
createPixelMap
(
color
,
opts
)
.
then
(
pixelmap
=>
{
console
.
info
(
'
TC_020 createPixelMap in
'
);
...
...
@@ -229,7 +222,7 @@ describe('Image', function () {
}
const
readBuffer
=
new
ArrayBuffer
(
96
);
pixelmap
.
readPixelsToBuffer
(
readBuffer
).
then
(()
=>
{
pixelmap
.
readPixelsToBuffer
(
readBuffer
).
then
(()
=>
{
var
bufferArr
=
new
Uint8Array
(
readBuffer
);
var
res
=
true
;
for
(
var
i
=
0
;
i
<
bufferArr
.
length
;
i
++
)
{
...
...
@@ -257,18 +250,17 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_020-1
* @tc.name : read Pixels To Buffer
* @tc.desc : read all pixels to an buffer
* 1.创建PixelMap,buffer
* 2.调用readPixelsToBuffer读取pixels
* 3.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_020-1
* @tc.name : read Pixels To Buffer
* @tc.desc : read all pixels to an buffer
* 1.create PixelMap,buffer
* 2.call readPixelsToBuffer
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_020-1
'
,
0
,
async
function
(
done
)
{
console
.
info
(
'
TC_020-1 in
'
);
const
color
=
new
ArrayBuffer
(
96
);
...
...
@@ -277,7 +269,7 @@ describe('Image', function () {
bufferArr
[
i
]
=
i
+
1
;
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
4
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
3
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
image
.
createPixelMap
(
color
,
opts
,
(
pixelmap
)
=>
{
console
.
info
(
'
TC_020-1 createPixelMap in
'
);
expect
(
pixelmap
!==
null
).
assertTrue
();
...
...
@@ -313,18 +305,17 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_020-2
* @tc.name : read Pixels To Buffer
* @tc.desc : read all pixels to an buffer
* 1.创建PixelMap,buffer
* 2.调用readPixelsToBuffer读取pixels
* 3.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_020-2
* @tc.name : read Pixels To Buffer
* @tc.desc : read all pixels to an buffer
* 1.create PixelMap,buffer
* 2.call readPixelsToBuffer
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_020-2
'
,
0
,
async
function
(
done
)
{
console
.
info
(
'
TC_020-2 in
'
);
const
color
=
new
ArrayBuffer
(
96
);
...
...
@@ -333,7 +324,7 @@ describe('Image', function () {
bufferArr
[
i
]
=
i
+
1
;
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
4
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
2
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
image
.
createPixelMap
(
color
,
opts
,
(
pixelmap
)
=>
{
console
.
info
(
'
TC_020-2 createPixelMap in
'
);
expect
(
pixelmap
!==
null
).
assertTrue
();
...
...
@@ -368,25 +359,24 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_021
* @tc.name : read Pixels
* @tc.desc : 1.创建PixelMap
* 2.调用readPixels
* 3.主动调用返回数组存储number类型值
* 4.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_021
* @tc.name : read Pixels
* @tc.desc : 1.create PixelMap
* 2.call readPixels
* 3.promise return array
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_021
'
,
0
,
async
function
(
done
)
{
const
color
=
new
ArrayBuffer
(
96
);
var
bufferArr
=
new
Uint8Array
(
color
);
for
(
var
i
=
0
;
i
<
bufferArr
.
length
;
i
++
)
{
bufferArr
[
i
]
=
i
+
1
;
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
4
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
3
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
image
.
createPixelMap
(
color
,
opts
)
.
then
(
pixelmap
=>
{
if
(
pixelmap
==
null
)
{
...
...
@@ -430,25 +420,24 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_021-1
* @tc.name : read Pixels
* @tc.desc : 1.创建PixelMap
* 2.调用readPixels
* 3.主动调用返回数组存储number类型值
* 4.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_021-1
* @tc.name : read Pixels
* @tc.desc : 1.create PixelMap
* 2.call readPixels
* 3.promise return array
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_021-1
'
,
0
,
async
function
(
done
)
{
const
color
=
new
ArrayBuffer
(
96
);
var
bufferArr
=
new
Uint8Array
(
color
);
for
(
var
i
=
0
;
i
<
bufferArr
.
length
;
i
++
)
{
bufferArr
[
i
]
=
i
+
1
;
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
4
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
3
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
image
.
createPixelMap
(
color
,
opts
,
pixelmap
=>
{
expect
(
pixelmap
!==
null
).
assertTrue
();
console
.
info
(
'
TC_021-1 success
'
);
...
...
@@ -457,25 +446,30 @@ describe('Image', function () {
const
area
=
{
pixels
:
new
ArrayBuffer
(
20
),
offset
:
0
,
stride
:
8
,
region
:
{
size
:
{
height
:
1
,
width
:
2
},
x
:
0
,
y
:
0
}
}
pixelmap
.
readPixels
(
area
,()
=>
{
var
bufferArr
=
new
Uint8Array
(
area
.
pixels
);
var
res
=
true
;
for
(
var
i
=
0
;
i
<
bufferArr
.
length
;
i
++
)
{
console
.
info
(
'
TC_021-1 buffer
'
+
bufferArr
[
i
]);
if
(
res
)
{
if
(
bufferArr
[
i
]
==
0
)
{
res
=
false
;
console
.
info
(
'
TC_021-1 Success
'
);
expect
(
true
).
assertTrue
();
done
();
break
;
region
:
{
size
:
{
height
:
1
,
width
:
2
},
x
:
0
,
y
:
0
}}
pixelmap
.
readPixels
(
area
,(
data
)
=>
{
if
(
data
!==
null
)
{
var
bufferArr
=
new
Uint8Array
(
area
.
pixels
);
var
res
=
true
;
for
(
var
i
=
0
;
i
<
bufferArr
.
length
;
i
++
)
{
console
.
info
(
'
TC_021-1 buffer
'
+
bufferArr
[
i
]);
if
(
res
)
{
if
(
bufferArr
[
i
]
==
0
)
{
res
=
false
;
console
.
info
(
'
TC_021-1 Success
'
);
expect
(
true
).
assertTrue
();
done
();
break
;
}
}
}
}
if
(
res
)
{
console
.
info
(
'
TC_021-1 buffer is all empty
'
);
if
(
res
)
{
console
.
info
(
'
TC_021-1 buffer is all empty
'
);
expect
(
false
).
assertTrue
()
done
();
}
}
else
{
console
.
info
(
'
TC_021-1 fail
'
);
expect
(
false
).
assertTrue
()
done
();
}
...
...
@@ -487,25 +481,24 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_021-2
* @tc.name : read Pixels
* @tc.desc : 1.创建PixelMap
* 2.调用readPixels
* 3.主动调用返回数组存储number类型值
* 4.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_021-2
* @tc.name : read Pixels
* @tc.desc : 1.create PixelMap
* 2.call readPixels
* 3.promise return array
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_021-2
'
,
0
,
async
function
(
done
)
{
const
color
=
new
ArrayBuffer
(
96
);
var
bufferArr
=
new
Uint8Array
(
color
);
for
(
var
i
=
0
;
i
<
bufferArr
.
length
;
i
++
)
{
bufferArr
[
i
]
=
i
+
1
;
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
4
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
3
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
image
.
createPixelMap
(
color
,
opts
,
pixelmap
=>
{
expect
(
pixelmap
!==
null
).
assertTrue
();
console
.
info
(
'
TC_021-2 success
'
);
...
...
@@ -514,27 +507,28 @@ describe('Image', function () {
const
area
=
{
pixels
:
new
ArrayBuffer
(
20
),
offset
:
0
,
stride
:
8
,
region
:
{
size
:
{
height
:
1
,
width
:
2
},
x
:
-
1
,
y
:
0
}
}
pixelmap
.
readPixels
(
area
,()
=>
{
var
bufferArr
=
new
Uint8Array
(
area
.
pixels
);
var
res
=
true
;
for
(
var
i
=
0
;
i
<
bufferArr
.
length
;
i
++
)
{
console
.
info
(
'
TC_021-2 buffer
'
+
bufferArr
[
i
]);
if
(
res
)
{
if
(
bufferArr
[
i
]
==
0
)
{
res
=
false
;
console
.
info
(
'
TC_021-2 Success
'
);
expect
(
true
).
assertTrue
();
done
();
break
;
region
:
{
size
:
{
height
:
1
,
width
:
2
},
x
:
-
1
,
y
:
0
}}
pixelmap
.
readPixels
(
area
,(
data
)
=>
{
if
(
data
!==
null
){
var
bufferArr
=
new
Uint8Array
(
area
.
pixels
);
var
res
=
true
;
for
(
var
i
=
0
;
i
<
bufferArr
.
length
;
i
++
)
{
console
.
info
(
'
TC_021-2 buffer
'
+
bufferArr
[
i
]);
if
(
res
)
{
if
(
bufferArr
[
i
]
==
0
)
{
res
=
false
;
console
.
info
(
'
TC_021-2 Success
'
);
expect
(
true
).
assertTrue
();
done
();
break
;
}
}
}
}
if
(
res
)
{
console
.
info
(
'
TC_021-2 buffer is all empty
'
);
expect
(
false
).
assertTrue
()
done
();
if
(
res
)
{
console
.
info
(
'
TC_021-2 buffer is all empty
'
);
expect
(
false
).
assertTrue
()
done
();
}
}
})
.
catch
(
error
=>
{
...
...
@@ -544,25 +538,24 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_021-3
* @tc.name : read Pixels
* @tc.desc : 1.创建PixelMap
* 2.调用readPixels
* 3.主动调用返回数组存储number类型值
* 4.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_021-3
* @tc.name : read Pixels
* @tc.desc : 1.create PixelMap
* 2.call readPixels
* 3.promise return array
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_021-3
'
,
0
,
async
function
(
done
)
{
const
color
=
new
ArrayBuffer
(
96
);
var
bufferArr
=
new
Uint8Array
(
color
);
for
(
var
i
=
0
;
i
<
bufferArr
.
length
;
i
++
)
{
bufferArr
[
i
]
=
i
+
1
;
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
4
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
3
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
image
.
createPixelMap
(
color
,
opts
,
pixelmap
=>
{
expect
(
pixelmap
!==
null
).
assertTrue
();
console
.
info
(
'
TC_021-3 success
'
);
...
...
@@ -571,27 +564,28 @@ describe('Image', function () {
const
area
=
{
pixels
:
new
ArrayBuffer
(
0
),
offset
:
0
,
stride
:
8
,
region
:
{
size
:
{
height
:
1
,
width
:
2
},
x
:
0
,
y
:
0
}
}
pixelmap
.
readPixels
(
area
,()
=>
{
var
bufferArr
=
new
Uint8Array
(
area
.
pixels
);
var
res
=
true
;
for
(
var
i
=
0
;
i
<
bufferArr
.
length
;
i
++
)
{
console
.
info
(
'
TC_021-3 buffer
'
+
bufferArr
[
i
]);
if
(
res
)
{
if
(
bufferArr
[
i
]
==
0
)
{
res
=
false
;
console
.
info
(
'
TC_021-3 Success
'
);
expect
(
true
).
assertTrue
();
done
();
break
;
region
:
{
size
:
{
height
:
1
,
width
:
2
},
x
:
0
,
y
:
0
}}
pixelmap
.
readPixels
(
area
,(
data
)
=>
{
if
(
data
!==
null
){
var
bufferArr
=
new
Uint8Array
(
area
.
pixels
);
var
res
=
true
;
for
(
var
i
=
0
;
i
<
bufferArr
.
length
;
i
++
)
{
console
.
info
(
'
TC_021-3 buffer
'
+
bufferArr
[
i
]);
if
(
res
)
{
if
(
bufferArr
[
i
]
==
0
)
{
res
=
false
;
console
.
info
(
'
TC_021-3 Success
'
);
expect
(
true
).
assertTrue
();
done
();
break
;
}
}
}
}
if
(
res
)
{
console
.
info
(
'
TC_021-3 buffer is all empty
'
);
expect
(
false
).
assertTrue
()
done
();
if
(
res
)
{
console
.
info
(
'
TC_021-3 buffer is all empty
'
);
expect
(
false
).
assertTrue
()
done
();
}
}
})
.
catch
(
error
=>
{
...
...
@@ -601,25 +595,24 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_021-4
* @tc.name : read Pixels
* @tc.desc : 1.创建PixelMap
* 2.调用readPixels
* 3.主动调用返回数组存储number类型值
* 4.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_021-4
* @tc.name : read Pixels
* @tc.desc : 1.create PixelMap
* 2.call readPixels
* 3.promise return array
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_021-4
'
,
0
,
async
function
(
done
)
{
const
color
=
new
ArrayBuffer
(
96
);
var
bufferArr
=
new
Uint8Array
(
color
);
for
(
var
i
=
0
;
i
<
bufferArr
.
length
;
i
++
)
{
bufferArr
[
i
]
=
i
+
1
;
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
4
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
3
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
image
.
createPixelMap
(
color
,
opts
,
pixelmap
=>
{
expect
(
pixelmap
!==
null
).
assertTrue
();
console
.
info
(
'
TC_021-4 success
'
);
...
...
@@ -628,27 +621,28 @@ describe('Image', function () {
const
area
=
{
pixels
:
new
ArrayBuffer
(
20
),
offset
:
21
,
stride
:
8
,
region
:
{
size
:
{
height
:
1
,
width
:
2
},
x
:
0
,
y
:
0
}
}
pixelmap
.
readPixels
(
area
,()
=>
{
var
bufferArr
=
new
Uint8Array
(
area
.
pixels
);
var
res
=
true
;
for
(
var
i
=
0
;
i
<
bufferArr
.
length
;
i
++
)
{
console
.
info
(
'
TC_021-4 buffer
'
+
bufferArr
[
i
]);
if
(
res
)
{
if
(
bufferArr
[
i
]
==
0
)
{
res
=
false
;
console
.
info
(
'
TC_021-4 Success
'
);
expect
(
true
).
assertTrue
();
done
();
break
;
region
:
{
size
:
{
height
:
1
,
width
:
2
},
x
:
0
,
y
:
0
}}
pixelmap
.
readPixels
(
area
,(
data
)
=>
{
if
(
data
!==
null
){
var
bufferArr
=
new
Uint8Array
(
area
.
pixels
);
var
res
=
true
;
for
(
var
i
=
0
;
i
<
bufferArr
.
length
;
i
++
)
{
console
.
info
(
'
TC_021-4 buffer
'
+
bufferArr
[
i
]);
if
(
res
)
{
if
(
bufferArr
[
i
]
==
0
)
{
res
=
false
;
console
.
info
(
'
TC_021-4 Success
'
);
expect
(
true
).
assertTrue
();
done
();
break
;
}
}
}
}
if
(
res
)
{
console
.
info
(
'
TC_021-4 buffer is all empty
'
);
expect
(
false
).
assertTrue
()
done
();
if
(
res
)
{
console
.
info
(
'
TC_021-4 buffer is all empty
'
);
expect
(
false
).
assertTrue
()
done
();
}
}
})
.
catch
(
error
=>
{
...
...
@@ -658,25 +652,24 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_021-5
* @tc.name : read Pixels
* @tc.desc : 1.创建PixelMap
* 2.调用readPixels
* 3.主动调用返回数组存储number类型值
* 4.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_021-5
* @tc.name : read Pixels
* @tc.desc : 1.create PixelMap
* 2.call readPixels
* 3.promise return array
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_021-5
'
,
0
,
async
function
(
done
)
{
const
color
=
new
ArrayBuffer
(
96
);
var
bufferArr
=
new
Uint8Array
(
color
);
for
(
var
i
=
0
;
i
<
bufferArr
.
length
;
i
++
)
{
bufferArr
[
i
]
=
i
+
1
;
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
4
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
3
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
image
.
createPixelMap
(
color
,
opts
,
pixelmap
=>
{
expect
(
pixelmap
!==
null
).
assertTrue
();
console
.
info
(
'
TC_021-5 success
'
);
...
...
@@ -685,27 +678,28 @@ describe('Image', function () {
const
area
=
{
pixels
:
new
ArrayBuffer
(
20
),
offset
:
0
,
stride
:
8
,
region
:
{
size
:
{
height
:
-
1
,
width
:
-
1
},
x
:
0
,
y
:
0
}
}
pixelmap
.
readPixels
(
area
,()
=>
{
var
bufferArr
=
new
Uint8Array
(
area
.
pixels
);
var
res
=
true
;
for
(
var
i
=
0
;
i
<
bufferArr
.
length
;
i
++
)
{
console
.
info
(
'
TC_021-5 buffer
'
+
bufferArr
[
i
]);
if
(
res
)
{
if
(
bufferArr
[
i
]
==
0
)
{
res
=
false
;
console
.
info
(
'
TC_021-5 Success
'
);
expect
(
true
).
assertTrue
();
done
();
break
;
region
:
{
size
:
{
height
:
-
1
,
width
:
-
1
},
x
:
0
,
y
:
0
}}
pixelmap
.
readPixels
(
area
,(
data
)
=>
{
if
(
data
!==
null
){
var
bufferArr
=
new
Uint8Array
(
area
.
pixels
);
var
res
=
true
;
for
(
var
i
=
0
;
i
<
bufferArr
.
length
;
i
++
)
{
console
.
info
(
'
TC_021-5 buffer
'
+
bufferArr
[
i
]);
if
(
res
)
{
if
(
bufferArr
[
i
]
==
0
)
{
res
=
false
;
console
.
info
(
'
TC_021-5 Success
'
);
expect
(
true
).
assertTrue
();
done
();
break
;
}
}
}
}
if
(
res
)
{
console
.
info
(
'
TC_021-5 buffer is all empty
'
);
expect
(
false
).
assertTrue
()
done
();
if
(
res
)
{
console
.
info
(
'
TC_021-5 buffer is all empty
'
);
expect
(
false
).
assertTrue
()
done
();
}
}
})
.
catch
(
error
=>
{
...
...
@@ -713,23 +707,22 @@ describe('Image', function () {
expect
().
assertFail
();
done
();
})
})
})
/* *
* @tc.number : TC_022
* @tc.name : write Pixels
* @tc.desc : 1.创建PixelMap
* 2.调用writePixels
* 3.主动调用返回空
* 4.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_022
* @tc.name : write Pixels
* @tc.desc : 1.create PixelMap
* 2.call writePixels
* 3.call return null
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_022
'
,
0
,
async
function
(
done
)
{
const
color
=
new
ArrayBuffer
(
96
);
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
4
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
3
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
image
.
createPixelMap
(
color
,
opts
)
.
then
(
pixelmap
=>
{
if
(
pixelmap
==
null
)
{
...
...
@@ -784,21 +777,20 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_022-1
* @tc.name : write Pixels
* @tc.desc : 1.创建PixelMap
* 2.调用writePixels
* 3.主动调用返回空
* 4.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_022-1
* @tc.name : write Pixels
* @tc.desc : 1.create PixelMap
* 2.call writePixels
* 3.call return null
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_022-1
'
,
0
,
async
function
(
done
)
{
const
color
=
new
ArrayBuffer
(
96
);
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
4
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
3
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
image
.
createPixelMap
(
color
,
opts
,
pixelmap
=>
{
expect
(
pixelmap
!==
null
).
assertTrue
();
console
.
info
(
'
TC_022-1 success
'
);
...
...
@@ -847,25 +839,24 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_023
* @tc.name : write Buffer To Pixels
* @tc.desc : 1.创建PixelMap,buffer
* 2.调用writeBufferToPixels
* 3.主动调用返回空
* 4.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_023
* @tc.name : write Buffer To Pixels
* @tc.desc : 1.create PixelMap,buffer
* 2.call writeBufferToPixels
* 3.call return null
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_023
'
,
0
,
async
function
(
done
)
{
const
color
=
new
ArrayBuffer
(
96
);
var
bufferArr
=
new
Uint8Array
(
color
);
for
(
var
i
=
0
;
i
<
bufferArr
.
length
;
i
++
)
{
bufferArr
[
i
]
=
i
;
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
4
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
3
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}}
image
.
createPixelMap
(
color
,
opts
)
.
then
(
pixelmap
=>
{
if
(
pixelmap
==
null
)
{
...
...
@@ -877,7 +868,7 @@ describe('Image', function () {
const
writeColor
=
new
ArrayBuffer
(
96
);
pixelmap
.
writeBufferToPixels
(
writeColor
).
then
(()
=>
{
const
readBuffer
=
new
ArrayBuffer
(
96
);
pixelmap
.
readPixelsToBuffer
(
readBuffer
).
then
(()
=>
{
pixelmap
.
readPixelsToBuffer
(
readBuffer
).
then
(()
=>
{
var
bufferArr
=
new
Uint8Array
(
readBuffer
);
var
res
=
true
;
for
(
var
i
=
0
;
i
<
bufferArr
.
length
;
i
++
)
{
...
...
@@ -906,25 +897,24 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_023-1
* @tc.name : write Buffer To Pixels
* @tc.desc : 1.创建PixelMap,buffer
* 2.调用writeBufferToPixels
* 3.主动调用返回空
* 4.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_023-1
* @tc.name : write Buffer To Pixels
* @tc.desc : 1.create PixelMap,buffer
* 2.call writeBufferToPixels
* 3.call return null
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_023-1
'
,
0
,
async
function
(
done
)
{
const
color
=
new
ArrayBuffer
(
96
);
var
bufferArr
=
new
Uint8Array
(
color
);
for
(
var
i
=
0
;
i
<
bufferArr
.
length
;
i
++
)
{
bufferArr
[
i
]
=
i
;
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
4
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
3
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
image
.
createPixelMap
(
color
,
opts
,
pixelmap
=>
{
expect
(
pixelmap
!==
null
).
assertTrue
();
console
.
info
(
'
TC_023-1 success
'
);
...
...
@@ -959,23 +949,22 @@ describe('Image', function () {
expect
().
assertFail
();
done
();
})
})
/* *
* @tc.number : TC_024
* @tc.name : get Image In fo
* @tc.desc : 1.创建PixelMap,ImageInfo
* 2.调用getImageInfo
* 3.主动调用返回imageinfo
* 4.callback返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
})
/**
* @tc.number : TC_024
* @tc.name : get Image In fo
* @tc.desc : 1.create PixelMap,ImageInfo
* 2.call getImageInfo
* 3.call return imageinfo
* 4.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_024
'
,
0
,
async
function
(
done
)
{
const
color
=
new
ArrayBuffer
(
96
);
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
4
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
2
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
image
.
createPixelMap
(
color
,
opts
)
.
then
(
pixelmap
=>
{
if
(
pixelmap
==
null
)
{
...
...
@@ -988,7 +977,7 @@ describe('Image', function () {
console
.
info
(
'
TC_024 imageInfo is ready
'
);
expect
(
imageInfo
.
size
.
height
==
4
).
assertTrue
();
expect
(
imageInfo
.
size
.
width
==
6
).
assertTrue
();
expect
(
imageInfo
.
pixelFormat
==
4
).
assertTrue
();
expect
(
imageInfo
.
pixelFormat
==
2
).
assertTrue
();
done
();
}
else
{
console
.
info
(
'
TC_024 imageInfo is empty
'
);
...
...
@@ -1003,22 +992,21 @@ describe('Image', function () {
done
();
})
})
/* *
* @tc.number : TC_024-1
* @tc.name : get Image In fo
* @tc.desc : 1.创建PixelMap,ImageInfo
* 2.调用getImageInfo
* 3.主动调用返回imageinfo
* 4.callback返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_024-1
* @tc.name : get Image In fo
* @tc.desc : 1.create PixelMap,ImageInfo
* 2.call getImageInfo
* 3.call return imageinfo
* 4.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_024-1
'
,
0
,
async
function
(
done
)
{
const
color
=
new
ArrayBuffer
(
96
);
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
4
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
3
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
image
.
createPixelMap
(
color
,
opts
,
pixelmap
=>
{
expect
(
pixelmap
!==
null
).
assertTrue
();
console
.
info
(
'
TC_024-1 success
'
);
...
...
@@ -1043,60 +1031,22 @@ describe('Image', function () {
done
();
})
})
/* *
* @tc.number : TC_025
* @tc.name : get Bytes Number PerRow
* @tc.desc : 1.创建PixelMap
* 2.写入PixelMap
* 3.调用getBytesNumberPerRow
* 4.主动调用返回number类型值
* 5.callback返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
it
(
'
TC_025
'
,
0
,
async
function
(
done
)
{
/**
* @tc.number : TC_025-1
* @tc.name : get Bytes Number PerRow
* @tc.desc : 1.create PixelMap
* 2.set PixelMap
* 3.call getBytesNumberPerRow
* 4. call return number
* 5.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_025-1
'
,
0
,
async
function
(
done
)
{
const
color
=
new
ArrayBuffer
(
96
);
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
4
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
const
expectNum
=
opts
.
pixelFormat
*
opts
.
size
.
width
;
image
.
createPixelMap
(
color
,
opts
)
.
then
(
pixelmap
=>
{
if
(
pixelmap
==
null
)
{
console
.
info
(
'
TC_025 createPixelMap failed
'
);
expect
(
false
).
assertTrue
()
done
();
}
pixelmap
.
getBytesNumberPerRow
().
then
(
num
=>
{
console
.
info
(
'
TC_025 num is
'
+
num
);
expect
(
num
==
expectNum
).
assertTrue
();
done
();
})
})
.
catch
(
error
=>
{
console
.
log
(
'
TC_025 error:
'
+
error
);
expect
().
assertFail
();
done
();
})
})
/* *
* @tc.number : TC_025-1
* @tc.name : get Bytes Number PerRow
* @tc.desc : 1.创建PixelMap
* 2.写入PixelMap
* 3.调用getBytesNumberPerRow
* 4.主动调用返回number类型值
* 5.callback返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
it
(
'
TC_025-1
'
,
0
,
async
function
(
done
)
{
const
color
=
new
ArrayBuffer
(
96
);
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
4
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
3
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
const
expectNum
=
opts
.
pixelFormat
*
opts
.
size
.
width
;
image
.
createPixelMap
(
color
,
opts
,
pixelmap
=>
{
expect
(
pixelmap
!==
null
).
assertTrue
();
...
...
@@ -1115,59 +1065,21 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_026
* @tc.name : get Pixel Bytes Number
* @tc.desc : 1.创建PixelMap
* 2.写入Pixel
* 3.调用getPixelBytesNumber
* 4.主动调用返回number类型值
* 5.callback返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
it
(
'
TC_026
'
,
0
,
async
function
(
done
)
{
const
color
=
new
ArrayBuffer
(
96
);
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
4
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
const
expectNum
=
opts
.
pixelFormat
*
opts
.
size
.
width
*
opts
.
size
.
height
;
image
.
createPixelMap
(
color
,
opts
)
.
then
(
pixelmap
=>
{
if
(
pixelmap
==
null
)
{
console
.
info
(
'
TC_026 createPixelMap failed
'
);
expect
(
false
).
assertTrue
()
done
();
}
pixelmap
.
getPixelBytesNumber
().
then
(
num
=>
{
console
.
info
(
'
TC_026 num is
'
+
num
);
expect
(
num
==
expectNum
).
assertTrue
();
done
();
})
})
.
catch
(
error
=>
{
console
.
log
(
'
TC_026 error:
'
+
error
);
expect
().
assertFail
();
done
();
})
})
/* *
* @tc.number : TC_026-1
* @tc.name : get Pixel Bytes Number
* @tc.desc : 1.创建PixelMap
* 2.写入Pixel
* 3.调用getPixelBytesNumber
* 4.主动调用返回number类型值
* 5.callback返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_026-1
* @tc.name : get Pixel Bytes Number
* @tc.desc : 1.create PixelMap
* 2.set Pixel
* 3.call getPixelBytesNumber
* 4. call return number
* 5.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_026-1
'
,
0
,
async
function
(
done
)
{
const
color
=
new
ArrayBuffer
(
96
);
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
4
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
3
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
const
expectNum
=
opts
.
pixelFormat
*
opts
.
size
.
width
*
opts
.
size
.
height
;
image
.
createPixelMap
(
color
,
opts
,
pixelmap
=>
{
expect
(
pixelmap
!==
null
).
assertTrue
();
...
...
@@ -1186,52 +1098,50 @@ describe('Image', function () {
})
})
/* *
* @tc.number : TC_027
* @tc.name : release
* @tc.desc : 1.创建PixelMap
* 2.写入Pixel
* 3.调用release
* 4.判断释放成功,返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_027
* @tc.name : release
* @tc.desc : 1.create PixelMap
* 2.set Pixel
* 3.call release
* 4.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_027
'
,
0
,
async
function
(
done
)
{
const
color
=
new
ArrayBuffer
(
96
);
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
4
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
3
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
image
.
createPixelMap
(
color
,
opts
)
.
then
(
pixelmap
=>
{
if
(
pixelmap
==
null
)
{
console
.
info
(
'
TC_027 createPixelMap failed
'
);
expect
(
false
).
assertTrue
()
done
();
}
pixelmap
.
release
();
expect
(
true
).
assertTrue
();
.
then
(
pixelmap
=>
{
if
(
pixelmap
==
null
)
{
console
.
info
(
'
TC_027 createPixelMap failed
'
);
expect
(
false
).
assertTrue
()
done
();
}
)
.
catch
(
error
=>
{
console
.
log
(
'
TC_027 error:
'
+
error
);
expect
(
).
assertFail
();
}
pixelmap
.
release
().
then
(()
=>
{
console
.
info
(
'
TC_027 success
'
);
expect
(
true
).
assertTrue
();
done
();
})
}).
catch
(
error
=>
{
console
.
log
(
'
TC_027 error:
'
+
error
);
expect
().
assertFail
();
done
();
})
})
/* *
* @tc.number : TC_027-1
* @tc.name : release(callback)
* @tc.desc : 1.创建PixelMap
* 2.写入Pixel
* 3.调用release
* 4.判断释放成功,返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_027-1
* @tc.name : release(callback)
* @tc.desc : 1.create PixelMap
* 2.set Pixel
* 3.call release
* 4.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_027-1
'
,
0
,
async
function
(
done
)
{
const
color
=
new
ArrayBuffer
(
96
);
let
opts
=
{
alphaType
:
0
,
editable
:
true
,
pixelFormat
:
3
,
scaleMode
:
1
,
size
:
{
height
:
4
,
width
:
6
}
}
...
...
@@ -1242,7 +1152,7 @@ describe('Image', function () {
})
pixelmap
.
release
(()
=>
{
expect
(
true
).
assertTrue
();
console
.
log
(
'
TC_027-1 suc
'
);
console
.
info
(
'
TC_027-1 success
'
);
done
();
})
.
catch
(
error
=>
{
...
...
@@ -1251,18 +1161,17 @@ describe('Image', function () {
done
();
})
})
/* *
* @tc.number : TC_041
* @tc.name : create Image Source(uri)
* @tc.desc : 1.输入uri
* 2.调用createImageSource(uri)
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_041
* @tc.name : create Image Source(uri)
* @tc.desc : 1.set uri
* 2.call createImageSource(uri)
* 3.return imagesource
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it
(
'
TC_041
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.jpg
'
);
expect
(
imageSourceApi
!==
null
).
assertTrue
();
...
...
@@ -1270,17 +1179,16 @@ describe('Image', function () {
done
();
})
/* *
* @tc.number : TC_041-1
* @tc.name : create Image Source(uri)
* @tc.desc : 1.输入uri
* 2.调用createImageSource(uri)
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_041-1
* @tc.name : create Image Source(uri)
* @tc.desc : 1.seturi
* 2.call createImageSource(uri)
* 3.return imagesource
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it
(
'
TC_041-1
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.bmp
'
);
expect
(
imageSourceApi
!==
null
).
assertTrue
();
...
...
@@ -1288,17 +1196,16 @@ describe('Image', function () {
done
();
})
/* *
* @tc.number : TC_041-2
* @tc.name : create Image Source(uri)
* @tc.desc : 1.输入uri
* 2.调用createImageSource(uri)
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_041-2
* @tc.name : create Image Source(uri)
* @tc.desc : 1.seturi
* 2.call createImageSource(uri)
* 3.return imagesource
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it
(
'
TC_041-2
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.gif
'
);
expect
(
imageSourceApi
!==
null
).
assertTrue
();
...
...
@@ -1306,17 +1213,16 @@ describe('Image', function () {
done
();
})
/* *
* @tc.number : TC_041-3
* @tc.name : create Image Source(uri)
* @tc.desc : 1.输入uri
* 2.调用createImageSource(uri)
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_041-3
* @tc.name : create Image Source(uri)
* @tc.desc : 1.seturi
* 2.call createImageSource(uri)
* 3.return imagesource
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it
(
'
TC_041-3
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.png
'
);
expect
(
imageSourceApi
!==
null
).
assertTrue
();
...
...
@@ -1324,17 +1230,16 @@ describe('Image', function () {
done
();
})
/* *
* @tc.number : TC_041-4
* @tc.name : create Image Source(uri)
* @tc.desc : 1.调用createImageSource(uri)
* 2.传入错误后缀文件
* 3.imagesource空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_041-4
* @tc.name : create Image Source(uri)
* @tc.desc : 1.call createImageSource(uri)
* 2.Incoming wrong suffix file
* 3.imagesource null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it
(
'
TC_041-4
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.tif
'
);
expect
(
imageSourceApi
==
null
).
assertTrue
();
...
...
@@ -1342,17 +1247,16 @@ describe('Image', function () {
done
();
})
/* *
* @tc.number : TC_041-5
* @tc.name : create Image Source(uri)
* @tc.desc : 1.调用createImageSource(uri)
* 2.输入错误uri
* 3.imagesource空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_041-5
* @tc.name : create Image Source(uri)
* @tc.desc : 1.call createImageSource(uri)
* 2.set wrong uri
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it
(
'
TC_041-5
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/multiedia/test.jpg
'
);
expect
(
imageSourceApi
==
null
).
assertTrue
();
...
...
@@ -1360,17 +1264,16 @@ describe('Image', function () {
done
();
})
/* *
* @tc.number : TC_042
* @tc.name : create Image Source(fd)
* @tc.desc : 1.调用createImageSource
* 2.传入fd
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_042
* @tc.name : create Image Source(fd)
* @tc.desc : 1.call createImageSource
* 2.set fd
* 3.return imagesource
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it
(
'
TC_042
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
29
);
expect
(
imageSourceApi
!==
null
).
assertTrue
();
...
...
@@ -1378,17 +1281,16 @@ describe('Image', function () {
done
();
})
/* *
* @tc.number : TC_042-1
* @tc.name : create Image Source(fd) bmp
* @tc.desc : 1.调用createImageSource
* 2.传入fd
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_042-1
* @tc.name : create Image Source(fd) bmp
* @tc.desc : 1.call createImageSource
* 2.set fd
* 3.return imagesource
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it
(
'
TC_042-1
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
30
);
expect
(
imageSourceApi
!==
null
).
assertTrue
();
...
...
@@ -1396,17 +1298,16 @@ describe('Image', function () {
done
();
})
/* *
* @tc.number : TC_042-2
* @tc.name : create Image Source(fd) png
* @tc.desc : 1.调用createImageSource
* 2.传入fd
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_042-2
* @tc.name : create Image Source(fd) png
* @tc.desc : 1.call createImageSource
* 2.set fd
* 3.return imagesource
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it
(
'
TC_042-2
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
28
);
expect
(
imageSourceApi
!==
null
).
assertTrue
();
...
...
@@ -1414,17 +1315,16 @@ describe('Image', function () {
done
();
})
/* *
* @tc.number : TC_042-3
* @tc.name : create Image Source(fd) gif
* @tc.desc : 1.调用createImageSource
* 2.传入fd
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_042-3
* @tc.name : create Image Source(fd) gif
* @tc.desc : 1.call createImageSource
* 2.set fd
* 3.return imagesource
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it
(
'
TC_042-3
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
27
);
expect
(
imageSourceApi
!==
null
).
assertTrue
();
...
...
@@ -1432,17 +1332,16 @@ describe('Image', function () {
done
();
})
/* *
* @tc.number : TC_042-4
* @tc.name : create Image Source(fd)
* @tc.desc : 1.调用createImageSource
* 2.传入fd
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_042-4
* @tc.name : create Image Source(fd)
* @tc.desc : 1.call createImageSource
* 2.set wrong fd
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it
(
'
TC_042-4
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
-
2
);
expect
(
imageSourceApi
==
null
).
assertTrue
();
...
...
@@ -1450,41 +1349,16 @@ describe('Image', function () {
done
();
})
/* *
* @tc.number : TC_042-5
* @tc.name : create Image Source(fd)
* @tc.desc : 1.调用createImageSource
* 2.传入fd
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
it
(
'
TC_042-5
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
-
2
);
if
(
imageSourceApi
==
null
){
console
.
info
(
'
TC_042-5 success
'
);
expect
(
true
).
assertTrue
();
done
();
}
else
{
console
.
info
(
'
TC_042-5 fail
'
);
expect
(
false
).
assertTrue
();
done
();
}
})
/* *
* @tc.number : TC_043
* @tc.name : create Image Source(data)
* @tc.desc : 1.输入data
* 2.createImageSource
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_043
* @tc.name : create Image Source(data)
* @tc.desc : 1.setdata
* 2.createImageSource
* 3.return imagesource
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it
(
'
TC_043
'
,
0
,
async
function
(
done
)
{
console
.
info
(
'
TC_043 start
'
);
const
data
=
new
ArrayBuffer
(
96
);
...
...
@@ -1494,17 +1368,16 @@ describe('Image', function () {
done
();
})
/* *
* @tc.number : TC_043-1
* @tc.name : create Image Source(data) bmp
* @tc.desc : 1.输入data
* 2.createImageSource
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_043-1
* @tc.name : create Image Source(data) bmp
* @tc.desc : 1.setdata
* 2.createImageSource
* 3.return imagesource
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it
(
'
TC_043-1
'
,
0
,
async
function
(
done
)
{
console
.
info
(
'
TC_043-1 start
'
);
const
data
=
new
ArrayBuffer
(
104
);
...
...
@@ -1514,17 +1387,16 @@ describe('Image', function () {
done
();
})
/* *
* @tc.number : TC_043-2
* @tc.name : create Image Source(data) png
* @tc.desc : 1.输入data
* 2.createImageSource
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_043-2
* @tc.name : create Image Source(data) png
* @tc.desc : 1.setdata
* 2.createImageSource
* 3.return imagesource
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it
(
'
TC_043-2
'
,
0
,
async
function
(
done
)
{
console
.
info
(
'
TC_043-2 start
'
);
const
data
=
new
ArrayBuffer
(
112
);
...
...
@@ -1534,17 +1406,16 @@ describe('Image', function () {
done
();
})
/* *
* @tc.number : TC_043-3
* @tc.name : create Image Source(data) gif
* @tc.desc : 1.输入data
* 2.createImageSource
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_043-3
* @tc.name : create Image Source(data) gif
* @tc.desc : 1.setdata
* 2.createImageSource
* 3.return imagesource
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it
(
'
TC_043-3
'
,
0
,
async
function
(
done
)
{
console
.
info
(
'
TC_043-3 start
'
);
const
data
=
new
ArrayBuffer
(
112
);
...
...
@@ -1553,18 +1424,17 @@ describe('Image', function () {
console
.
info
(
'
TC_043-3 finished
'
);
done
();
})
/* *
* @tc.number : TC_043-4
* @tc.name : create Image Source(data)
* @tc.desc : 1.输入data
* 2.createImageSource
* 3.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_043-4
* @tc.name : create Image Source(data)
* @tc.desc : 1.setdata
* 2.createImageSource
* 3.return imagesource
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it
(
'
TC_043-4
'
,
0
,
async
function
(
done
)
{
console
.
info
(
'
TC_043-4 start
'
);
const
data
=
new
ArrayBuffer
(
0
);
...
...
@@ -1574,16 +1444,16 @@ describe('Image', function () {
done
();
})
/*
*
* @tc.number : TC_044
* @tc.name : release() promise
* @tc.desc : 1.创建
ImageSource
* 2.调用
release()
* 3.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_044
* @tc.name : release()
* @tc.desc : 1.create
ImageSource
* 2.call
release()
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_044
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.jpg
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -1591,23 +1461,28 @@ describe('Image', function () {
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
release
();
console
.
info
(
'
TC_044 release
'
);
expect
(
true
).
assertTrue
();
done
();
imageSourceApi
.
release
().
then
(()
=>
{
console
.
info
(
'
TC_044 release
'
);
expect
(
true
).
assertTrue
();
done
();
}).
catch
(()
=>
{
console
.
log
(
'
TC_044 error:
'
+
error
);
expect
(
false
).
assertTrue
();
done
();
})
}
})
/*
*
* @tc.number : TC_044-1
* @tc.name : release() callback
* @tc.desc : 1.创建
ImageSource
* 2.调用
release()
* 3.callback时返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_044-1
* @tc.name : release()
* @tc.desc : 1.create
ImageSource
* 2.call
release()
* 3.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_044-1
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.jpg
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -1621,32 +1496,18 @@ describe('Image', function () {
done
();
})
}
// if (imageSourceApi == null) {
// console.info('TC_044 create image source failed');
// expect(false).assertTrue();
// done();
// } else {
// imageSourceApi.release(() => {
// console.info('TC_044 Success1');
// expect(true).assertTrue();
// done();
// })
// onsole.info('TC_044 Success2');
// expect(true).assertTrue();
// done();
// }
})
/*
*
* @tc.number : TC_045
* @tc.name : get Image Info(ImageInfo)
* @tc.desc : 1.创建
imageSource
* 2.imageSource调用getImageInfo(ImageInfo)
* 3.回调返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_045
* @tc.name : get Image Info(ImageInfo)
* @tc.desc : 1.create
imageSource
* 2.imageSourcecall getImageInfo(ImageInfo)
* 3.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_045
'
,
0
,
async
function
(
done
)
{
console
.
info
(
'
TC_045
'
);
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.jpg
'
);
...
...
@@ -1664,16 +1525,16 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_045-1
* @tc.name : get Image Info(ImageInfo) bmp
* @tc.desc : 1.创建
imageSource
* 2.imageSource调用getImageInfo(ImageInfo)
* 3.回调返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_045-1
* @tc.name : get Image Info(ImageInfo)
* @tc.desc : 1.create
imageSource
* 2.imageSourcecall getImageInfo(ImageInfo)
* 3.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_045-1
'
,
0
,
async
function
(
done
)
{
console
.
info
(
'
TC_045-1
'
);
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.bmp
'
);
...
...
@@ -1691,16 +1552,16 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_045-2
* @tc.name : get Image Info(ImageInfo) png
* @tc.desc : 1.创建
imageSource
* 2.imageSource调用getImageInfo(ImageInfo)
* 3.回调返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_045-2
* @tc.name : get Image Info(ImageInfo)
* @tc.desc : 1.create
imageSource
* 2.imageSourcecall getImageInfo(ImageInfo)
* 3.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_045-2
'
,
0
,
async
function
(
done
)
{
console
.
info
(
'
TC_045-2
'
);
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.png
'
);
...
...
@@ -1718,16 +1579,16 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_045-3
* @tc.name : get Image Info(
index, ImageInfo)
* @tc.desc : 1.创建
ImageInfo
* 2.调用getImageInfo(
index, ImageInfo)
* 3.回调返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_045-3
* @tc.name : get Image Info(
index, ImageInfo)
* @tc.desc : 1.create
ImageInfo
* 2.call getImageInfo(
index, ImageInfo)
* 3.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_045-3
'
,
0
,
async
function
(
done
)
{
console
.
info
(
'
TC_045-3
'
);
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.gif
'
);
...
...
@@ -1745,16 +1606,16 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_046
* @tc.name : get Image Info(
index, ImageInfo)
* @tc.desc : 1.创建
ImageInfo
* 2.调用getImageInfo(
index, ImageInfo)
* 3.回调返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_046
* @tc.name : get Image Info(
index, ImageInfo)
* @tc.desc : 1.create
ImageInfo
* 2.call getImageInfo(
index, ImageInfo)
* 3.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_046
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.jpg
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -1770,16 +1631,16 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_046-1
* @tc.name : get Image Info(
index, ImageInfo)
* @tc.desc : 1.创建
ImageInfo
* 2.调用getImageInfo(
index, ImageInfo)
* 3.回调返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_046-1
* @tc.name : get Image Info(
index, ImageInfo)
* @tc.desc : 1.create
ImageInfo
* 2.call getImageInfo(
index, ImageInfo)
* 3.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_046-1
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.bmp
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -1795,16 +1656,16 @@ describe('Image', function () {
}
})
/*
*
* @tc.number: TC_046-2
* @tc.name : get Image Info(
index, ImageInfo)
* @tc.desc : 1.创建
ImageInfo
* 2.调用getImageInfo(
index, ImageInfo)
* 3.回调返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number: TC_046-2
* @tc.name : getImageInfo(
index, ImageInfo)
* @tc.desc : 1.create
ImageInfo
* 2.call getImageInfo(
index, ImageInfo)
* 3.callback return null
* @tc.size : MEDIUM MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_046-2
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.png
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -1820,16 +1681,16 @@ describe('Image', function () {
}
})
/*
*
* @tc.number: TC_046-3
* @tc.name : get Image Info(
index, ImageInfo)
* @tc.desc : 1.创建
ImageInfo
* 2.调用getImageInfo(
index, ImageInfo)
* 3.回调返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number: TC_046-3
* @tc.name : get Image Info(
index, ImageInfo)
* @tc.desc : 1.create
ImageInfo
* 2.call getImageInfo(
index, ImageInfo)
* 3.callback return null
* @tc.size : MEDIUM MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_046-3
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.gif
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -1845,16 +1706,16 @@ describe('Image', function () {
}
})
/*
*
* @tc.number: TC_046-4
* @tc.name : get Image Info(
index, ImageInfo)
* @tc.desc : 1.创建
ImageInfo
* 2.调用getImageInfo(
index, ImageInfo)
* 3.回调返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number: TC_046-4
* @tc.name : get Image Info(
index, ImageInfo)
* @tc.desc : 1.create
ImageInfo
* 2.call getImageInfo(
index, ImageInfo)
* 3.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_046-4
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.gif
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -1870,16 +1731,16 @@ describe('Image', function () {
}
})
/*
*
* @tc.number: TC_046-5
* @tc.name : get Image Info(
index, ImageInfo)
* @tc.desc : 1.创建
ImageInfo
* 2.调用getImageInfo(
index, ImageInfo)
* 3.回调返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number: TC_046-5
* @tc.name : get Image Info(
index, ImageInfo)
* @tc.desc : 1.create
ImageInfo
* 2.call getImageInfo(
index, ImageInfo)
* 3.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_046-5
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.gif
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -1895,16 +1756,16 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_047
* @tc.name : get Image Info(index) 返回
Image Info
* @tc.desc : 1.创建
imagesource
* 2.调用
getImageInfo(index)
* 3.callback调用,返回
imageinfo
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_047
* @tc.name : get Image Info(index) return
Image Info
* @tc.desc : 1.create
imagesource
* 2.call
getImageInfo(index)
* 3.callbackcall ,return
imageinfo
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_047
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.jpg
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -1917,20 +1778,24 @@ describe('Image', function () {
console
.
info
(
'
TC_047 imageInfo
'
);
expect
(
imageInfo
!==
null
).
assertTrue
();
done
();
}).
catch
(()
=>
{
console
.
log
(
'
TC_047 error:
'
+
error
);
expect
(
false
).
assertTrue
();
done
();
})
}
})
/*
*
* @tc.number : TC_047-1
* @tc.name : get Image Info(index) 返回
Image Info
* @tc.desc : 1.创建
imagesource
* 2.调用
getImageInfo(index)
* 3.callback调用,返回
imageinfo
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_047-1
* @tc.name : get Image Info(index) return
Image Info
* @tc.desc : 1.create
imagesource
* 2.call
getImageInfo(index)
* 3.callbackcall ,return
imageinfo
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_047-1
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.bmp
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -1943,20 +1808,24 @@ describe('Image', function () {
console
.
info
(
'
TC_047-1 imageInfo
'
);
expect
(
imageInfo
!==
null
).
assertTrue
();
done
();
}).
catch
(()
=>
{
console
.
log
(
'
TC_047-1 error:
'
+
error
);
expect
(
false
).
assertTrue
();
done
();
})
}
})
/*
*
* @tc.number : TC_047-2
* @tc.name : get Image Info(index) 返回
Image Info
* @tc.desc : 1.创建
imagesource
* 2.调用
getImageInfo(index)
* 3.callback调用,返回
imageinfo
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
})
/**
* @tc.number : TC_047-2
* @tc.name : get Image Info(index) return
Image Info
* @tc.desc : 1.create
imagesource
* 2.call
getImageInfo(index)
* 3.callbackcall ,return
imageinfo
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_047-2
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.png
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -1969,20 +1838,24 @@ describe('Image', function () {
console
.
info
(
'
TC_047-2 imageInfo
'
);
expect
(
imageInfo
!==
null
).
assertTrue
();
done
();
}).
catch
(()
=>
{
console
.
log
(
'
TC_047-2 error:
'
+
error
);
expect
(
false
).
assertTrue
();
done
();
})
}
})
/*
*
* @tc.number : TC_047-3
* @tc.name : get Image Info(index) 返回Image
Info
* @tc.desc : 1.创建
imagesource
* 2.调用
getImageInfo(index)
* 3.callback调用,返回
imageinfo
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
})
/**
* @tc.number : TC_047-3
* @tc.name : get Image Info(index) return Image
Info
* @tc.desc : 1.create
imagesource
* 2.call
getImageInfo(index)
* 3.callbackcall ,return
imageinfo
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_047-3
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.gif
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -1995,20 +1868,24 @@ describe('Image', function () {
console
.
info
(
'
TC_047-3
'
);
expect
(
imageInfo
!==
null
).
assertTrue
();
done
();
}).
catch
(()
=>
{
console
.
log
(
'
TC_047-3 error:
'
+
error
);
expect
(
false
).
assertTrue
();
done
();
})
}
})
/*
*
* @tc.number: TC_047-4
* @tc.name : get Image Info(index) 返回Image
Info
* @tc.desc : 1.创建
imagesource
* 2.调用
getImageInfo(index=1)
* 3.callback imageinfo空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
})
/**
* @tc.number: TC_047-4
* @tc.name : get Image Info(index) return Image
Info
* @tc.desc : 1.create
imagesource
* 2.call
getImageInfo(index=1)
* 3.callback return imageinfo null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_047-4
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.gif
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -2021,20 +1898,24 @@ describe('Image', function () {
expect
(
imageInfo
==
null
).
assertTrue
();
console
.
info
(
'
TC_047-4 suc
'
);
done
();
}).
catch
(()
=>
{
console
.
log
(
'
TC_047-4 error:
'
+
error
);
expect
(
false
).
assertTrue
();
done
();
})
}
})
/*
*
* @tc.number : TC_047-5
* @tc.name : get Image Info(index) 返回Image
Info
* @tc.desc : 1.创建
imagesource
* 2.调用
getImageInfo(index=-1)
* 3.callback imageinfo空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_047-5
* @tc.name : get Image Info(index) return Image
Info
* @tc.desc : 1.create
imagesource
* 2.call
getImageInfo(index=-1)
* 3.callback return imageinfo null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_047-5
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.gif
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -2045,143 +1926,30 @@ describe('Image', function () {
imageSourceApi
.
getImageInfo
(
-
1
)
.
then
((
error
,
imageInfo
)
=>
{
expect
(
imageInfo
==
null
).
assertTrue
();
console
.
info
(
'
TC_047-5 suc
'
);
console
.
info
(
'
TC_047-5 success
'
);
done
();
}).
catch
(()
=>
{
console
.
log
(
'
TC_047-5 error:
'
+
error
);
expect
(
false
).
assertTrue
();
done
();
})
}
})
/* *
* @tc.number : TC_048
* @tc.name : get Image Property Int获取Exif信息
* @tc.desc : 1.创建imagesource
* 2.调用getImagePropertyInt
* 3.传入参数(index,key,value)
* 4.返回number类型属性值
* 5.callback返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
//it('TC_048', 0, async function (done) {
// const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg');
// if (imageSourceApi == null) {
// console.info('TC_048 create image source failed');
// expect(false).assertTrue();
// done();
// } else {
// imageSourceApi.getImagePropertyInt(0, "ImageHeight", -1)
// .then(height => {
// console.info('TC_048 height ' + height);
// expect(height !== -1).assertTrue();
// done();
// })
// }
// })
/* *
* @tc.number : TC_048-1 callback
* @tc.name : get Image Property Int获取Exif信息
* @tc.desc : 1.创建imagesource
* 2.调用getImagePropertyInt
* 3.传入参数(index,key,value)
* 4.返回number类型属性值
* 5.callback返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
// it('TC_048-1', 0, async function (done) {
// const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg');
// if (imageSourceApi == null) {
// console.info('TC_048 create image source failed');
// expect(false).assertTrue();
// done();
// } else {
// imageSourceApi.getImagePropertyInt(0, "ImageHeight", -1,height => {
// console.info('TC_048 height ' + height);
// expect(height !== -1).assertTrue();
// done();
// })
// }
// })
/* *
* @tc.number : TC_049
* @tc.name : get Image Property String获取Exif信息
* @tc.desc : 1.创建PixelMap
* 2.创建ImageInfo
* 3.传入索引、key和value
* 4.调用getImagePropertyString
* 5.判断获取的信息和输入的是否一致,返回string类型属性值
* 6.回调返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
// it('TC_049', 0, async function (done) {
// const imageSourceApi = image.createImageSource('/data/local/tmp/test_exif.jpg');
// if (imageSourceApi == null) {
// console.info('TC_049 create image source failed');
// expect(false).assertTrue();
// done();
// } else {
// imageSourceApi.getImagePropertyString(0, "GPSAltitude")
// .then(gps => {
// console.info('TC_049 GPSAltitude' + gps);
// expect(gps !== null && gps.length > 0).assertTrue();
// done();
// })
// }
// })
/* *
* @tc.number : TC_049-1 callback
* @tc.name : get Image Property String获取Exif信息
* @tc.desc : 1.创建PixelMap
* 2.创建ImageInfo
* 3.传入索引、key和value
* 4.调用getImagePropertyString
* 5.判断获取的信息和输入的是否一致,返回string类型属性值
* 6.回调返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
//it('TC_049-1', 0, async function (done) {
// const imageSourceApi = image.createImageSource('/data/local/tmp/test_exif.jpg');
// if (imageSourceApi == null) {
// console.info('TC_049 create image source failed');
// expect(false).assertTrue();
// done();
// } else {
// imageSourceApi.getImagePropertyString(0, "GPSAltitude",gps => {
// console.info('TC_049 GPSAltitude' + gps);
// expect(gps !== null && gps.length > 0).assertTrue();
// done();
// })
// }
//})
/* *
* @tc.number : TC_050
* @tc.name : create PixelMap对图片进行解码生成位图
* @tc.desc : 1.创建PixelMap
* 2.创建imagesource
* 3.确定index和DecodeOptions作为参数
* 4.调用createPixelMap
* 5.callback返回空
* 6.当传入参数为DecodeOptions时
* 7.callback返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_050
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create PixelMap
* 2.create imagesource
* 3.set index and DecodeOptions
* 4.call createPixelMap
* 5.callback return null
* 6.set DecodeOptions
* 7.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_050
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.jpg
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -2206,19 +1974,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_050-1
* @tc.name : create PixelMap对图片进行解码生成位图
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_050-1
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_050-1
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.jpg
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -2243,19 +2010,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_050-2
* @tc.name : create PixelMap对图片进行解码生成位图 jpg
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_050-2
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_050-2
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.jpg
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -2280,19 +2046,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_050-3
* @tc.name : create PixelMap对图片进行解码生成位图 jpg
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_050-3
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_050-3
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.jpg
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -2319,17 +2084,16 @@ describe('Image', function () {
/**
* @tc.number : TC_050-4
* @tc.name :
create PixelMap对图片进行解码生成位图 jpg
* @tc.desc : 1.
创建
imagesource
* 2.
设置解码区域
* 3.
调用
createPixelMap
* 4.
传入指定index,
options
* 5.
返回空
* @tc.size :
* @tc.type : Functional
* @tc.level :
FWK Layer
* @tc.name :
Decode the image to generate a bitmap
* @tc.desc : 1.
create
imagesource
* 2.
set decodingOptions
* 3.
call
createPixelMap
* 4.
set index,
options
* 5.
return null
* @tc.size :
MEDIUM
* @tc.type : Functional
* @tc.level :
Level 1
*/
it
(
'
TC_050-4
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.jpg
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -2356,17 +2120,16 @@ describe('Image', function () {
/**
* @tc.number : TC_050-5
* @tc.name :
create PixelMap对图片进行解码生成位图 jpg
* @tc.desc : 1.
创建
imagesource
* 2.
设置解码区域
* 3.
调用
createPixelMap
* 4.
传入指定index,
options
* 5.
返回空
* @tc.size :
* @tc.type : Functional
* @tc.level :
FWK Layer
* @tc.name :
Decode the image to generate a bitmap
* @tc.desc : 1.
create
imagesource
* 2.
set decodingOptions
* 3.
call
createPixelMap
* 4.
set index,
options
* 5.
return null
* @tc.size :
MEDIUM
* @tc.type : Functional
* @tc.level :
Level 1
*/
it
(
'
TC_050-5
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.jpg
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -2393,18 +2156,17 @@ describe('Image', function () {
/**
* @tc.number : TC_050-6
* @tc.name :
create PixelMap对图片进行解码生成位图 jpg
* @tc.desc : 1.
创建
imagesource
* 2.
设置解码区域
* 3.
调用
createPixelMap
* 4.
传入指定index,
options
* 5.
返回空
* @tc.size :
* @tc.type : Functional
* @tc.level :
FWK Layer
* @tc.name :
Decode the image to generate a bitmap
* @tc.desc : 1.
create
imagesource
* 2.
set decodingOptions
* 3.
call
createPixelMap
* 4.
set index,
options
* 5.
return null
* @tc.size :
MEDIUM
* @tc.type : Functional
* @tc.level :
Level 1
*/
it
(
'
TC_050-6
'
,
0
,
async
function
(
done
)
{
it
(
'
TC_050-6
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_050-6 create image source failed
'
);
...
...
@@ -2428,19 +2190,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_050-7
* @tc.name : create PixelMap对图片进行解码生成位图 jpg
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_050-7
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_050-7
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.jpg
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -2465,19 +2226,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_050-8
* @tc.name : create PixelMap对图片进行解码生成位图 jpg
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_050-8
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_050-8
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.jpg
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -2502,19 +2262,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_050-9
* @tc.name : create PixelMap对图片进行解码生成位图 jpg
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_050-9
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_050-9
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.jpg
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -2539,18 +2298,18 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_050-10
* @tc.name : create PixelMap对图片进行解码生成位图 jpg
* @tc.desc : 1.创建
imagesource
* 2.设置解码区域
* 3.调用
createPixelMap
* 4.传入指定index,
options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_050-10
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create
imagesource
* 2.set decodingOptions
* 3.call
createPixelMap
* 4.set index,
options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_050-10
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.jpg
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -2575,160 +2334,268 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_051
* @tc.name : create PixelMap对图片进行区域解码生成位图
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
// it('TC_051', 0, async function (done) {
// const imageSourceApi = image.createImageSource('/data/local/tmp/test.jpg');
// if (imageSourceApi == null) {
// console.info('TC_051 create image source failed');
// expect(false).assertTrue();
// done();
// } else {
// let decodingOptions = {
// sampleSize:1
// };
// imageSourceApi.createPixelMap(0, decodingOptions, pixelmap => {
// console.info('TC_051 createPixelMap ');
// expect(pixelmap !== null ).assertTrue();
// done();
// })
// }
// })
/* *
* @tc.number : TC_052
* @tc.name : create Incremental Source(data)进行渐进式解码
* @tc.desc : 1.创建 IncrementalSourceOptions
* 2.incrementalMode设为INCREMENTAL_DATA
* 3.调用createIncrementalSource(data)
* 4.返回imagesource
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
it
(
'
TC_052
'
,
0
,
async
function
(
done
)
{
const
data
=
new
ArrayBuffer
(
96
);
const
imageSourceApi
=
image
.
createIncrementalSource
(
data
);
console
.
info
(
'
TC_052 create Incremental Source
'
);
expect
(
imageSourceApi
!==
null
).
assertTrue
();
done
();
})
/* *
* @tc.number : TC_053
* @tc.name : update Data更新数据 promise
* @tc.desc : 1.创建imagesource
* 2.创建sourceStreamPtr_
* 3.调用UpdateData(data, isFinal, offset,length)
* 4.主动调用时返回布尔值
* 5.传入参数为(data, isFinal, offset,length)时
* 6.callback调用返回空
* 7.传入参数为(data, isFinal)时
* 8.callback返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
it
(
'
TC_053
'
,
0
,
async
function
(
done
)
{
const
dataBuffer
=
new
ArrayBuffer
(
96
);
const
imageSourceIncrementalSApi
=
image
.
createIncrementalSource
(
dataBuffer
);
let
array
=
[
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
];
imageSourceIncrementalSApi
.
updateData
(
array
,
false
,
0
,
10
).
then
(
data
=>
{
expect
(
data
).
assertTrue
();
console
.
info
(
'
TC_053 success
'
);
done
();
})
})
/* *
* @tc.number : TC_053-1
* @tc.name : update Data更新数据 callback
* @tc.desc : 1.创建imagesource
* 2.调用UpdateData(data, isFinal, offset,length)
* 3.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
it
(
'
TC_053-1
'
,
0
,
async
function
(
done
)
{
const
dataBuffer
=
new
ArrayBuffer
(
96
);
const
imageSourceIncrementalSApi
=
image
.
createIncrementalSource
(
dataBuffer
);
let
array
=
[
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
];
imageSourceIncrementalSApi
.
updateData
(
array
,
false
,
0
,
10
,(
error
,
data
)
=>
{
if
(
data
!==
undefined
){
expect
(
data
).
assertTrue
();
console
.
info
(
'
TC_053-1 success
'
);
done
();
}
else
{
console
.
info
(
'
TC_053-1 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
})
})
/* *
* @tc.number : TC_053-2
* @tc.name : update Data更新渐进式数据 callback
* @tc.desc : 1.创建imagesource
* 2.调用UpdateData(data, isFinal)
* 3.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
it
(
'
TC_053-2
'
,
0
,
async
function
(
done
)
{
const
dataBuffer
=
new
ArrayBuffer
(
96
);
const
imageSourceIncrementalSApi
=
image
.
createIncrementalSource
(
dataBuffer
);
let
array
=
[
1
,
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
];
imageSourceIncrementalSApi
.
updateData
(
array
,
false
,(
error
,
data
)
=>
{
if
(
data
!==
undefined
){
expect
(
data
).
assertTrue
();
console
.
info
(
'
TC_053-2 success
'
);
done
();
}
else
{
console
.
info
(
'
TC_053-2 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
})
})
/* *
* @tc.number : TC_062
* @tc.name : packing打包ImageSource对象
* @tc.desc : 1.创建ImageSource
* 2.调用packing
* 3.主动调用返回数组存储number类型值
* 4.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
it
(
'
TC_062
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.png
'
);
/**
* @tc.number : TC_050-11
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create PixelMap
* 2.create imagesource
* 3.set index and DecodeOptions
* 4.call createPixelMap
* 5.callback return null
* 6.set DecodeOptions
* 7.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_050-11
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_0
62
create image source failed
'
);
console
.
info
(
'
TC_0
50-11
create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
const
imagePackerApi
=
image
.
createImagePacker
();
imageSourceApi
.
createPixelMap
().
then
(
pixelmap
=>
{
console
.
info
(
'
TC_050-11 createPixelMap
'
);
expect
(
pixelmap
!==
null
).
assertTrue
();
done
();
}).
catch
(
error
=>
{
console
.
log
(
'
TC_050-11 error:
'
+
error
);
expect
().
assertFail
();
done
();
})
}
})
/**
* @tc.number : TC_050-12
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create PixelMap
* 2.create imagesource
* 3.set index and DecodeOptions
* 4.call createPixelMap
* 5.callback return null
* 6.set DecodeOptions
* 7.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_050-12
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_050-12 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
createPixelMap
(
pixelmap
=>
{
console
.
info
(
'
TC_050-12 createPixelMap
'
);
expect
(
pixelmap
!==
null
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_050-13
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create PixelMap
* 2.create imagesource
* 3.set index and DecodeOptions
* 4.call createPixelMap
* 5.callback return null
* 6.set DecodeOptions
* 7.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_050-13
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_050-13 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
decodingOptions
=
{
sampleSize
:
1
,
editable
:
true
,
desiredSize
:{
width
:
1
,
height
:
2
},
rotateDegrees
:
10
,
desiredPixelFormat
:
2
,
desiredRegion
:
{
size
:
{
height
:
1
,
width
:
2
},
x
:
400
,
y
:
400
},
index
:
0
};
imageSourceApi
.
createPixelMap
(
decodingOptions
,
pixelmap
=>
{
console
.
info
(
'
TC_050-13 createPixelMap
'
);
expect
(
pixelmap
==
null
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_050-14
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create PixelMap
* 2.create imagesource
* 3.set index and DecodeOptions
* 4.call createPixelMap
* 5.callback return null
* 6.set DecodeOptions
* 7.callback return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_050-14
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.jpg
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_050-14 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
decodingOptions
=
{
sampleSize
:
1
,
editable
:
true
,
desiredSize
:{
width
:
1
,
height
:
2
},
rotateDegrees
:
500
,
desiredPixelFormat
:
2
,
desiredRegion
:
{
size
:
{
height
:
1
,
width
:
2
},
x
:
400
,
y
:
400
},
index
:
0
};
imageSourceApi
.
createPixelMap
(
decodingOptions
,
pixelmap
=>
{
console
.
info
(
'
TC_050-14 createPixelMap
'
);
expect
(
pixelmap
==
null
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_053
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.update data
* 3.create pixelmap
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_053
'
,
0
,
async
function
(
done
)
{
try
{
let
testimagebuffer
=
testPng
;
console
.
info
(
'
TC_053 0003
'
+
testimagebuffer
.
length
);
let
bufferSize
=
testimagebuffer
.
length
;
let
offset
=
0
;
const
incSouce
=
image
.
createIncrementalSource
(
new
ArrayBuffer
(
1
));
let
isFinished
=
false
;
while
(
offset
<
testimagebuffer
.
length
)
{
console
.
info
(
'
TC_053 0006
'
+
testimagebuffer
.
length
);
var
oneStep
=
testimagebuffer
.
slice
(
offset
,
offset
+
bufferSize
);
console
.
info
(
'
TC_053 0007
'
+
oneStep
.
length
);
if
(
oneStep
.
length
<
bufferSize
)
{
isFinished
=
true
;
}
ret
=
await
incSouce
.
updateData
(
oneStep
,
isFinished
,
0
,
oneStep
.
length
);
if
(
!
ret
)
{
console
.
info
(
'
TC_053 updateData failed
'
);
expect
(
ret
).
assertTrue
();
break
;
}
offset
=
offset
+
oneStep
.
length
;
console
.
info
(
'
TC_053 0011
'
+
offset
);
}
if
(
ret
)
{
console
.
info
(
'
TC_053 updateData success
'
);
let
decodingOptions
=
{
sampleSize
:
1
};
incSouce
.
createPixelMap
(
decodingOptions
,
(
err
,
pixelmap
)
=>
{
console
.
info
(
'
TC_053 0014
'
+
pixelmap
);
expect
(
pixelmap
!==
undefined
).
assertTrue
();
done
();
})
}
else
{
done
();
}
done
();
}
catch
(
error
)
{
console
.
info
(
'
TC_053 updateData failed
'
+
error
);
}
})
/**
* @tc.number : TC_053-1
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.update data
* 3.create pixelmap
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_053-1
'
,
0
,
async
function
(
done
)
{
try
{
let
testimagebuffer
=
testJpg
;
console
.
info
(
'
TC_053-1 0003
'
+
testimagebuffer
.
length
);
let
bufferSize
=
testimagebuffer
.
length
;
let
offset
=
0
;
const
incSouce
=
image
.
createIncrementalSource
(
new
ArrayBuffer
(
1
));
let
isFinished
=
false
;
while
(
offset
<
testimagebuffer
.
length
)
{
console
.
info
(
'
TC_053-1 0006
'
+
testimagebuffer
.
length
);
var
oneStep
=
testimagebuffer
.
slice
(
offset
,
offset
+
bufferSize
);
console
.
info
(
'
TC_053-1 0007
'
+
oneStep
.
length
);
if
(
oneStep
.
length
<
bufferSize
)
{
isFinished
=
true
;
}
ret
=
await
incSouce
.
updateData
(
oneStep
,
isFinished
,
0
,
oneStep
.
length
);
if
(
!
ret
)
{
console
.
info
(
'
TC_053-1 updateData failed
'
);
expect
(
ret
).
assertTrue
();
break
;
}
offset
=
offset
+
oneStep
.
length
;
console
.
info
(
'
TC_053-1 0011
'
+
offset
);
}
if
(
ret
)
{
console
.
info
(
'
TC_053-1 updateData success
'
);
let
decodingOptions
=
{
sampleSize
:
1
};
incSouce
.
createPixelMap
(
decodingOptions
,
(
err
,
pixelmap
)
=>
{
expect
(
pixelmap
!==
undefined
).
assertTrue
();
done
();
})
}
else
{
done
();
}
done
();
}
catch
(
error
)
{
console
.
info
(
'
TC_053-1 updateData failed
'
+
error
);
}
})
/**
* @tc.number : TC_062
* @tc.name : packing
* @tc.desc : 1.create ImageSource
* 2.call packing
* 3.return array
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_062
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.png
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_062 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
const
imagePackerApi
=
image
.
createImagePacker
();
if
(
imagePackerApi
==
null
)
{
console
.
info
(
'
TC_062 create image packer failed
'
);
expect
(
false
).
assertTrue
();
...
...
@@ -2740,24 +2607,26 @@ describe('Image', function () {
console
.
info
(
'
TC_062 finished
'
);
expect
(
data
!==
null
).
assertTrue
();
done
();
})
}).
catch
(()
=>
{
console
.
log
(
'
TC_062 error:
'
+
error
);
expect
(
false
).
assertTrue
();
done
();
})
}
}
})
/* *
* @tc.number : TC_062-1
* @tc.name : packing打包ImageSource对象(callback)
* @tc.desc : 1.创建ImageSource
* 2.调用packing
* 3.主动调用返回数组存储number类型值
* 4.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_062-1
* @tc.name : packing
* @tc.desc : 1.create ImageSource
* 2.call packing
* 3.return array
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_062-1
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.png
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -2781,18 +2650,17 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_062-2
* @tc.name : packing打包ImageSource对象
* @tc.desc : 1.创建ImageSource
* 2.调用packing
* 3.主动调用返回数组存储number类型值
* 4.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_062-2
* @tc.name : packing ImageSource
* @tc.desc : 1.create ImageSource
* 2.call packing
* 3.return array
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_062-2
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.png
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -2817,18 +2685,17 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_062-3
* @tc.name : packing打包ImageSource对象
* @tc.desc : 1.创建ImageSource
* 2.调用packing
* 3.主动调用返回数组存储number类型值
* 4.callback调用返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_062-3
* @tc.name : packing ImageSource
* @tc.desc : 1.create ImageSource
* 2.call packing
* 3.call return array
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_062-3
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.png
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -2853,17 +2720,47 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_063
* @tc.name : release释放ImagePacker实例
* @tc.desc : 1.创建ImagePacker
* 2.调用release
* 3.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_062-4
* @tc.name : packing
* @tc.desc : 1.create ImageSource
* 2.call packing
* 3.return array
* 4.callbackcall return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_062-4
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.png
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_062-4 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
const
imagePackerApi
=
image
.
createImagePacker
();
if
(
imagePackerApi
==
null
)
{
console
.
info
(
'
TC_062-4 create image packer failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
console
.
info
(
'
TC_062-4 create image packer success
'
);
expect
(
true
).
assertTrue
();
done
();
}
}
})
/**
* @tc.number : TC_063
* @tc.name : release ImagePacker
* @tc.desc : 1.create ImagePacker
* 2.call release
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_063
'
,
0
,
async
function
(
done
)
{
const
imagePackerApi
=
image
.
createImagePacker
();
if
(
imagePackerApi
==
null
)
{
...
...
@@ -2871,24 +2768,28 @@ describe('Image', function () {
expect
(
false
).
assertTrue
();
done
();
}
else
{
imagePackerApi
.
release
();
console
.
info
(
'
TC_063 release
'
);
expect
(
true
).
assertTrue
();
done
();
imagePackerApi
.
release
().
then
(()
=>
{
console
.
info
(
'
TC_063 release
'
);
expect
(
true
).
assertTrue
();
done
();
}).
catch
(()
=>
{
console
.
log
(
'
TC_063 error:
'
+
error
);
expect
(
false
).
assertTrue
();
done
();
})
}
})
/* *
* @tc.number : TC_063-1
* @tc.name : release释放ImagePacker实例 callback
* @tc.desc : 1.创建ImagePacker
* 2.调用release
* 3.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_063-1
* @tc.name : release ImagePacker
* @tc.desc : 1.create ImagePacker
* 2.call release
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_063-1
'
,
0
,
async
function
(
done
)
{
const
imagePackerApi
=
image
.
createImagePacker
();
if
(
imagePackerApi
==
null
)
{
...
...
@@ -2904,18 +2805,16 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_064
* @tc.name : release()
* @tc.desc : 1.创建ImageSource
* 2.创建SourceStream
* 3.调用release()
* 4.主动调用时返回空
* 5.callback时返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_064
* @tc.name : release()
* @tc.desc : 1.create ImageSource
* 2.call release()
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_064
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.png
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -2923,25 +2822,28 @@ describe('Image', function () {
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
release
();
console
.
info
(
'
TC_064 release
'
);
expect
(
true
).
assertTrue
();
done
();
imageSourceApi
.
release
().
then
(()
=>
{
console
.
info
(
'
TC_064 release
'
);
expect
(
true
).
assertTrue
();
done
();
}).
catch
(
error
=>
{
console
.
log
(
'
TC_064 error:
'
+
error
);
expect
().
assertFail
();
done
();
})
}
})
/* *
* @tc.number : TC_064-1 callback
* @tc.name : release()
* @tc.desc : 1.创建ImageSource
* 2.创建SourceStream
* 3.调用release()
* 4.主动调用时返回空
* 5.callback时返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_064-1
* @tc.name : release()
* @tc.desc : 1.create ImageSource
* 2.call release()
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_064-1
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.png
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -2957,44 +2859,45 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_065
* @tc.name : release() bmp promise
* @tc.desc : 1.创建ImageSource
* 2.创建SourceStream
* 3.调用release()
* 4.主动调用时返回空
* 5.callback时返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_065
* @tc.name : release()
* @tc.desc : 1.create ImageSource
* 2.call release()
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_065
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.bmp
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_065 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
release
();
console
.
info
(
'
TC_065 release
'
);
expect
(
true
).
assertTrue
();
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_065 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
release
().
then
(()
=>
{
console
.
info
(
'
TC_065 release
'
);
expect
(
true
).
assertTrue
();
done
();
}).
catch
(
error
=>
{
console
.
log
(
'
TC_065 error:
'
+
error
);
expect
().
assertFail
();
done
();
})
}
})
/* *
* @tc.number : TC_065-1 bmp callback
* @tc.name : release()
* @tc.desc : 1.创建ImageSource
* 2.创建SourceStream
* 3.调用release()
* 4.主动调用时返回空
* 5.callback时返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_065-1
* @tc.name : release()
* @tc.desc : 1.create ImageSource
* 2.create SourceStream
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_065-1
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.bmp
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -3010,45 +2913,45 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_066
* @tc.name : release() gif promise
* @tc.desc : 1.创建ImageSource
* 2.创建SourceStream
* 3.调用release()
* 4.主动调用时返回空
* 5.callback时返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_066
* @tc.name : release()
* @tc.desc : 1.create ImageSource
* 2.call release()
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_066
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.gif
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_066 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
release
();
console
.
info
(
'
TC_066 release
'
);
expect
(
true
).
assertTrue
();
console
.
info
(
'
TC_066 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
release
().
then
(()
=>
{
console
.
info
(
'
TC_065 release
'
);
expect
(
true
).
assertTrue
();
done
();
}).
catch
(
error
=>
{
console
.
log
(
'
TC_065 error:
'
+
error
);
expect
().
assertFail
();
done
();
})
}
})
/* *
* @tc.number : TC_066-1 gif callback
* @tc.name : release()
* @tc.desc : 1.创建ImageSource
* 2.创建SourceStream
* 3.调用release()
* 4.主动调用时返回空
* 5.callback时返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_066-1
* @tc.name : release()
* @tc.desc : 1.create ImageSource
* 2.call release()
* 3.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_066-1
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.gif
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -3060,23 +2963,26 @@ describe('Image', function () {
console
.
info
(
'
TC_066-1 Success
'
);
expect
(
true
).
assertTrue
();
done
();
}).
catch
(()
=>
{
console
.
info
(
'
TC_066-1 release
'
);
expect
(
false
).
assertTrue
();
done
();
})
}
})
/* *
* @tc.number : TC_067
* @tc.name : create PixelMap对图片进行解码生成位图 gif
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_067
* @tc.name : Decode the image to generate a bitmap gif
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_067
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.gif
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -3101,19 +3007,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_067-1
* @tc.name : create PixelMap对图片进行解码生成位图
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_067-1
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_067-1
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.gif
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -3138,19 +3043,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_067-2
* @tc.name : create PixelMap对图片进行解码生成位图 gif
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_067-2
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_067-2
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.gif
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -3175,19 +3079,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_067-3
* @tc.name : create PixelMap对图片进行解码生成位图
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_067-3
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_067-3
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.gif
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -3212,18 +3115,18 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_067-4
* @tc.name : create PixelMap对图片进行解码生成位图
* @tc.desc : 1.创建
imagesource
* 2.设置解码区域
* 3.调用
createPixelMap
* 4.传入指定index,
options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_067-4
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create
imagesource
* 2.set decodingOptions
* 3.call
createPixelMap
* 4.set index,
options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_067-4
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.gif
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -3248,18 +3151,18 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_067-5
* @tc.name : create PixelMap对图片进行解码生成位图
* @tc.desc : 1.创建
imagesource
* 2.设置解码区域
* 3.调用
createPixelMap
* 4.传入指定index,
options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_067-5
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create
imagesource
* 2.set decodingOptions
* 3.call
createPixelMap
* 4.set index,
options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_067-5
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.gif
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -3284,18 +3187,18 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_067-6
* @tc.name : create PixelMap对图片进行解码生成位图
* @tc.desc : 1.创建
imagesource
* 2.设置解码区域
* 3.调用
createPixelMap
* 4.传入指定index,
options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_067-6
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create
imagesource
* 2.set decodingOptions
* 3.call
createPixelMap
* 4.set index,
options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_067-6
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.gif
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -3320,18 +3223,18 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_067-7
* @tc.name : create PixelMap对图片进行解码生成位图
* @tc.desc : 1.创建
imagesource
* 2.设置解码区域
* 3.调用
createPixelMap
* 4.传入指定index,
options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_067-7
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create
imagesource
* 2.set decodingOptions
* 3.call
createPixelMap
* 4.set index,
options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_067-7
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.gif
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -3356,18 +3259,18 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_067-8
* @tc.name : create PixelMap对图片进行解码生成位图
* @tc.desc : 1.创建
imagesource
* 2.设置解码区域
* 3.调用
createPixelMap
* 4.传入指定index,
options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_067-8
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create
imagesource
* 2.set decodingOptions
* 3.call
createPixelMap
* 4.set index,
options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_067-8
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.gif
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -3392,18 +3295,18 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_067-9
* @tc.name : create PixelMap对图片进行解码生成位图
* @tc.desc : 1.创建
imagesource
* 2.设置解码区域
* 3.调用
createPixelMap
* 4.传入指定index,
options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_067-9
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create
imagesource
* 2.set decodingOptions
* 3.call
createPixelMap
* 4.set index,
options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_067-9
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.gif
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -3428,18 +3331,18 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_067-10
* @tc.name : create PixelMap对图片进行解码生成位图
* @tc.desc : 1.创建
imagesource
* 2.设置解码区域
* 3.调用
createPixelMap
* 4.传入指定index,
options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_067-10
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create
imagesource
* 2.set decodingOptions
* 3.call
createPixelMap
* 4.set index,
options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_067-10
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.gif
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -3462,21 +3365,150 @@ describe('Image', function () {
done
();
})
}
})
/* *
* @tc.number : TC_068
* @tc.name : create PixelMap对图片进行解码生成位图 bmp
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
})
/**
* @tc.number : TC_067-11
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_067-11
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.gif
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_067-11 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
createPixelMap
().
then
(
pixelmap
=>
{
console
.
info
(
'
TC_067-11 createPixelMap
'
);
expect
(
pixelmap
!==
null
).
assertTrue
();
done
();
}).
catch
(
error
=>
{
console
.
log
(
'
TC_067-11 error:
'
+
error
);
expect
().
assertFail
();
done
();
})
}
})
/**
* @tc.number : TC_067-12
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_067-12
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.gif
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_067-12 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
createPixelMap
(
pixelmap
=>
{
console
.
info
(
'
TC_067-12 createPixelMap
'
);
expect
(
pixelmap
!==
null
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_067-13
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_067-13
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.gif
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_067-13 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
decodingOptions
=
{
sampleSize
:
1
,
editable
:
true
,
desiredSize
:{
width
:
1
,
height
:
2
},
rotateDegrees
:
10
,
desiredPixelFormat
:
2
,
desiredRegion
:
{
size
:
{
height
:
1
,
width
:
2
},
x
:
400
,
y
:
400
},
index
:
0
};
imageSourceApi
.
createPixelMap
(
decodingOptions
,
pixelmap
=>
{
console
.
info
(
'
TC_067-13 createPixelMap
'
);
expect
(
pixelmap
==
null
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_067-14
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_067-14
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.gif
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_067-14 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
decodingOptions
=
{
sampleSize
:
1
,
editable
:
true
,
desiredSize
:{
width
:
1
,
height
:
2
},
rotateDegrees
:
500
,
desiredPixelFormat
:
2
,
desiredRegion
:
{
size
:
{
height
:
1
,
width
:
2
},
x
:
400
,
y
:
400
},
index
:
0
};
imageSourceApi
.
createPixelMap
(
decodingOptions
,
pixelmap
=>
{
console
.
info
(
'
TC_067-14 createPixelMap
'
);
expect
(
pixelmap
==
null
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_068
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_068
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.bmp
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -3501,19 +3533,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_068-1
* @tc.name : create PixelMap对图片进行解码生成位图
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_068-1
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_068-1
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.bmp
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -3538,18 +3569,18 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_068-2
* @tc.name : create PixelMap对图片进行解码生成位图 bm
p
* @tc.desc : 1.创建
imagesource
* 2.设置解码区域
* 3.调用
createPixelMap
* 4.传入指定index,
options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_068-2
* @tc.name : Decode the image to generate a bitma
p
* @tc.desc : 1.create
imagesource
* 2.set decodingOptions
* 3.call
createPixelMap
* 4.set index,
options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_068-2
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.bmp
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -3574,18 +3605,18 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_068-3
* @tc.name : create PixelMap对图片进行解码生成位图 bm
p
* @tc.desc : 1.创建
imagesource
* 2.设置解码区域
* 3.调用
createPixelMap
* 4.传入指定index,
options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_068-3
* @tc.name : Decode the image to generate a bitma
p
* @tc.desc : 1.create
imagesource
* 2.set decodingOptions
* 3.call
createPixelMap
* 4.set index,
options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_068-3
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.bmp
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -3610,18 +3641,18 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_068-4
* @tc.name : create PixelMap对图片进行解码生成位图 bm
p
* @tc.desc : 1.创建
imagesource
* 2.设置解码区域
* 3.调用
createPixelMap
* 4.传入指定index,
options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_068-4
* @tc.name : Decode the image to generate a bitma
p
* @tc.desc : 1.create
imagesource
* 2.set decodingOptions
* 3.call
createPixelMap
* 4.set index,
options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_068-4
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.bmp
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -3646,18 +3677,18 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_068-5
* @tc.name : create PixelMap对图片进行解码生成位图 bm
p
* @tc.desc : 1.创建
imagesource
* 2.设置解码区域
* 3.调用
createPixelMap
* 4.传入指定index,
options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_068-5
* @tc.name : Decode the image to generate a bitma
p
* @tc.desc : 1.create
imagesource
* 2.set decodingOptions
* 3.call
createPixelMap
* 4.set index,
options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_068-5
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.bmp
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -3682,19 +3713,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_068-6
* @tc.name : create PixelMap对图片进行解码生成位图 bmp
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_068-6
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_068-6
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.bmp
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -3719,18 +3749,18 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_068-7
* @tc.name : create PixelMap对图片进行解码生成位图 bm
p
* @tc.desc : 1.创建
imagesource
* 2.设置解码区域
* 3.调用
createPixelMap
* 4.传入指定index,
options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_068-7
* @tc.name : Decode the image to generate a bitma
p
* @tc.desc : 1.create
imagesource
* 2.set decodingOptions
* 3.call
createPixelMap
* 4.set index,
options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_068-7
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.gif
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -3755,18 +3785,18 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_068-8
* @tc.name : create PixelMap对图片进行解码生成位图 bm
p
* @tc.desc : 1.创建
imagesource
* 2.设置解码区域
* 3.调用
createPixelMap
* 4.传入指定index,
options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_068-8
* @tc.name : Decode the image to generate a bitma
p
* @tc.desc : 1.create
imagesource
* 2.set decodingOptions
* 3.call
createPixelMap
* 4.set index,
options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_068-8
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.bmp
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -3791,18 +3821,18 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_068-9
* @tc.name : create PixelMap对图片进行解码生成位图 bm
p
* @tc.desc : 1.创建
imagesource
* 2.设置解码区域
* 3.调用
createPixelMap
* 4.传入指定index,
options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_068-9
* @tc.name : Decode the image to generate a bitma
p
* @tc.desc : 1.create
imagesource
* 2.set decodingOptions
* 3.call
createPixelMap
* 4.set index,
options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_068-9
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.bmp
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -3827,18 +3857,18 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_068-10
* @tc.name : create PixelMap对图片进行解码生成位图 bm
p
* @tc.desc : 1.创建
imagesource
* 2.设置解码区域
* 3.调用
createPixelMap
* 4.传入指定index,
options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_068-10
* @tc.name : Decode the image to generate a bitma
p
* @tc.desc : 1.create
imagesource
* 2.set decodingOptions
* 3.call
createPixelMap
* 4.set index,
options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_068-10
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.bmp
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -3863,19 +3893,148 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_163
* @tc.name : create PixelMap对图片进行解码生成位图 png
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_068-11
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_068-11
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.bmp
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_068-11 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
createPixelMap
().
then
(
pixelmap
=>
{
console
.
info
(
'
TC_068-11 createPixelMap
'
);
expect
(
pixelmap
!==
null
).
assertTrue
();
done
();
}).
catch
(
error
=>
{
console
.
log
(
'
TC_068-11 error:
'
+
error
);
expect
().
assertFail
();
done
();
})
}
})
/**
* @tc.number : TC_068-12
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_068-12
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.bmp
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_068-12 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
createPixelMap
(
pixelmap
=>
{
console
.
info
(
'
TC_068-12 createPixelMap
'
);
expect
(
pixelmap
!==
null
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_068-13
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_068-13
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.bmp
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_068-13 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
decodingOptions
=
{
sampleSize
:
1
,
editable
:
true
,
desiredSize
:{
width
:
1
,
height
:
2
},
rotateDegrees
:
10
,
desiredPixelFormat
:
2
,
desiredRegion
:
{
size
:
{
height
:
1
,
width
:
2
},
x
:
440
,
y
:
440
},
index
:
0
};
imageSourceApi
.
createPixelMap
(
decodingOptions
,
pixelmap
=>
{
console
.
info
(
'
TC_068-13 createPixelMap
'
);
expect
(
pixelmap
==
null
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_068-14
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_068-14
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.bmp
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_068-14 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
decodingOptions
=
{
sampleSize
:
1
,
editable
:
true
,
desiredSize
:{
width
:
1
,
height
:
2
},
rotateDegrees
:
550
,
desiredPixelFormat
:
2
,
desiredRegion
:
{
size
:
{
height
:
1
,
width
:
2
},
x
:
440
,
y
:
440
},
index
:
0
};
imageSourceApi
.
createPixelMap
(
decodingOptions
,
pixelmap
=>
{
console
.
info
(
'
TC_068-14 createPixelMap
'
);
expect
(
pixelmap
==
null
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_163
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_163
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.png
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -3900,19 +4059,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_163-1
* @tc.name : create PixelMap对图片进行解码生成位图 bmp
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_163-1
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_163-1
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.png
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -3937,19 +4095,18 @@ describe('Image', function () {
}
})
/* *
* @tc.number : TC_163-2
* @tc.name : create PixelMap对图片进行解码生成位图 png
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入index=-1,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_163-2
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index=-1,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_163-2
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.png
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -3974,18 +4131,18 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_163-3
* @tc.name : create PixelMap对图片进行解码生成位图 png
* @tc.desc : 1.创建
imagesource
* 2.设置解码区域
* 3.调用
createPixelMap
* 4.传入index=-1,
options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_163-3
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create
imagesource
* 2.set decodingOptions
* 3.call
createPixelMap
* 4.set index=-1,
options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_163-3
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.png
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -4010,18 +4167,18 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_163-4
* @tc.name : create PixelMap对图片进行解码生成位图 png
* @tc.desc : 1.创建
imagesource
* 2.设置解码区域
* 3.调用
createPixelMap
* 4.传入index=-1,
options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_163-4
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create
imagesource
* 2.set decodingOptions
* 3.call
createPixelMap
* 4.set index=-1,
options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_163-4
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.png
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -4046,18 +4203,18 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_163-5
* @tc.name : create PixelMap对图片进行解码生成位图 png
* @tc.desc : 1.创建
imagesource
* 2.设置解码区域
* 3.调用
createPixelMap
* 4.传入index=-1,
options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_163-5
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create
imagesource
* 2.set decodingOptions
* 3.call
createPixelMap
* 4.set index=-1,
options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_163-5
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.png
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -4082,18 +4239,18 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_163-6
* @tc.name : create PixelMap对图片进行解码生成位图 png
* @tc.desc : 1.创建
imagesource
* 2.设置解码区域
* 3.调用
createPixelMap
* 4.传入index=-1,
options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_163-6
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create
imagesource
* 2.set decodingOptions
* 3.call
createPixelMap
* 4.set index=-1,
options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_163-6
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.png
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -4118,18 +4275,18 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_163-7
* @tc.name : create PixelMap对图片进行解码生成位图 png
* @tc.desc : 1.创建
imagesource
* 2.设置解码区域
* 3.调用
createPixelMap
* 4.传入index=-1,
options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_163-7
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create
imagesource
* 2.set decodingOptions
* 3.call
createPixelMap
* 4.set index=-1,
options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_163-7
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.png
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -4154,18 +4311,18 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_163-8
* @tc.name : create PixelMap对图片进行解码生成位图 png
* @tc.desc : 1.创建
imagesource
* 2.设置解码区域
* 3.调用
createPixelMap
* 4.传入index=-1,
options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_163-8
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create
imagesource
* 2.set decodingOptions
* 3.call
createPixelMap
* 4.set index=-1,
options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_163-8
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.png
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -4190,18 +4347,18 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_163-9
* @tc.name : create PixelMap对图片进行解码生成位图 png
* @tc.desc : 1.创建
imagesource
* 2.设置解码区域
* 3.调用
createPixelMap
* 4.传入index=-1,
options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_163-9
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create
imagesource
* 2.set decodingOptions
* 3.call
createPixelMap
* 4.set index=-1,
options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_163-9
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.png
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -4226,18 +4383,18 @@ describe('Image', function () {
}
})
/*
*
* @tc.number : TC_163-10
* @tc.name : create PixelMap对图片进行解码生成位图 png
* @tc.desc : 1.创建
imagesource
* 2.设置解码区域
* 3.调用
createPixelMap
* 4.传入index=-1,
options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_163-10
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create
imagesource
* 2.set decodingOptions
* 3.call
createPixelMap
* 4.set index=-1,
options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_163-10
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.png
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -4260,18 +4417,147 @@ describe('Image', function () {
done
();
})
}
})
/* *
* @tc.number : TC_164
* @tc.name : supportedFormats
* @tc.desc : 1.创建imagesource
* 2.调用supportedFormats
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
})
/**
* @tc.number : TC_163-11
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_163-11
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.png
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_163-11 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
createPixelMap
().
then
(
pixelmap
=>
{
console
.
info
(
'
TC_163-11 createPixelMap
'
);
expect
(
pixelmap
!==
null
).
assertTrue
();
done
();
}).
catch
(
error
=>
{
console
.
log
(
'
TC_163-11 error:
'
+
error
);
expect
().
assertFail
();
done
();
})
}
})
/**
* @tc.number : TC_163-12
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_163-12
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.png
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_163-12 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
imageSourceApi
.
createPixelMap
(
pixelmap
=>
{
console
.
info
(
'
TC_163-12 createPixelMap
'
);
expect
(
pixelmap
!==
null
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_163-13
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_163-13
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.png
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_163-13 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
decodingOptions
=
{
sampleSize
:
1
,
editable
:
true
,
desiredSize
:{
width
:
1
,
height
:
2
},
rotateDegrees
:
10
,
desiredPixelFormat
:
2
,
desiredRegion
:
{
size
:
{
height
:
1
,
width
:
2
},
x
:
500
,
y
:
500
},
index
:
0
};
imageSourceApi
.
createPixelMap
(
decodingOptions
,
pixelmap
=>
{
console
.
info
(
'
TC_163-13 createPixelMap
'
);
expect
(
pixelmap
==
null
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_163-14
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_163-14
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.png
'
);
if
(
imageSourceApi
==
null
)
{
console
.
info
(
'
TC_163-14 create image source failed
'
);
expect
(
false
).
assertTrue
();
done
();
}
else
{
let
decodingOptions
=
{
sampleSize
:
1
,
editable
:
true
,
desiredSize
:{
width
:
1
,
height
:
2
},
rotateDegrees
:
400
,
desiredPixelFormat
:
2
,
desiredRegion
:
{
size
:
{
height
:
1
,
width
:
2
},
x
:
500
,
y
:
500
},
index
:
0
};
imageSourceApi
.
createPixelMap
(
decodingOptions
,
pixelmap
=>
{
console
.
info
(
'
TC_163-14 createPixelMap
'
);
expect
(
pixelmap
==
null
).
assertTrue
();
done
();
})
}
})
/**
* @tc.number : TC_164
* @tc.name : supportedFormats
* @tc.desc : 1.create imagesource
* 2.call supportedFormats
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it
(
'
TC_164
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.jpg
'
);
if
(
imageSourceApi
==
null
)
{
...
...
@@ -4279,23 +4565,22 @@ describe('Image', function () {
expect
(
false
).
assertTrue
();
done
();
}
else
{
expect
(
imageSourceApi
.
supportedFormats
!=
=
null
).
assertTrue
();
expect
(
imageSourceApi
.
supportedFormats
!=
null
).
assertTrue
();
console
.
info
(
imageSourceApi
.
supportedFormats
);
console
.
info
(
'
TC_164 suc
'
);
console
.
info
(
'
TC_164 suc
cess
'
);
done
();
}
})
/* *
* @tc.number : TC_166
* @tc.name : supportedFormats
* @tc.desc : 1.创建imagepacker
* 2.调用supportedFormats
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_166
* @tc.name : supportedFormats
* @tc.desc : 1.create imagepacker
* 2.call supportedFormats
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 0
*/
it
(
'
TC_166
'
,
0
,
async
function
(
done
)
{
const
imagePackerApi
=
image
.
createImagePacker
();
if
(
imagePackerApi
==
null
)
{
...
...
@@ -4303,26 +4588,25 @@ describe('Image', function () {
expect
(
false
).
assertTrue
();
done
();
}
else
{
expect
(
imagePackerApi
.
supportedFormats
!=
=
null
).
assertTrue
();
expect
(
imagePackerApi
.
supportedFormats
!=
null
).
assertTrue
();
console
.
info
(
imagePackerApi
.
supportedFormats
);
console
.
info
(
'
TC_166 suc
'
);
console
.
info
(
'
TC_166 suc
cess
'
);
done
();
}
})
/* *
* @tc.number : TC_167
* @tc.name : create PixelMap对图片进行解码生成位图
* @tc.desc : 1.创建imagesource
* 2.设置解码区域
* 3.调用createPixelMap
* 4.传入指定index,options
* 5.返回空
* @tc.size :
* @tc.type : Functional
* @tc.level : FWK Layer
*/
/**
* @tc.number : TC_167
* @tc.name : Decode the image to generate a bitmap
* @tc.desc : 1.create imagesource
* 2.set decodingOptions
* 3.call createPixelMap
* 4.set index,options
* 5.return null
* @tc.size : MEDIUM
* @tc.type : Functional
* @tc.level : Level 1
*/
it
(
'
TC_167
'
,
0
,
async
function
(
done
)
{
const
imageSourceApi
=
image
.
createImageSource
(
'
/data/local/tmp/test.arw
'
);
let
decodingOptions
=
{
...
...
@@ -4330,7 +4614,7 @@ describe('Image', function () {
editable
:
true
,
desiredSize
:{
width
:
1
,
height
:
2
},
rotateDegrees
:
10
,
desiredPixelFormat
:
4
,
desiredPixelFormat
:
3
,
desiredRegion
:
{
size
:
{
height
:
1
,
width
:
2
},
x
:
0
,
y
:
0
},
index
:
0
};
...
...
@@ -4339,5 +4623,5 @@ describe('Image', function () {
expect
(
pixelmap
==
null
).
assertTrue
();
done
();
})
})
})
})
\ No newline at end of file
multimedia/image/image_js_standard/src/main/js/test/testImg.js
0 → 100644
浏览文件 @
683018fc
/*
* Copyright (C) 2022 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
let
testPng
=
new
Uint8Array
([
137
,
80
,
78
,
71
,
13
,
10
,
26
,
10
,
0
,
0
,
0
,
13
,
73
,
72
,
68
,
82
,
0
,
0
,
0
,
100
,
0
,
0
,
0
,
100
,
8
,
6
,
0
,
0
,
0
,
112
,
226
,
149
,
84
,
0
,
0
,
32
,
0
,
73
,
68
,
65
,
84
,
120
,
1
,
212
,
193
,
123
,
176
,
231
,
247
,
93
,
223
,
247
,
231
,
251
,
253
,
249
,
254
,
126
,
231
,
156
,
61
,
123
,
191
,
105
,
37
,
173
,
180
,
186
,
95
,
173
,
187
,
228
,
43
,
166
,
182
,
133
,
109
,
44
,
108
,
160
,
6
,
154
,
105
,
157
,
116
,
104
,
50
,
64
,
72
,
155
,
41
,
195
,
64
,
167
,
13
,
80
,
218
,
73
,
166
,
76
,
254
,
104
,
254
,
104
,
167
,
51
,
253
,
39
,
51
,
45
,
52
,
77
,
161
,
36
,
29
,
19
,
2
,
24
,
98
,
140
,
28
,
91
,
24
,
91
,
150
,
44
,
164
,
213
,
93
,
187
,
146
,
86
,
123
,
95
,
237
,
253
,
156
,
243
,
251
,
253
,
190
,
223
,
247
,
235
,
213
,
253
,
237
,
34
,
220
,
106
,
86
,
182
,
105
,
160
,
99
,
30
,
143
,
224
,
175
,
177
,
31
,
251
,
145
,
31
,
102
,
101
,
109
,
133
,
133
,
241
,
194
,
174
,
42
,
253
,
224
,
108
,
54
,
123
,
100
,
24
,
250
,
235
,
135
,
161
,
178
,
239
,
251
,
67
,
17
,
241
,
149
,
42
,
253
,
238
,
100
,
50
,
121
,
178
,
117
,
76
,
207
,
31
,
221
,
194
,
243
,
7
,
30
,
229
,
187
,
89
,
240
,
215
,
212
,
15
,
253
,
208
,
167
,
24
,
47
,
108
,
98
,
186
,
118
,
242
,
253
,
165
,
250
,
135
,
150
,
62
,
176
,
178
,
178
,
186
,
208
,
247
,
61
,
146
,
232
,
103
,
61
,
173
,
235
,
4
,
62
,
106
,
243
,
175
,
165
,
250
,
159
,
108
,
61
,
149
,
153
,
126
,
252
,
235
,
79
,
241
,
221
,
42
,
248
,
107
,
232
,
83
,
159
,
252
,
126
,
90
,
27
,
1
,
250
,
158
,
217
,
172
,
255
,
167
,
171
,
107
,
43
,
183
,
204
,
102
,
61
,
179
,
233
,
140
,
201
,
100
,
66
,
149
,
176
,
4
,
1
,
173
,
53
,
70
,
163
,
17
,
173
,
181
,
87
,
128
,
255
,
102
,
54
,
27
,
254
,
143
,
214
,
114
,
248
,
198
,
83
,
79
,
243
,
221
,
168
,
241
,
215
,
208
,
237
,
183
,
221
,
66
,
102
,
94
,
93
,
195
,
240
,
63
,
207
,
102
,
211
,
251
,
214
,
86
,
39
,
172
,
156
,
91
,
101
,
101
,
117
,
194
,
249
,
149
,
53
,
250
,
97
,
96
,
50
,
157
,
113
,
254
,
252
,
10
,
67
,
153
,
201
,
116
,
74
,
149
,
182
,
70
,
196
,
71
,
50
,
242
,
108
,
102
,
62
,
177
,
107
,
231
,
14
,
31
,
57
,
122
,
140
,
239
,
54
,
141
,
191
,
160
,
237
,
91
,
55
,
51
,
30
,
141
,
216
,
182
,
109
,
235
,
120
,
211
,
198
,
13
,
235
,
150
,
214
,
45
,
141
,
186
,
46
,
180
,
113
,
227
,
6
,
175
,
174
,
174
,
241
,
87
,
237
,
83
,
159
,
122
,
132
,
79
,
127
,
252
,
251
,
121
,
97
,
223
,
190
,
191
,
63
,
235
,
251
,
31
,
95
,
91
,
155
,
196
,
233
,
211
,
167
,
89
,
93
,
153
,
176
,
54
,
153
,
48
,
212
,
192
,
80
,
66
,
18
,
85
,
98
,
54
,
155
,
49
,
157
,
78
,
137
,
8
,
76
,
44
,
142
,
70
,
221
,
123
,
35
,
120
,
153
,
244
,
179
,
87
,
238
,
216
,
195
,
145
,
99
,
135
,
248
,
110
,
210
,
241
,
29
,
186
,
239
,
190
,
123
,
233
,
103
,
253
,
226
,
120
,
220
,
30
,
176
,
253
,
48
,
196
,
93
,
147
,
201
,
100
,
199
,
80
,
53
,
93
,
92
,
92
,
124
,
117
,
109
,
109
,
237
,
209
,
141
,
27
,
55
,
254
,
193
,
245
,
215
,
95
,
127
,
124
,
239
,
222
,
189
,
12
,
195
,
192
,
95
,
133
,
8
,
248
,
151
,
127
,
240
,
185
,
235
,
134
,
161
,
255
,
143
,
38
,
147
,
181
,
56
,
123
,
246
,
12
,
179
,
217
,
140
,
201
,
108
,
74
,
169
,
232
,
135
,
129
,
140
,
4
,
155
,
204
,
100
,
174
,
170
,
88
,
93
,
93
,
69
,
18
,
227
,
81
,
183
,
117
,
97
,
60
,
254
,
197
,
136
,
120
,
146
,
54
,
125
,
133
,
239
,
50
,
29
,
223
,
198
,
189
,
247
,
220
,
197
,
179
,
207
,
189
,
196
,
226
,
194
,
232
,
254
,
229
,
117
,
139
,
63
,
11
,
60
,
50
,
244
,
195
,
150
,
217
,
48
,
208
,
186
,
14
,
19
,
100
,
22
,
227
,
241
,
194
,
143
,
75
,
254
,
234
,
139
,
47
,
190
,
248
,
143
,
134
,
97
,
248
,
131
,
204
,
212
,
5
,
252
,
101
,
75
,
155
,
176
,
63
,
58
,
153
,
206
,
110
,
155
,
76
,
166
,
172
,
172
,
174
,
49
,
153
,
206
,
24
,
134
,
1
,
99
,
144
,
113
,
136
,
204
,
196
,
54
,
153
,
201
,
92
,
85
,
49
,
157
,
78
,
89
,
89
,
93
,
163
,
181
,
188
,
167
,
139
,
246
,
31
,
63
,
249
,
141
,
39
,
126
,
249
,
129
,
251
,
31
,
224
,
137
,
39
,
159
,
230
,
187
,
69
,
242
,
45
,
188
,
255
,
125
,
239
,
37
,
91
,
151
,
239
,
125
,
207
,
253
,
63
,
178
,
180
,
180
,
244
,
235
,
227
,
209
,
232
,
51
,
150
,
183
,
204
,
102
,
51
,
214
,
214
,
86
,
89
,
91
,
155
,
176
,
178
,
178
,
198
,
116
,
58
,
163
,
239
,
135
,
113
,
149
,
190
,
39
,
34
,
254
,
151
,
174
,
235
,
62
,
35
,
41
,
248
,
75
,
246
,
233
,
79
,
125
,
146
,
197
,
241
,
186
,
5
,
75
,
223
,
95
,
67
,
181
,
233
,
116
,
202
,
116
,
50
,
101
,
24
,
6
,
108
,
97
,
153
,
214
,
26
,
17
,
193
,
91
,
108
,
51
,
215
,
90
,
35
,
34
,
152
,
205
,
102
,
72
,
34
,
51
,
31
,
121
,
224
,
254
,
7
,
183
,
65
,
240
,
221
,
164
,
227
,
29
,
124
,
240
,
131
,
239
,
103
,
113
,
221
,
152
,
209
,
180
,
251
,
248
,
226
,
120
,
252
,
63
,
88
,
190
,
106
,
101
,
117
,
149
,
181
,
181
,
53
,
86
,
86
,
87
,
153
,
245
,
51
,
250
,
190
,
152
,
78
,
103
,
72
,
98
,
24
,
6
,
134
,
97
,
32
,
34
,
118
,
117
,
93
,
247
,
43
,
85
,
117
,
40
,
51
,
63
,
95
,
85
,
252
,
165
,
137
,
160
,
52
,
236
,
138
,
200
,
123
,
38
,
211
,
9
,
125
,
223
,
51
,
87
,
85
,
64
,
144
,
25
,
204
,
69
,
4
,
146
,
200
,
76
,
230
,
36
,
49
,
55
,
12
,
3
,
17
,
48
,
12
,
3
,
195
,
208
,
174
,
109
,
173
,
93
,
11
,
188
,
201
,
119
,
145
,
142
,
119
,
176
,
184
,
48
,
198
,
131
,
239
,
88
,
183
,
184
,
244
,
143
,
9
,
174
,
90
,
89
,
91
,
97
,
50
,
153
,
178
,
58
,
153
,
50
,
157
,
245
,
204
,
102
,
61
,
85
,
98
,
78
,
18
,
195
,
48
,
48
,
23
,
17
,
116
,
93
,
119
,
181
,
164
,
95
,
152
,
205
,
102
,
79
,
3
,
199
,
184
,
140
,
255
,
226
,
231
,
126
,
158
,
151
,
95
,
126
,
153
,
135
,
191
,
239
,
225
,
118
,
195
,
13
,
215
,
143
,
55
,
109
,
222
,
180
,
28
,
17
,
203
,
4
,
75
,
24
,
108
,
97
,
27
,
75
,
171
,
42
,
77
,
215
,
38
,
107
,
43
,
215
,
93
,
119
,
195
,
228
,
23
,
254
,
193
,
127
,
185
,
222
,
25
,
155
,
185
,
96
,
54
,
155
,
209
,
15
,
3
,
85
,
34
,
51
,
177
,
185
,
40
,
34
,
152
,
179
,
205
,
219
,
169
,
68
,
63
,
155
,
49
,
30
,
143
,
151
,
34
,
189
,
17
,
155
,
239
,
38
,
29
,
151
,
241
,
177
,
143
,
62
,
76
,
223
,
15
,
227
,
117
,
235
,
22
,
255
,
243
,
209
,
168
,
187
,
107
,
229
,
252
,
10
,
125
,
223
,
51
,
157
,
245
,
12
,
67
,
49
,
157
,
245
,
244
,
179
,
30
,
219
,
204
,
101
,
38
,
173
,
53
,
102
,
179
,
25
,
17
,
65
,
215
,
117
,
116
,
93
,
247
,
189
,
125
,
223
,
255
,
141
,
241
,
120
,
252
,
63
,
78
,
167
,
83
,
126
,
255
,
115
,
191
,
203
,
71
,
63
,
246
,
253
,
60
,
250
,
232
,
23
,
214
,
173
,
91
,
183
,
124
,
205
,
194
,
120
,
124
,
71
,
55
,
234
,
238
,
24
,
141
,
186
,
155
,
33
,
174
,
109
,
45
,
183
,
69
,
198
,
186
,
140
,
88
,
144
,
205
,
156
,
36
,
106
,
24
,
214
,
84
,
53
,
147
,
106
,
165
,
239
,
215
,
142
,
255
,
237
,
191
,
243
,
183
,
103
,
191
,
246
,
107
,
255
,
219
,
50
,
113
,
2
,
8
,
44
,
19
,
209
,
184
,
28
,
219
,
188
,
197
,
54
,
195
,
48
,
48
,
26
,
141
,
48
,
38
,
34
,
107
,
227
,
198
,
205
,
62
,
124
,
248
,
48
,
255
,
221
,
63
,
250
,
21
,
254
,
193
,
47
,
254
,
87
,
124
,
55
,
232
,
120
,
155
,
77
,
159
,
249
,
40
,
221
,
73
,
104
,
109
,
116
,
111
,
215
,
181
,
31
,
150
,
204
,
116
,
54
,
99
,
58
,
157
,
49
,
155
,
205
,
152
,
205
,
102
,
212
,
48
,
80
,
85
,
100
,
38
,
85
,
69
,
85
,
49
,
215
,
90
,
35
,
51
,
145
,
68
,
187
,
228
,
111
,
76
,
167
,
211
,
127
,
246
,
244
,
51
,
79
,
158
,
95
,
89
,
89
,
187
,
243
,
217
,
103
,
159
,
126
,
248
,
154
,
107
,
118
,
127
,
100
,
52
,
30
,
223
,
213
,
117
,
221
,
14
,
240
,
66
,
107
,
13
,
73
,
16
,
96
,
155
,
0
,
100
,
19
,
128
,
36
,
172
,
17
,
86
,
97
,
25
,
89
,
220
,
112
,
195
,
117
,
220
,
121
,
231
,
237
,
28
,
56
,
112
,
128
,
204
,
36
,
91
,
226
,
161
,
199
,
134
,
136
,
96
,
46
,
34
,
136
,
8
,
36
,
17
,
17
,
100
,
38
,
146
,
200
,
76
,
50
,
131
,
42
,
113
,
197
,
21
,
59
,
151
,
127
,
241
,
151
,
126
,
241
,
31
,
110
,
221
,
182
,
245
,
137
,
243
,
231
,
206
,
125
,
227
,
87
,
255
,
215
,
127
,
122
,
240
,
153
,
167
,
159
,
62
,
182
,
119
,
239
,
222
,
67
,
207
,
61
,
255
,
210
,
217
,
67
,
135
,
143
,
206
,
214
,
173
,
91
,
226
,
228
,
201
,
147
,
252
,
255
,
169
,
227
,
109
,
62
,
112
,
2
,
214
,
111
,
88
,
100
,
50
,
233
,
63
,
156
,
25
,
59
,
167
,
211
,
158
,
97
,
24
,
24
,
134
,
1
,
169
,
24
,
106
,
192
,
54
,
17
,
129
,
109
,
170
,
10
,
73
,
216
,
166
,
181
,
70
,
102
,
98
,
67
,
102
,
50
,
26
,
141
,
238
,
254
,
91
,
127
,
235
,
51
,
127
,
127
,
58
,
153
,
221
,
186
,
121
,
243
,
166
,
143
,
108
,
216
,
176
,
113
,
231
,
120
,
52
,
138
,
11
,
32
,
192
,
54
,
24
,
162
,
5
,
146
,
136
,
72
,
230
,
194
,
5
,
1
,
68
,
16
,
145
,
68
,
66
,
89
,
96
,
179
,
176
,
176
,
192
,
35
,
143
,
124
,
130
,
190
,
239
,
249
,
220
,
231
,
254
,
128
,
51
,
103
,
206
,
48
,
244
,
61
,
217
,
26
,
93
,
215
,
17
,
17
,
216
,
102
,
46
,
34
,
152
,
155
,
205
,
102
,
84
,
21
,
17
,
1
,
4
,
216
,
220
,
127
,
255
,
125
,
163
,
235
,
174
,
223
,
243
,
189
,
182
,
190
,
119
,
221
,
226
,
130
,
55
,
172
,
95
,
158
,
94
,
123
,
237
,
53
,
167
,
239
,
190
,
231
,
174
,
35
,
251
,
247
,
237
,
123
,
229
,
200
,
161
,
67
,
207
,
156
,
59
,
119
,
246
,
107
,
131
,
227
,
233
,
126
,
82
,
135
,
178
,
197
,
240
,
235
,
191
,
249
,
47
,
249
,
171
,
214
,
120
,
155
,
219
,
111
,
185
,
153
,
67
,
175
,
29
,
203
,
205
,
91
,
55
,
252
,
116
,
73
,
119
,
77
,
38
,
83
,
38
,
147
,
9
,
147
,
201
,
132
,
201
,
108
,
74
,
85
,
81
,
37
,
170
,
138
,
97
,
24
,
136
,
8
,
50
,
147
,
185
,
136
,
192
,
54
,
182
,
129
,
196
,
214
,
194
,
35
,
143
,
124
,
226
,
131
,
119
,
222
,
121
,
199
,
221
,
235
,
214
,
173
,
91
,
191
,
110
,
105
,
41
,
50
,
27
,
115
,
153
,
73
,
70
,
227
,
146
,
32
,
35
,
9
,
130
,
224
,
146
,
8
,
200
,
76
,
8
,
192
,
129
,
205
,
69
,
182
,
88
,
183
,
110
,
29
,
119
,
220
,
113
,
7
,
119
,
221
,
117
,
23
,
235
,
215
,
47
,
115
,
228
,
240
,
97
,
222
,
60
,
121
,
18
,
201
,
64
,
48
,
103
,
27
,
73
,
84
,
21
,
146
,
176
,
77
,
102
,
178
,
48
,
30
,
179
,
107
,
215
,
21
,
252
,
196
,
79
,
254
,
36
,
187
,
174
,
184
,
2
,
213
,
64
,
215
,
90
,
100
,
102
,
183
,
254
,
130
,
43
,
175
,
188
,
114
,
215
,
158
,
61
,
187
,
239
,
216
,
182
,
125
,
219
,
135
,
218
,
104
,
244
,
239
,
163
,
250
,
161
,
104
,
220
,
23
,
65
,
222
,
114
,
203
,
205
,
39
,
206
,
157
,
247
,
234
,
67
,
15
,
220
,
195
,
254
,
253
,
251
,
249
,
171
,
208
,
120
,
155
,
219
,
110
,
185
,
153
,
174
,
235
,
218
,
120
,
113
,
244
,
119
,
74
,
190
,
233
,
252
,
202
,
10
,
147
,
201
,
148
,
201
,
116
,
194
,
116
,
58
,
101
,
58
,
235
,
25
,
250
,
1
,
73
,
84
,
21
,
182
,
153
,
147
,
132
,
109
,
34
,
130
,
204
,
96
,
46
,
51
,
248
,
208
,
135
,
62
,
148
,
55
,
223
,
124
,
51
,
219
,
182
,
109
,
103
,
52
,
26
,
17
,
17
,
68
,
64
,
102
,
99
,
46
,
34
,
200
,
76
,
34
,
32
,
51
,
177
,
77
,
107
,
13
,
99
,
36
,
147
,
145
,
32
,
99
,
204
,
92
,
4
,
23
,
101
,
6
,
59
,
118
,
236
,
224
,
190
,
251
,
238
,
225
,
193
,
119
,
63
,
200
,
116
,
54
,
227
,
229
,
151
,
94
,
102
,
50
,
153
,
50
,
30
,
143
,
176
,
77
,
85
,
81
,
85
,
84
,
21
,
153
,
73
,
215
,
53
,
150
,
151
,
215
,
241
,
31
,
252
,
216
,
143
,
242
,
177
,
143
,
125
,
148
,
57
,
169
,
192
,
198
,
54
,
17
,
129
,
44
,
70
,
227
,
17
,
59
,
118
,
238
,
224
,
154
,
107
,
174
,
25
,
109
,
221
,
190
,
117
,
219
,
116
,
50
,
185
,
119
,
229
,
252
,
202
,
15
,
73
,
254
,
200
,
85
,
87
,
109
,
95
,
159
,
45
,
14
,
62
,
255
,
252
,
139
,
103
,
127
,
247
,
243
,
191
,
207
,
193
,
215
,
223
,
224
,
47
,
83
,
227
,
109
,
110
,
186
,
233
,
6
,
206
,
158
,
95
,
99
,
105
,
221
,
248
,
135
,
250
,
26
,
238
,
152
,
78
,
167
,
172
,
173
,
173
,
49
,
157
,
205
,
232
,
251
,
129
,
201
,
100
,
74
,
13
,
133
,
109
,
108
,
83
,
85
,
204
,
117
,
221
,
136
,
136
,
96
,
110
,
54
,
155
,
97
,
155
,
135
,
30
,
122
,
128
,
31
,
251
,
177
,
31
,
229
,
166
,
155
,
110
,
98
,
97
,
97
,
76
,
102
,
35
,
51
,
201
,
76
,
32
,
120
,
75
,
102
,
146
,
25
,
204
,
101
,
6
,
178
,
201
,
76
,
46
,
49
,
17
,
1
,
17
,
68
,
4
,
17
,
129
,
109
,
36
,
33
,
21
,
17
,
176
,
109
,
251
,
22
,
222
,
253
,
238
,
7
,
185
,
118
,
247
,
110
,
94
,
124
,
241
,
69
,
78
,
157
,
58
,
141
,
109
,
50
,
19
,
12
,
17
,
65
,
215
,
53
,
70
,
163
,
17
,
215
,
93
,
183
,
135
,
159
,
248
,
201
,
159
,
96
,
231
,
206
,
157
,
72
,
133
,
106
,
160
,
170
,
176
,
141
,
109
,
140
,
177
,
133
,
100
,
108
,
179
,
101
,
235
,
22
,
246
,
92
,
183
,
135
,
133
,
165
,
133
,
238
,
244
,
169
,
83
,
187
,
39
,
147
,
181
,
143
,
102
,
196
,
71
,
126
,
253
,
127
,
255
,
103
,
53
,
38
,
247
,
221
,
117
,
231
,
237
,
147
,
231
,
94
,
124
,
137
,
191
,
44
,
141
,
183
,
185
,
241
,
198
,
235
,
89
,
191
,
97
,
209
,
67
,
213
,
13
,
195
,
48
,
124
,
223
,
100
,
50
,
101
,
232
,
7
,
166
,
179
,
25
,
211
,
217
,
12
,
201
,
88
,
38
,
51
,
105
,
173
,
33
,
137
,
136
,
96
,
52
,
26
,
33
,
153
,
190
,
239
,
217
,
180
,
105
,
19
,
63
,
250
,
163
,
159
,
230
,
231
,
126
,
238
,
103
,
185
,
251
,
238
,
187
,
89
,
88
,
24
,
3
,
65
,
4
,
23
,
101
,
38
,
17
,
129
,
109
,
34
,
130
,
8
,
200
,
108
,
92
,
18
,
68
,
4
,
16
,
16
,
92
,
18
,
16
,
17
,
68
,
38
,
193
,
5
,
22
,
223
,
148
,
168
,
68
,
215
,
37
,
183
,
220
,
122
,
51
,
119
,
220
,
126
,
27
,
123
,
247
,
62
,
203
,
177
,
99
,
199
,
200
,
72
,
90
,
235
,
232
,
90
,
99
,
52
,
234
,
88
,
90
,
28
,
211
,
247
,
61
,
207
,
61
,
247
,
28
,
235
,
55
,
172
,
103
,
215
,
174
,
157
,
180
,
214
,
144
,
196
,
156
,
36
,
164
,
66
,
22
,
82
,
17
,
128
,
109
,
90
,
107
,
236
,
220
,
185
,
157
,
171
,
174
,
186
,
138
,
243
,
231
,
207
,
230
,
233
,
211
,
167
,
174
,
12
,
226
,
227
,
209
,
229
,
157
,
147
,
89
,
191
,
111
,
251
,
142
,
157
,
135
,
111
,
191
,
237
,
86
,
246
,
237
,
219
,
207
,
191
,
171
,
198
,
219
,
188
,
252
,
202
,
62
,
174
,
191
,
238
,
58
,
192
,
107
,
54
,
159
,
236
,
251
,
217
,
198
,
217
,
108
,
198
,
80
,
133
,
36
,
230
,
84
,
98
,
206
,
54
,
153
,
73
,
102
,
50
,
153
,
76
,
168
,
42
,
62
,
240
,
129
,
247
,
243
,
203
,
191
,
252
,
75
,
252
,
248
,
143
,
255
,
56
,
187
,
119
,
95
,
67
,
102
,
0
,
65
,
107
,
73
,
102
,
35
,
34
,
152
,
203
,
12
,
50
,
147
,
204
,
4
,
76
,
68
,
2
,
6
,
2
,
219
,
68
,
4
,
17
,
96
,
155
,
57
,
27
,
108
,
17
,
4
,
145
,
129
,
101
,
8
,
136
,
224
,
34
,
203
,
216
,
102
,
215
,
174
,
157
,
220
,
118
,
199
,
109
,
28
,
56
,
112
,
128
,
55
,
79
,
158
,
100
,
212
,
37
,
59
,
118
,
108
,
227
,
193
,
135
,
238
,
103
,
195
,
134
,
245
,
156
,
58
,
117
,
134
,
55
,
222
,
56
,
200
,
151
,
191
,
252
,
37
,
206
,
157
,
59
,
207
,
205
,
183
,
220
,
194
,
242
,
242
,
50
,
150
,
152
,
179
,
5
,
97
,
36
,
3
,
193
,
220
,
48
,
244
,
68
,
152
,
165
,
229
,
101
,
174
,
187
,
126
,
15
,
37
,
113
,
232
,
240
,
209
,
110
,
24
,
234
,
182
,
136
,
252
,
216
,
104
,
212
,
206
,
175
,
77
,
39
,
207
,
222
,
120
,
227
,
245
,
195
,
171
,
251
,
95
,
227
,
223
,
69
,
227
,
50
,
174
,
191
,
238
,
90
,
52
,
232
,
168
,
131
,
205
,
217
,
242
,
123
,
134
,
126
,
136
,
42
,
49
,
155
,
206
,
232
,
135
,
162
,
159
,
13
,
204
,
101
,
38
,
146
,
153
,
78
,
39
,
44
,
175
,
95
,
230
,
239
,
254
,
244
,
79
,
241
,
75
,
191
,
244
,
11
,
220
,
123
,
223
,
189
,
116
,
221
,
136
,
136
,
32
,
51
,
128
,
36
,
179
,
49
,
23
,
17
,
100
,
38
,
54
,
68
,
4
,
151
,
4
,
223
,
20
,
68
,
4
,
23
,
5
,
216
,
38
,
34
,
137
,
224
,
162
,
0
,
36
,
1
,
6
,
2
,
219
,
72
,
194
,
6
,
35
,
170
,
6
,
182
,
111
,
223
,
202
,
189
,
247
,
222
,
195
,
174
,
93
,
59
,
185
,
250
,
170
,
43
,
121
,
224
,
129
,
123
,
185
,
247
,
190
,
187
,
216
,
115
,
221
,
53
,
28
,
120
,
253
,
0
,
231
,
206
,
157
,
103
,
214
,
207
,
120
,
234
,
169
,
63
,
101
,
255
,
171
,
175
,
114
,
251
,
109
,
183
,
178
,
188
,
188
,
76
,
213
,
128
,
109
,
36
,
17
,
201
,
69
,
85
,
69
,
85
,
1
,
102
,
168
,
129
,
214
,
117
,
92
,
117
,
213
,
46
,
22
,
23
,
23
,
56
,
240
,
218
,
27
,
244
,
125
,
191
,
57
,
91
,
126
,
95
,
215
,
229
,
122
,
13
,
122
,
252
,
198
,
27
,
175
,
155
,
236
,
219
,
255
,
26
,
255
,
95
,
53
,
46
,
99
,
223
,
254
,
215
,
216
,
189
,
231
,
106
,
151
,
244
,
188
,
237
,
123
,
250
,
126
,
184
,
81
,
85
,
24
,
51
,
244
,
3
,
17
,
65
,
107
,
141
,
214
,
26
,
125
,
223
,
179
,
105
,
211
,
70
,
254
,
235
,
95
,
250
,
69
,
126
,
234
,
167
,
126
,
130
,
141
,
27
,
54
,
98
,
65
,
68
,
16
,
193
,
5
,
65
,
102
,
71
,
68
,
2
,
65
,
68
,
146
,
217
,
128
,
32
,
34
,
137
,
72
,
90
,
235
,
136
,
8
,
230
,
34
,
2
,
219
,
204
,
5
,
193
,
156
,
13
,
216
,
4
,
193
,
156
,
13
,
118
,
96
,
23
,
150
,
33
,
184
,
32
,
48
,
34
,
2
,
108
,
179
,
97
,
253
,
50
,
183
,
220
,
114
,
51
,
123
,
246
,
92
,
67
,
235
,
26
,
163
,
81
,
199
,
246
,
237
,
219
,
216
,
178
,
121
,
51
,
47
,
60
,
255
,
34
,
253
,
48
,
96
,
155
,
125
,
175
,
236
,
231
,
165
,
23
,
95
,
226
,
214
,
91
,
111
,
101
,
243
,
150
,
77
,
88
,
96
,
27
,
169
,
144
,
10
,
187
,
176
,
141
,
109
,
176
,
177
,
12
,
152
,
93
,
187
,
174
,
96
,
113
,
105
,
145
,
87
,
247
,
191
,
74
,
223
,
207
,
70
,
153
,
249
,
158
,
204
,
184
,
186
,
134
,
225
,
177
,
155
,
111
,
190
,
126
,
101
,
180
,
48
,
226
,
196
,
137
,
147
,
252
,
69
,
53
,
222
,
193
,
85
,
187
,
175
,
68
,
131
,
206
,
75
,
250
,
211
,
174
,
181
,
251
,
193
,
87
,
151
,
69
,
16
,
64
,
96
,
155
,
217
,
108
,
198
,
194
,
194
,
152
,
159
,
255
,
249
,
159
,
227
,
111
,
254
,
205
,
207
,
48
,
26
,
143
,
136
,
8
,
34
,
130
,
136
,
32
,
51
,
137
,
8
,
50
,
27
,
17
,
65
,
68
,
144
,
153
,
68
,
4
,
153
,
73
,
102
,
18
,
17
,
204
,
69
,
152
,
136
,
224
,
45
,
17
,
65
,
68
,
96
,
131
,
45
,
140
,
177
,
141
,
101
,
100
,
17
,
17
,
128
,
145
,
69
,
68
,
32
,
9
,
171
,
176
,
141
,
109
,
108
,
99
,
139
,
165
,
165
,
37
,
54
,
108
,
88
,
79
,
102
,
208
,
90
,
227
,
202
,
171
,
174
,
224
,
220
,
249
,
243
,
188
,
254
,
218
,
27
,
68
,
36
,
115
,
7
,
15
,
30
,
228
,
197
,
23
,
95
,
226
,
206
,
119
,
189
,
139
,
205
,
155
,
55
,
33
,
9
,
91
,
84
,
21
,
17
,
193
,
91
,
36
,
35
,
21
,
115
,
182
,
216
,
177
,
99
,
59
,
75
,
75
,
75
,
188
,
252
,
242
,
126
,
250
,
126
,
200
,
150
,
121
,
87
,
100
,
187
,
106
,
58
,
12
,
95
,
218
,
184
,
97
,
227
,
234
,
171
,
251
,
95
,
227
,
47
,
170
,
241
,
14
,
222
,
56
,
112
,
144
,
173
,
155
,
183
,
48
,
30
,
181
,
163
,
150
,
190
,
38
,
124
,
147
,
97
,
79
,
215
,
186
,
28
,
134
,
129
,
217
,
108
,
198
,
250
,
245
,
235
,
249
,
217
,
159
,
253
,
25
,
62
,
243
,
153
,
255
,
144
,
209
,
104
,
4
,
17
,
180
,
76
,
50
,
147
,
204
,
36
,
34
,
200
,
12
,
32
,
153
,
203
,
76
,
34
,
130
,
136
,
32
,
51
,
137
,
8
,
222
,
98
,
155
,
75
,
204
,
156
,
109
,
108
,
115
,
73
,
96
,
155
,
136
,
192
,
54
,
115
,
17
,
96
,
27
,
8
,
230
,
108
,
48
,
38
,
194
,
72
,
102
,
24
,
10
,
48
,
96
,
90
,
107
,
44
,
45
,
45
,
50
,
30
,
143
,
24
,
47
,
140
,
217
,
190
,
109
,
59
,
207
,
62
,
251
,
60
,
103
,
207
,
157
,
7
,
76
,
68
,
114
,
232
,
208
,
97
,
14
,
29
,
60
,
200
,
61
,
247
,
220
,
205
,
242
,
242
,
50
,
182
,
136
,
48
,
182
,
168
,
26
,
176
,
141
,
109
,
36
,
17
,
17
,
216
,
98
,
110
,
231
,
206
,
157
,
200
,
197
,
171
,
251
,
95
,
165
,
74
,
145
,
173
,
189
,
43
,
35
,
54
,
206
,
166
,
179
,
71
,
175
,
191
,
110
,
207
,
236
,
181
,
215
,
14
,
240
,
23
,
209
,
248
,
22
,
142
,
30
,
59
,
198
,
198
,
13
,
203
,
196
,
168
,
29
,
173
,
97
,
248
,
125
,
219
,
71
,
183
,
108
,
218
,
116
,
237
,
21
,
59
,
119
,
236
,
184
,
249
,
230
,
155
,
248
,
233
,
191
,
247
,
119
,
249
,
244
,
143
,
124
,
154
,
241
,
194
,
136
,
204
,
32
,
72
,
34
,
130
,
204
,
36
,
34
,
136
,
8
,
50
,
147
,
204
,
36
,
34
,
137
,
8
,
34
,
130
,
204
,
36
,
34
,
176
,
77
,
68
,
96
,
27
,
155
,
11
,
2
,
169
,
0
,
19
,
145
,
128
,
177
,
185
,
36
,
192
,
64
,
96
,
34
,
130
,
32
,
144
,
10
,
108
,
100
,
35
,
21
,
198
,
204
,
73
,
5
,
24
,
16
,
54
,
23
,
24
,
48
,
182
,
176
,
204
,
250
,
245
,
203
,
156
,
61
,
115
,
150
,
23
,
94
,
120
,
9
,
99
,
48
,
100
,
118
,
28
,
56
,
112
,
144
,
147
,
39
,
79
,
241
,
192
,
253
,
247
,
50
,
26
,
53
,
108
,
83
,
85
,
216
,
2
,
2
,
73
,
100
,
114
,
145
,
36
,
108
,
176
,
205
,
206
,
157
,
59
,
56
,
117
,
242
,
36
,
135
,
14
,
29
,
37
,
35
,
35
,
91
,
222
,
29
,
48
,
153
,
76
,
214
,
30
,
187
,
238
,
186
,
61
,
126
,
253
,
192
,
27
,
124
,
167
,
26
,
223
,
198
,
241
,
19
,
39
,
57
,
124
,
232
,
40
,
191
,
250
,
107
,
191
,
186
,
242
,
145
,
143
,
124
,
100
,
239
,
39
,
63
,
249
,
3
,
31
,
249
,
129
,
71
,
30
,
185
,
229
,
147
,
159
,
250
,
36
,
119
,
190
,
235
,
93
,
100
,
75
,
178
,
53
,
130
,
32
,
35
,
200
,
76
,
230
,
34
,
160
,
181
,
198
,
92
,
102
,
146
,
153
,
180
,
214
,
176
,
77
,
68
,
48
,
23
,
17
,
204
,
73
,
34
,
34
,
184
,
196
,
68
,
128
,
109
,
222
,
34
,
21
,
127
,
78
,
198
,
128
,
45
,
100
,
97
,
132
,
108
,
2
,
144
,
4
,
8
,
201
,
128
,
1
,
99
,
131
,
84
,
72
,
66
,
18
,
17
,
73
,
68
,
176
,
113
,
211
,
70
,
158
,
123
,
246
,
121
,
206
,
159
,
95
,
37
,
162
,
17
,
17
,
24
,
216
,
191
,
111
,
63
,
227
,
209
,
136
,
119
,
189
,
235
,
14
,
108
,
99
,
11
,
219
,
204
,
217
,
194
,
54
,
182
,
128
,
192
,
22
,
96
,
50
,
147
,
29
,
59
,
182
,
179
,
111
,
223
,
126
,
206
,
157
,
59
,
79
,
16
,
173
,
107
,
237
,
222
,
214
,
186
,
231
,
118
,
108
,
223
,
250
,
194
,
166
,
205
,
155
,
121
,
227
,
141
,
131
,
124
,
39
,
146
,
239
,
208
,
149
,
87
,
94
,
193
,
246
,
237
,
91
,
127
,
96
,
215
,
174
,
157
,
31
,
222
,
185
,
115
,
7
,
203
,
203
,
235
,
80
,
21
,
216
,
96
,
46
,
138
,
72
,
164
,
194
,
54
,
115
,
182
,
153
,
139
,
72
,
34
,
130
,
203
,
145
,
68
,
102
,
146
,
153
,
128
,
153
,
139
,
8
,
254
,
159
,
108
,
176
,
13
,
54
,
68
,
32
,
9
,
73
,
24
,
227
,
8
,
8
,
254
,
156
,
36
,
34
,
130
,
136
,
196
,
54
,
182
,
0
,
19
,
1
,
17
,
9
,
24
,
73
,
92
,
113
,
197
,
14
,
238
,
124
,
215
,
237
,
100
,
54
,
90
,
107
,
216
,
38
,
35
,
176
,
204
,
111
,
252
,
250
,
191
,
224
,
241
,
175
,
61
,
65
,
132
,
145
,
140
,
36
,
36
,
1
,
129
,
109
,
108
,
83
,
85
,
216
,
198
,
54
,
132
,
216
,
177
,
115
,
27
,
239
,
123
,
223
,
131
,
216
,
102
,
24
,
122
,
100
,
109
,
203
,
204
,
255
,
246
,
232
,
241
,
55
,
111
,
24
,
143
,
70
,
124
,
167
,
26
,
223
,
129
,
47
,
252
,
225
,
239
,
115
,
246
,
244
,
233
,
77
,
155
,
55
,
111
,
254
,
149
,
165
,
165
,
117
,
183
,
102
,
36
,
68
,
210
,
90
,
66
,
4
,
217
,
146
,
140
,
196
,
230
,
162
,
214
,
146
,
136
,
192
,
134
,
204
,
36
,
34
,
176
,
33
,
34
,
136
,
8
,
50
,
147
,
214
,
26
,
182
,
249
,
127
,
51
,
118
,
17
,
145
,
216
,
6
,
204
,
156
,
36
,
108
,
17
,
128
,
36
,
28
,
38
,
8
,
176
,
40
,
21
,
24
,
44
,
35
,
21
,
145
,
96
,
11
,
169
,
144
,
138
,
57
,
219
,
84
,
21
,
182
,
144
,
140
,
100
,
2
,
51
,
234
,
70
,
60
,
245
,
141
,
167
,
233
,
251
,
129
,
42
,
97
,
27
,
34
,
56
,
191
,
178
,
202
,
225
,
35
,
135
,
121
,
240
,
161
,
7
,
88
,
94
,
183
,
12
,
24
,
169
,
176
,
69
,
4
,
84
,
137
,
170
,
1
,
219
,
72
,
2
,
11
,
89
,
108
,
218
,
188
,
145
,
67
,
7
,
143
,
112
,
236
,
232
,
9
,
32
,
232
,
186
,
182
,
43
,
35
,
125
,
246
,
236
,
217
,
63
,
188
,
238
,
218
,
107
,
244
,
198
,
193
,
67
,
124
,
59
,
141
,
111
,
227
,
119
,
126
,
251
,
179
,
108
,
218
,
180
,
145
,
174
,
235
,
62
,
182
,
126
,
253
,
250
,
159
,
233
,
90
,
55
,
142
,
76
,
8
,
46
,
138
,
8
,
34
,
147
,
136
,
4
,
67
,
215
,
117
,
68
,
4
,
16
,
180
,
214
,
0
,
19
,
209
,
200
,
76
,
34
,
130
,
185
,
136
,
192
,
54
,
115
,
182
,
121
,
139
,
109
,
108
,
51
,
103
,
27
,
73
,
204
,
217
,
134
,
0
,
89
,
4
,
1
,
6
,
169
,
48
,
198
,
50
,
82
,
17
,
128
,
45
,
108
,
99
,
27
,
73
,
128
,
145
,
140
,
36
,
108
,
99
,
11
,
219
,
204
,
73
,
197
,
186
,
165
,
37
,
94
,
122
,
121
,
31
,
39
,
142
,
191
,
73
,
73
,
188
,
37
,
51
,
56
,
116
,
232
,
48
,
155
,
54
,
109
,
228
,
206
,
59
,
111
,
71
,
18
,
182
,
144
,
4
,
4
,
96
,
230
,
108
,
99
,
155
,
108
,
129
,
84
,
140
,
186
,
17
,
93
,
55
,
226
,
249
,
231
,
95
,
64
,
50
,
153
,
73
,
102
,
222
,
212
,
186
,
246
,
39
,
227
,
241
,
248
,
213
,
173
,
219
,
182
,
112
,
248
,
240
,
81
,
190
,
149
,
228
,
219
,
24
,
141
,
70
,
124
,
245
,
79
,
30
,
111
,
11
,
11
,
11
,
63
,
220
,
186
,
92
,
150
,
141
,
100
,
34
,
146
,
204
,
4
,
2
,
149
,
80
,
21
,
17
,
96
,
27
,
219
,
68
,
112
,
129
,
137
,
72
,
108
,
97
,
27
,
73
,
204
,
217
,
70
,
18
,
182
,
105
,
173
,
49
,
103
,
155
,
185
,
204
,
64
,
18
,
96
,
50
,
147
,
185
,
214
,
26
,
173
,
37
,
115
,
146
,
192
,
64
,
4
,
24
,
146
,
32
,
34
,
33
,
76
,
68
,
128
,
3
,
27
,
34
,
130
,
136
,
0
,
140
,
13
,
17
,
193
,
55
,
153
,
185
,
165
,
165
,
69
,
110
,
187
,
245
,
102
,
50
,
147
,
204
,
68
,
18
,
96
,
108
,
3
,
201
,
231
,
126
,
239
,
243
,
28
,
58
,
120
,
24
,
48
,
182
,
153
,
147
,
10
,
219
,
68
,
4
,
111
,
145
,
140
,
13
,
170
,
226
,
198
,
27
,
246
,
176
,
123
,
247
,
213
,
244
,
179
,
25
,
179
,
217
,
20
,
169
,
182
,
183
,
214
,
254
,
211
,
217
,
172
,
95
,
94
,
90
,
90
,
226
,
219
,
73
,
190
,
141
,
108
,
112
,
219
,
237
,
55
,
95
,
51
,
234
,
186
,
15
,
102
,
36
,
17
,
144
,
105
,
112
,
97
,
27
,
91
,
24
,
51
,
103
,
155
,
8
,
136
,
0
,
27
,
36
,
3
,
198
,
22
,
118
,
97
,
23
,
146
,
176
,
141
,
36
,
108
,
83
,
85
,
84
,
21
,
85
,
3
,
32
,
108
,
176
,
141
,
109
,
108
,
19
,
1
,
146
,
80
,
153
,
57
,
89
,
148
,
197
,
69
,
6
,
99
,
176
,
145
,
140
,
109
,
34
,
32
,
2
,
108
,
115
,
73
,
16
,
17
,
216
,
38
,
34
,
176
,
141
,
84
,
128
,
32
,
204
,
77
,
55
,
94
,
199
,
104
,
220
,
97
,
23
,
173
,
5
,
17
,
92
,
96
,
198
,
227
,
17
,
111
,
28
,
56
,
200
,
23
,
190
,
240
,
40
,
96
,
36
,
243
,
150
,
170
,
162
,
74
,
24
,
99
,
138
,
26
,
122
,
40
,
225
,
18
,
227
,
81
,
227
,
93
,
119
,
220
,
138
,
129
,
26
,
196
,
48
,
12
,
4
,
254
,
104
,
102
,
124
,
111
,
215
,
26
,
223
,
78
,
242
,
109
,
44
,
45
,
45
,
49
,
30
,
47
,
220
,
215
,
186
,
182
,
199
,
54
,
182
,
144
,
132
,
44
,
170
,
6
,
108
,
131
,
65
,
18
,
85
,
66
,
50
,
16
,
188
,
165
,
74
,
84
,
21
,
85
,
133
,
109
,
164
,
162
,
170
,
136
,
224
,
2
,
35
,
21
,
182
,
200
,
12
,
192
,
216
,
102
,
174
,
74
,
216
,
66
,
50
,
85
,
3
,
165
,
66
,
50
,
153
,
137
,
45
,
84
,
194
,
54
,
182
,
145
,
4
,
2
,
99
,
74
,
133
,
36
,
230
,
170
,
4
,
4
,
17
,
96
,
27
,
201
,
216
,
226
,
45
,
42
,
177
,
243
,
138
,
237
,
92
,
121
,
229
,
14
,
50
,
131
,
136
,
0
,
76
,
102
,
163
,
181
,
198
,
220
,
163
,
143
,
126
,
137
,
19
,
39
,
78
,
146
,
13
,
36
,
33
,
137
,
136
,
192
,
22
,
150
,
176
,
5
,
54
,
17
,
65
,
112
,
201
,
245
,
55
,
92
,
203
,
134
,
245
,
203
,
76
,
166
,
19
,
250
,
126
,
64
,
210
,
198
,
204
,
248
,
204
,
217
,
243
,
231
,
199
,
239
,
126
,
207
,
3
,
124
,
43
,
201
,
183
,
240
,
220
,
115
,
207
,
114
,
195
,
13
,
123
,
232
,
186
,
238
,
193
,
136
,
24
,
219
,
198
,
54
,
146
,
176
,
77
,
68
,
18
,
17
,
128
,
201
,
76
,
50
,
19
,
91
,
72
,
162
,
170
,
152
,
139
,
128
,
214
,
146
,
136
,
96
,
206
,
22
,
32
,
134
,
161
,
167
,
170
,
7
,
132
,
45
,
164
,
66
,
50
,
182
,
137
,
8
,
50
,
131
,
136
,
224
,
146
,
32
,
34
,
136
,
0
,
3
,
153
,
13
,
2
,
108
,
33
,
137
,
57
,
99
,
108
,
99
,
155
,
57
,
219
,
216
,
70
,
18
,
182
,
153
,
179
,
69
,
68
,
48
,
103
,
153
,
185
,
229
,
229
,
37
,
174
,
185
,
230
,
106
,
108
,
211
,
90
,
3
,
130
,
57
,
73
,
116
,
221
,
136
,
3
,
175
,
31
,
228
,
79
,
159
,
122
,
6
,
219
,
72
,
162
,
170
,
168
,
42
,
170
,
10
,
219
,
216
,
252
,
185
,
136
,
192
,
18
,
155
,
55
,
109
,
228
,
202
,
171
,
175
,
96
,
24
,
6
,
134
,
97
,
96
,
24
,
138
,
11
,
30
,
94
,
88
,
24
,
223
,
213
,
90
,
227
,
91
,
73
,
190
,
133
,
87
,
246
,
189
,
196
,
231
,
191
,
240
,
229
,
133
,
209
,
104
,
116
,
71
,
102
,
98
,
155
,
32
,
136
,
8
,
144
,
209
,
48
,
96
,
153
,
32
,
176
,
133
,
93
,
12
,
53
,
96
,
139
,
57
,
73
,
204
,
217
,
6
,
140
,
109
,
34
,
2
,
91
,
72
,
66
,
18
,
54
,
68
,
4
,
182
,
145
,
10
,
91
,
72
,
194
,
6
,
219
,
216
,
34
,
18
,
108
,
99
,
131
,
101
,
84
,
3
,
168
,
176
,
184
,
32
,
176
,
193
,
22
,
96
,
230
,
108
,
144
,
4
,
24
,
16
,
146
,
1
,
51
,
103
,
27
,
99
,
108
,
131
,
69
,
6
,
92
,
187
,
251
,
106
,
70
,
93
,
135
,
109
,
90
,
107
,
204
,
217
,
6
,
204
,
172
,
31
,
248
,
202
,
87
,
191
,
206
,
172
,
47
,
36
,
17
,
17
,
72
,
34
,
49
,
137
,
73
,
192
,
50
,
150
,
40
,
137
,
185
,
214
,
53
,
174
,
189
,
230
,
106
,
230
,
170
,
68
,
213
,
128
,
228
,
93
,
45
,
242
,
145
,
43
,
175
,
220
,
193
,
67
,
15
,
222
,
207
,
59
,
73
,
190
,
5
,
73
,
44
,
173
,
91
,
220
,
16
,
25
,
187
,
249
,
51
,
178
,
176
,
141
,
13
,
198
,
204
,
73
,
194
,
54
,
102
,
206
,
148
,
6
,
108
,
35
,
137
,
97
,
24
,
24
,
134
,
162
,
170
,
144
,
132
,
84
,
216
,
96
,
27
,
201
,
216
,
194
,
54
,
146
,
145
,
140
,
100
,
108
,
35
,
139
,
170
,
66
,
18
,
85
,
3
,
82
,
97
,
11
,
108
,
2
,
19
,
54
,
145
,
208
,
50
,
1
,
99
,
132
,
109
,
108
,
3
,
193
,
156
,
205
,
159
,
49
,
54
,
23
,
25
,
3
,
102
,
78
,
42
,
84
,
3
,
187
,
118
,
237
,
100
,
121
,
121
,
153
,
136
,
32
,
2
,
50
,
147
,
136
,
128
,
8
,
34
,
147
,
103
,
159
,
125
,
158
,
147
,
39
,
79
,
49
,
103
,
131
,
109
,
192
,
96
,
99
,
137
,
136
,
192
,
64
,
4
,
216
,
66
,
42
,
118
,
94
,
177
,
157
,
174
,
107
,
12
,
195
,
192
,
48
,
20
,
82
,
113
,
193
,
199
,
95
,
127
,
245
,
208
,
102
,
219
,
188
,
147
,
228
,
91
,
24
,
141
,
58
,
22
,
198
,
11
,
75
,
192
,
14
,
219
,
216
,
198
,
50
,
146
,
176
,
133
,
109
,
36
,
97
,
27
,
12
,
182
,
49
,
96
,
115
,
129
,
137
,
8
,
170
,
132
,
109
,
36
,
3
,
198
,
6
,
169
,
136
,
8
,
108
,
51
,
12
,
133
,
36
,
164
,
34
,
2
,
108
,
35
,
23
,
118
,
225
,
48
,
229
,
226
,
146
,
192
,
54
,
210
,
192
,
225
,
195
,
135
,
120
,
230
,
153
,
167
,
121
,
225
,
133
,
231
,
57
,
118
,
252
,
24
,
114
,
145
,
17
,
216
,
66
,
42
,
108
,
17
,
1
,
17
,
32
,
25
,
73
,
72
,
133
,
109
,
130
,
96
,
206
,
24
,
12
,
178
,
217
,
188
,
121
,
35
,
203
,
203
,
75
,
64
,
0
,
65
,
107
,
141
,
214
,
26
,
151
,
152
,
227
,
199
,
79
,
240
,
250
,
107
,
175
,
147
,
153
,
72
,
194
,
54
,
16
,
148
,
132
,
13
,
182
,
177
,
4
,
4
,
82
,
97
,
196
,
230
,
45
,
155
,
88
,
92
,
92
,
64
,
85
,
84
,
13
,
12
,
195
,
128
,
237
,
59
,
51
,
243
,
142
,
204
,
224
,
157
,
116
,
124
,
11
,
163
,
174
,
195
,
242
,
250
,
8
,
22
,
165
,
129
,
200
,
14
,
34
,
176
,
205
,
156
,
109
,
170
,
6
,
130
,
70
,
89
,
180
,
174
,
35
,
72
,
44
,
81
,
12
,
200
,
34
,
34
,
176
,
141
,
109
,
34
,
184
,
32
,
201
,
12
,
170
,
10
,
201
,
204
,
101
,
6
,
146
,
1
,
35
,
9
,
219
,
148
,
138
,
136
,
196
,
18
,
24
,
130
,
11
,
100
,
158
,
254
,
198
,
55
,
248
,
173
,
223
,
254
,
44
,
71
,
14
,
31
,
165
,
4
,
91
,
54
,
109
,
230
,
246
,
59
,
110
,
229
,
193
,
135
,
30
,
228
,
202
,
171
,
174
,
36
,
34
,
168
,
42
,
36
,
81
,
85
,
128
,
1
,
243
,
22
,
169
,
168
,
42
,
108
,
99
,
140
,
37
,
70
,
227
,
17
,
155
,
54
,
111
,
228
,
240
,
145
,
227
,
16
,
102
,
46
,
34
,
136
,
8
,
34
,
146
,
26
,
6
,
246
,
237
,
123
,
141
,
123
,
239
,
126
,
23
,
184
,
8
,
11
,
243
,
103
,
108
,
50
,
130
,
146
,
168
,
42
,
48
,
80
,
98
,
121
,
105
,
137
,
197
,
165
,
5
,
78
,
159
,
62
,
75
,
14
,
73
,
215
,
4
,
205
,
155
,
51
,
121
,
223
,
194
,
194
,
226
,
99
,
239
,
126
,
232
,
94
,
190
,
250
,
181
,
111
,
240
,
118
,
29
,
239
,
224
,
7
,
30
,
249
,
56
,
88
,
188
,
242
,
202
,
43
,
55
,
222
,
183
,
241
,
238
,
245
,
94
,
24
,
97
,
11
,
57
,
104
,
36
,
146
,
201
,
228
,
2
,
33
,
65
,
107
,
13
,
11
,
8
,
99
,
12
,
134
,
48
,
36
,
137
,
84
,
68
,
4
,
32
,
106
,
16
,
163
,
241
,
8
,
2
,
108
,
17
,
17
,
92
,
20
,
70
,
26
,
144
,
141
,
109
,
108
,
3
,
6
,
131
,
74
,
204
,
157
,
124
,
243
,
77
,
126
,
231
,
119
,
254
,
53
,
127
,
250
,
212
,
94
,
206
,
157
,
95
,
101
,
24
,
6
,
146
,
198
,
222
,
103
,
159
,
227
,
235
,
143
,
127
,
157
,
135
,
31
,
254
,
48
,
247
,
63
,
120
,
31
,
163
,
241
,
2
,
146
,
177
,
3
,
91
,
216
,
102
,
78
,
18
,
54
,
216
,
198
,
18
,
150
,
49
,
166
,
181
,
198
,
120
,
60
,
38
,
2
,
186
,
236
,
152
,
14
,
61
,
115
,
54
,
100
,
38
,
195
,
96
,
94
,
123
,
245
,
0
,
53
,
244
,
128
,
1
,
19
,
17
,
72
,
166
,
170
,
104
,
173
,
97
,
46
,
176
,
177
,
141
,
92
,
68
,
4
,
75
,
139
,
11
,
84
,
137
,
42
,
161
,
18
,
170
,
66
,
248
,
125
,
199
,
79
,
188
,
185
,
48
,
234
,
186
,
41
,
151
,
209
,
241
,
14
,
178
,
5
,
63
,
253
,
247
,
254
,
179
,
117
,
63
,
242
,
233
,
31
,
254
,
79
,
238
,
190
,
231
,
206
,
101
,
73
,
100
,
38
,
216
,
24
,
131
,
133
,
20
,
68
,
4
,
151
,
4
,
32
,
108
,
209
,
90
,
67
,
18
,
9
,
84
,
152
,
32
,
56
,
115
,
234
,
20
,
79
,
61
,
249
,
4
,
47
,
189
,
242
,
10
,
235
,
214
,
45
,
243
,
61
,
223
,
243
,
65
,
246
,
236
,
185
,
14
,
147
,
12
,
85
,
204
,
25
,
99
,
137
,
57
,
219
,
148
,
6
,
194
,
32
,
137
,
140
,
224
,
141
,
131
,
7
,
121
,
225
,
165
,
87
,
56
,
125
,
230
,
28
,
147
,
217
,
12
,
167
,
32
,
130
,
213
,
179
,
107
,
156
,
223
,
187
,
194
,
177
,
227
,
39
,
56
,
118
,
252
,
56
,
15
,
127
,
223
,
135
,
25
,
47
,
44
,
0
,
198
,
54
,
146
,
169
,
42
,
36
,
97
,
11
,
217
,
4
,
96
,
46
,
48
,
100
,
4
,
11
,
139
,
11
,
4
,
1
,
152
,
214
,
26
,
195
,
48
,
144
,
25
,
64
,
80
,
85
,
28
,
63
,
118
,
130
,
233
,
100
,
202
,
226
,
210
,
24
,
8
,
108
,
192
,
134
,
8
,
74
,
66
,
85
,
16
,
193
,
92
,
56
,
104
,
153
,
44
,
44
,
44
,
82
,
85
,
216
,
66
,
54
,
146
,
136
,
204
,
59
,
22
,
198
,
227
,
45
,
16
,
71
,
184
,
140
,
142
,
119
,
48
,
110
,
141
,
219
,
110
,
190
,
233
,
190
,
233
,
116
,
242
,
33
,
219
,
216
,
66
,
18
,
17
,
1
,
81
,
32
,
200
,
108
,
132
,
131
,
204
,
164
,
170
,
128
,
36
,
34
,
176
,
1
,
131
,
109
,
144
,
56
,
124
,
248
,
16
,
159
,
253
,
236
,
255
,
197
,
147
,
95
,
127
,
130
,
147
,
167
,
78
,
209
,
151
,
248
,
218
,
227
,
95
,
231
,
103
,
126
,
230
,
103
,
184
,
254
,
250
,
235
,
81
,
9
,
115
,
65
,
128
,
36
,
108
,
176
,
69
,
73
,
132
,
185
,
192
,
148
,
138
,
35
,
71
,
15
,
115
,
238
,
220
,
121
,
102
,
195
,
140
,
133
,
205
,
29
,
59
,
174
,
217
,
201
,
120
,
97
,
204
,
137
,
163
,
39
,
56
,
125
,
240
,
44
,
7
,
15
,
31
,
229
,
247
,
62
,
247
,
111
,
200
,
22
,
124
,
232
,
195
,
255
,
30
,
173
,
107
,
84
,
21
,
182
,
128
,
128
,
0
,
91
,
96
,
99
,
9
,
91
,
216
,
166
,
36
,
250
,
217
,
64
,
169
,
144
,
76
,
102
,
71
,
102
,
34
,
9
,
219
,
100
,
54
,
78
,
158
,
60
,
197
,
100
,
50
,
101
,
97
,
113
,
140
,
84
,
216
,
92
,
96
,
34
,
192
,
18
,
182
,
152
,
179
,
140
,
44
,
140
,
137
,
12
,
84
,
69
,
149
,
168
,
42
,
134
,
128
,
110
,
60
,
222
,
158
,
153
,
87
,
3
,
71
,
184
,
140
,
228
,
50
,
126
,
240
,
83
,
159
,
96
,
235
,
230
,
141
,
140
,
23
,
198
,
31
,
30
,
250
,
126
,
107
,
213
,
0
,
4
,
146
,
144
,
10
,
187
,
176
,
11
,
91
,
204
,
85
,
21
,
182
,
169
,
234
,
177
,
6
,
108
,
33
,
21
,
200
,
28
,
57
,
116
,
144
,
95
,
255
,
231
,
255
,
156
,
47
,
124
,
225
,
139
,
236
,
59
,
240
,
58
,
167
,
166
,
167
,
89
,
141
,
21
,
190
,
241
,
220
,
147
,
252
,
198
,
111
,
254
,
6
,
171
,
171
,
171
,
88
,
198
,
18
,
150
,
128
,
32
,
50
,
104
,
93
,
71
,
102
,
98
,
27
,
91
,
216
,
197
,
234
,
234
,
121
,
134
,
26
,
136
,
81
,
114
,
199
,
125
,
119
,
242
,
209
,
135
,
63
,
198
,
13
,
55
,
220
,
194
,
109
,
247
,
220
,
206
,
134
,
157
,
235
,
25
,
106
,
224
,
248
,
137
,
147
,
252
,
209
,
23
,
190
,
200
,
222
,
189
,
123
,
177
,
140
,
84
,
216
,
198
,
54
,
82
,
97
,
21
,
150
,
168
,
18
,
146
,
32
,
2
,
108
,
102
,
179
,
25
,
173
,
53
,
34
,
130
,
170
,
66
,
18
,
153
,
137
,
109
,
90
,
75
,
86
,
86
,
86
,
153
,
76
,
103
,
128
,
177
,
132
,
85
,
84
,
21
,
118
,
81
,
26
,
48
,
2
,
12
,
22
,
152
,
139
,
102
,
211
,
41
,
6
,
36
,
49
,
235
,
123
,
6
,
9
,
73
,
27
,
171
,
106
,
183
,
36
,
46
,
39
,
185
,
12
,
219
,
188
,
126
,
248
,
248
,
82
,
68
,
190
,
123
,
54
,
155
,
49
,
157
,
78
,
121
,
139
,
109
,
170
,
10
,
219
,
72
,
194
,
54
,
16
,
128
,
33
,
12
,
97
,
164
,
30
,
44
,
206
,
156
,
62
,
197
,
191
,
250
,
173
,
207
,
242
,
229
,
199
,
190
,
194
,
145
,
19
,
199
,
89
,
220
,
182
,
196
,
109
,
15
,
189
,
139
,
59
,
31
,
186
,
135
,
93
,
55
,
93
,
201
,
87
,
158
,
248
,
99
,
246
,
238
,
125
,
22
,
34
,
144
,
196
,
48
,
12
,
16
,
208
,
181
,
70
,
70
,
50
,
234
,
58
,
186
,
174
,
67
,
18
,
182
,
105
,
173
,
209
,
117
,
29
,
163
,
197
,
17
,
91
,
55
,
110
,
99
,
247
,
230
,
107
,
57
,
245
,
250
,
73
,
22
,
218
,
2
,
155
,
182
,
110
,
196
,
36
,
125
,
63
,
112
,
232
,
232
,
81
,
30
,
251
,
242
,
99
,
156
,
57
,
125
,
138
,
57
,
73
,
72
,
133
,
36
,
108
,
35
,
137
,
57
,
27
,
176
,
233
,
251
,
129
,
149
,
213
,
21
,
130
,
160
,
235
,
58
,
34
,
2
,
219
,
68
,
4
,
182
,
177
,
205
,
48
,
12
,
172
,
172
,
172
,
128
,
193
,
22
,
178
,
80
,
21
,
85
,
198
,
6
,
219
,
72
,
194
,
152
,
204
,
196
,
130
,
149
,
149
,
85
,
44
,
97
,
9
,
219
,
216
,
198
,
246
,
66
,
68
,
236
,
204
,
12
,
238
,
184
,
253
,
86
,
222
,
46
,
185
,
140
,
22
,
201
,
66
,
215
,
109
,
25
,
117
,
163
,
91
,
170
,
138
,
213
,
149
,
85
,
134
,
161
,
71
,
42
,
170
,
10
,
73
,
216
,
32
,
137
,
170
,
98
,
24
,
122
,
164
,
194
,
22
,
146
,
24
,
106
,
96
,
152
,
205
,
248
,
234
,
87
,
190
,
204
,
99
,
143
,
125
,
133
,
227
,
111
,
158
,
34
,
70
,
112
,
195
,
237
,
55
,
241
,
137
,
135
,
63
,
201
,
117
,
219
,
111
,
96
,
195
,
120
,
19
,
238
,
204
,
87
,
190
,
242
,
37
,
166
,
147
,
53
,
164
,
98
,
46
,
51
,
105
,
109
,
68
,
215
,
117
,
100
,
54
,
34
,
130
,
185
,
42
,
177
,
115
,
199
,
118
,
182
,
109
,
221
,
68
,
20
,
60
,
245
,
196
,
83
,
252
,
247
,
255
,
228
,
159
,
240
,
248
,
19
,
95
,
231
,
141
,
131
,
7
,
56
,
127
,
102
,
5
,
44
,
108
,
51
,
89
,
235
,
217
,
183
,
239
,
85
,
94
,
126
,
233
,
101
,
192
,
96
,
97
,
21
,
72
,
216
,
6
,
11
,
169
,
8
,
32
,
34
,
56
,
123
,
238
,
28
,
43
,
231
,
87
,
137
,
12
,
50
,
147
,
204
,
32
,
34
,
136
,
8
,
70
,
163
,
17
,
17
,
129
,
108
,
134
,
190
,
71
,
18
,
230
,
2
,
155
,
136
,
0
,
12
,
152
,
32
,
152
,
179
,
77
,
4
,
204
,
102
,
61
,
231
,
206
,
173
,
80
,
18
,
37
,
1
,
70
,
50
,
146
,
136
,
136
,
45
,
139
,
139
,
75
,
128
,
121
,
187
,
228
,
50
,
50
,
147
,
214
,
186
,
43
,
91
,
230
,
214
,
201
,
218
,
132
,
179
,
231
,
206
,
97
,
23
,
85
,
61
,
85
,
3
,
182
,
169
,
42
,
84
,
133
,
36
,
36
,
161
,
18
,
42
,
83
,
37
,
112
,
112
,
228
,
216
,
17
,
254
,
237
,
151
,
31
,
227
,
240
,
145
,
99
,
244
,
253
,
64
,
118
,
29
,
145
,
240
,
252
,
222
,
23
,
57
,
248
,
202
,
33
,
78
,
188
,
113
,
2
,
15
,
226
,
245
,
215
,
95
,
229
,
220
,
217
,
211
,
168
,
138
,
136
,
0
,
130
,
136
,
32
,
72
,
130
,
164
,
101
,
71
,
70
,
99
,
24
,
6
,
110
,
190
,
229
,
22
,
30
,
254
,
190
,
135
,
89
,
236
,
22
,
57
,
119
,
234
,
44
,
125
,
78
,
217
,
184
,
115
,
153
,
55
,
143
,
188
,
201
,
153
,
35
,
103
,
120
,
75
,
73
,
156
,
61
,
187
,
194
,
190
,
125
,
251
,
25
,
102
,
83
,
194
,
194
,
26
,
176
,
132
,
101
,
176
,
176
,
197
,
92
,
100
,
114
,
234
,
228
,
105
,
166
,
147
,
25
,
173
,
117
,
216
,
32
,
153
,
204
,
36
,
34
,
136
,
8
,
50
,
147
,
140
,
128
,
0
,
169
,
176
,
5
,
1
,
132
,
137
,
0
,
12
,
4
,
151
,
68
,
16
,
145
,
156
,
59
,
191
,
194
,
202
,
234
,
20
,
3
,
178
,
40
,
11
,
169
,
168
,
42
,
134
,
161
,
182
,
92
,
125
,
213
,
46
,
170
,
196
,
219
,
117
,
92
,
86
,
96
,
188
,
35
,
34
,
150
,
135
,
26
,
56
,
126
,
236
,
56
,
183
,
220
,
114
,
35
,
153
,
73
,
4
,
12
,
67
,
79
,
102
,
16
,
209
,
48
,
102
,
212
,
141
,
48
,
194
,
6
,
27
,
236
,
224
,
185
,
189
,
207
,
240
,
210
,
43
,
175
,
176
,
186
,
54
,
1
,
139
,
217
,
234
,
148
,
253
,
47
,
191
,
202
,
243
,
123
,
95
,
228
,
232
,
254
,
35
,
140
,
23
,
199
,
108
,
221
,
180
,
153
,
171
,
175
,
186
,
134
,
241
,
226
,
34
,
165
,
129
,
116
,
71
,
70
,
48
,
151
,
153
,
216
,
6
,
76
,
182
,
196
,
54
,
24
,
62
,
240
,
190
,
247
,
243
,
218
,
254
,
3
,
252
,
206
,
231
,
126
,
159
,
129
,
162
,
95
,
233
,
169
,
89
,
193
,
192
,
5
,
1
,
8
,
28
,
244
,
125
,
241
,
230
,
137
,
147
,
172
,
173
,
173
,
177
,
184
,
184
,
136
,
205
,
69
,
182
,
144
,
204
,
37
,
6
,
7
,
135
,
14
,
29
,
161
,
170
,
176
,
133
,
84
,
204
,
217
,
38
,
34
,
152
,
107
,
173
,
163
,
27
,
117
,
188
,
69
,
18
,
115
,
182
,
129
,
192
,
54
,
182
,
201
,
72
,
140
,
48
,
230
,
212
,
201
,
83
,
172
,
156
,
95
,
193
,
6
,
73
,
72
,
66
,
18
,
150
,
32
,
98
,
116
,
231
,
29
,
215
,
243
,
228
,
55
,
158
,
230
,
237
,
146
,
203
,
48
,
6
,
123
,
83
,
85
,
45
,
16
,
193
,
241
,
227
,
199
,
25
,
134
,
162
,
170
,
144
,
10
,
169
,
176
,
65
,
18
,
146
,
40
,
21
,
146
,
40
,
21
,
178
,
88
,
89
,
89
,
225
,
185
,
103
,
159
,
227
,
212
,
169
,
51
,
148
,
4
,
4
,
158
,
193
,
155
,
7
,
78
,
226
,
126
,
96
,
231
,
238
,
109
,
44
,
46
,
45
,
178
,
97
,
113
,
35
,
31
,
250
,
208
,
135
,
25
,
141
,
58
,
36
,
129
,
33
,
34
,
136
,
8
,
34
,
130
,
174
,
235
,
152
,
179
,
13
,
152
,
89
,
63
,
37
,
187
,
224
,
227
,
159
,
120
,
152
,
59
,
239
,
184
,
149
,
24
,
96
,
88
,
27
,
176
,
192
,
24
,
48
,
16
,
204
,
5
,
48
,
235
,
167
,
76
,
167
,
83
,
84
,
133
,
37
,
84
,
3
,
85
,
133
,
45
,
108
,
97
,
204
,
234
,
218
,
132
,
3
,
7
,
14
,
146
,
153
,
216
,
102
,
46
,
2
,
36
,
81
,
85
,
12
,
195
,
128
,
36
,
48
,
96
,
99
,
192
,
50
,
54
,
68
,
4
,
96
,
34
,
130
,
140
,
68
,
18
,
17
,
65
,
68
,
112
,
228
,
232
,
113
,
166
,
179
,
25
,
115
,
54
,
88
,
198
,
54
,
54
,
248
,
130
,
233
,
84
,
216
,
230
,
237
,
146
,
203
,
49
,
16
,
44
,
218
,
110
,
92
,
112
,
242
,
228
,
105
,
206
,
157
,
91
,
193
,
134
,
97
,
24
,
144
,
140
,
45
,
192
,
72
,
162
,
170
,
24
,
106
,
160
,
159
,
13
,
212
,
32
,
206
,
156
,
57
,
195
,
129
,
55
,
14
,
49
,
153
,
204
,
128
,
192
,
4
,
118
,
160
,
85
,
56
,
119
,
104
,
149
,
115
,
135
,
87
,
153
,
157
,
238
,
185
,
255
,
158
,
251
,
216
,
189
,
251
,
106
,
134
,
217
,
0
,
6
,
219
,
216
,
38
,
35
,
136
,
8
,
192
,
68
,
4
,
17
,
80
,
26
,
168
,
26
,
232
,
251
,
158
,
205
,
155
,
55
,
241
,
131
,
63
,
248
,
8
,
123
,
246
,
92
,
205
,
120
,
212
,
8
,
243
,
103
,
204
,
92
,
182
,
100
,
97
,
97
,
204
,
210
,
210
,
34
,
45
,
27
,
37
,
81
,
42
,
228
,
194
,
42
,
130
,
32
,
8
,
50
,
147
,
195
,
71
,
143
,
113
,
224
,
141
,
35
,
188
,
37
,
51
,
201
,
108
,
100
,
38
,
223
,
100
,
250
,
190
,
71
,
50
,
146
,
48
,
6
,
140
,
100
,
44
,
19
,
17
,
200
,
66
,
22
,
65
,
82
,
130
,
3
,
7
,
14
,
33
,
25
,
8
,
230
,
36
,
83
,
37
,
100
,
35
,
41
,
86
,
87
,
2
,
91
,
188
,
93
,
114
,
25
,
14
,
99
,
46
,
8
,
192
,
112
,
250
,
244
,
105
,
14
,
31
,
62
,
140
,
84
,
216
,
92
,
96
,
134
,
97
,
160
,
170
,
176
,
11
,
187
,
176
,
11
,
185
,
48
,
197
,
233
,
51
,
167
,
57
,
123
,
230
,
44
,
85
,
133
,
13
,
182
,
177
,
205
,
156
,
21
,
184
,
96
,
121
,
121
,
29
,
239
,
125
,
223
,
187
,
105
,
45
,
24
,
212
,
51
,
212
,
0
,
54
,
182
,
169
,
18
,
85
,
133
,
108
,
130
,
192
,
54
,
17
,
129
,
45
,
250
,
126
,
198
,
116
,
58
,
225
,
218
,
107
,
119
,
243
,
3
,
159
,
248
,
40
,
215
,
237
,
217
,
205
,
198
,
13
,
203
,
44
,
140
,
71
,
116
,
173
,
49
,
30
,
117
,
172
,
95
,
183
,
196
,
230
,
77
,
235
,
217
,
185
,
99
,
27
,
163
,
209
,
152
,
42
,
33
,
9
,
201
,
24
,
48
,
38
,
34
,
176
,
205
,
179
,
123
,
95
,
100
,
50
,
153
,
162
,
18
,
153
,
13
,
155
,
139
,
34
,
130
,
57
,
219
,
216
,
198
,
54
,
198
,
204
,
89
,
102
,
206
,
22
,
145
,
129
,
44
,
50
,
146
,
204
,
68
,
50
,
43
,
231
,
215
,
120
,
227
,
141
,
67
,
72
,
66
,
18
,
182
,
193
,
198
,
54
,
182
,
176
,
209
,
234
,
116
,
130
,
109
,
222
,
174
,
227
,
114
,
12
,
97
,
144
,
68
,
107
,
73
,
245
,
197
,
171
,
251
,
95
,
229
,
250
,
235
,
247
,
208
,
117
,
141
,
8
,
144
,
76
,
215
,
113
,
129
,
145
,
68
,
102
,
146
,
153
,
72
,
48
,
157
,
174
,
49
,
155
,
205
,
176
,
205
,
37
,
193
,
156
,
109
,
230
,
108
,
115
,
195
,
13
,
215
,
115
,
195
,
13
,
215
,
209
,
15
,
61
,
182
,
201
,
12
,
140
,
1
,
67
,
0
,
1
,
65
,
64
,
152
,
136
,
96
,
78
,
18
,
85
,
3
,
195
,
208
,
35
,
137
,
219
,
239
,
184
,
141
,
8
,
248
,
250
,
227
,
79
,
112
,
236
,
248
,
9
,
38
,
107
,
83
,
34
,
96
,
221
,
210
,
18
,
187
,
118
,
109
,
231
,
198
,
27
,
111
,
32
,
2
,
36
,
161
,
42
,
164
,
98
,
206
,
152
,
108
,
201
,
177
,
99
,
111
,
242
,
252
,
243
,
47
,
19
,
36
,
173
,
5
,
174
,
129
,
8
,
144
,
132
,
109
,
108
,
19
,
17
,
216
,
134
,
224
,
207
,
152
,
136
,
192
,
134
,
136
,
224
,
34
,
131
,
49
,
17
,
65
,
100
,
227
,
196
,
137
,
55
,
57
,
122
,
244
,
4
,
153
,
9
,
24
,
219
,
204
,
101
,
6
,
182
,
177
,
125
,
230
,
137
,
39
,
255
,
4
,
203
,
188
,
93
,
199
,
101
,
132
,
184
,
72
,
37
,
164
,
194
,
14
,
246
,
239
,
127
,
141
,
123
,
78
,
158
,
100
,
219
,
182
,
45
,
216
,
38
,
2
,
164
,
192
,
54
,
153
,
137
,
13
,
146
,
1
,
179
,
176
,
176
,
64
,
107
,
73
,
70
,
80
,
46
,
32
,
136
,
8
,
230
,
194
,
176
,
176
,
48
,
230
,
221
,
15
,
221
,
207
,
186
,
117
,
235
,
24
,
134
,
129
,
139
,
28
,
212
,
208
,
83
,
53
,
166
,
181
,
129
,
140
,
6
,
153
,
72
,
194
,
54
,
115
,
153
,
73
,
85
,
49
,
212
,
128
,
52
,
144
,
4
,
183
,
223
,
118
,
11
,
219
,
183
,
109
,
225
,
181
,
87
,
95
,
227
,
212
,
169
,
147
,
148
,
196
,
250
,
245
,
235
,
185
,
118
,
207
,
53
,
92
,
125
,
205
,
85
,
72
,
61
,
182
,
136
,
4
,
156
,
96
,
46
,
16
,
67
,
153
,
175
,
125
,
253
,
105
,
206
,
156
,
57
,
71
,
4
,
32
,
8
,
131
,
37
,
108
,
19
,
17
,
68
,
4
,
17
,
65
,
102
,
146
,
153
,
88
,
98
,
46
,
50
,
80
,
137
,
200
,
192
,
134
,
200
,
192
,
54
,
150
,
201
,
113
,
240
,
210
,
43
,
251
,
57
,
119
,
126
,
133
,
136
,
68
,
50
,
173
,
129
,
109
,
170
,
68
,
132
,
80
,
213
,
217
,
51
,
167
,
207
,
98
,
155
,
183
,
235
,
184
,
44
,
99
,
3
,
1
,
25
,
193
,
80
,
197
,
241
,
227
,
39
,
121
,
118
,
239
,
243
,
124
,
207
,
7
,
223
,
139
,
84
,
124
,
83
,
210
,
154
,
169
,
42
,
90
,
107
,
216
,
102
,
211
,
198
,
141
,
108
,
219
,
190
,
149
,
215
,
14
,
28
,
164
,
175
,
1
,
108
,
36
,
136
,
128
,
209
,
168
,
113
,
195
,
13
,
123
,
120
,
224
,
254
,
251
,
1
,
35
,
9
,
219
,
68
,
4
,
82
,
33
,
21
,
195
,
80
,
100
,
152
,
200
,
100
,
46
,
34
,
136
,
8
,
50
,
19
,
219
,
168
,
138
,
161
,
6
,
40
,
211
,
50
,
217
,
190
,
99
,
59
,
219
,
183
,
111
,
99
,
168
,
1
,
219
,
180
,
214
,
145
,
25
,
88
,
133
,
36
,
108
,
99
,
27
,
155
,
139
,
50
,
130
,
151
,
247
,
189
,
206
,
51
,
79
,
63
,
135
,
109
,
8
,
232
,
85
,
72
,
98
,
46
,
34
,
152
,
139
,
8
,
108
,
115
,
145
,
161
,
36
,
36
,
33
,
153
,
200
,
32
,
8
,
100
,
1
,
193
,
69
,
1
,
179
,
89
,
207
,
222
,
189
,
47
,
32
,
153
,
174
,
131
,
204
,
64
,
18
,
182
,
177
,
132
,
36
,
151
,
244
,
166
,
44
,
94
,
125
,
253
,
13
,
222
,
46
,
185
,
12
,
217
,
216
,
194
,
50
,
17
,
129
,
36
,
50
,
131
,
103
,
158
,
121
,
150
,
163
,
71
,
143
,
99
,
27
,
73
,
84
,
9
,
169
,
24
,
134
,
1
,
91
,
72
,
98
,
24
,
138
,
165
,
165
,
37
,
222
,
243
,
158
,
247
,
176
,
121
,
243
,
38
,
90
,
38
,
4
,
180
,
46
,
89
,
92
,
90
,
96
,
215
,
149
,
59
,
249
,
232
,
199
,
30
,
102
,
215
,
149
,
87
,
48
,
12
,
3
,
85
,
3
,
195
,
48
,
80
,
53
,
32
,
23
,
170
,
194
,
22
,
146
,
81
,
9
,
201
,
24
,
147
,
145
,
72
,
34
,
34
,
176
,
141
,
74
,
12
,
195
,
64
,
63
,
12
,
12
,
195
,
64
,
97
,
218
,
104
,
196
,
104
,
97
,
129
,
236
,
26
,
146
,
40
,
21
,
182
,
193
,
32
,
153
,
8
,
147
,
25
,
156
,
58
,
117
,
150
,
127
,
251
,
197
,
175
,
194
,
196
,
203
,
222
,
0
,
0
,
32
,
0
,
73
,
68
,
65
,
84
,
48
,
153
,
204
,
192
,
129
,
10
,
178
,
53
,
200
,
32
,
91
,
35
,
34
,
168
,
42
,
190
,
41
,
144
,
68
,
63
,
155
,
17
,
4
,
216
,
216
,
134
,
128
,
32
,
192
,
96
,
155
,
214
,
26
,
135
,
14
,
29
,
101
,
255
,
190
,
215
,
201
,
72
,
34
,
130
,
185
,
136
,
64
,
18
,
6
,
50
,
98
,
5
,
124
,
156
,
119
,
208
,
113
,
25
,
150
,
145
,
189
,
58
,
194
,
131
,
236
,
142
,
11
,
50
,
147
,
179
,
103
,
207
,
243
,
199
,
127
,
252
,
85
,
62
,
254
,
241
,
135
,
89
,
92
,
92
,
4
,
140
,
36
,
34
,
2
,
48
,
54
,
23
,
4
,
153
,
201
,
3
,
15
,
61
,
64
,
180
,
228
,
171
,
127
,
242
,
56
,
7
,
222
,
56
,
192
,
208
,
247
,
236
,
220
,
185
,
131
,
247
,
127
,
224
,
189
,
188
,
251
,
221
,
15
,
32
,
13
,
216
,
198
,
54
,
17
,
193
,
48
,
64
,
63
,
43
,
70
,
157
,
104
,
77
,
68
,
64
,
102
,
34
,
9
,
149
,
32
,
160
,
181
,
164
,
69
,
16
,
54
,
97
,
46
,
178
,
132
,
128
,
4
,
108
,
48
,
16
,
97
,
108
,
161
,
18
,
178
,
137
,
8
,
34
,
128
,
8
,
206
,
173
,
174
,
242
,
249
,
63
,
250
,
18
,
135
,
14
,
31
,
35
,
34
,
32
,
32
,
19
,
100
,
147
,
17
,
244
,
85
,
216
,
69
,
132
,
0
,
49
,
39
,
21
,
195
,
32
,
250
,
161
,
144
,
5
,
17
,
68
,
128
,
36
,
50
,
18
,
27
,
50
,
3
,
8
,
158
,
120
,
226
,
25
,
78
,
159
,
57
,
71
,
107
,
13
,
27
,
36
,
17
,
209
,
32
,
184
,
168
,
164
,
21
,
201
,
71
,
9
,
115
,
57
,
29
,
151
,
97
,
11
,
236
,
73
,
16
,
195
,
208
,
247
,
157
,
36
,
136
,
100
,
238
,
133
,
231
,
95
,
226
,
170
,
43
,
175
,
224
,
129
,
7
,
239
,
67
,
226
,
162
,
136
,
192
,
54
,
146
,
200
,
76
,
32
,
137
,
8
,
30
,
122
,
247
,
131
,
220
,
115
,
207
,
221
,
156
,
58
,
121
,
146
,
126
,
232
,
89
,
183
,
110
,
29
,
219
,
182
,
109
,
165
,
181
,
198
,
48
,
20
,
96
,
108
,
19
,
17
,
128
,
169
,
234
,
169
,
234
,
169
,
161
,
145
,
217
,
40
,
21
,
150
,
176
,
197
,
92
,
70
,
35
,
51
,
201
,
76
,
50
,
2
,
1
,
6
,
74
,
194
,
24
,
59
,
200
,
108
,
88
,
162
,
84
,
216
,
230
,
18
,
19
,
1
,
231
,
206
,
175
,
241
,
232
,
23
,
255
,
152
,
151
,
95
,
218
,
71
,
68
,
32
,
21
,
85
,
3
,
146
,
128
,
64
,
18
,
153
,
9
,
85
,
100
,
54
,
36
,
19
,
17
,
100
,
38
,
4
,
96
,
46
,
138
,
128
,
32
,
152
,
51
,
16
,
1
,
153
,
201
,
137
,
55
,
79
,
243
,
248
,
227
,
79
,
98
,
27
,
219
,
204
,
101
,
6
,
115
,
54
,
72
,
2
,
251
,
84
,
223
,
247
,
199
,
34
,
184
,
172
,
142
,
203
,
176
,
141
,
237
,
53
,
225
,
33
,
91
,
35
,
29
,
24
,
136
,
8
,
250
,
94
,
60
,
246
,
216
,
87
,
89
,
94
,
191
,
142
,
91
,
110
,
185
,
153
,
136
,
96
,
206
,
22
,
6
,
44
,
33
,
7
,
65
,
195
,
54
,
173
,
5
,
59
,
175
,
216
,
78
,
68
,
96
,
7
,
85
,
162
,
74
,
100
,
6
,
182
,
121
,
75
,
132
,
25
,
106
,
160
,
52
,
80
,
53
,
96
,
139
,
104
,
201
,
48
,
12
,
244
,
179
,
158
,
190
,
31
,
144
,
0
,
7
,
56
,
48
,
23
,
68
,
128
,
141
,
37
,
132
,
177
,
19
,
48
,
182
,
145
,
196
,
92
,
4
,
16
,
201
,
177
,
99
,
111
,
242
,
232
,
23
,
255
,
152
,
87
,
95
,
61
,
8
,
52
,
170
,
122
,
108
,
147
,
153
,
64
,
32
,
9
,
219
,
24
,
51
,
87
,
85
,
188
,
69
,
18
,
227
,
81
,
71
,
100
,
16
,
17
,
216
,
38
,
51
,
144
,
64
,
22
,
38
,
176
,
197
,
215
,
30
,
127
,
146
,
131
,
7
,
143
,
16
,
17
,
216
,
38
,
34
,
136
,
8
,
32
,
152
,
139
,
8
,
100
,
191
,
90
,
85
,
231
,
50
,
147
,
203
,
233
,
184
,
140
,
194
,
24
,
175
,
150
,
220
,
119
,
93
,
7
,
97
,
134
,
190
,
199
,
230
,
2
,
115
,
238
,
236
,
10
,
159
,
251
,
189
,
63
,
164
,
74
,
220
,
118
,
219
,
45
,
24
,
145
,
110
,
4
,
16
,
153
,
68
,
4
,
25
,
32
,
21
,
115
,
17
,
65
,
68
,
48
,
103
,
155
,
136
,
64
,
10
,
34
,
130
,
57
,
219
,
68
,
36
,
85
,
197
,
202
,
249
,
21
,
78
,
245
,
103
,
57
,
191
,
178
,
202
,
249
,
243
,
231
,
89
,
89
,
89
,
101
,
58
,
153
,
34
,
137
,
204
,
100
,
212
,
53
,
198
,
227
,
96
,
52
,
78
,
34
,
6
,
108
,
97
,
10
,
28
,
128
,
169
,
18
,
96
,
34
,
146
,
136
,
100
,
117
,
50
,
229
,
229
,
151
,
94
,
228
,
169
,
111
,
236
,
229
,
216
,
241
,
147
,
212
,
32
,
100
,
83
,
37
,
36
,
19
,
145
,
192
,
128
,
36
,
136
,
0
,
67
,
102
,
3
,
68
,
213
,
128
,
109
,
230
,
100
,
131
,
33
,
2
,
236
,
160
,
100
,
34
,
0
,
65
,
100
,
112
,
226
,
196
,
105
,
30
,
125
,
244
,
49
,
134
,
161
,
232
,
186
,
17
,
111
,
169
,
18
,
173
,
5
,
184
,
17
,
36
,
114
,
61
,
127
,
227
,
181
,
55
,
173
,
236
,
123
,
99
,
31
,
151
,
211
,
113
,
25
,
178
,
177
,
125
,
182
,
164
,
105
,
200
,
12
,
253
,
64
,
149
,
176
,
197
,
48
,
12
,
216
,
112
,
252
,
248
,
73
,
126
,
235
,
179
,
191
,
203
,
185
,
115
,
231
,
185
,
251
,
158
,
59
,
24
,
141
,
70
,
204
,
133
,
130
,
204
,
134
,
195
,
204
,
69
,
36
,
32
,
34
,
130
,
185
,
136
,
192
,
134
,
8
,
243
,
22
,
201
,
128
,
120
,
243
,
196
,
97
,
14
,
31
,
62
,
206
,
155
,
39
,
79
,
113
,
230
,
204
,
89
,
214
,
214
,
214
,
152
,
205
,
102
,
72
,
34
,
51
,
25
,
143
,
199
,
44
,
46
,
45
,
177
,
113
,
253
,
50
,
187
,
119
,
111
,
99
,
243
,
166
,
69
,
2
,
136
,
8
,
46
,
49
,
17
,
9
,
209
,
88
,
89
,
89
,
227
,
224
,
27
,
135
,
120
,
102
,
239
,
11
,
28
,
58
,
124
,
148
,
26
,
138
,
97
,
40
,
8
,
192
,
38
,
51
,
145
,
138
,
185
,
190
,
31
,
176
,
69
,
16
,
152
,
192
,
54
,
153
,
137
,
36
,
108
,
99
,
155
,
170
,
194
,
54
,
24
,
164
,
34
,
8
,
34
,
147
,
108
,
13
,
1
,
127
,
248
,
135
,
95
,
226
,
245
,
215
,
14
,
67
,
36
,
182
,
137
,
8
,
46
,
49
,
182
,
137
,
8
,
36
,
203
,
142
,
103
,
143
,
28
,
63
,
202
,
209
,
163
,
199
,
185
,
156
,
142
,
203
,
144
,
10
,
73
,
103
,
236
,
209
,
164
,
170
,
40
,
137
,
170
,
129
,
136
,
36
,
34
,
8
,
32
,
51
,
56
,
119
,
110
,
133
,
223
,
251
,
189
,
207
,
115
,
244
,
232
,
49
,
222
,
243
,
158
,
7
,
217
,
186
,
109
,
11
,
182
,
176
,
193
,
97
,
230
,
34
,
132
,
13
,
17
,
16
,
17
,
68
,
4
,
17
,
193
,
156
,
13
,
182
,
152
,
59
,
117
,
250
,
60
,
123
,
159
,
121
,
153
,
227
,
199
,
223
,
228
,
204
,
153
,
83
,
156
,
59
,
119
,
158
,
213
,
213
,
85
,
250
,
190
,
199
,
54
,
151
,
4
,
27
,
54
,
108
,
96
,
219
,
150
,
205
,
172
,
223
,
208
,
177
,
101
,
243
,
18
,
198
,
204
,
69
,
36
,
231
,
207
,
175
,
113
,
252
,
216
,
155
,
188
,
113
,
248
,
8
,
175
,
189
,
250
,
58
,
167
,
78
,
157
,
161
,
202
,
116
,
93
,
135
,
29
,
100
,
38
,
150
,
17
,
66
,
18
,
96
,
44
,
97
,
11
,
8
,
34
,
2
,
169
,
176
,
185
,
40
,
51
,
177
,
205
,
92
,
70
,
64
,
0
,
17
,
64
,
16
,
153
,
148
,
138
,
209
,
104
,
204
,
51
,
207
,
60
,
207
,
31
,
253
,
209
,
151
,
33
,
18
,
34
,
152
,
139
,
8
,
230
,
34
,
146
,
204
,
100
,
78
,
82
,
95
,
85
,
175
,
172
,
13
,
3
,
239
,
164
,
227
,
50
,
60
,
8
,
171
,
86
,
145
,
78
,
87
,
137
,
214
,
18
,
169
,
97
,
139
,
57
,
89
,
180
,
214
,
33
,
153
,
97
,
86
,
60
,
246
,
229
,
175
,
241
,
242
,
75
,
251
,
121
,
255
,
251
,
30
,
226
,
182
,
219
,
111
,
102
,
253
,
250
,
117
,
148
,
5
,
1
,
4
,
23
,
152
,
185
,
204
,
164
,
69
,
195
,
54
,
182
,
113
,
128
,
129
,
32
,
56
,
123
,
246
,
44
,
175
,
31
,
120
,
157
,
195
,
135
,
142
,
114
,
232
,
208
,
65
,
250
,
126
,
32
,
2
,
140
,
152
,
77
,
123
,
78
,
156
,
56
,
65
,
75
,
184
,
239
,
222
,
187
,
185
,
246
,
158
,
155
,
185
,
98
,
199
,
22
,
44
,
19
,
17
,
180
,
214
,
120
,
241
,
165
,
215
,
248
,
252
,
191
,
249
,
34
,
167
,
78
,
157
,
166
,
4
,
153
,
73
,
107
,
73
,
68
,
146
,
145
,
200
,
34
,
34
,
24
,
84
,
188
,
165
,
101
,
67
,
37
,
186
,
110
,
68
,
85
,
81
,
42
,
36
,
49
,
12
,
34
,
34
,
200
,
76
,
134
,
97
,
64
,
50
,
221
,
66
,
199
,
210
,
226
,
24
,
91
,
100
,
4
,
115
,
153
,
141
,
195
,
71
,
79
,
240
,
155
,
255
,
231
,
191
,
226
,
236
,
217
,
85
,
50
,
19
,
219
,
204
,
217
,
38
,
51
,
185
,
196
,
68
,
6
,
17
,
76
,
92
,
58
,
103
,
204
,
59
,
233
,
184
,
12
,
169
,
168
,
170
,
169
,
170
,
142
,
141
,
198
,
99
,
196
,
55
,
85
,
21
,
125
,
223
,
19
,
17
,
68
,
4
,
198
,
84
,
137
,
3
,
7
,
14
,
241
,
47
,
14
,
255
,
54
,
187
,
119
,
95
,
201
,
61
,
247
,
220
,
193
,
173
,
183
,
220
,
204
,
150
,
173
,
155
,
232
,
186
,
134
,
44
,
34
,
18
,
75
,
252
,
223
,
213
,
193
,
91
,
240
,
231
,
247
,
125
,
223
,
245
,
231
,
235
,
253
,
254
,
252
,
254
,
199
,
213
,
238
,
234
,
96
,
157
,
173
,
147
,
79
,
137
,
92
,
199
,
78
,
161
,
101
,
154
,
50
,
147
,
146
,
25
,
66
,
153
,
41
,
229
,
152
,
97
,
114
,
65
,
153
,
97
,
166
,
189
,
229
,
146
,
43
,
110
,
24
,
46
,
152
,
1
,
238
,
128
,
14
,
195
,
5
,
164
,
153
,
0
,
197
,
197
,
83
,
26
,
55
,
208
,
184
,
57
,
214
,
137
,
237
,
38
,
150
,
101
,
71
,
138
,
117
,
176
,
180
,
90
,
89
,
210
,
106
,
87
,
218
,
243
,
254
,
79
,
191
,
239
,
231
,
253
,
126
,
177
,
63
,
41
,
10
,
30
,
198
,
146
,
108
,
147
,
148
,
244
,
241
,
88
,
92
,
72
,
194
,
221
,
72
,
66
,
136
,
182
,
185
,
251
,
206
,
59
,
120
,
226
,
177
,
135
,
184
,
117
,
227
,
58
,
135
,
7
,
55
,
184
,
120
,
233
,
45
,
118
,
118
,
246
,
56
,
123
,
246
,
12
,
203
,
178
,
240
,
224
,
67
,
31
,
225
,
95
,
249
,
233
,
191
,
196
,
103
,
62
,
253
,
41
,
238
,
190
,
231
,
110
,
70
,
6
,
221
,
69
,
100
,
112
,
245
,
234
,
77
,
190
,
244
,
171
,
191
,
197
,
235
,
111
,
92
,
100
,
123
,
123
,
133
,
36
,
64
,
72
,
193
,
200
,
4
,
9
,
33
,
108
,
3
,
166
,
102
,
177
,
209
,
110
,
218
,
6
,
140
,
221
,
204
,
57
,
217
,
144
,
68
,
85
,
81
,
85
,
188
,
39
,
34
,
216
,
221
,
219
,
5
,
27
,
99
,
66
,
201
,
173
,
131
,
35
,
254
,
247
,
191
,
247
,
69
,
94
,
120
,
241
,
28
,
82
,
34
,
9
,
73
,
188
,
199
,
54
,
146
,
216
,
176
,
27
,
155
,
19
,
211
,
39
,
182
,
121
,
63
,
131
,
247
,
113
,
243
,
230
,
225
,
209
,
222
,
222
,
238
,
69
,
4
,
53
,
27
,
108
,
64
,
68
,
4
,
153
,
73
,
85
,
1
,
162
,
170
,
145
,
132
,
109
,
142
,
79
,
78
,
120
,
241
,
197
,
115
,
188
,
248
,
226
,
75
,
220
,
117
,
247
,
157
,
60
,
242
,
200
,
195
,
60
,
246
,
216
,
35
,
60
,
112
,
223
,
125
,
220
,
121
,
215
,
89
,
118
,
118
,
86
,
172
,
198
,
32
,
51
,
201
,
76
,
66
,
162
,
108
,
108
,
179
,
26
,
193
,
103
,
63
,
251
,
41
,
62
,
246
,
177
,
135
,
249
,
169
,
191
,
244
,
19
,
60
,
255
,
194
,
139
,
124
,
243
,
155
,
207
,
241
,
246
,
229
,
235
,
220
,
127
,
255
,
93
,
252
,
244
,
79
,
255
,
11
,
60
,
252
,
224
,
253
,
40
,
205
,
156
,
107
,
114
,
236
,
160
,
16
,
54
,
60
,
253
,
141
,
103
,
120
,
243
,
205
,
75
,
140
,
76
,
108
,
147
,
153
,
72
,
162
,
187
,
209
,
106
,
240
,
46
,
209
,
221
,
72
,
65
,
68
,
96
,
160
,
187
,
17
,
208
,
109
,
48
,
216
,
38
,
51
,
233
,
158
,
72
,
98
,
163
,
187
,
137
,
16
,
123
,
123
,
187
,
236
,
237
,
238
,
210
,
109
,
20
,
226
,
120
,
61
,
249
,
194
,
23
,
126
,
133
,
175
,
124
,
245
,
235
,
68
,
36
,
27
,
221
,
77
,
68
,
176
,
33
,
137
,
119
,
137
,
238
,
166
,
91
,
140
,
49
,
144
,
132
,
109
,
222
,
207
,
224
,
125
,
60
,
244
,
209
,
251
,
234
,
228
,
120
,
253
,
90
,
85
,
209
,
213
,
68
,
6
,
85
,
133
,
16
,
32
,
64
,
188
,
203
,
128
,
137
,
16
,
115
,
26
,
133
,
168
,
130
,
75
,
23
,
223
,
230
,
194
,
27
,
151
,
248
,
234
,
87
,
190
,
206
,
246
,
246
,
54
,
219
,
219
,
43
,
78
,
157
,
222
,
231
,
212
,
222
,
62
,
35
,
7
,
247
,
220
,
115
,
55
,
255
,
242
,
95
,
254
,
139
,
220
,
255
,
192
,
71
,
0
,
179
,
49
,
107
,
178
,
44
,
199
,
236
,
238
,
38
,
31
,
255
,
216
,
131
,
156
,
218
,
31
,
60
,
243
,
204
,
243
,
220
,
243
,
145
,
59
,
217
,
221
,
9
,
14
,
15
,
111
,
161
,
16
,
85
,
133
,
27
,
132
,
185
,
114
,
237
,
58
,
223
,
120
,
250
,
15
,
88
,
102
,
177
,
181
,
21
,
136
,
160
,
219
,
128
,
201
,
4
,
204
,
109
,
166
,
170
,
168
,
106
,
196
,
109
,
130
,
174
,
162
,
13
,
8
,
20
,
66
,
36
,
217
,
201
,
156
,
197
,
156
,
133
,
109
,
36
,
145
,
153
,
116
,
55
,
119
,
222
,
121
,
150
,
221
,
189
,
29
,
114
,
12
,
110
,
221
,
58
,
228
,
239
,
125
,
225
,
87
,
248
,
245
,
95
,
255
,
50
,
221
,
38
,
34
,
216
,
176
,
205
,
134
,
36
,
254
,
31
,
70
,
18
,
54
,
216
,
2
,
2
,
73
,
188
,
159
,
193
,
247
,
241
,
235
,
191
,
253
,
59
,
252
,
107
,
63
,
251
,
51
,
148
,
253
,
138
,
219
,
29
,
82
,
148
,
27
,
73
,
84
,
55
,
85
,
19
,
219
,
72
,
65
,
183
,
177
,
65
,
10
,
4
,
184
,
77
,
42
,
32
,
204
,
156
,
19
,
12
,
135
,
71
,
39
,
220
,
188
,
117
,
200
,
197
,
75
,
87
,
216
,
168
,
42
,
108
,
243
,
135
,
223
,
126
,
158
,
159
,
255
,
249
,
127
,
155
,
143
,
127
,
236
,
81
,
170
,
38
,
115
,
46
,
204
,
229
,
132
,
147
,
245
,
49
,
235
,
245
,
154
,
213
,
74
,
124
,
226
,
19
,
15
,
33
,
193
,
250
,
228
,
132
,
145
,
43
,
150
,
165
,
56
,
58
,
58
,
38
,
115
,
197
,
214
,
106
,
197
,
243
,
207
,
189
,
196
,
197
,
75
,
111
,
99
,
139
,
110
,
19
,
1
,
2
,
186
,
27
,
9
,
102
,
21
,
18
,
84
,
21
,
96
,
64
,
84
,
53
,
179
,
138
,
141
,
170
,
194
,
109
,
170
,
10
,
219
,
108
,
100
,
38
,
85
,
69
,
119
,
227
,
110
,
78
,
214
,
107
,
238
,
190
,
231
,
46
,
118
,
119
,
118
,
185
,
116
,
233
,
10
,
255
,
219
,
231
,
255
,
1
,
95
,
253
,
218
,
83
,
116
,
155
,
136
,
192
,
54
,
17
,
129
,
36
,
108
,
99
,
27
,
73
,
72
,
2
,
68
,
102
,
18
,
145
,
216
,
148
,
77
,
217
,
226
,
253
,
12
,
222
,
199
,
178
,
94
,
48
,
188
,
92
,
85
,
107
,
208
,
78
,
117
,
33
,
5
,
115
,
46
,
216
,
166
,
219
,
216
,
147
,
170
,
34
,
36
,
26
,
48
,
208
,
93
,
8
,
49
,
103
,
97
,
243
,
142
,
136
,
160
,
187
,
145
,
68
,
68
,
176
,
81
,
85
,
156
,
123
,
229
,
85
,
126
,
225
,
239
,
252
,
93
,
254
,
195
,
191
,
241
,
239
,
243
,
177
,
39
,
62
,
74
,
119
,
115
,
116
,
124
,
204
,
141
,
27
,
55
,
185
,
114
,
229
,
42
,
151
,
47
,
95
,
225
,
230
,
205
,
27
,
44
,
203
,
100
,
181
,
218
,
102
,
103
,
123
,
155
,
179
,
103
,
239
,
228
,
145
,
71
,
30
,
225
,
244
,
233
,
51
,
28
,
28
,
28
,
243
,
244
,
55
,
158
,
97
,
89
,
79
,
198
,
24
,
116
,
21
,
206
,
32
,
98
,
133
,
16
,
99
,
12
,
220
,
205
,
106
,
123
,
11
,
27
,
214
,
235
,
53
,
17
,
73
,
183
,
17
,
194
,
54
,
115
,
22
,
182
,
89
,
150
,
133
,
238
,
198
,
54
,
18
,
239
,
152
,
115
,
98
,
155
,
173
,
213
,
138
,
71
,
30
,
125
,
152
,
103
,
190
,
253
,
34
,
159
,
255
,
252
,
63
,
224
,
197
,
23
,
207
,
33
,
9
,
73
,
216
,
70
,
18
,
221
,
77
,
68
,
16
,
17
,
116
,
55
,
146
,
176
,
141
,
36
,
170
,
10
,
41
,
144
,
116
,
36
,
233
,
8
,
204
,
251
,
73
,
222
,
199
,
195
,
15
,
63
,
68
,
119
,
239
,
68
,
232
,
231
,
16
,
119
,
180
,
193
,
221
,
84
,
23
,
93
,
13
,
24
,
119
,
99
,
140
,
13
,
203
,
178
,
96
,
27
,
219
,
216
,
96
,
55
,
118
,
99
,
131
,
219
,
84
,
55
,
182
,
145
,
132
,
109
,
108
,
99
,
224
,
250
,
245
,
155
,
188
,
114
,
254
,
187
,
60
,
242
,
200
,
67
,
220
,
115
,
207
,
93
,
172
,
215
,
199
,
92
,
185
,
114
,
133
,
215
,
94
,
191
,
192
,
133
,
11
,
111
,
241
,
246
,
219
,
215
,
184
,
121
,
243
,
144
,
245
,
201
,
194
,
206
,
206
,
54
,
15
,
61
,
120
,
63
,
15
,
63
,
252
,
16
,
251
,
251
,
167
,
248
,
218
,
215
,
158
,
226
,
235
,
95
,
255
,
38
,
153
,
43
,
114
,
12
,
144
,
176
,
27
,
183
,
81
,
136
,
136
,
96
,
35
,
51
,
177
,
161
,
170
,
153
,
115
,
34
,
192
,
54
,
146
,
152
,
53
,
169
,
106
,
16
,
116
,
155
,
170
,
162
,
202
,
84
,
21
,
221
,
13
,
8
,
219
,
68
,
4
,
191
,
246
,
143
,
127
,
139
,
215
,
95
,
127
,
147
,
136
,
64
,
18
,
239
,
145
,
68
,
68
,
176
,
33
,
9
,
219
,
72
,
34
,
51
,
201
,
76
,
192
,
128
,
136
,
136
,
55
,
109
,
255
,
79
,
146
,
110
,
28
,
28
,
28
,
240
,
253
,
12
,
62
,
64
,
87
,
95
,
4
,
93
,
168
,
238
,
7
,
187
,
27
,
219
,
100
,
14
,
108
,
179
,
177
,
120
,
66
,
55
,
85
,
133
,
221
,
216
,
198
,
54
,
110
,
35
,
132
,
16
,
229
,
162
,
91
,
216
,
102
,
163
,
187
,
145
,
132
,
36
,
82
,
73
,
35
,
206
,
157
,
251
,
46
,
191
,
240
,
119
,
62
,
207
,
127
,
240
,
55
,
254
,
61
,
30
,
126
,
240
,
35
,
60
,
248
,
224
,
3
,
108
,
111
,
111
,
241
,
224
,
3
,
247
,
113
,
116
,
120
,
4
,
152
,
221
,
189
,
93
,
206
,
158
,
61
,
195
,
153
,
59
,
78
,
179
,
179
,
189
,
197
,
235
,
175
,
95
,
228
,
119
,
191
,
242
,
251
,
44
,
179
,
136
,
48
,
138
,
193
,
24
,
131
,
170
,
66
,
17
,
108
,
116
,
155
,
204
,
192
,
54
,
221
,
141
,
109
,
192
,
180
,
205
,
70
,
117
,
19
,
145
,
40
,
26
,
181
,
144
,
64
,
18
,
17
,
98
,
189
,
94
,
179
,
209
,
93
,
172
,
215
,
39
,
124
,
235
,
155
,
207
,
18
,
17
,
140
,
49
,
248
,
94
,
182
,
177
,
141
,
36
,
54
,
108
,
35
,
137
,
136
,
0
,
68
,
85
,
49
,
70
,
16
,
17
,
216
,
190
,
105
,
251
,
150
,
36
,
222
,
79
,
242
,
62
,
62
,
250
,
208
,
131
,
92
,
189
,
118
,
125
,
189
,
183
,
191
,
247
,
87
,
36
,
253
,
57
,
219
,
96
,
110
,
51
,
54
,
116
,
23
,
115
,
78
,
34
,
130
,
238
,
166
,
170
,
217
,
48
,
198
,
24
,
219
,
216
,
70
,
10
,
186
,
141
,
36
,
222
,
83
,
85
,
216
,
102
,
195
,
54
,
182
,
185
,
126
,
253
,
38
,
231
,
206
,
189
,
202
,
71
,
31
,
126
,
136
,
187
,
238
,
60
,
139
,
4
,
91
,
219
,
43
,
246
,
246
,
119
,
216
,
223
,
223
,
229
,
212
,
169
,
83
,
236
,
237
,
237
,
177
,
187
,
183
,
207
,
193
,
193
,
49
,
191
,
252
,
203
,
95
,
226
,
252
,
171
,
111
,
144
,
25
,
216
,
38
,
35
,
177
,
205
,
198
,
106
,
12
,
54
,
50
,
147
,
204
,
164
,
187
,
232
,
54
,
27
,
17
,
73
,
85
,
81
,
53
,
193
,
80
,
221
,
116
,
55
,
179
,
138
,
170
,
137
,
36
,
230
,
44
,
186
,
155
,
238
,
166
,
170
,
144
,
196
,
24
,
3
,
73
,
116
,
55
,
27
,
221
,
205
,
134
,
36
,
222
,
35
,
9
,
73
,
108
,
72
,
66
,
2
,
73
,
68
,
136
,
49
,
18
,
41
,
158
,
94
,
175
,
215
,
191
,
152
,
153
,
125
,
112
,
112
,
192
,
247
,
147
,
188
,
143
,
143
,
126
,
244
,
33
,
238
,
187
,
239
,
94
,
47
,
203
,
242
,
99
,
153
,
227
,
103
,
170
,
138
,
57
,
39
,
221
,
205
,
70
,
87
,
211
,
221
,
216
,
208
,
221
,
216
,
77
,
85
,
99
,
155
,
119
,
24
,
12
,
216
,
198
,
136
,
141
,
170
,
162
,
187
,
233
,
110
,
54
,
108
,
51
,
231
,
68
,
18
,
27
,
87
,
175
,
222
,
224
,
249
,
231
,
191
,
195
,
238
,
222
,
46
,
31
,
249
,
200
,
221
,
172
,
182
,
86
,
100
,
14
,
182
,
183
,
118
,
216
,
218
,
222
,
1
,
39
,
175
,
191
,
246
,
22
,
255
,
215
,
255
,
249
,
155
,
60
,
255
,
252
,
75
,
40
,
196
,
70
,
230
,
64
,
33
,
16
,
140
,
49
,
104
,
155
,
80
,
96
,
67
,
102
,
130
,
1
,
1
,
54
,
221
,
141
,
219
,
216
,
166
,
170
,
17
,
48
,
171
,
88
,
47
,
107
,
170
,
154
,
13
,
155
,
119
,
84
,
21
,
221
,
77
,
102
,
34
,
9
,
73
,
108
,
216
,
70
,
18
,
182
,
249
,
94
,
17
,
129
,
109
,
36
,
177
,
33
,
9
,
73
,
216
,
38
,
34
,
1
,
125
,
233
,
210
,
165
,
75
,
255
,
112
,
127
,
127
,
159
,
131
,
131
,
3
,
190
,
159
,
228
,
125
,
124
,
247
,
181
,
215
,
121
,
224
,
254
,
251
,
232
,
246
,
61
,
171
,
213
,
248
,
183
,
128
,
49
,
70
,
82
,
213
,
204
,
185
,
176
,
209
,
213
,
108
,
216
,
96
,
155
,
119
,
25
,
119
,
99
,
27
,
187
,
193
,
6
,
137
,
110
,
211
,
221
,
116
,
55
,
182
,
121
,
143
,
109
,
54
,
36
,
1
,
230
,
224
,
224
,
144
,
231
,
158
,
251
,
14
,
175
,
189
,
246
,
38
,
235
,
165
,
88
,
102
,
115
,
229
,
234
,
77
,
190
,
243
,
226
,
119
,
249
,
202
,
239
,
126
,
131
,
223
,
253
,
202
,
239
,
115
,
249
,
242
,
85
,
20
,
65
,
230
,
224
,
61
,
54
,
100
,
4
,
57
,
6
,
27
,
145
,
73
,
68
,
16
,
18
,
109
,
35
,
137
,
57
,
139
,
234
,
6
,
137
,
147
,
147
,
53
,
85
,
147
,
89
,
69
,
119
,
209
,
54
,
32
,
230
,
156
,
128
,
88
,
150
,
133
,
57
,
39
,
182
,
89
,
173
,
86
,
124
,
175
,
136
,
192
,
54
,
146
,
136
,
8
,
54
,
108
,
179
,
33
,
137
,
136
,
96
,
35
,
66
,
68
,
136
,
136
,
96
,
140
,
193
,
109
,
191
,
116
,
230
,
204
,
153
,
175
,
85
,
21
,
7
,
7
,
7
,
124
,
63
,
131
,
15
,
96
,
27
,
219
,
207
,
117
,
251
,
114
,
68
,
62
,
184
,
44
,
107
,
34
,
68
,
102
,
82
,
85
,
204
,
57
,
65
,
98
,
206
,
194
,
110
,
54
,
108
,
110
,
19
,
118
,
97
,
155
,
101
,
78
,
20
,
73
,
85
,
209
,
221
,
216
,
70
,
18
,
182
,
169
,
42
,
50
,
147
,
170
,
162
,
187
,
217
,
144
,
130
,
101
,
22
,
207
,
254
,
225
,
119
,
120
,
238
,
249
,
151
,
89
,
173
,
2
,
41
,
49
,
224
,
134
,
72
,
145
,
17
,
68
,
4
,
138
,
6
,
195
,
200
,
32
,
199
,
0
,
137
,
170
,
98
,
181
,
90
,
33
,
9
,
219
,
108
,
68
,
136
,
245
,
122
,
193
,
109
,
170
,
38
,
110
,
35
,
241
,
142
,
49
,
6
,
179
,
38
,
27
,
221
,
133
,
109
,
192
,
72
,
194
,
54
,
99
,
12
,
54
,
50
,
147
,
238
,
230
,
61
,
17
,
193
,
123
,
36
,
97
,
155
,
238
,
102
,
140
,
129
,
109
,
36
,
33
,
5
,
182
,
217
,
144
,
226
,
150
,
221
,
223
,
182
,
205
,
165
,
75
,
151
,
120
,
63
,
131
,
15
,
48
,
231
,
194
,
156
,
245
,
250
,
24
,
227
,
249
,
49
,
242
,
193
,
57
,
11
,
219
,
8
,
17
,
10
,
222
,
147
,
25
,
204
,
217
,
72
,
252
,
49
,
41
,
80
,
192
,
24
,
131
,
101
,
54
,
146
,
136
,
8
,
54
,
108
,
179
,
209
,
221
,
68
,
4
,
146
,
88
,
150
,
197
,
85
,
245
,
150
,
237
,
206
,
204
,
123
,
51
,
51
,
186
,
77
,
21
,
183
,
53
,
118
,
147
,
153
,
96
,
176
,
141
,
109
,
236
,
38
,
35
,
105
,
55
,
234
,
194
,
134
,
213
,
24
,
72
,
162
,
187
,
193
,
70
,
219
,
91
,
128
,
145
,
192
,
128
,
20
,
156
,
44
,
199
,
8
,
144
,
68
,
119
,
131
,
65
,
10
,
64
,
216
,
32
,
129
,
36
,
108
,
19
,
17
,
108
,
216
,
70
,
18
,
182
,
217
,
144
,
132
,
109
,
170
,
138
,
204
,
68
,
18
,
146
,
216
,
136
,
72
,
192
,
216
,
77
,
166
,
0
,
211
,
61
,
223
,
236
,
230
,
5
,
219
,
124
,
144
,
224
,
3
,
44
,
179
,
249
,
115
,
159
,
254
,
228
,
141
,
170
,
249
,
7
,
85
,
133
,
221
,
108
,
204
,
42
,
102
,
53
,
57
,
6
,
82
,
16
,
145
,
216
,
166
,
219
,
108
,
216
,
166
,
186
,
233
,
110
,
20
,
129
,
36
,
108
,
99
,
27
,
219
,
116
,
55
,
203
,
178
,
176
,
81
,
85
,
172
,
215
,
107
,
159
,
156
,
156
,
252
,
175
,
221
,
253
,
87
,
151
,
101
,
249
,
217
,
101
,
89
,
254
,
251
,
170
,
90
,
115
,
219
,
156
,
69
,
85
,
209
,
109
,
54
,
50
,
131
,
119
,
216
,
132
,
18
,
73
,
108
,
84
,
53
,
96
,
12
,
204
,
101
,
193
,
54
,
17
,
129
,
36
,
108
,
35
,
5
,
237
,
198
,
110
,
34
,
130
,
234
,
102
,
163
,
186
,
152
,
85
,
44
,
75
,
209
,
13
,
17
,
201
,
156
,
147
,
245
,
122
,
189
,
72
,
42
,
254
,
72
,
85
,
97
,
155
,
13
,
219
,
116
,
55
,
182
,
249
,
127
,
179
,
161
,
219
,
216
,
16
,
17
,
68
,
4
,
153
,
201
,
109
,
79
,
207
,
89
,
23
,
108
,
243
,
65
,
146
,
15
,
112
,
225
,
194
,
155
,
156
,
58
,
117
,
138
,
110
,
223
,
3
,
250
,
55
,
193
,
17
,
18
,
27
,
85
,
141
,
13
,
221
,
133
,
128
,
57
,
11
,
219
,
116
,
55
,
118
,
35
,
9
,
27
,
108
,
3
,
98
,
195
,
54
,
203
,
178
,
176
,
145
,
153
,
100
,
38
,
221
,
205
,
241
,
241
,
241
,
83
,
221
,
253
,
183
,
186
,
251
,
57
,
73
,
151
,
186
,
251
,
183
,
129
,
251
,
199
,
24
,
127
,
62
,
51
,
177
,
141
,
13
,
99
,
36
,
96
,
36
,
145
,
99
,
96
,
192
,
109
,
16
,
100
,
36
,
25
,
129
,
34
,
64
,
16
,
17
,
100
,
36
,
17
,
65
,
119
,
99
,
155
,
245
,
122
,
205
,
198
,
156
,
147
,
141
,
170
,
194
,
109
,
204
,
134
,
168
,
42
,
186
,
155
,
170
,
98
,
206
,
249
,
173
,
204
,
140
,
219
,
78
,
69
,
4
,
146
,
176
,
205
,
134
,
36
,
34
,
130
,
13
,
73
,
108
,
72
,
66
,
18
,
27
,
17
,
66
,
18
,
99
,
36
,
153
,
1
,
8
,
219
,
127
,
123
,
140
,
252
,
202
,
155
,
111
,
94
,
228
,
131
,
4
,
31
,
98
,
189
,
94
,
152
,
115
,
126
,
203
,
246
,
91
,
99
,
12
,
218
,
102
,
206
,
201
,
134
,
36
,
164
,
160
,
109
,
192
,
108
,
216
,
141
,
13
,
221
,
102
,
195
,
54
,
115
,
78
,
108
,
99
,
155
,
49
,
6
,
146
,
168
,
42
,
150
,
101
,
97
,
89
,
22
,
108
,
255
,
221
,
204
,
60
,
47
,
9
,
219
,
68
,
196
,
205
,
170
,
250
,
47
,
215
,
203
,
250
,
133
,
170
,
66
,
18
,
99
,
36
,
54
,
216
,
220
,
38
,
36
,
177
,
97
,
160
,
102
,
33
,
137
,
182
,
169
,
154
,
116
,
27
,
12
,
109
,
51
,
231
,
100
,
206
,
73
,
85
,
147
,
145
,
116
,
55
,
17
,
65
,
102
,
82
,
213
,
28
,
31
,
31
,
83
,
213
,
216
,
166
,
187
,
169
,
42
,
186
,
251
,
0
,
248
,
98
,
132
,
150
,
204
,
68
,
18
,
153
,
137
,
36
,
36
,
33
,
9
,
219
,
72
,
34
,
34
,
200
,
76
,
34
,
130
,
204
,
100
,
181
,
74
,
50
,
69
,
166
,
200
,
12
,
64
,
68
,
196
,
5
,
219
,
191
,
93
,
85
,
124
,
152
,
224
,
67
,
216
,
80
,
213
,
175
,
116
,
247
,
75
,
199
,
71
,
199
,
204
,
57
,
201
,
28
,
72
,
66
,
2
,
219
,
204
,
57
,
233
,
54
,
221
,
77
,
183
,
233
,
110
,
186
,
139
,
170
,
162
,
187
,
137
,
16
,
115
,
78
,
230
,
156
,
72
,
194
,
54
,
146
,
216
,
168
,
170
,
235
,
192
,
151
,
185
,
205
,
54
,
27
,
22
,
216
,
126
,
177
,
170
,
254
,
143
,
238
,
102
,
67
,
18
,
221
,
13
,
4
,
82
,
178
,
94
,
79
,
92
,
32
,
5
,
17
,
194
,
54
,
146
,
48
,
48
,
198
,
32
,
50
,
201
,
76
,
186
,
155
,
185
,
20
,
235
,
245
,
194
,
122
,
89
,
232
,
106
,
220
,
102
,
206
,
137
,
109
,
36
,
192
,
102
,
206
,
201
,
187
,
68
,
151
,
191
,
177
,
202
,
124
,
54
,
34
,
238
,
144
,
196
,
134
,
109
,
34
,
130
,
136
,
32
,
34
,
144
,
132
,
109
,
34
,
130
,
136
,
32
,
66
,
216
,
133
,
4
,
146
,
200
,
12
,
64
,
100
,
174
,
144
,
242
,
203
,
115
,
214
,
243
,
32
,
62
,
76
,
240
,
33
,
186
,
155
,
175
,
63
,
245
,
244
,
77
,
219
,
79
,
101
,
38
,
182
,
177
,
77
,
205
,
133
,
101
,
89
,
176
,
141
,
36
,
54
,
236
,
70
,
18
,
221
,
141
,
36
,
54
,
34
,
196
,
156
,
133
,
36
,
36
,
209
,
221
,
72
,
66
,
18
,
182
,
185
,
237
,
130
,
237
,
215
,
248
,
30
,
174
,
102
,
140
,
97
,
204
,
175
,
74
,
58
,
144
,
196
,
134
,
36
,
186
,
155
,
182
,
17
,
2
,
9
,
187
,
81
,
4
,
237
,
38
,
51
,
201
,
76
,
186
,
155
,
174
,
162
,
187
,
168
,
106
,
34
,
19
,
108
,
186
,
139
,
182
,
169
,
46
,
108
,
112
,
55
,
182
,
105
,
55
,
138
,
96
,
140
,
193
,
109
,
221
,
230
,
239
,
175
,
86
,
91
,
91
,
224
,
59
,
248
,
35
,
146
,
120
,
143
,
36
,
34
,
130
,
204
,
228
,
93
,
198
,
54
,
17
,
137
,
20
,
72
,
34
,
34
,
1
,
35
,
105
,
13
,
124
,
97
,
127
,
255
,
212
,
73
,
55
,
31
,
42
,
248
,
16
,
221
,
205
,
191
,
244
,
23
,
255
,
188
,
171
,
230
,
87
,
21
,
90
,
86
,
171
,
65
,
8
,
20
,
129
,
36
,
170
,
38
,
27
,
182
,
145
,
132
,
109
,
108
,
99
,
243
,
142
,
101
,
153
,
116
,
55
,
27
,
17
,
129
,
36
,
36
,
97
,
27
,
219
,
84
,
213
,
53
,
219
,
87
,
186
,
155
,
199
,
31
,
251
,
24
,
143
,
63
,
250
,
24
,
143
,
63
,
250
,
152
,
94
,
125
,
234
,
89
,
34
,
226
,
5
,
219
,
175
,
74
,
66
,
18
,
146
,
216
,
112
,
55
,
10
,
97
,
55
,
180
,
145
,
130
,
136
,
100
,
206
,
137
,
219
,
84
,
21
,
203
,
156
,
84
,
53
,
96
,
186
,
27
,
219
,
140
,
49
,
176
,
77
,
119
,
51
,
231
,
164
,
109
,
186
,
77
,
87
,
51
,
151
,
133
,
245
,
122
,
205
,
178
,
44
,
47
,
111
,
111
,
109
,
125
,
25
,
241
,
241
,
188
,
45
,
66
,
68
,
4
,
153
,
73
,
102
,
146
,
153
,
72
,
66
,
18
,
239
,
145
,
32
,
51
,
136
,
72
,
108
,
144
,
68
,
119
,
3
,
194
,
237
,
111
,
206
,
57
,
127
,
227
,
228
,
228
,
132
,
183
,
222
,
186
,
196
,
135
,
9
,
62
,
196
,
55
,
158
,
254
,
22
,
115
,
22
,
115
,
246
,
83
,
115
,
214
,
155
,
110
,
83
,
221
,
128
,
144
,
130
,
136
,
68
,
18
,
171
,
213
,
138
,
213
,
88
,
177
,
33
,
137
,
170
,
162
,
187
,
17
,
16
,
17
,
116
,
55
,
221
,
77
,
119
,
211
,
221
,
116
,
55
,
2
,
36
,
85
,
68
,
244
,
103
,
126
,
236
,
211
,
82
,
207
,
196
,
94
,
185
,
123
,
235
,
167
,
254
,
218
,
207
,
238
,
158
,
57
,
117
,
199
,
173
,
174
,
122
,
163
,
187
,
145
,
132
,
109
,
36
,
17
,
17
,
72
,
66
,
1
,
229
,
166
,
170
,
232
,
42
,
150
,
101
,
97
,
35
,
51
,
201
,
76
,
192
,
216
,
102
,
206
,
201
,
172
,
162
,
102
,
97
,
27
,
219
,
116
,
155
,
89
,
141
,
9
,
20
,
73
,
102
,
98
,
27
,
236
,
95
,
191
,
99
,
127
,
239
,
138
,
228
,
79
,
70
,
4
,
82
,
176
,
97
,
155
,
141
,
170
,
162
,
187
,
145
,
68
,
68
,
32
,
9
,
16
,
27
,
146
,
201
,
12
,
34
,
2
,
99
,
66
,
242
,
106
,
140
,
207
,
239
,
140
,
173
,
139
,
221
,
205
,
15
,
34
,
248
,
1
,
116
,
55
,
115
,
206
,
87
,
109
,
255
,
65
,
85
,
97
,
155
,
238
,
194
,
54
,
153
,
129
,
109
,
108
,
83
,
221
,
100
,
38
,
99
,
12
,
70
,
38
,
238
,
34
,
34
,
136
,
16
,
27
,
182
,
217
,
176
,
141
,
36
,
102
,
21
,
6
,
237
,
239
,
237
,
143
,
91
,
7
,
183
,
182
,
218
,
222
,
118
,
247
,
142
,
237
,
157
,
238
,
222
,
221
,
222
,
222
,
201
,
136
,
184
,
32
,
137
,
238
,
102
,
195
,
54
,
223
,
43
,
51
,
8
,
137
,
141
,
144
,
216
,
144
,
32
,
66
,
116
,
53
,
85
,
13
,
54
,
17
,
193
,
172
,
162
,
187
,
176
,
65
,
17
,
100
,
14
,
108
,
51
,
231
,
164
,
187
,
89
,
150
,
229
,
237
,
49
,
198
,
111
,
218
,
125
,
151
,
34
,
158
,
224
,
29
,
6
,
76
,
119
,
19
,
33
,
50
,
19
,
219
,
188
,
71
,
18
,
18
,
68
,
8
,
73
,
188
,
103
,
100
,
146
,
153
,
207
,
85
,
213
,
23
,
14
,
79
,
142
,
216
,
223
,
221
,
231
,
137
,
199
,
158
,
224
,
195
,
4
,
63
,
128
,
111
,
60
,
253
,
7
,
236
,
237
,
237
,
28
,
86
,
213
,
111
,
42
,
2
,
219
,
116
,
27
,
48
,
235
,
245
,
194
,
156
,
147
,
238
,
98
,
206
,
133
,
8
,
97
,
155
,
234
,
162
,
219
,
116
,
55
,
182
,
145
,
132
,
36
,
54
,
36
,
241
,
14
,
9
,
68
,
108
,
175
,
86
,
59
,
221
,
181
,
211
,
221
,
187
,
213
,
189
,
219
,
221
,
123
,
93
,
189
,
7
,
236
,
72
,
186
,
213
,
221
,
116
,
55
,
221
,
205
,
70
,
85
,
81
,
53
,
89
,
150
,
53
,
27
,
145
,
73
,
132
,
136
,
8
,
186
,
138
,
170
,
166
,
170
,
49
,
32
,
137
,
118
,
51
,
231
,
66
,
119
,
179
,
94
,
175
,
169
,
154
,
184
,
155
,
238
,
166
,
187
,
169
,
42
,
214
,
235
,
53
,
182
,
127
,
127
,
103
,
103
,
231
,
181
,
234
,
122
,
56
,
20
,
143
,
100
,
38
,
153
,
34
,
51
,
136
,
0
,
27
,
108
,
147
,
153
,
100
,
38
,
153
,
137
,
36
,
34
,
2
,
73
,
72
,
34
,
34
,
136
,
8
,
86
,
171
,
45
,
219
,
253
,
63
,
175
,
74
,
231
,
239
,
216
,
63
,
21
,
1
,
162
,
139
,
39
,
30
,
125
,
156
,
15
,
50
,
248
,
1
,
29
,
159
,
172
,
177
,
249
,
39
,
171
,
149
,
46
,
71
,
232
,
110
,
48
,
115
,
153
,
84
,
21
,
85
,
69
,
132
,
144
,
196
,
178
,
76
,
170
,
154
,
57
,
27
,
69
,
96
,
68
,
119
,
1
,
98
,
195
,
54
,
221
,
205
,
70
,
132
,
88
,
229
,
216
,
157
,
85
,
103
,
203
,
190
,
233
,
246
,
176
,
157
,
224
,
180
,
73
,
64
,
183
,
29
,
75
,
162
,
187
,
89
,
173
,
86
,
100
,
38
,
153
,
9
,
152
,
110
,
211
,
109
,
186
,
155
,
28
,
3
,
100
,
54
,
50
,
147
,
57
,
39
,
153
,
65
,
68
,
224
,
54
,
203
,
178
,
96
,
64
,
145
,
116
,
23
,
221
,
147
,
110
,
19
,
17
,
116
,
21
,
174
,
62
,
92
,
229
,
248
,
178
,
32
,
192
,
159
,
24
,
35
,
239
,
228
,
54
,
219
,
128
,
145
,
2
,
137
,
219
,
154
,
136
,
68
,
130
,
8
,
209
,
13
,
18
,
72
,
16
,
17
,
68
,
136
,
140
,
68
,
248
,
27
,
224
,
255
,
101
,
108
,
15
,
149
,
59
,
64
,
213
,
10
,
132
,
249
,
32
,
193
,
15
,
168
,
219
,
204
,
89
,
207
,
44
,
203
,
242
,
251
,
85
,
69
,
119
,
211
,
54
,
146
,
200
,
76
,
34
,
130
,
80
,
80
,
93
,
40
,
68
,
102
,
50
,
198
,
138
,
13
,
41
,
176
,
141
,
36
,
36
,
33
,
9
,
219
,
140
,
28
,
8
,
206
,
84
,
213
,
71
,
220
,
222
,
177
,
123
,
215
,
238
,
221
,
238
,
222
,
107
,
247
,
94
,
119
,
239
,
131
,
182
,
184
,
77
,
18
,
153
,
137
,
36
,
36
,
81
,
213
,
8
,
8
,
9
,
108
,
150
,
101
,
97
,
206
,
66
,
18
,
221
,
133
,
109
,
164
,
96
,
89
,
47
,
84
,
55
,
146
,
176
,
161
,
187
,
169
,
106
,
230
,
44
,
230
,
156
,
84
,
21
,
115
,
22
,
221
,
253
,
252
,
214
,
106
,
245
,
74
,
87
,
239
,
71
,
198
,
147
,
153
,
177
,
189
,
90
,
37
,
138
,
32
,
51
,
200
,
12
,
34
,
130
,
213
,
106
,
69
,
132
,
176
,
27
,
219
,
100
,
6
,
146
,
200
,
76
,
36
,
200
,
72
,
34
,
226
,
176
,
187
,
255
,
219
,
17
,
171
,
215
,
203
,
29
,
128
,
16
,
18
,
230
,
195
,
4
,
63
,
160
,
170
,
102
,
127
,
119
,
235
,
86
,
119
,
253
,
67
,
80
,
71
,
4
,
171
,
213
,
138
,
213
,
24
,
216
,
166
,
187
,
105
,
27
,
41
,
248
,
94
,
82
,
96
,
27
,
219
,
108
,
216
,
198
,
54
,
239
,
177
,
57
,
235
,
246
,
125
,
118
,
111
,
87
,
247
,
110
,
117
,
239
,
181
,
189
,
219
,
221
,
123
,
213
,
181
,
111
,
247
,
25
,
73
,
68
,
4
,
221
,
77
,
85
,
81
,
85
,
68
,
4
,
57
,
6
,
198
,
68
,
136
,
238
,
162
,
187
,
1
,
97
,
131
,
36
,
106
,
78
,
102
,
21
,
33
,
17
,
145
,
96
,
179
,
44
,
11
,
27
,
17
,
129
,
109
,
54
,
236
,
94
,
34
,
226
,
107
,
72
,
13
,
156
,
14
,
197
,
143
,
75
,
65
,
230
,
64
,
130
,
136
,
96
,
140
,
65
,
102
,
32
,
37
,
17
,
65
,
102
,
34
,
137
,
8
,
145
,
153
,
68
,
36
,
82
,
16
,
17
,
216
,
254
,
130
,
237
,
47
,
74
,
4
,
32
,
254
,
152
,
0
,
241
,
65
,
130
,
31
,
208
,
179
,
207
,
254
,
33
,
199
,
39
,
107
,
230
,
236
,
95
,
5
,
206
,
71
,
4
,
221
,
77
,
219
,
100
,
38
,
54
,
116
,
55
,
35
,
19
,
119
,
35
,
65
,
132
,
176
,
139
,
136
,
32
,
34
,
168
,
42
,
108
,
19
,
17
,
68
,
4
,
182
,
81
,
232
,
84
,
211
,
31
,
45
,
123
,
167
,
187
,
119
,
186
,
189
,
227
,
238
,
93
,
119
,
239
,
85
,
213
,
190
,
225
,
78
,
254
,
72
,
119
,
35
,
9
,
73
,
216
,
166
,
187
,
9
,
5
,
17
,
193
,
214
,
214
,
54
,
91
,
91
,
91
,
68
,
136
,
174
,
98
,
46
,
11
,
85
,
69
,
102
,
98
,
160
,
187
,
104
,
27
,
27
,
170
,
76
,
85
,
97
,
155
,
170
,
194
,
246
,
43
,
91
,
91
,
91
,
47
,
218
,
30
,
202
,
184
,
127
,
107
,
103
,
247
,
209
,
49
,
182
,
168
,
134
,
49
,
182
,
128
,
4
,
68
,
68
,
18
,
33
,
34
,
146
,
136
,
224
,
93
,
98
,
53
,
6
,
35
,
147
,
145
,
137
,
224
,
235
,
180
,
255
,
235
,
85
,
172
,
14
,
176
,
184
,
205
,
128
,
217
,
144
,
248
,
48
,
193
,
15
,
161
,
38
,
220
,
188
,
113
,
244
,
98
,
85
,
255
,
74
,
119
,
51
,
231
,
68
,
130
,
238
,
6
,
76
,
102
,
0
,
70
,
226
,
29
,
221
,
69
,
102
,
242
,
30
,
73
,
68
,
4
,
27
,
17
,
65
,
102
,
18
,
17
,
163
,
237
,
143
,
119
,
247
,
142
,
237
,
29
,
187
,
119
,
186
,
122
,
183
,
187
,
119
,
186
,
123
,
223
,
246
,
221
,
220
,
38
,
137
,
136
,
192
,
54
,
182
,
145
,
32
,
4
,
146
,
168
,
42
,
236
,
6
,
76
,
85
,
35
,
9
,
99
,
12
,
116
,
55
,
203
,
178
,
80
,
85
,
132
,
2
,
27
,
36
,
97
,
131
,
36
,
230
,
156
,
5
,
122
,
42
,
34
,
142
,
5
,
219
,
33
,
61
,
250
,
137
,
79
,
124
,
226
,
236
,
125
,
247
,
63
,
192
,
131
,
15
,
62
,
196
,
24
,
43
,
238
,
191
,
255
,
126
,
246
,
246
,
246
,
57
,
125
,
250
,
12
,
99
,
172
,
200
,
76
,
36
,
17
,
17
,
100
,
38
,
182
,
1
,
3
,
62
,
95
,
213
,
255
,
77
,
106
,
188
,
37
,
148
,
2
,
27
,
12
,
24
,
227
,
173
,
154
,
216
,
205
,
7
,
9
,
126
,
8
,
221
,
197
,
233
,
51
,
123
,
93
,
85
,
191
,
4
,
92
,
138
,
8
,
36
,
129
,
141
,
219
,
72
,
194
,
230
,
29
,
153
,
9
,
136
,
238
,
166
,
187
,
137
,
8
,
50
,
147
,
238
,
102
,
195
,
54
,
27
,
153
,
73
,
102
,
126
,
188
,
230
,
220
,
119
,
123
,
203
,
221
,
219
,
118
,
111
,
219
,
222
,
110
,
247
,
105
,
73
,
119
,
74
,
98
,
67
,
18
,
153
,
137
,
36
,
36
,
33
,
5
,
221
,
69
,
85
,
99
,
67
,
68
,
16
,
17
,
40
,
2
,
33
,
186
,
139
,
154
,
147
,
170
,
194
,
134
,
101
,
153
,
72
,
162
,
187
,
177
,
77
,
85
,
97
,
251
,
149
,
213
,
106
,
245
,
135
,
64
,
70
,
228
,
174
,
164
,
211
,
23
,
46
,
92
,
200
,
245
,
250
,
132
,
157
,
157
,
29
,
246
,
246
,
246
,
184
,
247
,
222
,
123
,
57
,
125
,
250
,
52
,
247
,
222
,
123
,
47
,
71
,
71
,
71
,
204
,
89
,
68
,
4
,
171
,
213
,
138
,
13
,
73
,
220
,
246
,
70
,
205
,
250
,
69
,
183
,
223
,
104
,
247
,
221
,
192
,
54
,
82
,
27
,
186
,
81
,
163
,
240
,
58
,
146
,
115
,
175
,
158
,
231
,
131
,
36
,
63
,
132
,
183
,
47
,
95
,
230
,
238
,
187
,
239
,
98
,
89
,
47
,
23
,
115
,
228
,
227
,
17
,
241
,
47
,
118
,
155
,
28
,
3
,
69
,
128
,
33
,
199
,
96
,
86
,
209
,
93
,
8
,
48
,
70
,
10
,
34
,
130
,
170
,
34
,
51
,
169
,
42
,
222
,
35
,
137
,
238
,
118
,
72
,
191
,
43
,
81
,
109
,
111
,
217
,
94
,
25
,
70
,
117
,
223
,
135
,
248
,
87
,
51
,
115
,
63
,
51
,
137
,
8
,
34
,
2
,
219
,
100
,
36
,
153
,
66
,
18
,
146
,
144
,
4
,
134
,
145
,
9
,
18
,
216
,
116
,
155
,
165
,
38
,
27
,
85
,
69
,
119
,
19
,
145
,
116
,
55
,
238
,
166
,
103
,
45
,
192
,
151
,
86
,
171
,
213
,
75
,
66
,
139
,
4
,
15
,
62
,
248
,
208
,
195
,
183
,
110
,
222
,
252
,
204
,
193
,
193
,
173
,
184
,
118
,
245
,
42
,
115
,
78
,
46
,
95
,
190
,
204
,
209
,
209
,
17
,
87
,
174
,
92
,
225
,
228
,
228
,
4
,
73
,
140
,
28
,
8
,
17
,
138
,
217
,
246
,
183
,
215
,
235
,
229
,
239
,
183
,
121
,
46
,
20
,
7
,
138
,
184
,
21
,
210
,
77
,
164
,
99
,
164
,
6
,
219
,
152
,
115
,
175
,
190
,
194
,
135
,
73
,
126
,
72
,
111
,
189
,
125
,
153
,
251
,
30
,
184
,
175
,
221
,
253
,
122
,
100
,
254
,
213
,
64
,
103
,
109
,
35
,
160
,
221
,
84
,
53
,
203
,
156
,
132
,
4
,
152
,
110
,
131
,
2
,
219
,
84
,
21
,
17
,
129
,
109
,
186
,
155
,
204
,
68
,
18
,
85
,
165
,
219
,
126
,
39
,
34
,
14
,
128
,
149
,
97
,
24
,
71
,
187
,
31
,
31
,
99
,
252
,
149
,
213
,
106
,
53
,
248
,
35
,
146
,
144
,
68
,
102
,
48
,
198
,
32
,
51
,
145
,
68
,
68
,
144
,
17
,
84
,
55
,
118
,
83
,
213
,
72
,
208
,
109
,
140
,
233
,
110
,
218
,
208
,
109
,
170
,
138
,
185
,
44
,
244
,
236
,
231
,
182
,
183
,
183
,
127
,
45
,
20
,
7
,
130
,
67
,
164
,
163
,
204
,
188
,
188
,
179
,
189
,
115
,
243
,
240
,
224
,
224
,
12
,
104
,
107
,
189
,
94
,
198
,
178
,
172
,
181
,
172
,
23
,
186
,
155
,
237
,
237
,
109
,
86
,
171
,
213
,
146
,
138
,
91
,
192
,
185
,
154
,
243
,
55
,
150
,
245
,
252
,
146
,
164
,
239
,
100
,
230
,
91
,
25
,
113
,
49
,
35
,
222
,
82
,
196
,
117
,
41
,
22
,
103
,
88
,
136
,
147
,
48
,
55
,
175
,
93
,
231
,
195
,
12
,
126
,
4
,
181
,
76
,
94
,
120
,
245
,
252
,
211
,
79
,
62
,
241
,
196
,
223
,
150
,
244
,
159
,
27
,
143
,
57
,
39
,
109
,
211
,
110
,
50
,
147
,
141
,
42
,
131
,
68
,
40
,
176
,
77
,
102
,
82
,
85
,
100
,
38
,
221
,
141
,
109
,
50
,
19
,
73
,
219
,
221
,
125
,
150
,
228
,
117
,
64
,
108
,
152
,
141
,
135
,
35
,
98
,
123
,
206
,
73
,
102
,
18
,
17
,
100
,
38
,
146
,
0
,
209
,
54
,
33
,
80
,
4
,
182
,
81
,
8
,
170
,
153
,
101
,
36
,
81
,
221
,
44
,
115
,
98
,
55
,
221
,
141
,
20
,
72
,
98
,
163
,
171
,
15
,
50
,
243
,
183
,
71
,
142
,
171
,
224
,
35
,
224
,
8
,
116
,
120
,
237
,
234
,
181
,
183
,
35
,
116
,
126
,
172
,
86
,
95
,
202
,
200
,
143
,
2
,
119
,
67
,
110
,
129
,
19
,
36
,
33
,
187
,
250
,
96
,
218
,
111
,
185
,
251
,
34
,
112
,
101
,
172
,
198
,
141
,
80
,
92
,
85
,
232
,
74
,
70
,
92
,
27
,
210
,
65
,
75
,
19
,
133
,
163
,
154
,
151
,
206
,
159
,
227
,
7
,
53
,
248
,
17
,
92
,
60
,
127
,
157
,
79
,
61
,
246
,
168
,
151
,
101
,
249
,
31
,
86
,
57
,
254
,
66
,
142
,
252
,
119
,
157
,
1
,
221
,
156
,
172
,
139
,
8
,
209
,
221
,
128
,
200
,
8
,
20
,
193
,
178
,
76
,
108
,
19
,
17
,
116
,
55
,
146
,
136
,
8
,
186
,
27
,
73
,
43
,
236
,
125
,
65
,
27
,
10
,
16
,
144
,
146
,
30
,
1
,
97
,
55
,
221
,
77
,
102
,
82
,
53
,
137
,
8
,
198
,
24
,
96
,
19
,
49
,
232
,
46
,
50
,
18
,
73
,
68
,
36
,
166
,
153
,
115
,
97
,
89
,
22
,
54
,
164
,
100
,
195
,
134
,
101
,
89
,
179
,
44
,
11
,
22
,
95
,
219
,
217
,
217
,
121
,
86
,
161
,
67
,
208
,
33
,
112
,
8
,
28
,
73
,
58
,
1
,
234
,
182
,
55
,
187
,
251
,
91
,
66
,
72
,
10
,
133
,
36
,
48
,
182
,
5
,
51
,
34
,
22
,
101
,
158
,
32
,
29
,
11
,
142
,
20
,
113
,
28
,
210
,
90
,
168
,
44
,
250
,
47
,
124
,
234
,
113
,
254
,
233
,
115
,
47
,
115
,
238
,
252
,
43
,
252
,
48
,
6
,
63
,
130
,
123
,
238
,
63
,
69
,
157
,
52
,
63
,
243
,
115
,
159
,
188
,
242
,
91
,
95
,
120
,
225
,
63
,
149
,
185
,
127
,
53
,
198
,
95
,
70
,
77
,
196
,
130
,
0
,
41
,
16
,
5
,
18
,
115
,
22
,
27
,
146
,
168
,
42
,
108
,
19
,
17
,
140
,
49
,
144
,
68
,
85
,
33
,
41
,
35
,
2
,
119
,
79
,
192
,
183
,
157
,
150
,
244
,
88
,
102
,
0
,
38
,
51
,
129
,
166
,
187
,
145
,
192
,
110
,
148
,
3
,
48
,
93
,
197
,
136
,
100
,
86
,
209
,
109
,
186
,
155
,
101
,
153
,
44
,
203
,
66
,
230
,
138
,
136
,
64
,
50
,
39
,
39
,
199
,
44
,
203
,
66
,
85
,
189
,
188
,
183
,
187
,
247
,
143
,
34
,
227
,
26
,
112
,
44
,
233
,
16
,
56
,
4
,
142
,
129
,
69
,
82
,
73
,
154
,
192
,
20
,
154
,
10
,
77
,
161
,
10
,
81
,
146
,
166
,
164
,
10
,
152
,
72
,
37
,
169
,
128
,
146
,
84
,
141
,
220
,
96
,
117
,
243
,
181
,
239
,
92
,
224
,
149
,
243
,
175
,
240
,
195
,
74
,
126
,
4
,
119
,
157
,
189
,
19
,
4
,
231
,
158
,
125
,
59
,
14
,
15
,
214
,
151
,
35
,
245
,
117
,
227
,
79
,
43
,
244
,
104
,
68
,
48
,
171
,
168
,
154
,
72
,
65
,
87
,
113
,
199
,
233
,
51
,
156
,
57
,
115
,
134
,
101
,
89
,
120
,
228
,
145
,
71
,
56
,
58
,
58
,
226
,
201
,
39
,
159
,
228
,
214
,
173
,
91
,
252
,
228
,
79
,
254
,
36
,
175
,
191
,
254
,
250
,
113
,
70
,
252
,
222
,
24
,
227
,
138
,
224
,
4
,
180
,
238
,
238
,
79
,
41
,
227
,
95
,
143
,
136
,
149
,
36
,
50
,
69
,
102
,
32
,
137
,
136
,
32
,
51
,
16
,
2
,
243
,
142
,
145
,
131
,
101
,
153
,
156
,
172
,
79
,
0
,
1
,
166
,
219
,
204
,
217
,
204
,
57
,
145
,
68
,
119
,
179
,
44
,
203
,
173
,
213
,
106
,
245
,
75
,
123
,
187
,
123
,
207
,
6
,
28
,
41
,
226
,
86
,
72
,
7
,
146
,
14
,
37
,
29
,
41
,
98
,
29
,
138
,
147
,
144
,
214
,
82
,
172
,
35
,
99
,
137
,
136
,
69
,
210
,
58
,
165
,
69
,
210
,
18
,
210
,
130
,
52
,
37
,
77
,
80
,
129
,
74
,
33
,
55
,
197
,
208
,
224
,
165
,
243
,
231
,
184
,
118
,
245
,
109
,
126
,
20
,
131
,
31
,
153
,
48
,
246
,
246
,
206
,
86
,
156
,
28
,
215
,
51
,
217
,
245
,
55
,
35
,
243
,
63
,
137
,
204
,
159
,
3
,
157
,
18
,
1
,
134
,
136
,
100
,
119
,
119
,
135
,
199
,
31
,
127
,
130
,
91
,
183
,
110
,
241
,
227
,
63
,
254
,
227
,
92
,
186
,
116
,
137
,
123
,
239
,
189
,
151
,
87
,
207
,
191
,
202
,
197
,
55
,
47
,
50
,
114
,
220
,
112
,
247
,
137
,
164
,
221
,
200
,
60
,
176
,
122
,
161
,
253
,
185
,
204
,
177
,
27
,
25
,
224
,
102
,
140
,
164
,
170
,
217
,
144
,
132
,
13
,
166
,
129
,
96
,
140
,
21
,
179
,
138
,
200
,
96
,
197
,
138
,
170
,
70
,
10
,
164
,
192
,
158
,
116
,
55
,
182
,
153
,
203
,
82
,
17
,
241
,
197
,
83
,
251
,
251
,
191
,
19
,
210
,
145
,
164
,
35
,
208
,
145
,
196
,
17
,
112
,
2
,
44
,
66
,
133
,
84
,
18
,
133
,
84
,
192
,
148
,
212
,
130
,
146
,
84
,
130
,
66
,
42
,
65
,
11
,
25
,
201
,
220
,
246
,
157
,
87
,
206
,
241
,
39
,
33
,
249
,
17
,
156
,
61
,
123
,
39
,
33
,
129
,
4
,
88
,
10
,
228
,
230
,
234
,
156
,
253
,
27
,
93
,
253
,
124
,
40
,
238
,
207
,
200
,
7
,
164
,
72
,
110
,
59
,
58
,
58
,
164
,
170
,
185
,
124
,
249
,
45
,
230
,
156
,
92
,
187
,
118
,
157
,
27
,
55
,
110
,
112
,
116
,
120
,
200
,
229
,
203
,
151
,
233
,
234
,
175
,
142
,
49
,
158
,
202
,
136
,
107
,
146
,
174
,
172
,
151
,
245
,
67
,
18
,
127
,
51
,
51
,
239
,
16
,
38
,
115
,
176
,
97
,
131
,
36
,
198
,
72
,
4
,
140
,
145
,
116
,
55
,
182
,
89
,
150
,
133
,
89
,
147
,
238
,
166
,
219
,
204
,
89
,
84
,
21
,
27
,
221
,
205
,
122
,
189
,
118
,
119
,
255
,
218
,
233
,
253
,
83
,
191
,
176
,
26
,
227
,
154
,
20
,
7
,
146
,
110
,
69
,
198
,
129
,
164
,
195
,
144
,
142
,
36
,
173
,
35
,
98
,
157
,
210
,
146
,
17
,
235
,
144
,
214
,
138
,
152
,
33
,
45
,
138
,
88
,
80
,
76
,
164
,
137
,
212
,
142
,
52
,
136
,
151
,
206
,
159
,
227
,
202
,
245
,
107
,
252
,
73
,
17
,
63
,
162
,
187
,
31
,
122
,
132
,
51
,
41
,
12
,
132
,
20
,
216
,
1
,
72
,
110
,
150
,
246
,
67
,
109
,
255
,
27
,
134
,
127
,
39
,
34
,
126
,
114
,
246
,
114
,
186
,
27
,
173
,
215
,
39
,
236
,
238
,
238
,
114
,
120
,
116
,
140
,
128
,
174
,
238
,
154
,
243
,
247
,
182
,
183
,
183
,
127
,
97
,
123
,
107
,
251
,
21
,
227
,
43
,
93
,
117
,
180
,
244
,
252
,
143
,
87
,
171
,
213
,
127
,
180
,
94
,
175
,
137
,
8
,
50
,
19
,
73
,
128
,
217
,
216
,
218
,
218
,
194
,
110
,
50
,
130
,
110
,
35
,
137
,
234
,
102
,
89
,
22
,
192
,
84
,
65
,
119
,
179
,
81
,
85
,
156
,
156
,
156
,
208
,
221
,
191
,
115
,
199
,
254
,
169
,
255
,
106
,
119
,
119
,
247
,
2
,
102
,
65
,
58
,
150
,
56
,
1
,
142
,
5
,
107
,
73
,
19
,
104
,
65
,
133
,
212
,
64
,
73
,
106
,
67
,
11
,
44
,
100
,
11
,
115
,
219
,
75
,
231
,
95
,
225
,
79
,
139
,
248
,
255
,
224
,
241
,
199
,
158
,
32
,
49
,
141
,
144
,
91
,
216
,
97
,
8
,
1
,
182
,
115
,
153
,
243
,
158
,
118
,
127
,
118
,
186
,
127
,
234
,
228
,
100
,
253
,
185
,
49
,
242
,
225
,
101
,
153
,
187
,
64
,
217
,
190
,
132
,
249
,
202
,
222
,
238
,
238
,
63
,
94
,
141
,
241
,
166
,
205
,
9
,
176
,
92
,
189
,
118
,
245
,
161
,
159
,
248
,
236
,
79
,
252
,
143
,
171
,
173
,
173
,
79
,
188
,
250
,
234
,
121
,
50
,
147
,
155
,
55
,
111
,
145
,
25
,
116
,
23
,
146
,
216
,
222
,
222
,
38
,
34
,
16
,
198
,
134
,
182
,
89
,
150
,
133
,
170
,
162
,
170
,
17
,
162
,
109
,
132
,
56
,
62
,
62
,
242
,
178
,
204
,
47
,
239
,
237
,
237
,
253
,
23
,
167
,
246
,
247
,
95
,
5
,
166
,
96
,
45
,
233
,
4
,
233
,
4
,
88
,
11
,
166
,
160
,
5
,
109
,
169
,
3
,
89
,
162
,
185
,
173
,
52
,
124
,
237
,
244
,
3
,
156
,
190
,
117
,
137
,
243
,
47
,
63
,
207
,
159
,
54
,
241
,
39
,
224
,
137
,
71
,
31
,
167
,
99
,
69
,
244
,
130
,
109
,
9
,
75
,
16
,
186
,
109
,
100
,
82
,
85
,
99
,
233
,
222
,
61
,
62
,
57
,
57
,
211
,
213
,
123
,
17
,
234
,
49
,
198
,
173
,
213
,
106
,
117
,
212
,
221
,
216
,
14
,
131
,
70
,
68
,
95
,
186
,
114
,
249
,
167
,
158
,
120
,
226
,
137
,
95
,
60
,
60
,
60
,
188
,
227
,
51
,
159
,
249
,
12
,
111
,
188
,
241
,
6
,
27
,
103
,
207
,
158
,
229
,
249
,
231
,
159
,
231
,
129
,
7
,
30
,
224
,
245
,
215
,
95
,
35
,
51
,
176
,
77
,
85
,
97
,
155
,
57
,
155
,
170
,
162
,
230
,
36
,
16
,
182
,
89
,
230
,
156
,
213
,
245
,
155
,
251
,
123
,
251
,
255
,
221
,
254
,
222
,
222
,
183
,
109
,
31
,
2
,
235
,
148
,
22
,
96
,
45
,
105
,
1
,
38
,
96
,
192
,
128
,
21
,
233
,
188
,
126
,
139
,
186
,
243
,
14
,
190
,
243
,
242
,
75
,
252
,
179
,
54
,
248
,
19
,
240
,
242
,
249
,
115
,
108
,
124
,
252
,
177
,
199
,
177
,
100
,
57
,
12
,
182
,
49
,
235
,
57
,
5
,
56
,
165
,
121
,
199
,
222
,
222
,
77
,
221
,
102
,
59
,
170
,
42
,
220
,
173
,
128
,
64
,
82
,
131
,
70
,
142
,
14
,
233
,
198
,
133
,
11
,
23
,
214
,
146
,
184
,
120
,
241
,
34
,
175
,
190
,
250
,
42
,
79
,
62
,
249
,
36
,
111
,
189
,
245
,
22
,
103
,
206
,
156
,
225
,
190
,
251
,
238
,
227
,
141
,
55
,
94
,
163
,
170
,
144
,
68
,
119
,
211
,
93
,
128
,
136
,
8
,
10
,
49
,
171
,
152
,
115
,
94
,
147
,
244
,
143
,
78
,
157
,
186
,
227
,
151
,
183
,
183
,
182
,
222
,
182
,
221
,
33
,
221
,
2
,
142
,
145
,
166
,
208
,
148
,
100
,
41
,
124
,
112
,
120
,
145
,
83
,
251
,
15
,
240
,
194
,
185
,
23
,
249
,
99
,
87
,
47
,
241
,
255
,
7
,
241
,
167
,
232
,
241
,
71
,
159
,
224
,
93
,
6
,
91
,
41
,
176
,
45
,
144
,
192
,
226
,
93
,
178
,
45
,
64
,
25
,
193
,
213
,
27
,
55
,
118
,
151
,
154
,
255
,
153
,
34
,
254
,
214
,
169
,
253
,
253
,
237
,
131
,
195
,
67
,
30
,
120
,
224
,
1
,
174
,
95
,
191
,
206
,
238
,
238
,
46
,
25
,
201
,
193
,
225
,
45
,
186
,
139
,
238
,
166
,
109
,
220
,
13
,
4
,
85
,
197
,
92
,
150
,
195
,
174
,
126
,
118
,
140
,
241
,
27
,
219
,
219
,
219
,
223
,
202
,
204
,
75
,
145
,
121
,
41
,
35
,
46
,
14
,
233
,
42
,
104
,
177
,
228
,
163
,
213
,
142
,
199
,
92
,
243
,
221
,
87
,
94
,
226
,
207
,
18
,
241
,
207
,
208
,
39
,
31
,
255
,
56
,
118
,
19
,
26
,
204
,
94
,
99
,
54
,
36
,
113
,
155
,
13
,
152
,
207
,
253
,
216
,
147
,
254
,
39
,
95
,
255
,
189
,
59
,
142
,
79
,
78
,
254
,
58
,
240
,
243
,
57
,
198
,
231
,
20
,
186
,
43
,
51
,
119
,
186
,
91
,
171
,
28
,
108
,
111
,
111
,
179
,
94
,
214
,
172
,
151
,
5
,
139
,
118
,
247
,
81
,
47
,
117
,
177
,
219
,
207
,
103
,
196
,
211
,
171
,
213
,
234
,
133
,
28
,
249
,
86
,
68
,
92
,
141
,
136
,
203
,
17
,
113
,
57
,
34
,
174
,
167
,
98
,
145
,
18
,
187
,
121
,
233
,
252
,
203
,
252
,
89
,
36
,
254
,
140
,
250
,
220
,
103
,
63
,
199
,
119
,
95
,
251
,
238
,
30
,
240
,
216
,
241
,
241
,
241
,
39
,
247
,
246
,
246
,
158
,
152
,
203
,
124
,
48
,
35
,
246
,
70
,
142
,
81
,
93
,
89
,
221
,
199
,
118
,
95
,
150
,
116
,
33
,
35
,
223
,
204
,
204
,
43
,
17
,
113
,
32
,
116
,
168
,
208
,
77
,
73
,
183
,
34
,
226
,
48
,
164
,
117
,
219
,
30
,
17
,
188
,
116
,
254
,
21
,
254
,
44
,
19
,
255
,
28
,
240
,
23
,
223
,
64
,
127
,
237
,
65
,
62
,
251
,
233
,
207
,
228
,
181
,
27
,
215
,
87
,
115
,
206
,
40
,
125
,
211
,
16
,
0
,
0
,
0
,
35
,
73
,
68
,
65
,
84
,
149
,
164
,
204
,
8
,
133
,
132
,
13
,
22
,
190
,
173
,
132
,
22
,
133
,
166
,
164
,
186
,
251
,
158
,
143
,
248
,
248
,
248
,
136
,
103
,
158
,
125
,
134
,
127
,
94
,
252
,
223
,
160
,
16
,
125
,
12
,
251
,
15
,
241
,
139
,
0
,
0
,
0
,
0
,
73
,
69
,
78
,
68
,
174
,
66
,
96
,
130
])
let
testJpg
=
new
Uint8Array
([
255
,
216
,
255
,
224
,
0
,
16
,
74
,
70
,
73
,
70
,
0
,
1
,
1
,
0
,
0
,
1
,
0
,
1
,
0
,
0
,
255
,
219
,
0
,
67
,
0
,
6
,
4
,
4
,
5
,
4
,
4
,
6
,
5
,
5
,
5
,
6
,
6
,
6
,
7
,
9
,
14
,
9
,
9
,
8
,
8
,
9
,
18
,
13
,
13
,
10
,
14
,
21
,
18
,
22
,
22
,
21
,
18
,
20
,
20
,
23
,
26
,
33
,
28
,
23
,
24
,
31
,
25
,
20
,
20
,
29
,
39
,
29
,
31
,
34
,
35
,
37
,
37
,
37
,
22
,
28
,
41
,
44
,
40
,
36
,
43
,
33
,
36
,
37
,
36
,
255
,
219
,
0
,
67
,
1
,
6
,
6
,
6
,
9
,
8
,
9
,
17
,
9
,
9
,
17
,
36
,
24
,
20
,
24
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
36
,
255
,
194
,
0
,
17
,
8
,
0
,
134
,
0
,
200
,
3
,
1
,
34
,
0
,
2
,
17
,
1
,
3
,
17
,
1
,
255
,
196
,
0
,
27
,
0
,
0
,
2
,
3
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
3
,
5
,
0
,
2
,
4
,
6
,
1
,
7
,
255
,
196
,
0
,
25
,
1
,
0
,
3
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
2
,
3
,
0
,
4
,
5
,
255
,
218
,
0
,
12
,
3
,
1
,
0
,
2
,
16
,
3
,
16
,
0
,
0
,
1
,
228
,
9
,
152
,
145
,
134
,
173
,
24
,
72
,
155
,
105
,
215
,
68
,
13
,
44
,
184
,
169
,
181
,
80
,
198
,
145
,
166
,
191
,
14
,
53
,
115
,
16
,
9
,
170
,
96
,
157
,
183
,
164
,
243
,
213
,
54
,
23
,
158
,
46
,
129
,
56
,
219
,
15
,
57
,
234
,
91
,
12
,
97
,
24
,
172
,
209
,
230
,
230
,
64
,
147
,
117
,
160
,
203
,
198
,
198
,
155
,
45
,
245
,
151
,
174
,
169
,
238
,
202
,
85
,
58
,
62
,
137
,
3
,
159
,
82
,
218
,
134
,
75
,
131
,
207
,
162
,
239
,
7
,
1
,
242
,
208
,
244
,
60
,
223
,
60
,
71
,
66
,
251
,
148
,
53
,
208
,
185
,
205
,
232
,
2
,
49
,
215
,
48
,
197
,
111
,
116
,
187
,
242
,
44
,
167
,
113
,
172
,
128
,
215
,
205
,
153
,
51
,
58
,
47
,
62
,
7
,
222
,
70
,
222
,
128
,
78
,
201
,
53
,
58
,
171
,
216
,
237
,
64
,
226
,
111
,
167
,
22
,
22
,
232
,
220
,
106
,
77
,
229
,
243
,
185
,
150
,
141
,
149
,
20
,
43
,
207
,
183
,
29
,
215
,
33
,
243
,
218
,
186
,
210
,
147
,
51
,
227
,
128
,
190
,
125
,
182
,
219
,
41
,
100
,
187
,
47
,
82
,
147
,
227
,
200
,
79
,
122
,
126
,
47
,
222
,
191
,
163
,
40
,
216
,
21
,
113
,
167
,
116
,
203
,
228
,
253
,
218
,
217
,
207
,
58
,
215
,
149
,
132
,
146
,
49
,
19
,
190
,
38
,
245
,
43
,
60
,
16
,
170
,
239
,
42
,
14
,
158
,
45
,
35
,
200
,
19
,
180
,
204
,
49
,
180
,
38
,
109
,
238
,
54
,
31
,
63
,
144
,
47
,
95
,
167
,
97
,
234
,
141
,
158
,
230
,
149
,
125
,
21
,
206
,
197
,
25
,
118
,
78
,
128
,
112
,
175
,
40
,
197
,
216
,
209
,
142
,
137
,
138
,
95
,
54
,
66
,
45
,
183
,
205
,
243
,
166
,
239
,
56
,
197
,
162
,
172
,
236
,
112
,
219
,
143
,
24
,
24
,
202
,
133
,
113
,
164
,
99
,
207
,
106
,
84
,
126
,
208
,
205
,
194
,
110
,
205
,
199
,
167
,
38
,
158
,
166
,
206
,
3
,
97
,
147
,
235
,
115
,
202
,
244
,
232
,
206
,
83
,
187
,
28
,
107
,
151
,
78
,
67
,
1
,
207
,
98
,
176
,
188
,
121
,
21
,
146
,
38
,
181
,
235
,
114
,
133
,
207
,
187
,
112
,
249
,
246
,
46
,
110
,
11
,
143
,
56
,
42
,
61
,
129
,
151
,
202
,
29
,
134
,
116
,
110
,
164
,
124
,
205
,
122
,
119
,
209
,
93
,
252
,
239
,
187
,
133
,
239
,
201
,
245
,
220
,
102
,
39
,
235
,
56
,
126
,
156
,
30
,
149
,
59
,
110
,
9
,
79
,
64
,
175
,
74
,
25
,
200
,
70
,
244
,
62
,
124
,
252
,
218
,
187
,
59
,
247
,
116
,
236
,
80
,
189
,
133
,
80
,
34
,
32
,
59
,
60
,
236
,
66
,
109
,
229
,
10
,
57
,
182
,
85
,
41
,
175
,
159
,
98
,
165
,
145
,
113
,
109
,
142
,
245
,
202
,
98
,
102
,
103
,
100
,
222
,
80
,
108
,
119
,
200
,
176
,
166
,
250
,
63
,
6
,
193
,
89
,
110
,
135
,
132
,
48
,
166
,
158
,
87
,
223
,
2
,
24
,
135
,
195
,
62
,
190
,
172
,
188
,
246
,
24
,
22
,
121
,
242
,
26
,
156
,
250
,
151
,
90
,
174
,
190
,
204
,
241
,
202
,
93
,
146
,
117
,
109
,
38
,
146
,
67
,
219
,
201
,
36
,
220
,
89
,
34
,
254
,
138
,
65
,
149
,
201
,
59
,
20
,
30
,
200
,
194
,
90
,
69
,
215
,
52
,
147
,
108
,
217
,
36
,
161
,
53
,
164
,
109
,
81
,
201
,
133
,
164
,
138
,
127
,
255
,
196
,
0
,
36
,
16
,
0
,
2
,
2
,
3
,
0
,
2
,
2
,
3
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
1
,
2
,
0
,
3
,
4
,
17
,
18
,
19
,
33
,
5
,
34
,
16
,
20
,
49
,
65
,
21
,
50
,
255
,
218
,
0
,
8
,
1
,
1
,
0
,
1
,
5
,
2
,
128
,
192
,
243
,
201
,
3
,
78
,
160
,
51
,
251
,
60
,
123
,
158
,
50
,
37
,
100
,
136
,
46
,
158
,
93
,
199
,
34
,
15
,
115
,
153
,
238
,
111
,
242
,
125
,
194
,
39
,
27
,
30
,
56
,
213
,
206
,
76
,
209
,
128
,
24
,
55
,
54
,
103
,
70
,
7
,
48
,
89
,
22
,
217
,
216
,
48
,
115
,
63
,
93
,
200
,
240
,
180
,
106
,
204
,
85
,
34
,
117
,
3
,
66
,
194
,
121
,
4
,
236
,
77
,
136
,
88
,
78
,
245
,
5
,
131
,
109
,
163
,
22
,
184
,
41
,
130
,
129
,
161
,
72
,
158
,
37
,
135
,
28
,
79
,
4
,
52
,
79
,
25
,
149
,
212
,
206
,
216
,
127
,
28
,
181
,
65
,
194
,
128
,
4
,
124
,
122
,
172
,
23
,
124
,
58
,
153
,
149
,
129
,
126
,
50
,
247
,
25
,
225
,
99
,
59
,
51
,
202
,
103
,
154
,
53
,
176
,
89
,
18
,
239
,
117
,
184
,
210
,
48
,
51
,
212
,
90
,
250
,
134
,
173
,
19
,
177
,
1
,
16
,
232
,
205
,
8
,
159
,
87
,
163
,
34
,
38
,
154
,
15
,
198
,
230
,
210
,
241
,
242
,
191
,
28
,
184
,
231
,
137
,
196
,
230
,
20
,
18
,
193
,
169
,
206
,
231
,
132
,
194
,
141
,
176
,
26
,
7
,
97
,
6
,
67
,
74
,
242
,
204
,
92
,
173
,
195
,
122
,
153
,
245
,
63
,
141
,
76
,
74
,
125
,
216
,
126
,
244
,
230
,
42
,
138
,
178
,
67
,
128
,
211
,
184
,
87
,
195
,
111
,
202
,
229
,
126
,
213
,
250
,
51
,
80
,
172
,
212
,
116
,
159
,
195
,
229
,
158
,
65
,
181
,
160
,
9
,
250
,
224
,
145
,
134
,
39
,
234
,
129
,
63
,
90
,
26
,
88
,
16
,
27
,
124
,
60
,
196
,
195
,
119
,
54
,
128
,
20
,
167
,
223
,
51
,
26
,
243
,
71
,
195
,
99
,
92
,
49
,
179
,
25
,
177
,
241
,
112
,
30
,
220
,
154
,
242
,
25
,
69
,
35
,
68
,
241
,
56
,
140
,
178
,
197
,
135
,
168
,
202
,
219
,
10
,
97
,
26
,
139
,
105
,
137
,
100
,
13
,
63
,
221
,
137
,
164
,
97
,
94
,
39
,
108
,
152
,
245
,
36
,
99
,
233
,
142
,
229
,
227
,
83
,
30
,
209
,
170
,
242
,
107
,
172
,
87
,
98
,
90
,
150
,
30
,
79
,
203
,
19
,
226
,
251
,
44
,
160
,
249
,
34
,
209
,
77
,
139
,
112
,
241
,
63
,
67
,
103
,
152
,
120
,
135
,
136
,
200
,
166
,
122
,
34
,
176
,
12
,
224
,
193
,
181
,
158
,
165
,
117
,
246
,
202
,
56
,
4
,
195
,
44
,
73
,
106
,
157
,
35
,
154
,
142
,
101
,
182
,
217
,
62
,
58
,
245
,
76
,
52
,
126
,
230
,
109
,
205
,
109
,
138
,
173
,
115
,
46
,
48
,
165
,
22
,
149
,
75
,
51
,
143
,
118
,
232
,
71
,
254
,
15
,
176
,
113
,
14
,
196
,
91
,
14
,
150
,
215
,
137
,
144
,
218
,
92
,
158
,
134
,
57
,
243
,
26
,
209
,
107
,
27
,
132
,
205
,
207
,
236
,
106
,
183
,
31
,
7
,
215
,
235
,
148
,
56
,
244
,
251
,
36
,
87
,
93
,
129
,
33
,
175
,
71
,
91
,
11
,
143
,
101
,
53
,
218
,
157
,
66
,
162
,
29
,
111
,
159
,
187
,
110
,
55
,
240
,
87
,
234
,
133
,
212
,
41
,
27
,
28
,
129
,
138
,
139
,
85
,
97
,
230
,
224
,
121
,
254
,
167
,
45
,
8
,
155
,
159
,
173
,
184
,
181
,
242
,
217
,
219
,
0
,
158
,
32
,
121
,
74
,
78
,
67
,
165
,
203
,
195
,
178
,
253
,
77
,
115
,
128
,
176
,
0
,
65
,
68
,
103
,
15
,
233
,
108
,
58
,
91
,
73
,
92
,
94
,
238
,
134
,
178
,
34
,
127
,
58
,
133
,
226
,
60
,
164
,
29
,
241
,
181
,
43
,
197
,
189
,
20
,
0
,
125
,
110
,
201
,
107
,
91
,
76
,
239
,
175
,
120
,
238
,
52
,
140
,
117
,
157
,
81
,
239
,
135
,
105
,
239
,
76
,
158
,
220
,
21
,
135
,
108
,
255
,
0
,
194
,
187
,
216
,
162
,
195
,
40
,
11
,
74
,
1
,
212
,
21
,
9
,
98
,
199
,
149
,
123
,
152
,
219
,
128
,
250
,
40
,
53
,
115
,
123
,
186
,
225
,
85
,
22
,
88
,
11
,
22
,
48
,
95
,
185
,
79
,
38
,
177
,
233
,
89
,
5
,
233
,
144
,
77
,
86
,
91
,
146
,
166
,
53
,
187
,
158
,
114
,
99
,
48
,
105
,
173
,
204
,
76
,
186
,
170
,
85
,
204
,
12
,
149
,
223
,
163
,
139
,
111
,
81
,
16
,
52
,
190
,
189
,
45
,
214
,
114
,
113
,
14
,
218
,
159
,
75
,
95
,
243
,
254
,
128
,
149
,
185
,
51
,
228
,
108
,
46
,
254
,
86
,
22
,
11
,
8
,
150
,
183
,
39
,
15
,
35
,
69
,
178
,
91
,
164
,
184
,
214
,
115
,
244
,
47
,
113
,
160
,
227
,
150
,
68
,
112
,
124
,
186
,
42
,
131
,
167
,
199
,
246
,
234
,
213
,
15
,
59
,
210
,
112
,
242
,
186
,
152
,
89
,
10
,
201
,
155
,
96
,
226
,
234
,
124
,
166
,
176
,
244
,
54
,
53
,
222
,
170
,
97
,
206
,
37
,
158
,
82
,
246
,
248
,
213
,
242
,
149
,
229
,
36
,
52
,
183
,
110
,
108
,
255
,
0
,
198
,
249
,
152
,
148
,
51
,
139
,
23
,
245
,
241
,
110
,
181
,
172
,
35
,
178
,
109
,
94
,
154
,
191
,
114
,
234
,
23
,
172
,
123
,
64
,
43
,
113
,
217
,
11
,
226
,
241
,
41
,
93
,
40
,
148
,
221
,
192
,
108
,
214
,
118
,
243
,
9
,
102
,
65
,
222
,
43
,
135
,
149
,
167
,
85
,
96
,
238
,
149
,
201
,
8
,
113
,
202
,
146
,
197
,
248
,
2
,
221
,
30
,
153
,
199
,
46
,
7
,
198
,
222
,
58
,
202
,
201
,
108
,
169
,
101
,
97
,
154
,
218
,
252
,
131
,
86
,
106
,
194
,
117
,
99
,
175
,
73
,
17
,
249
,
139
,
246
,
110
,
248
,
10
,
224
,
214
,
24
,
168
,
98
,
82
,
43
,
177
,
119
,
115
,
188
,
108
,
179
,
73
,
31
,
49
,
171
,
50
,
50
,
133
,
142
,
114
,
29
,
167
,
94
,
144
,
108
,
145
,
165
,
248
,
242
,
58
,
183
,
161
,
18
,
210
,
49
,
171
,
179
,
74
,
110
,
32
,
187
,
243
,
22
,
208
,
90
,
199
,
216
,
224
,
105
,
190
,
178
,
151
,
38
,
121
,
72
,
30
,
126
,
151
,
161
,
3
,
237
,
84
,
232
,
143
,
69
,
151
,
112
,
208
,
21
,
44
,
232
,
203
,
24
,
232
,
55
,
115
,
126
,
188
,
154
,
125
,
232
,
37
,
155
,
159
,
103
,
133
,
206
,
187
,
36
,
163
,
115
,
1
,
47
,
18
,
223
,
185
,
59
,
179
,
201
,
220
,
255
,
196
,
0
,
34
,
17
,
0
,
2
,
2
,
2
,
2
,
2
,
2
,
3
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
2
,
17
,
16
,
18
,
3
,
33
,
4
,
32
,
49
,
65
,
34
,
48
,
97
,
255
,
218
,
0
,
8
,
1
,
3
,
1
,
1
,
63
,
1
,
253
,
106
,
172
,
148
,
41
,
136
,
172
,
208
,
162
,
177
,
165
,
142
,
214
,
47
,
27
,
26
,
179
,
178
,
217
,
121
,
72
,
95
,
136
,
251
,
43
,
210
,
203
,
46
,
179
,
86
,
36
,
181
,
254
,
147
,
125
,
30
,
63
,
22
,
210
,
239
,
224
,
242
,
56
,
210
,
87
,
139
,
47
,
29
,
151
,
120
,
72
,
138
,
44
,
108
,
225
,
141
,
179
,
201
,
119
,
138
,
53
,
44
,
100
,
81
,
66
,
19
,
30
,
56
,
225
,
71
,
36
,
118
,
62
,
11
,
44
,
163
,
82
,
8
,
174
,
232
,
146
,
213
,
137
,
147
,
120
,
82
,
251
,
54
,
234
,
217
,
46
,
217
,
161
,
69
,
209
,
98
,
102
,
204
,
115
,
127
,
102
,
200
,
150
,
54
,
214
,
8
,
230
,
228
,
180
,
151
,
186
,
31
,
165
,
225
,
231
,
255
,
196
,
0
,
36
,
17
,
0
,
2
,
2
,
2
,
2
,
2
,
2
,
2
,
3
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
2
,
17
,
3
,
33
,
18
,
19
,
16
,
49
,
4
,
65
,
34
,
97
,
20
,
50
,
81
,
255
,
218
,
0
,
8
,
1
,
2
,
1
,
1
,
63
,
1
,
161
,
164
,
112
,
177
,
193
,
143
,
146
,
56
,
242
,
250
,
35
,
142
,
134
,
135
,
18
,
159
,
135
,
98
,
200
,
78
,
114
,
71
,
115
,
59
,
153
,
222
,
200
,
100
,
183
,
178
,
171
,
72
,
100
,
176
,
192
,
113
,
173
,
26
,
34
,
147
,
56
,
196
,
120
,
162
,
206
,
248
,
191
,
100
,
167
,
137
,
157
,
112
,
126
,
142
,
186
,
62
,
54
,
6
,
191
,
41
,
30
,
199
,
100
,
157
,
146
,
201
,
189
,
156
,
136
,
50
,
172
,
164
,
73
,
35
,
137
,
24
,
74
,
114
,
227
,
19
,
15
,
199
,
88
,
215
,
239
,
195
,
149
,
50
,
79
,
102
,
89
,
241
,
67
,
77
,
198
,
209
,
13
,
177
,
81
,
95
,
178
,
159
,
250
,
73
,
35
,
132
,
89
,
131
,
227
,
199
,
18
,
253
,
248
,
114
,
38
,
236
,
226
,
124
,
182
,
220
,
232
,
221
,
104
,
198
,
154
,
217
,
22
,
118
,
29
,
201
,
14
,
22
,
99
,
248
,
202
,
95
,
216
,
145
,
100
,
137
,
196
,
244
,
182
,
74
,
219
,
178
,
184
,
196
,
175
,
196
,
161
,
65
,
138
,
36
,
115
,
241
,
103
,
242
,
20
,
137
,
207
,
101
,
234
,
200
,
190
,
72
,
145
,
159
,
81
,
162
,
144
,
163
,
170
,
36
,
183
,
72
,
138
,
59
,
53
,
161
,
56
,
178
,
112
,
26
,
104
,
228
,
208
,
178
,
73
,
35
,
12
,
184
,
251
,
50
,
63
,
184
,
142
,
77
,
251
,
41
,
125
,
158
,
221
,
35
,
174
,
94
,
208
,
163
,
36
,
69
,
81
,
68
,
137
,
33
,
146
,
35
,
39
,
117
,
229
,
161
,
162
,
62
,
43
,
199
,
255
,
196
,
0
,
46
,
16
,
0
,
2
,
2
,
1
,
3
,
2
,
4
,
5
,
4
,
3
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
2
,
17
,
33
,
16
,
18
,
49
,
65
,
81
,
32
,
34
,
50
,
97
,
3
,
19
,
48
,
66
,
113
,
35
,
64
,
129
,
145
,
80
,
82
,
161
,
177
,
255
,
218
,
0
,
8
,
1
,
1
,
0
,
6
,
63
,
2
,
255
,
0
,
9
,
123
,
93
,
28
,
63
,
219
,
40
,
174
,
75
,
248
,
143
,
115
,
41
,
81
,
193
,
82
,
130
,
63
,
74
,
123
,
127
,
38
,
233
,
37
,
37
,
221
,
125
,
26
,
127
,
73
,
52
,
84
,
185
,
47
,
192
,
224
,
243
,
221
,
51
,
124
,
61
,
47
,
167
,
213
,
207
,
135
,
230
,
75
,
132
,
90
,
178
,
158
,
11
,
90
,
252
,
229
,
233
,
251
,
143
,
211
,
126
,
72
,
175
,
216
,
238
,
154
,
168
,
155
,
82
,
165
,
166
,
239
,
129
,
47
,
48
,
190
,
127
,
36
,
231
,
240
,
224
,
231
,
40
,
174
,
17
,
25
,
207
,
225
,
74
,
23
,
209
,
146
,
82
,
244
,
215
,
135
,
5
,
125
,
37
,
140
,
30
,
157
,
119
,
104
,
148
,
164
,
144
,
167
,
6
,
165
,
23
,
212
,
84
,
84
,
101
,
94
,
218
,
103
,
8
,
195
,
169
,
14
,
18
,
231
,
199
,
90
,
94
,
148
,
138
,
240
,
215
,
65
,
56
,
244
,
35
,
190
,
94
,
106
,
200
,
230
,
123
,
35
,
108
,
99
,
147
,
60
,
146
,
146
,
245
,
51
,
248
,
241
,
114
,
96
,
182
,
100
,
162
,
151
,
138
,
244
,
206
,
184
,
47
,
116
,
183
,
27
,
220
,
155
,
47
,
195
,
76
,
178
,
216
,
145
,
104
,
93
,
252
,
23
,
122
,
237
,
44
,
170
,
35
,
219
,
75
,
44
,
161
,
199
,
91
,
179
,
36
,
78
,
116
,
228
,
218
,
188
,
87
,
174
,
77
,
213
,
145
,
197
,
255
,
0
,
26
,
126
,
53
,
221
,
209
,
142
,
184
,
70
,
112
,
197
,
108
,
119
,
208
,
230
,
180
,
242
,
171
,
23
,
145
,
164
,
40
,
196
,
246
,
250
,
17
,
28
,
191
,
161
,
119
,
209
,
246
,
49
,
201
,
200
,
224
,
108
,
226
,
139
,
22
,
74
,
122
,
113
,
193
,
232
,
167
,
213
,
235
,
206
,
180
,
86
,
179
,
133
,
102
,
232
,
201
,
8
,
110
,
170
,
40
,
207
,
246
,
96
,
218
,
202
,
68
,
95
,
36
,
155
,
61
,
28
,
158
,
231
,
158
,
243
,
167
,
177
,
229
,
87
,
100
,
148
,
126
,
215
,
84
,
126
,
162
,
228
,
221
,
173
,
46
,
74
,
150
,
12
,
189
,
37
,
62
,
236
,
177
,
62
,
172
,
221
,
46
,
16
,
231
,
107
,
103
,
72
,
136
,
178
,
199
,
57
,
126
,
17
,
207
,
2
,
146
,
88
,
35
,
186
,
57
,
226
,
201
,
91
,
199
,
75
,
45
,
116
,
16
,
159
,
247
,
68
,
182
,
230
,
242
,
40
,
203
,
43
,
255
,
0
,
48
,
74
,
73
,
116
,
73
,
22
,
143
,
51
,
201
,
113
,
121
,
171
,
60
,
221
,
202
,
37
,
20
,
234
,
213
,
27
,
90
,
219
,
202
,
162
,
110
,
253
,
74
,
149
,
27
,
107
,
40
,
165
,
252
,
153
,
26
,
138
,
193
,
116
,
232
,
217
,
60
,
81
,
73
,
212
,
107
,
132
,
200
,
205
,
127
,
194
,
254
,
227
,
253
,
177
,
86
,
39
,
213
,
228
,
181
,
195
,
187
,
215
,
210
,
209
,
152
,
212
,
87
,
99
,
60
,
123
,
10
,
75
,
210
,
94
,
215
,
125
,
253
,
138
,
172
,
25
,
113
,
166
,
109
,
172
,
80
,
171
,
133
,
255
,
0
,
79
,
155
,
12
,
78
,
89
,
145
,
234
,
224
,
106
,
185
,
230
,
141
,
207
,
29
,
206
,
125
,
198
,
231
,
229
,
139
,
85
,
108
,
105
,
122
,
172
,
248
,
178
,
226
,
110
,
145
,
234
,
228
,
174
,
190
,
197
,
243
,
252
,
143
,
191
,
68
,
52
,
232
,
189
,
213
,
236
,
39
,
220
,
252
,
119
,
43
,
177
,
179
,
237
,
54
,
113
,
101
,
46
,
4
,
229
,
212
,
149
,
231
,
105
,
185
,
215
,
153
,
95
,
227
,
6
,
222
,
183
,
201
,
134
,
149
,
17
,
86
,
241
,
219
,
68
,
215
,
81
,
71
,
143
,
198
,
159
,
129
,
103
,
135
,
67
,
254
,
180
,
199
,
82
,
228
,
242
,
81
,
146
,
154
,
63
,
255
,
196
,
0
,
38
,
16
,
1
,
0
,
2
,
2
,
2
,
1
,
3
,
5
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
1
,
0
,
17
,
33
,
49
,
65
,
81
,
97
,
16
,
113
,
161
,
129
,
145
,
177
,
225
,
240
,
193
,
209
,
241
,
255
,
218
,
0
,
8
,
1
,
1
,
0
,
1
,
63
,
33
,
61
,
231
,
146
,
57
,
204
,
61
,
62
,
187
,
151
,
68
,
33
,
147
,
163
,
232
,
232
,
68
,
8
,
168
,
98
,
198
,
161
,
7
,
120
,
212
,
113
,
168
,
33
,
229
,
33
,
104
,
195
,
5
,
132
,
193
,
196
,
29
,
32
,
28
,
74
,
157
,
122
,
70
,
24
,
80
,
153
,
34
,
96
,
126
,
101
,
71
,
244
,
83
,
181
,
19
,
150
,
33
,
115
,
9
,
24
,
11
,
204
,
243
,
122
,
68
,
250
,
6
,
143
,
16
,
94
,
32
,
117
,
51
,
147
,
155
,
40
,
226
,
51
,
33
,
7
,
212
,
168
,
149
,
106
,
5
,
57
,
67
,
131
,
47
,
28
,
67
,
72
,
7
,
81
,
134
,
149
,
237
,
47
,
207
,
244
,
153
,
52
,
195
,
89
,
78
,
215
,
15
,
12
,
101
,
30
,
103
,
98
,
87
,
41
,
230
,
46
,
43
,
204
,
85
,
220
,
218
,
32
,
242
,
101
,
84
,
182
,
86
,
37
,
173
,
226
,
107
,
39
,
66
,
115
,
161
,
244
,
26
,
109
,
67
,
44
,
12
,
98
,
47
,
113
,
28
,
184
,
192
,
103
,
56
,
68
,
25
,
233
,
107
,
199
,
208
,
197
,
34
,
141
,
75
,
80
,
110
,
83
,
152
,
72
,
47
,
113
,
90
,
204
,
7
,
44
,
60
,
56
,
116
,
112
,
167
,
113
,
1
,
195
,
22
,
243
,
44
,
94
,
20
,
243
,
40
,
109
,
150
,
233
,
131
,
109
,
68
,
216
,
130
,
42
,
92
,
3
,
204
,
110
,
187
,
20
,
22
,
53
,
15
,
47
,
44
,
57
,
9
,
151
,
166
,
173
,
92
,
183
,
47
,
164
,
97
,
22
,
210
,
12
,
98
,
94
,
181
,
21
,
114
,
165
,
84
,
88
,
96
,
154
,
19
,
48
,
69
,
194
,
206
,
97
,
122
,
79
,
124
,
204
,
19
,
17
,
177
,
186
,
243
,
15
,
137
,
14
,
74
,
217
,
53
,
165
,
174
,
38
,
48
,
168
,
220
,
250
,
65
,
185
,
135
,
45
,
158
,
129
,
84
,
212
,
0
,
192
,
234
,
32
,
220
,
52
,
225
,
11
,
172
,
51
,
73
,
13
,
106
,
84
,
111
,
136
,
59
,
130
,
131
,
2
,
241
,
129
,
97
,
35
,
161
,
132
,
143
,
113
,
153
,
48
,
223
,
153
,
86
,
19
,
51
,
18
,
209
,
211
,
113
,
21
,
226
,
38
,
225
,
47
,
115
,
66
,
16
,
28
,
202
,
112
,
220
,
174
,
216
,
103
,
180
,
47
,
182
,
51
,
109
,
71
,
204
,
166
,
167
,
101
,
196
,
35
,
66
,
51
,
90
,
140
,
193
,
109
,
76
,
156
,
68
,
172
,
131
,
141
,
54
,
184
,
221
,
67
,
168
,
212
,
80
,
206
,
222
,
103
,
92
,
115
,
8
,
4
,
178
,
82
,
166
,
107
,
150
,
3
,
146
,
41
,
94
,
199
,
168
,
176
,
213
,
209
,
149
,
181
,
76
,
23
,
204
,
84
,
230
,
127
,
4
,
88
,
215
,
1
,
10
,
92
,
129
,
167
,
157
,
97
,
115
,
116
,
14
,
120
,
33
,
89
,
208
,
34
,
196
,
195
,
8
,
28
,
140
,
80
,
220
,
237
,
226
,
97
,
13
,
32
,
242
,
243
,
112
,
204
,
114
,
204
,
4
,
99
,
166
,
185
,
244
,
217
,
182
,
230
,
13
,
206
,
188
,
199
,
12
,
199
,
30
,
35
,
178
,
49
,
18
,
193
,
9
,
77
,
89
,
152
,
173
,
6
,
102
,
106
,
227
,
226
,
44
,
174
,
106
,
102
,
229
,
166
,
142
,
236
,
150
,
212
,
231
,
113
,
86
,
241
,
15
,
183
,
21
,
163
,
136
,
93
,
169
,
129
,
150
,
247
,
145
,
113
,
48
,
169
,
146
,
93
,
70
,
152
,
53
,
165
,
8
,
151
,
50
,
203
,
185
,
154
,
230
,
16
,
245
,
51
,
212
,
132
,
12
,
18
,
190
,
49
,
11
,
94
,
18
,
130
,
213
,
22
,
178
,
133
,
62
,
69
,
87
,
152
,
187
,
22
,
241
,
49
,
88
,
204
,
181
,
30
,
247
,
22
,
95
,
36
,
183
,
161
,
49
,
180
,
89
,
222
,
153
,
109
,
199
,
51
,
4
,
107
,
44
,
121
,
18
,
203
,
178
,
89
,
184
,
51
,
186
,
134
,
222
,
165
,
39
,
137
,
98
,
138
,
178
,
193
,
57
,
162
,
174
,
91
,
185
,
72
,
8
,
216
,
178
,
48
,
57
,
196
,
79
,
218
,
225
,
139
,
53
,
110
,
18
,
54
,
12
,
110
,
48
,
17
,
56
,
144
,
199
,
105
,
115
,
148
,
133
,
62
,
37
,
199
,
40
,
33
,
77
,
18
,
152
,
92
,
18
,
241
,
166
,
145
,
113
,
44
,
125
,
98
,
213
,
156
,
117
,
26
,
54
,
70
,
93
,
121
,
186
,
159
,
86
,
55
,
184
,
202
,
226
,
165
,
217
,
16
,
117
,
137
,
163
,
56
,
188
,
238
,
99
,
27
,
196
,
190
,
51
,
76
,
36
,
205
,
12
,
183
,
133
,
213
,
14
,
216
,
168
,
25
,
117
,
46
,
97
,
222
,
24
,
24
,
185
,
87
,
188
,
1
,
119
,
202
,
149
,
228
,
71
,
227
,
158
,
39
,
48
,
148
,
108
,
25
,
173
,
195
,
116
,
162
,
57
,
142
,
123
,
239
,
10
,
173
,
33
,
118
,
66
,
149
,
178
,
40
,
112
,
8
,
144
,
193
,
147
,
209
,
5
,
254
,
21
,
50
,
129
,
137
,
122
,
253
,
101
,
173
,
183
,
9
,
147
,
0
,
21
,
50
,
135
,
50
,
144
,
197
,
76
,
146
,
184
,
40
,
67
,
42
,
59
,
128
,
40
,
114
,
75
,
194
,
137
,
119
,
21
,
142
,
140
,
202
,
158
,
211
,
34
,
220
,
229
,
32
,
166
,
100
,
94
,
105
,
153
,
106
,
229
,
189
,
198
,
173
,
253
,
165
,
168
,
82
,
216
,
130
,
208
,
91
,
248
,
133
,
176
,
90
,
227
,
226
,
107
,
166
,
75
,
198
,
9
,
195
,
176
,
3
,
247
,
128
,
22
,
236
,
149
,
20
,
81
,
164
,
202
,
64
,
153
,
204
,
168
,
7
,
113
,
185
,
70
,
166
,
222
,
34
,
53
,
37
,
185
,
144
,
226
,
165
,
3
,
165
,
126
,
101
,
166
,
148
,
92
,
173
,
67
,
114
,
243
,
22
,
196
,
193
,
24
,
196
,
161
,
198
,
101
,
104
,
193
,
138
,
221
,
204
,
89
,
219
,
232
,
25
,
4
,
183
,
238
,
49
,
133
,
167
,
74
,
230
,
90
,
33
,
165
,
44
,
27
,
93
,
237
,
3
,
146
,
100
,
164
,
128
,
19
,
238
,
103
,
61
,
128
,
59
,
153
,
30
,
135
,
79
,
79
,
254
,
196
,
80
,
166
,
191
,
143
,
136
,
192
,
193
,
219
,
147
,
204
,
52
,
82
,
107
,
234
,
126
,
162
,
194
,
10
,
0
,
198
,
10
,
251
,
254
,
225
,
181
,
166
,
106
,
199
,
23
,
42
,
54
,
120
,
74
,
248
,
216
,
33
,
216
,
174
,
199
,
82
,
164
,
69
,
68
,
78
,
30
,
172
,
137
,
8
,
66
,
8
,
205
,
141
,
69
,
131
,
201
,
202
,
190
,
165
,
212
,
128
,
183
,
60
,
70
,
176
,
193
,
242
,
139
,
157
,
132
,
169
,
119
,
149
,
201
,
91
,
153
,
15
,
50
,
226
,
13
,
244
,
43
,
209
,
93
,
195
,
22
,
103
,
30
,
70
,
229
,
41
,
99
,
90
,
91
,
137
,
184
,
32
,
198
,
161
,
102
,
168
,
87
,
143
,
39
,
51
,
17
,
58
,
222
,
223
,
195
,
50
,
38
,
71
,
247
,
39
,
226
,
114
,
221
,
117
,
5
,
241
,
147
,
108
,
96
,
86
,
53
,
87
,
198
,
33
,
100
,
80
,
35
,
176
,
222
,
9
,
97
,
246
,
15
,
47
,
226
,
35
,
118
,
30
,
90
,
246
,
175
,
180
,
210
,
214
,
89
,
75
,
174
,
223
,
26
,
139
,
251
,
23
,
124
,
149
,
5
,
75
,
214
,
23
,
79
,
215
,
233
,
1
,
55
,
179
,
59
,
187
,
254
,
251
,
65
,
22
,
230
,
87
,
20
,
238
,
36
,
219
,
50
,
115
,
30
,
112
,
118
,
47
,
241
,
52
,
7
,
44
,
34
,
202
,
138
,
103
,
203
,
29
,
125
,
166
,
35
,
135
,
178
,
229
,
29
,
178
,
255
,
0
,
36
,
230
,
19
,
100
,
28
,
188
,
115
,
29
,
78
,
54
,
235
,
27
,
127
,
200
,
167
,
207
,
6
,
191
,
189
,
226
,
227
,
195
,
107
,
36
,
183
,
108
,
158
,
63
,
196
,
181
,
26
,
20
,
66
,
245
,
49
,
174
,
55
,
226
,
22
,
154
,
166
,
82
,
68
,
208
,
113
,
148
,
185
,
40
,
93
,
56
,
124
,
65
,
10
,
21
,
161
,
239
,
11
,
0
,
170
,
85
,
84
,
0
,
72
,
129
,
60
,
96
,
197
,
236
,
150
,
14
,
211
,
66
,
25
,
196
,
92
,
224
,
54
,
249
,
117
,
83
,
28
,
16
,
4
,
213
,
33
,
174
,
73
,
194
,
218
,
150
,
155
,
14
,
132
,
21
,
50
,
219
,
228
,
212
,
189
,
146
,
191
,
236
,
243
,
133
,
139
,
234
,
42
,
166
,
137
,
129
,
69
,
96
,
113
,
46
,
208
,
121
,
12
,
91
,
87
,
62
,
166
,
40
,
220
,
134
,
30
,
51
,
12
,
18
,
224
,
248
,
155
,
43
,
60
,
191
,
189
,
226
,
109
,
128
,
149
,
247
,
148
,
92
,
103
,
18
,
192
,
181
,
248
,
252
,
70
,
211
,
168
,
79
,
255
,
218
,
0
,
12
,
3
,
1
,
0
,
2
,
0
,
3
,
0
,
0
,
0
,
16
,
0
,
11
,
95
,
201
,
21
,
11
,
241
,
117
,
198
,
54
,
242
,
102
,
37
,
18
,
160
,
46
,
55
,
232
,
31
,
26
,
46
,
94
,
202
,
104
,
93
,
30
,
207
,
237
,
127
,
160
,
44
,
90
,
233
,
186
,
230
,
116
,
172
,
158
,
127
,
75
,
184
,
98
,
203
,
56
,
43
,
0
,
199
,
29
,
10
,
105
,
68
,
54
,
85
,
245
,
33
,
248
,
48
,
20
,
196
,
66
,
91
,
122
,
46
,
42
,
238
,
241
,
113
,
12
,
247
,
110
,
32
,
121
,
215
,
215
,
96
,
159
,
76
,
126
,
14
,
0
,
195
,
254
,
24
,
66
,
13
,
232
,
125
,
247
,
255
,
196
,
0
,
28
,
17
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
0
,
17
,
33
,
49
,
65
,
16
,
81
,
97
,
255
,
218
,
0
,
8
,
1
,
3
,
1
,
1
,
63
,
16
,
187
,
118
,
237
,
131
,
121
,
228
,
171
,
9
,
246
,
221
,
182
,
27
,
64
,
62
,
69
,
129
,
216
,
17
,
143
,
39
,
126
,
217
,
191
,
146
,
26
,
88
,
78
,
28
,
130
,
99
,
118
,
212
,
48
,
167
,
110
,
88
,
100
,
79
,
46
,
201
,
239
,
145
,
230
,
64
,
242
,
93
,
50
,
214
,
205
,
72
,
50
,
201
,
7
,
75
,
185
,
30
,
165
,
215
,
127
,
12
,
167
,
232
,
120
,
178
,
197
,
132
,
198
,
20
,
99
,
58
,
95
,
213
,
139
,
27
,
68
,
40
,
13
,
173
,
132
,
195
,
243
,
38
,
247
,
228
,
185
,
254
,
19
,
106
,
19
,
58
,
150
,
121
,
114
,
252
,
114
,
217
,
251
,
32
,
54
,
81
,
114
,
211
,
151
,
65
,
61
,
99
,
52
,
174
,
200
,
204
,
41
,
150
,
81
,
56
,
140
,
94
,
55
,
198
,
28
,
233
,
115
,
4
,
116
,
174
,
196
,
143
,
133
,
177
,
11
,
196
,
247
,
57
,
210
,
237
,
178
,
59
,
52
,
251
,
33
,
118
,
72
,
255
,
0
,
85
,
219
,
138
,
124
,
237
,
159
,
63
,
53
,
249
,
6
,
147
,
47
,
47
,
23
,
152
,
80
,
159
,
111
,
164
,
44
,
159
,
111
,
59
,
108
,
95
,
255
,
196
,
0
,
29
,
17
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
0
,
0
,
1
,
0
,
17
,
33
,
49
,
65
,
81
,
16
,
129
,
161
,
255
,
218
,
0
,
8
,
1
,
2
,
1
,
1
,
63
,
16
,
98
,
164
,
79
,
138
,
92
,
27
,
125
,
144
,
22
,
188
,
149
,
121
,
49
,
242
,
3
,
228
,
104
,
242
,
71
,
201
,
51
,
191
,
192
,
253
,
99
,
110
,
54
,
45
,
140
,
30
,
64
,
24
,
97
,
1
,
227
,
51
,
185
,
140
,
111
,
81
,
126
,
20
,
135
,
36
,
52
,
103
,
200
,
184
,
137
,
29
,
234
,
202
,
193
,
177
,
63
,
204
,
186
,
182
,
65
,
176
,
231
,
228
,
202
,
131
,
222
,
73
,
236
,
129
,
172
,
124
,
172
,
79
,
32
,
122
,
70
,
189
,
88
,
248
,
247
,
245
,
62
,
67
,
219
,
200
,
254
,
161
,
213
,
251
,
228
,
200
,
37
,
195
,
116
,
180
,
230
,
222
,
242
,
20
,
41
,
230
,
218
,
255
,
0
,
54
,
212
,
103
,
95
,
101
,
44
,
161
,
225
,
176
,
118
,
211
,
159
,
39
,
166
,
188
,
134
,
211
,
237
,
244
,
91
,
7
,
78
,
216
,
186
,
95
,
20
,
134
,
142
,
19
,
14
,
31
,
199
,
71
,
45
,
58
,
123
,
46
,
138
,
224
,
75
,
125
,
214
,
10
,
103
,
108
,
7
,
35
,
120
,
5
,
201
,
200
,
51
,
177
,
240
,
32
,
220
,
227
,
252
,
91
,
28
,
238
,
17
,
84
,
9
,
113
,
29
,
109
,
156
,
62
,
91
,
40
,
96
,
174
,
86
,
188
,
34
,
54
,
235
,
165
,
224
,
64
,
144
,
255
,
0
,
178
,
193
,
204
,
177
,
103
,
135
,
179
,
157
,
33
,
204
,
71
,
193
,
61
,
79
,
37
,
149
,
58
,
89
,
75
,
236
,
171
,
18
,
207
,
166
,
195
,
144
,
196
,
200
,
114
,
96
,
79
,
32
,
57
,
100
,
64
,
64
,
48
,
1
,
128
,
235
,
99
,
22
,
243
,
203
,
255
,
196
,
0
,
37
,
16
,
1
,
0
,
3
,
0
,
2
,
2
,
2
,
2
,
3
,
1
,
1
,
1
,
0
,
0
,
0
,
0
,
1
,
0
,
17
,
33
,
49
,
65
,
81
,
97
,
113
,
129
,
145
,
161
,
177
,
193
,
240
,
209
,
241
,
16
,
255
,
218
,
0
,
8
,
1
,
1
,
0
,
1
,
63
,
16
,
168
,
15
,
41
,
81
,
118
,
184
,
149
,
10
,
48
,
123
,
138
,
188
,
228
,
56
,
160
,
52
,
236
,
194
,
39
,
42
,
152
,
197
,
218
,
83
,
221
,
146
,
184
,
86
,
109
,
18
,
90
,
84
,
183
,
141
,
64
,
119
,
103
,
238
,
50
,
240
,
228
,
187
,
2
,
75
,
139
,
156
,
148
,
37
,
47
,
16
,
143
,
57
,
30
,
2
,
40
,
160
,
113
,
45
,
237
,
212
,
106
,
203
,
156
,
77
,
129
,
99
,
185
,
203
,
92
,
43
,
156
,
239
,
145
,
101
,
182
,
74
,
178
,
228
,
169
,
169
,
18
,
46
,
174
,
16
,
40
,
155
,
117
,
140
,
90
,
48
,
80
,
3
,
46
,
211
,
172
,
174
,
106
,
27
,
134
,
52
,
142
,
52
,
74
,
106
,
169
,
97
,
26
,
200
,
15
,
72
,
95
,
130
,
19
,
190
,
32
,
244
,
37
,
67
,
89
,
74
,
101
,
167
,
148
,
227
,
34
,
143
,
9
,
168
,
43
,
198
,
65
,
24
,
25
,
214
,
18
,
230
,
11
,
20
,
64
,
113
,
83
,
17
,
42
,
98
,
84
,
86
,
139
,
114
,
24
,
114
,
224
,
88
,
134
,
74
,
14
,
145
,
168
,
90
,
218
,
225
,
31
,
131
,
123
,
194
,
125
,
159
,
44
,
162
,
77
,
107
,
204
,
187
,
91
,
215
,
83
,
204
,
129
,
11
,
247
,
132
,
114
,
212
,
180
,
168
,
31
,
120
,
142
,
197
,
133
,
203
,
80
,
173
,
44
,
224
,
38
,
137
,
104
,
84
,
79
,
230
,
90
,
1
,
185
,
102
,
83
,
204
,
168
,
12
,
10
,
63
,
178
,
58
,
54
,
119
,
137
,
193
,
97
,
134
,
42
,
9
,
118
,
74
,
172
,
106
,
92
,
254
,
113
,
81
,
210
,
171
,
167
,
187
,
231
,
127
,
21
,
0
,
167
,
134
,
249
,
130
,
21
,
112
,
50
,
130
,
206
,
161
,
187
,
194
,
128
,
127
,
80
,
205
,
243
,
38
,
191
,
94
,
178
,
44
,
219
,
98
,
66
,
176
,
66
,
47
,
197
,
197
,
64
,
243
,
41
,
135
,
152
,
83
,
23
,
45
,
192
,
217
,
43
,
185
,
3
,
76
,
60
,
244
,
70
,
199
,
131
,
168
,
29
,
43
,
81
,
171
,
81
,
106
,
177
,
29
,
160
,
95
,
204
,
254
,
248
,
206
,
58
,
40
,
117
,
224
,
156
,
48
,
96
,
110
,
6
,
171
,
61
,
194
,
0
,
138
,
27
,
230
,
94
,
64
,
60
,
67
,
96
,
106
,
22
,
137
,
139
,
114
,
85
,
6
,
169
,
228
,
246
,
74
,
136
,
90
,
210
,
135
,
218
,
63
,
7
,
212
,
51
,
180
,
11
,
74
,
102
,
185
,
100
,
218
,
33
,
2
,
158
,
225
,
119
,
244
,
64
,
46
,
133
,
29
,
127
,
243
,
83
,
10
,
249
,
99
,
85
,
175
,
137
,
112
,
66
,
217
,
139
,
215
,
169
,
184
,
47
,
212
,
113
,
192
,
119
,
15
,
131
,
0
,
110
,
215
,
20
,
23
,
67
,
47
,
198
,
84
,
208
,
40
,
2
,
37
,
222
,
188
,
32
,
130
,
173
,
131
,
67
,
249
,
137
,
42
,
208
,
243
,
203
,
205
,
252
,
70
,
255
,
0
,
4
,
215
,
254
,
57
,
130
,
217
,
209
,
205
,
87
,
205
,
117
,
124
,
192
,
80
,
6
,
55
,
188
,
224
,
150
,
96
,
99
,
117
,
18
,
18
,
31
,
88
,
64
,
151
,
73
,
84
,
51
,
170
,
142
,
218
,
217
,
79
,
90
,
62
,
160
,
245
,
211
,
228
,
130
,
14
,
76
,
58
,
159
,
88
,
11
,
125
,
185
,
2
,
73
,
177
,
42
,
163
,
230
,
5
,
200
,
57
,
156
,
75
,
111
,
117
,
48
,
102
,
246
,
16
,
17
,
243
,
216
,
184
,
120
,
80
,
58
,
33
,
19
,
207
,
203
,
16
,
219
,
45
,
129
,
142
,
109
,
106
,
185
,
149
,
197
,
210
,
199
,
21
,
119
,
8
,
24
,
218
,
108
,
213
,
127
,
80
,
70
,
47
,
161
,
41
,
249
,
107
,
60
,
196
,
2
,
101
,
209
,
83
,
22
,
181
,
120
,
35
,
10
,
187
,
21
,
173
,
246
,
75
,
253
,
159
,
164
,
243
,
21
,
84
,
178
,
225
,
2
,
3
,
5
,
65
,
111
,
113
,
176
,
220
,
93
,
35
,
32
,
197
,
5
,
242
,
69
,
154
,
41
,
114
,
29
,
239
,
217
,
238
,
121
,
224
,
166
,
4
,
23
,
142
,
65
,
189
,
163
,
170
,
20
,
120
,
16
,
57
,
31
,
185
,
99
,
2
,
92
,
244
,
30
,
73
,
88
,
20
,
38
,
222
,
90
,
12
,
140
,
217
,
91
,
98
,
85
,
103
,
95
,
36
,
19
,
165
,
20
,
211
,
78
,
140
,
173
,
234
,
112
,
112
,
119
,
209
,
212
,
97
,
232
,
160
,
236
,
185
,
114
,
43
,
235
,
35
,
218
,
129
,
160
,
208
,
46
,
53
,
232
,
35
,
122
,
34
,
174
,
233
,
153
,
116
,
115
,
47
,
166
,
214
,
31
,
117
,
46
,
130
,
89
,
9
,
175
,
111
,
168
,
228
,
91
,
30
,
217
,
205
,
60
,
202
,
26
,
236
,
121
,
149
,
41
,
190
,
79
,
152
,
133
,
138
,
71
,
76
,
74
,
92
,
151
,
60
,
50
,
141
,
8
,
119
,
194
,
32
,
181
,
189
,
87
,
152
,
2
,
214
,
32
,
56
,
164
,
201
,
11
,
212
,
70
,
229
,
6
,
181
,
212
,
69
,
148
,
231
,
37
,
6
,
198
,
198
,
67
,
93
,
153
,
84
,
85
,
111
,
137
,
156
,
199
,
210
,
114
,
158
,
237
,
211
,
8
,
192
,
28
,
132
,
63
,
115
,
93
,
61
,
33
,
158
,
32
,
35
,
186
,
94
,
96
,
28
,
2
,
4
,
15
,
34
,
48
,
228
,
174
,
143
,
48
,
69
,
48
,
126
,
229
,
232
,
42
,
134
,
199
,
186
,
165
,
240
,
75
,
91
,
224
,
158
,
37
,
2
,
2
,
63
,
185
,
119
,
178
,
244
,
62
,
101
,
68
,
140
,
151
,
113
,
117
,
111
,
146
,
9
,
77
,
159
,
135
,
153
,
76
,
110
,
198
,
67
,
42
,
31
,
19
,
184
,
244
,
39
,
155
,
54
,
49
,
175
,
130
,
201
,
88
,
80
,
133
,
167
,
136
,
85
,
22
,
241
,
46
,
96
,
114
,
81
,
13
,
106
,
41
,
210
,
177
,
13
,
182
,
232
,
71
,
69
,
143
,
22
,
0
,
224
,
176
,
179
,
137
,
178
,
162
,
12
,
220
,
186
,
191
,
81
,
118
,
133
,
20
,
84
,
27
,
207
,
52
,
182
,
36
,
60
,
96
,
44
,
26
,
160
,
112
,
64
,
36
,
90
,
211
,
143
,
81
,
238
,
149
,
87
,
7
,
153
,
171
,
6
,
21
,
55
,
17
,
230
,
241
,
26
,
150
,
111
,
126
,
32
,
16
,
42
,
30
,
72
,
109
,
16
,
35
,
103
,
117
,
94
,
94
,
98
,
11
,
106
,
220
,
245
,
4
,
101
,
64
,
3
,
204
,
191
,
32
,
121
,
20
,
134
,
64
,
186
,
148
,
109
,
217
,
233
,
238
,
52
,
20
,
50
,
170
,
31
,
40
,
49
,
111
,
234
,
95
,
154
,
147
,
92
,
122
,
141
,
1
,
171
,
74
,
205
,
1
,
121
,
47
,
82
,
158
,
92
,
129
,
238
,
0
,
0
,
84
,
198
,
55
,
12
,
240
,
233
,
150
,
17
,
104
,
110
,
177
,
185
,
64
,
14
,
248
,
148
,
16
,
188
,
83
,
203
,
24
,
96
,
144
,
250
,
57
,
8
,
134
,
207
,
241
,
247
,
5
,
5
,
151
,
229
,
40
,
83
,
92
,
2
,
227
,
205
,
57
,
27
,
104
,
191
,
48
,
177
,
46
,
135
,
200
,
242
,
203
,
32
,
117
,
75
,
231
,
238
,
49
,
31
,
248
,
71
,
192
,
253
,
227
,
193
,
115
,
136
,
149
,
108
,
10
,
106
,
61
,
5
,
10
,
45
,
128
,
23
,
78
,
71
,
215
,
26
,
221
,
143
,
215
,
161
,
197
,
81
,
59
,
48
,
81
,
228
,
224
,
132
,
160
,
185
,
124
,
24
,
96
,
123
,
207
,
62
,
216
,
77
,
104
,
104
,
94
,
107
,
25
,
21
,
90
,
111
,
163
,
48
,
255
,
0
,
119
,
42
,
161
,
224
,
33
,
218
,
176
,
169
,
233
,
158
,
50
,
85
,
59
,
8
,
165
,
91
,
30
,
89
,
146
,
150
,
16
,
108
,
241
,
156
,
74
,
148
,
35
,
124
,
113
,
222
,
162
,
123
,
216
,
63
,
71
,
19
,
82
,
14
,
147
,
130
,
185
,
148
,
96
,
50
,
22
,
165
,
213
,
254
,
226
,
117
,
2
,
78
,
222
,
203
,
177
,
184
,
252
,
115
,
122
,
174
,
203
,
12
,
34
,
234
,
171
,
243
,
9
,
114
,
168
,
96
,
149
,
224
,
203
,
243
,
16
,
195
,
182
,
108
,
114
,
92
,
85
,
238
,
194
,
216
,
177
,
195
,
71
,
190
,
6
,
11
,
248
,
253
,
192
,
69
,
1
,
203
,
232
,
133
,
60
,
84
,
151
,
233
,
144
,
237
,
91
,
6
,
176
,
247
,
18
,
210
,
2
,
252
,
122
,
249
,
137
,
140
,
61
,
72
,
203
,
65
,
45
,
43
,
91
,
43
,
132
,
46
,
144
,
120
,
128
,
49
,
12
,
39
,
82
,
182
,
88
,
211
,
126
,
184
,
252
,
164
,
122
,
156
,
144
,
15
,
164
,
100
,
96
,
21
,
5
,
212
,
243
,
55
,
137
,
83
,
134
,
18
,
244
,
133
,
192
,
61
,
64
,
42
,
133
,
114
,
45
,
134
,
11
,
243
,
103
,
231
,
238
,
51
,
182
,
5
,
6
,
130
,
214
,
103
,
191
,
196
,
64
,
237
,
58
,
122
,
22
,
253
,
93
,
149
,
246
,
248
,
158
,
75
,
67
,
19
,
1
,
119
,
178
,
145
,
179
,
54
,
89
,
81
,
52
,
104
,
85
,
220
,
61
,
77
,
175
,
124
,
190
,
224
,
121
,
250
,
146
,
107
,
219
,
175
,
93
,
203
,
166
,
171
,
117
,
200
,
195
,
213
,
129
,
54
,
178
,
13
,
219
,
22
,
126
,
33
,
158
,
42
,
64
,
112
,
91
,
39
,
27
,
132
,
119
,
224
,
148
,
52
,
228
,
7
,
209
,
190
,
35
,
211
,
68
,
199
,
42
,
247
,
115
,
143
,
196
,
3
,
205
,
244
,
94
,
104
,
113
,
85
,
171
,
0
,
89
,
69
,
0
,
40
,
158
,
201
,
99
,
0
,
26
,
43
,
166
,
106
,
122
,
249
,
238
,
80
,
201
,
40
,
53
,
76
,
35
,
181
,
130
,
137
,
191
,
74
,
94
,
123
,
143
,
128
,
205
,
72
,
187
,
13
,
190
,
170
,
47
,
56
,
232
,
106
,
181
,
223
,
2
,
86
,
241
,
196
,
64
,
119
,
144
,
86
,
45
,
175
,
121
,
81
,
74
,
162
,
77
,
222
,
173
,
254
,
18
,
50
,
60
,
250
,
184
,
197
,
141
,
252
,
1
,
62
,
101
,
48
,
153
,
5
,
245
,
11
,
227
,
139
,
31
,
200
,
25
,
81
,
20
,
65
,
79
,
224
,
216
,
183
,
126
,
235
,
136
,
24
,
165
,
184
,
29
,
37
,
143
,
92
,
2
,
178
,
185
,
128
,
184
,
4
,
182
,
98
,
219
,
219
,
221
,
94
,
185
,
201
,
64
,
98
,
9
,
155
,
19
,
128
,
228
,
47
,
247
,
76
,
87
,
122
,
164
,
228
,
35
,
123
,
94
,
255
,
0
,
184
,
224
,
185
,
138
,
149
,
191
,
251
,
251
,
140
,
76
,
177
,
109
,
21
,
195
,
94
,
171
,
235
,
38
,
181
,
167
,
134
,
171
,
247
,
45
,
251
,
41
,
212
,
128
,
253
,
78
,
19
,
195
,
145
,
17
,
188
,
134
,
241
,
31
,
105
,
49
,
68
,
142
,
1
,
229
,
95
,
227
,
196
,
174
,
129
,
10
,
50
,
216
,
189
,
105
,
89
,
238
,
52
,
221
,
80
,
235
,
233
,
221
,
85
,
125
,
205
,
228
,
218
,
53
,
125
,
232
,
16
,
14
,
75
,
105
,
180
,
246
,
191
,
238
,
227
,
236
,
218
,
148
,
59
,
92
,
255
,
0
,
184
,
151
,
109
,
51
,
31
,
107
,
246
,
253
,
67
,
120
,
192
,
130
,
158
,
22
,
174
,
129
,
92
,
154
,
139
,
77
,
45
,
77
,
1
,
240
,
143
,
203
,
17
,
1
,
175
,
16
,
124
,
133
,
83
,
238
,
4
,
238
,
18
,
212
,
4
,
118
,
251
,
137
,
203
,
14
,
171
,
86
,
161
,
71
,
213
,
30
,
111
,
196
,
187
,
10
,
181
,
94
,
76
,
255
,
0
,
47
,
77
,
121
,
137
,
81
,
155
,
87
,
179
,
206
,
71
,
202
,
59
,
57
,
157
,
79
,
60
,
93
,
215
,
252
,
171
,
137
,
5
,
21
,
149
,
16
,
166
,
152
,
243
,
126
,
105
,
189
,
89
,
184
,
186
,
192
,
22
,
12
,
166
,
130
,
185
,
245
,
232
,
129
,
213
,
64
,
242
,
130
,
128
,
221
,
186
,
216
,
250
,
209
,
194
,
60
,
6
,
75
,
188
,
62
,
7
,
171
,
91
,
224
,
247
,
173
,
169
,
129
,
32
,
6
,
140
,
206
,
177
,
224
,
57
,
186
,
192
,
228
,
73
,
173
,
9
,
104
,
59
,
56
,
175
,
99
,
206
,
195
,
106
,
212
,
101
,
162
,
55
,
163
,
27
,
250
,
94
,
228
,
167
,
247
,
101
,
192
,
180
,
175
,
214
,
25
,
14
,
189
,
179
,
105
,
176
,
64
,
3
,
180
,
3
,
227
,
113
,
142
,
178
,
12
,
42
,
186
,
93
,
103
,
20
,
241
,
21
,
171
,
35
,
178
,
160
,
0
,
28
,
247
,
127
,
221
,
75
,
39
,
218
,
220
,
175
,
55
,
99
,
250
,
236
,
151
,
44
,
5
,
233
,
109
,
18
,
86
,
43
,
105
,
191
,
246
,
26
,
242
,
1
,
89
,
113
,
92
,
80
,
229
,
102
,
92
,
165
,
198
,
91
,
59
,
165
,
31
,
207
,
252
,
139
,
89
,
112
,
36
,
66
,
219
,
202
,
183
,
143
,
168
,
94
,
47
,
176
,
0
,
160
,
136
,
22
,
149
,
154
,
227
,
54
,
224
,
209
,
178
,
235
,
88
,
45
,
13
,
127
,
234
,
216
,
131
,
8
,
65
,
134
,
190
,
2
,
232
,
104
,
174
,
119
,
122
,
156
,
248
,
30
,
107
,
16
,
180
,
242
,
107
,
124
,
225
,
223
,
4
,
0
,
209
,
26
,
247
,
93
,
243
,
182
,
239
,
7
,
218
,
59
,
30
,
138
,
84
,
41
,
30
,
141
,
77
,
255
,
0
,
177
,
26
,
211
,
119
,
82
,
155
,
229
,
27
,
176
,
227
,
191
,
204
,
37
,
128
,
0
,
29
,
96
,
212
,
60
,
116
,
129
,
39
,
110
,
108
,
47
,
230
,
102
,
236
,
112
,
178
,
181
,
222
,
159
,
223
,
113
,
237
,
178
,
158
,
142
,
236
,
222
,
110
,
98
,
138
,
212
,
222
,
237
,
243
,
198
,
100
,
118
,
5
,
86
,
88
,
1
,
162
,
171
,
226
,
108
,
182
,
90
,
69
,
22
,
214
,
199
,
201
,
71
,
153
,
191
,
170
,
54
,
26
,
21
,
43
,
174
,
155
,
178
,
253
,
192
,
33
,
200
,
10
,
0
,
66
,
138
,
186
,
110
,
139
,
173
,
30
,
136
,
193
,
176
,
222
,
214
,
237
,
32
,
165
,
213
,
237
,
110
,
252
,
74
,
3
,
227
,
102
,
43
,
85
,
207
,
61
,
65
,
224
,
84
,
178
,
176
,
43
,
85
,
71
,
113
,
44
,
1
,
192
,
30
,
151
,
248
,
139
,
22
,
111
,
83
,
129
,
106
,
231
,
167
,
243
,
59
,
201
,
32
,
171
,
247
,
246
,
126
,
137
,
92
,
71
,
131
,
127
,
123
,
26
,
197
,
76
,
56
,
28
,
58
,
59
,
229
,
134
,
1
,
106
,
39
,
179
,
195
,
215
,
44
,
215
,
211
,
74
,
217
,
217
,
254
,
246
,
202
,
198
,
182
,
182
,
168
,
28
,
103
,
204
,
190
,
32
,
52
,
105
,
201
,
66
,
222
,
243
,
141
,
249
,
151
,
64
,
21
,
155
,
165
,
71
,
63
,
67
,
4
,
30
,
225
,
197
,
148
,
117
,
0
,
157
,
45
,
138
,
162
,
146
,
158
,
25
,
207
,
60
,
202
,
196
,
55
,
200
,
8
,
156
,
122
,
227
,
241
,
63
,
255
,
217
])
export
default
{
testPng
,
testJpg
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录