一个日牯子
Home
Tags
GitHub
Author
2016-07-22
SVG
HTML
PDF
C
o
n
t
e
n
t
s
1
破
解
D
b
S
c
h
e
m
a
序
列
号
刨
根
问
底
探
索
分
析
C
o
n
t
e
n
t
s
我
始
终
认
为
数
据
库
设
计
在
系
统
设
计
中
是
一
个
很
重
要
的
工
作
,
然
而
一
直
没
有
比
较
好
的
建
模
工
具
。
使
用
过
和
两
种
工
具
,
但
都
存
在
很
多
不
喜
欢
的
地
方
,
直
到
遇
到
后
眼
前
一
亮
,
这
才
是
一
个
的
工
具
嘛
。
很
可
惜
对
于
我
们
这
种
屌
丝
来
说
,
是
不
舍
得
花
钱
去
购
买
一
个
的
,
试
用
期
天
到
了
怎
么
办
呢
?
当
时
也
没
发
现
有
可
用
的
破
解
版
,
因
为
它
是
基
于
的
,
这
对
破
解
来
说
减
小
了
难
度
,
于
是
趁
着
辞
职
后
在
家
没
事
的
空
档
来
研
究
了
一
下
破
解
。
其
实
也
就
上
午
花
了
一
会
时
间
就
搞
定
了
。
记
录
下
破
解
的
过
程
。
首
先
是
找
到
,
这
是
程
序
的
主
要
包
,
其
他
是
一
些
第
三
方
的
包
和
驱
动
等
,
于
是
它
就
是
破
解
的
关
键
。
利
用
反
编
译
这
个
包
,
首
先
把
源
码
都
保
存
下
来
。
顺
藤
摸
瓜
,
首
先
打
开
的
注
册
窗
口
,
根
据
里
面
的
关
键
字
搜
索
,
比
如
,
然
后
一
个
个
去
找
,
这
时
,
发
现
一
个
对
话
框
:
p
u
b
l
i
c
c
l
a
s
s
R
e
g
i
s
t
r
a
t
i
o
n
D
i
a
l
o
g
.
.
.
J
B
u
t
t
o
n
l
o
c
a
l
J
B
u
t
t
o
n
1
=
n
e
w
J
B
u
t
t
o
n
(
g
e
t
A
c
t
i
o
n
(
"
r
e
g
i
s
t
e
r
"
)
)
;
这
不
就
是
注
册
的
按
钮
么
?
然
后
就
看
它
的
/
*
*
/
p
u
b
l
i
c
v
o
i
d
r
e
g
i
s
t
e
r
(
)
{
/
*
9
6
*
/
S
t
r
i
n
g
s
t
r
1
=
t
h
i
s
.
b
.
g
e
t
T
e
x
t
(
)
;
/
*
*
/
/
*
9
8
*
/
i
f
(
(
s
t
r
1
=
=
n
u
l
l
)
|
|
(
s
t
r
1
.
l
e
n
g
t
h
(
)
=
=
0
)
)
{
/
*
9
9
*
/
J
O
p
t
i
o
n
P
a
n
e
.
s
h
o
w
M
e
s
s
a
g
e
D
i
a
l
o
g
(
t
h
i
s
,
d
.
a
(
1
1
)
,
"
E
r
r
o
r
"
,
0
)
;
/
*
1
0
0
*
/
r
e
t
u
r
n
;
/
*
*
/
}
/
*
1
0
2
*
/
S
t
r
i
n
g
s
t
r
2
=
t
h
i
s
.
c
.
g
e
t
T
e
x
t
(
)
;
/
*
1
0
3
*
/
i
f
(
s
t
r
2
=
=
n
u
l
l
)
{
/
*
1
0
4
*
/
J
O
p
t
i
o
n
P
a
n
e
.
s
h
o
w
M
e
s
s
a
g
e
D
i
a
l
o
g
(
t
h
i
s
,
d
.
a
(
1
9
)
,
"
E
r
r
o
r
"
,
0
)
;
/
*
1
0
5
*
/
r
e
t
u
r
n
;
/
*
*
/
}
/
*
1
0
7
*
/
s
t
r
1
=
s
t
r
1
.
t
r
i
m
(
)
;
/
*
1
0
8
*
/
s
t
r
2
=
s
t
r
2
.
t
r
i
m
(
)
;
/
*
1
0
9
*
/
e
.
b
(
d
.
a
(
3
1
)
,
s
t
r
1
)
;
/
*
1
1
0
*
/
e
.
b
(
d
.
a
(
2
1
)
,
s
t
r
2
)
;
/
*
*
/
/
*
1
1
2
*
/
i
n
t
i
=
g
.
b
(
)
;
/
*
1
1
3
*
/
i
f
(
i
=
=
I
n
t
e
g
e
r
.
M
A
X
_
V
A
L
U
E
)
{
/
*
1
1
4
*
/
d
i
s
p
o
s
e
(
)
;
/
*
1
1
5
*
/
J
O
p
t
i
o
n
P
a
n
e
.
s
h
o
w
M
e
s
s
a
g
e
D
i
a
l
o
g
(
t
h
i
s
.
a
.
c
(
)
,
d
.
a
(
2
3
)
,
"
I
n
f
o
"
,
1
,
n
u
l
l
)
;
/
*
1
1
6
*
/
t
h
i
s
.
a
.
c
(
)
.
c
(
)
;
C
o
n
t
e
n
t
s
2
/
*
1
1
7
*
/
}
e
l
s
e
i
f
(
(
i
>
0
)
&
&
(
s
t
r
1
.
t
o
L
o
w
e
r
C
a
s
e
(
)
.
s
t
a
r
t
s
W
i
t
h
(
"
e
x
t
e
n
d
"
)
)
)
{
/
*
1
1
8
*
/
d
i
s
p
o
s
e
(
)
;
/
*
1
1
9
*
/
J
O
p
t
i
o
n
P
a
n
e
.
s
h
o
w
M
e
s
s
a
g
e
D
i
a
l
o
g
(
t
h
i
s
.
a
.
c
(
)
,
d
.
a
(
2
4
)
.
r
e
p
l
a
c
e
A
l
l
(
"
\
\
{
d
a
y
s
\
\
}
"
,
"
"
+
i
)
,
"
I
n
f
o
"
,
1
,
n
u
l
l
)
;
/
*
1
2
0
*
/
}
e
l
s
e
i
f
(
i
=
=
-
2
)
{
/
*
1
2
1
*
/
S
t
r
i
n
g
s
t
r
3
=
d
.
a
(
7
7
)
.
r
e
p
l
a
c
e
(
"
{
0
}
"
,
n
e
w
S
i
m
p
l
e
D
a
t
e
F
o
r
m
a
t
(
"
d
d
.
M
M
M
M
M
.
y
y
y
y
"
)
.
f
o
r
m
a
t
(
n
e
w
D
a
t
e
(
g
.
c
(
)
)
)
)
;
/
*
1
2
2
*
/
J
O
p
t
i
o
n
P
a
n
e
.
s
h
o
w
M
e
s
s
a
g
e
D
i
a
l
o
g
(
t
h
i
s
.
a
.
c
(
)
,
s
t
r
3
,
"
E
r
r
o
r
"
,
0
)
;
/
*
*
/
}
e
l
s
e
{
/
*
1
2
4
*
/
J
O
p
t
i
o
n
P
a
n
e
.
s
h
o
w
M
e
s
s
a
g
e
D
i
a
l
o
g
(
t
h
i
s
.
a
.
c
(
)
,
d
.
a
(
8
)
,
"
E
r
r
o
r
"
,
0
)
;
/
*
*
/
}
/
*
*
/
}
行
开
始
有
点
意
思
,
其
实
大
概
能
猜
到
是
干
什
么
,
反
正
是
算
剩
余
天
数
的
,
那
么
这
个
就
是
最
核
心
的
东
西
了
:
p
u
b
l
i
c
s
t
a
t
i
c
i
n
t
b
(
)
{
S
t
r
i
n
g
s
t
r
1
=
e
.
d
(
d
.
a
(
3
1
)
,
n
u
l
l
)
;
S
t
r
i
n
g
s
t
r
2
=
e
.
d
(
d
.
a
(
2
1
)
,
n
u
l
l
)
;
i
n
t
m
=
-
1
;
i
f
(
(
s
t
r
1
!
=
n
u
l
l
)
&
&
(
s
t
r
2
!
=
n
u
l
l
)
&
&
(
s
t
r
2
.
l
e
n
g
t
h
(
)
>
3
)
)
{
i
f
(
(
s
t
r
1
.
t
o
L
o
w
e
r
C
a
s
e
(
)
.
s
t
a
r
t
s
W
i
t
h
(
"
e
x
t
e
n
d
"
)
)
&
&
(
c
(
s
t
r
1
,
s
t
r
2
)
)
)
{
m
=
M
a
t
h
.
m
a
x
(
1
5
-
f
(
"
m
m
a
x
"
)
,
-
1
)
;
}
e
l
s
e
i
f
(
s
t
r
2
.
l
e
n
g
t
h
(
)
>
1
5
)
{
S
t
r
i
n
g
s
t
r
3
=
s
t
r
2
.
s
u
b
s
t
r
i
n
g
(
4
,
9
)
;
S
t
r
i
n
g
s
t
r
4
=
s
t
r
2
.
s
u
b
s
t
r
i
n
g
(
0
,
4
)
+
s
t
r
2
.
s
u
b
s
t
r
i
n
g
(
9
)
;
i
f
(
c
(
"
a
x
5
"
+
s
t
r
1
+
"
b
5
2
w
"
+
s
t
r
3
+
"
v
b
3
"
,
s
t
r
4
)
)
{
t
r
y
{
k
=
I
n
t
e
g
e
r
.
p
a
r
s
e
I
n
t
(
s
t
r
3
)
*
8
6
4
0
0
0
0
0
L
+
1
3
5
6
9
9
4
8
0
0
0
0
0
L
;
}
c
a
t
c
h
(
N
u
m
b
e
r
F
o
r
m
a
t
E
x
c
e
p
t
i
o
n
l
o
c
a
l
N
u
m
b
e
r
F
o
r
m
a
t
E
x
c
e
p
t
i
o
n
)
{
c
.
b
(
l
o
c
a
l
N
u
m
b
e
r
F
o
r
m
a
t
E
x
c
e
p
t
i
o
n
)
;
}
m
=
I
n
t
e
g
e
r
.
M
A
X
_
V
A
L
U
E
;
}
}
}
e
l
s
e
{
m
=
M
a
t
h
.
m
a
x
(
1
5
-
f
(
"
m
m
a
"
)
,
-
1
)
;
}
C
o
n
t
e
n
t
s
3
r
e
t
u
r
n
m
;
}
看
到
这
,
我
们
其
实
已
经
拿
到
了
计
算
的
方
法
,
只
不
过
这
是
一
个
验
证
的
函
数
,
如
果
我
们
要
计
算
出
,
需
要
反
向
推
倒
出
来
,
这
里
就
不
具
体
解
释
了
,
最
终
反
向
出
来
的
代
码
其
实
很
简
单
,
我
做
了
一
个
版
本
的
:
i
n
l
i
n
e
c
o
n
s
t
s
t
r
i
n
g
g
e
n
e
r
a
t
e
K
e
y
(
s
t
r
i
n
g
n
a
m
e
)
{
s
t
r
i
n
g
s
a
l
t
=
g
e
t
S
a
l
t
(
)
;
c
o
u
t
<
<
"
s
a
l
t
:
"
<
<
s
a
l
t
<
<
e
n
d
l
;
s
t
r
i
n
g
e
n
c
r
y
p
t
S
o
u
r
c
e
=
"
a
x
5
"
+
n
a
m
e
+
"
b
5
2
w
"
+
s
a
l
t
+
"
v
b
3
"
;
c
o
u
t
<
<
"
e
n
c
r
y
p
t
:
"
<
<
e
n
c
r
y
p
t
S
o
u
r
c
e
<
<
e
n
d
l
;
s
t
r
i
n
g
h
a
s
h
=
M
D
5
(
e
n
c
r
y
p
t
S
o
u
r
c
e
)
.
t
o
S
t
r
(
)
;
c
o
u
t
<
<
"
m
d
5
:
"
<
<
h
a
s
h
<
<
e
n
d
l
;
r
e
t
u
r
n
h
a
s
h
.
s
u
b
s
t
r
(
0
,
4
)
+
s
a
l
t
+
h
a
s
h
.
s
u
b
s
t
r
(
4
)
;
}
于
是
我
们
就
有
了
一
个
生
成
器
了
,
完
整
的
生
成
器
源
码
在
。
HTML view coming soon.
Download PDF
for the full formatted version.