Coverage for /pythoncovmergedfiles/medio/medio/usr/local/lib/python3.11/site-packages/chardet/mbcssm.py: 98%

Shortcuts on this page

r m x   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

47 statements  

1######################## BEGIN LICENSE BLOCK ######################## 

2# The Original Code is mozilla.org code. 

3# 

4# The Initial Developer of the Original Code is 

5# Netscape Communications Corporation. 

6# Portions created by the Initial Developer are Copyright (C) 1998 

7# the Initial Developer. All Rights Reserved. 

8# 

9# Contributor(s): 

10# Mark Pilgrim - port to Python 

11# 

12# This library is free software; you can redistribute it and/or 

13# modify it under the terms of the GNU Lesser General Public 

14# License as published by the Free Software Foundation; either 

15# version 2.1 of the License, or (at your option) any later version. 

16# 

17# This library is distributed in the hope that it will be useful, 

18# but WITHOUT ANY WARRANTY; without even the implied warranty of 

19# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 

20# Lesser General Public License for more details. 

21# 

22# You should have received a copy of the GNU Lesser General Public 

23# License along with this library; if not, see 

24# <https://www.gnu.org/licenses/>. 

25######################### END LICENSE BLOCK ######################### 

26 

27from .codingstatemachinedict import CodingStateMachineDict 

28from .enums import MachineState 

29 

30# BIG5 

31 

32# fmt: off 

33BIG5_CLS = ( 

34 1, 1, 1, 1, 1, 1, 1, 1, # 00 - 07 #allow 0x00 as legal value 

35 1, 1, 1, 1, 1, 1, 0, 0, # 08 - 0f 

36 1, 1, 1, 1, 1, 1, 1, 1, # 10 - 17 

37 1, 1, 1, 0, 1, 1, 1, 1, # 18 - 1f 

38 1, 1, 1, 1, 1, 1, 1, 1, # 20 - 27 

39 1, 1, 1, 1, 1, 1, 1, 1, # 28 - 2f 

40 1, 1, 1, 1, 1, 1, 1, 1, # 30 - 37 

41 1, 1, 1, 1, 1, 1, 1, 1, # 38 - 3f 

42 2, 2, 2, 2, 2, 2, 2, 2, # 40 - 47 

43 2, 2, 2, 2, 2, 2, 2, 2, # 48 - 4f 

44 2, 2, 2, 2, 2, 2, 2, 2, # 50 - 57 

45 2, 2, 2, 2, 2, 2, 2, 2, # 58 - 5f 

46 2, 2, 2, 2, 2, 2, 2, 2, # 60 - 67 

47 2, 2, 2, 2, 2, 2, 2, 2, # 68 - 6f 

48 2, 2, 2, 2, 2, 2, 2, 2, # 70 - 77 

49 2, 2, 2, 2, 2, 2, 2, 1, # 78 - 7f 

50 4, 4, 4, 4, 4, 4, 4, 4, # 80 - 87 

51 4, 4, 4, 4, 4, 4, 4, 4, # 88 - 8f 

52 4, 4, 4, 4, 4, 4, 4, 4, # 90 - 97 

53 4, 4, 4, 4, 4, 4, 4, 4, # 98 - 9f 

54 4, 3, 3, 3, 3, 3, 3, 3, # a0 - a7 

55 3, 3, 3, 3, 3, 3, 3, 3, # a8 - af 

56 3, 3, 3, 3, 3, 3, 3, 3, # b0 - b7 

57 3, 3, 3, 3, 3, 3, 3, 3, # b8 - bf 

58 3, 3, 3, 3, 3, 3, 3, 3, # c0 - c7 

59 3, 3, 3, 3, 3, 3, 3, 3, # c8 - cf 

60 3, 3, 3, 3, 3, 3, 3, 3, # d0 - d7 

61 3, 3, 3, 3, 3, 3, 3, 3, # d8 - df 

62 3, 3, 3, 3, 3, 3, 3, 3, # e0 - e7 

63 3, 3, 3, 3, 3, 3, 3, 3, # e8 - ef 

64 3, 3, 3, 3, 3, 3, 3, 3, # f0 - f7 

65 3, 3, 3, 3, 3, 3, 3, 0 # f8 - ff 

66) 

67 

68BIG5_ST = ( 

69 MachineState.ERROR,MachineState.START,MachineState.START, 3,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#00-07 

70 MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,#08-0f 

71 MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START#10-17 

72) 

73# fmt: on 

74 

75BIG5_CHAR_LEN_TABLE = (0, 1, 1, 2, 0) 

76 

77BIG5_SM_MODEL: CodingStateMachineDict = { 

78 "class_table": BIG5_CLS, 

79 "class_factor": 5, 

80 "state_table": BIG5_ST, 

81 "char_len_table": BIG5_CHAR_LEN_TABLE, 

82 "name": "Big5", 

83} 

84 

85# CP949 

86# fmt: off 

87CP949_CLS = ( 

88 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, # 00 - 0f 

89 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, # 10 - 1f 

90 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, # 20 - 2f 

91 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, # 30 - 3f 

92 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, # 40 - 4f 

93 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, 1, 1, # 50 - 5f 

94 1, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, # 60 - 6f 

95 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1, 1, 1, 1, 1, # 70 - 7f 

96 0, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, # 80 - 8f 

97 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, # 90 - 9f 

98 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, # a0 - af 

99 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, # b0 - bf 

100 7, 7, 7, 7, 7, 7, 9, 2, 2, 3, 2, 2, 2, 2, 2, 2, # c0 - cf 

101 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, # d0 - df 

102 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, # e0 - ef 

103 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 0, # f0 - ff 

104) 

105 

106CP949_ST = ( 

107#cls= 0 1 2 3 4 5 6 7 8 9 # previous state = 

108 MachineState.ERROR,MachineState.START, 3,MachineState.ERROR,MachineState.START,MachineState.START, 4, 5,MachineState.ERROR, 6, # MachineState.START 

109 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, # MachineState.ERROR 

110 MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME, # MachineState.ITS_ME 

111 MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START, # 3 

112 MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START, # 4 

113 MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START, # 5 

114 MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START, # 6 

115) 

116# fmt: on 

117 

118CP949_CHAR_LEN_TABLE = (0, 1, 2, 0, 1, 1, 2, 2, 0, 2) 

119 

120CP949_SM_MODEL: CodingStateMachineDict = { 

121 "class_table": CP949_CLS, 

122 "class_factor": 10, 

123 "state_table": CP949_ST, 

124 "char_len_table": CP949_CHAR_LEN_TABLE, 

125 "name": "CP949", 

126} 

127 

128# EUC-JP 

129# fmt: off 

130EUCJP_CLS = ( 

131 4, 4, 4, 4, 4, 4, 4, 4, # 00 - 07 

132 4, 4, 4, 4, 4, 4, 5, 5, # 08 - 0f 

133 4, 4, 4, 4, 4, 4, 4, 4, # 10 - 17 

134 4, 4, 4, 5, 4, 4, 4, 4, # 18 - 1f 

135 4, 4, 4, 4, 4, 4, 4, 4, # 20 - 27 

136 4, 4, 4, 4, 4, 4, 4, 4, # 28 - 2f 

137 4, 4, 4, 4, 4, 4, 4, 4, # 30 - 37 

138 4, 4, 4, 4, 4, 4, 4, 4, # 38 - 3f 

139 4, 4, 4, 4, 4, 4, 4, 4, # 40 - 47 

140 4, 4, 4, 4, 4, 4, 4, 4, # 48 - 4f 

141 4, 4, 4, 4, 4, 4, 4, 4, # 50 - 57 

142 4, 4, 4, 4, 4, 4, 4, 4, # 58 - 5f 

143 4, 4, 4, 4, 4, 4, 4, 4, # 60 - 67 

144 4, 4, 4, 4, 4, 4, 4, 4, # 68 - 6f 

145 4, 4, 4, 4, 4, 4, 4, 4, # 70 - 77 

146 4, 4, 4, 4, 4, 4, 4, 4, # 78 - 7f 

147 5, 5, 5, 5, 5, 5, 5, 5, # 80 - 87 

148 5, 5, 5, 5, 5, 5, 1, 3, # 88 - 8f 

149 5, 5, 5, 5, 5, 5, 5, 5, # 90 - 97 

150 5, 5, 5, 5, 5, 5, 5, 5, # 98 - 9f 

151 5, 2, 2, 2, 2, 2, 2, 2, # a0 - a7 

152 2, 2, 2, 2, 2, 2, 2, 2, # a8 - af 

153 2, 2, 2, 2, 2, 2, 2, 2, # b0 - b7 

154 2, 2, 2, 2, 2, 2, 2, 2, # b8 - bf 

155 2, 2, 2, 2, 2, 2, 2, 2, # c0 - c7 

156 2, 2, 2, 2, 2, 2, 2, 2, # c8 - cf 

157 2, 2, 2, 2, 2, 2, 2, 2, # d0 - d7 

158 2, 2, 2, 2, 2, 2, 2, 2, # d8 - df 

159 0, 0, 0, 0, 0, 0, 0, 0, # e0 - e7 

160 0, 0, 0, 0, 0, 0, 0, 0, # e8 - ef 

161 0, 0, 0, 0, 0, 0, 0, 0, # f0 - f7 

162 0, 0, 0, 0, 0, 0, 0, 5 # f8 - ff 

163) 

164 

165EUCJP_ST = ( 

166 3, 4, 3, 5,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#00-07 

167 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f 

168 MachineState.ITS_ME,MachineState.ITS_ME,MachineState.START,MachineState.ERROR,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#10-17 

169 MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 3,MachineState.ERROR,#18-1f 

170 3,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START#20-27 

171) 

172# fmt: on 

173 

174EUCJP_CHAR_LEN_TABLE = (2, 2, 2, 3, 1, 0) 

175 

176EUCJP_SM_MODEL: CodingStateMachineDict = { 

177 "class_table": EUCJP_CLS, 

178 "class_factor": 6, 

179 "state_table": EUCJP_ST, 

180 "char_len_table": EUCJP_CHAR_LEN_TABLE, 

181 "name": "EUC-JP", 

182} 

183 

184# EUC-KR 

185# fmt: off 

186EUCKR_CLS = ( 

187 1, 1, 1, 1, 1, 1, 1, 1, # 00 - 07 

188 1, 1, 1, 1, 1, 1, 0, 0, # 08 - 0f 

189 1, 1, 1, 1, 1, 1, 1, 1, # 10 - 17 

190 1, 1, 1, 0, 1, 1, 1, 1, # 18 - 1f 

191 1, 1, 1, 1, 1, 1, 1, 1, # 20 - 27 

192 1, 1, 1, 1, 1, 1, 1, 1, # 28 - 2f 

193 1, 1, 1, 1, 1, 1, 1, 1, # 30 - 37 

194 1, 1, 1, 1, 1, 1, 1, 1, # 38 - 3f 

195 1, 1, 1, 1, 1, 1, 1, 1, # 40 - 47 

196 1, 1, 1, 1, 1, 1, 1, 1, # 48 - 4f 

197 1, 1, 1, 1, 1, 1, 1, 1, # 50 - 57 

198 1, 1, 1, 1, 1, 1, 1, 1, # 58 - 5f 

199 1, 1, 1, 1, 1, 1, 1, 1, # 60 - 67 

200 1, 1, 1, 1, 1, 1, 1, 1, # 68 - 6f 

201 1, 1, 1, 1, 1, 1, 1, 1, # 70 - 77 

202 1, 1, 1, 1, 1, 1, 1, 1, # 78 - 7f 

203 0, 0, 0, 0, 0, 0, 0, 0, # 80 - 87 

204 0, 0, 0, 0, 0, 0, 0, 0, # 88 - 8f 

205 0, 0, 0, 0, 0, 0, 0, 0, # 90 - 97 

206 0, 0, 0, 0, 0, 0, 0, 0, # 98 - 9f 

207 0, 2, 2, 2, 2, 2, 2, 2, # a0 - a7 

208 2, 2, 2, 2, 2, 3, 3, 3, # a8 - af 

209 2, 2, 2, 2, 2, 2, 2, 2, # b0 - b7 

210 2, 2, 2, 2, 2, 2, 2, 2, # b8 - bf 

211 2, 2, 2, 2, 2, 2, 2, 2, # c0 - c7 

212 2, 3, 2, 2, 2, 2, 2, 2, # c8 - cf 

213 2, 2, 2, 2, 2, 2, 2, 2, # d0 - d7 

214 2, 2, 2, 2, 2, 2, 2, 2, # d8 - df 

215 2, 2, 2, 2, 2, 2, 2, 2, # e0 - e7 

216 2, 2, 2, 2, 2, 2, 2, 2, # e8 - ef 

217 2, 2, 2, 2, 2, 2, 2, 2, # f0 - f7 

218 2, 2, 2, 2, 2, 2, 2, 0 # f8 - ff 

219) 

220 

221EUCKR_ST = ( 

222 MachineState.ERROR,MachineState.START, 3,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#00-07 

223 MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START #08-0f 

224) 

225# fmt: on 

226 

227EUCKR_CHAR_LEN_TABLE = (0, 1, 2, 0) 

228 

229EUCKR_SM_MODEL: CodingStateMachineDict = { 

230 "class_table": EUCKR_CLS, 

231 "class_factor": 4, 

232 "state_table": EUCKR_ST, 

233 "char_len_table": EUCKR_CHAR_LEN_TABLE, 

234 "name": "EUC-KR", 

235} 

236 

237# JOHAB 

238# fmt: off 

239JOHAB_CLS = ( 

240 4,4,4,4,4,4,4,4, # 00 - 07 

241 4,4,4,4,4,4,0,0, # 08 - 0f 

242 4,4,4,4,4,4,4,4, # 10 - 17 

243 4,4,4,0,4,4,4,4, # 18 - 1f 

244 4,4,4,4,4,4,4,4, # 20 - 27 

245 4,4,4,4,4,4,4,4, # 28 - 2f 

246 4,3,3,3,3,3,3,3, # 30 - 37 

247 3,3,3,3,3,3,3,3, # 38 - 3f 

248 3,1,1,1,1,1,1,1, # 40 - 47 

249 1,1,1,1,1,1,1,1, # 48 - 4f 

250 1,1,1,1,1,1,1,1, # 50 - 57 

251 1,1,1,1,1,1,1,1, # 58 - 5f 

252 1,1,1,1,1,1,1,1, # 60 - 67 

253 1,1,1,1,1,1,1,1, # 68 - 6f 

254 1,1,1,1,1,1,1,1, # 70 - 77 

255 1,1,1,1,1,1,1,2, # 78 - 7f 

256 6,6,6,6,8,8,8,8, # 80 - 87 

257 8,8,8,8,8,8,8,8, # 88 - 8f 

258 8,7,7,7,7,7,7,7, # 90 - 97 

259 7,7,7,7,7,7,7,7, # 98 - 9f 

260 7,7,7,7,7,7,7,7, # a0 - a7 

261 7,7,7,7,7,7,7,7, # a8 - af 

262 7,7,7,7,7,7,7,7, # b0 - b7 

263 7,7,7,7,7,7,7,7, # b8 - bf 

264 7,7,7,7,7,7,7,7, # c0 - c7 

265 7,7,7,7,7,7,7,7, # c8 - cf 

266 7,7,7,7,5,5,5,5, # d0 - d7 

267 5,9,9,9,9,9,9,5, # d8 - df 

268 9,9,9,9,9,9,9,9, # e0 - e7 

269 9,9,9,9,9,9,9,9, # e8 - ef 

270 9,9,9,9,9,9,9,9, # f0 - f7 

271 9,9,5,5,5,5,5,0 # f8 - ff 

272) 

273 

274JOHAB_ST = ( 

275# cls = 0 1 2 3 4 5 6 7 8 9 

276 MachineState.ERROR ,MachineState.START ,MachineState.START ,MachineState.START ,MachineState.START ,MachineState.ERROR ,MachineState.ERROR ,3 ,3 ,4 , # MachineState.START 

277 MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME, # MachineState.ITS_ME 

278 MachineState.ERROR ,MachineState.ERROR ,MachineState.ERROR ,MachineState.ERROR ,MachineState.ERROR ,MachineState.ERROR ,MachineState.ERROR ,MachineState.ERROR ,MachineState.ERROR ,MachineState.ERROR , # MachineState.ERROR 

279 MachineState.ERROR ,MachineState.START ,MachineState.START ,MachineState.ERROR ,MachineState.ERROR ,MachineState.START ,MachineState.START ,MachineState.START ,MachineState.START ,MachineState.START , # 3 

280 MachineState.ERROR ,MachineState.START ,MachineState.ERROR ,MachineState.START ,MachineState.ERROR ,MachineState.START ,MachineState.ERROR ,MachineState.START ,MachineState.ERROR ,MachineState.START , # 4 

281) 

282# fmt: on 

283 

284JOHAB_CHAR_LEN_TABLE = (0, 1, 1, 1, 1, 0, 0, 2, 2, 2) 

285 

286JOHAB_SM_MODEL: CodingStateMachineDict = { 

287 "class_table": JOHAB_CLS, 

288 "class_factor": 10, 

289 "state_table": JOHAB_ST, 

290 "char_len_table": JOHAB_CHAR_LEN_TABLE, 

291 "name": "Johab", 

292} 

293 

294# EUC-TW 

295# fmt: off 

296EUCTW_CLS = ( 

297 2, 2, 2, 2, 2, 2, 2, 2, # 00 - 07 

298 2, 2, 2, 2, 2, 2, 0, 0, # 08 - 0f 

299 2, 2, 2, 2, 2, 2, 2, 2, # 10 - 17 

300 2, 2, 2, 0, 2, 2, 2, 2, # 18 - 1f 

301 2, 2, 2, 2, 2, 2, 2, 2, # 20 - 27 

302 2, 2, 2, 2, 2, 2, 2, 2, # 28 - 2f 

303 2, 2, 2, 2, 2, 2, 2, 2, # 30 - 37 

304 2, 2, 2, 2, 2, 2, 2, 2, # 38 - 3f 

305 2, 2, 2, 2, 2, 2, 2, 2, # 40 - 47 

306 2, 2, 2, 2, 2, 2, 2, 2, # 48 - 4f 

307 2, 2, 2, 2, 2, 2, 2, 2, # 50 - 57 

308 2, 2, 2, 2, 2, 2, 2, 2, # 58 - 5f 

309 2, 2, 2, 2, 2, 2, 2, 2, # 60 - 67 

310 2, 2, 2, 2, 2, 2, 2, 2, # 68 - 6f 

311 2, 2, 2, 2, 2, 2, 2, 2, # 70 - 77 

312 2, 2, 2, 2, 2, 2, 2, 2, # 78 - 7f 

313 0, 0, 0, 0, 0, 0, 0, 0, # 80 - 87 

314 0, 0, 0, 0, 0, 0, 6, 0, # 88 - 8f 

315 0, 0, 0, 0, 0, 0, 0, 0, # 90 - 97 

316 0, 0, 0, 0, 0, 0, 0, 0, # 98 - 9f 

317 0, 3, 4, 4, 4, 4, 4, 4, # a0 - a7 

318 5, 5, 1, 1, 1, 1, 1, 1, # a8 - af 

319 1, 1, 1, 1, 1, 1, 1, 1, # b0 - b7 

320 1, 1, 1, 1, 1, 1, 1, 1, # b8 - bf 

321 1, 1, 3, 1, 3, 3, 3, 3, # c0 - c7 

322 3, 3, 3, 3, 3, 3, 3, 3, # c8 - cf 

323 3, 3, 3, 3, 3, 3, 3, 3, # d0 - d7 

324 3, 3, 3, 3, 3, 3, 3, 3, # d8 - df 

325 3, 3, 3, 3, 3, 3, 3, 3, # e0 - e7 

326 3, 3, 3, 3, 3, 3, 3, 3, # e8 - ef 

327 3, 3, 3, 3, 3, 3, 3, 3, # f0 - f7 

328 3, 3, 3, 3, 3, 3, 3, 0 # f8 - ff 

329) 

330 

331EUCTW_ST = ( 

332 MachineState.ERROR,MachineState.ERROR,MachineState.START, 3, 3, 3, 4,MachineState.ERROR,#00-07 

333 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f 

334 MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.START,MachineState.ERROR,#10-17 

335 MachineState.START,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#18-1f 

336 5,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.ERROR,MachineState.START,MachineState.START,#20-27 

337 MachineState.START,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START #28-2f 

338) 

339# fmt: on 

340 

341EUCTW_CHAR_LEN_TABLE = (0, 0, 1, 2, 2, 2, 3) 

342 

343EUCTW_SM_MODEL: CodingStateMachineDict = { 

344 "class_table": EUCTW_CLS, 

345 "class_factor": 7, 

346 "state_table": EUCTW_ST, 

347 "char_len_table": EUCTW_CHAR_LEN_TABLE, 

348 "name": "x-euc-tw", 

349} 

350 

351# GB2312 

352# fmt: off 

353GB2312_CLS = ( 

354 1, 1, 1, 1, 1, 1, 1, 1, # 00 - 07 

355 1, 1, 1, 1, 1, 1, 0, 0, # 08 - 0f 

356 1, 1, 1, 1, 1, 1, 1, 1, # 10 - 17 

357 1, 1, 1, 0, 1, 1, 1, 1, # 18 - 1f 

358 1, 1, 1, 1, 1, 1, 1, 1, # 20 - 27 

359 1, 1, 1, 1, 1, 1, 1, 1, # 28 - 2f 

360 3, 3, 3, 3, 3, 3, 3, 3, # 30 - 37 

361 3, 3, 1, 1, 1, 1, 1, 1, # 38 - 3f 

362 2, 2, 2, 2, 2, 2, 2, 2, # 40 - 47 

363 2, 2, 2, 2, 2, 2, 2, 2, # 48 - 4f 

364 2, 2, 2, 2, 2, 2, 2, 2, # 50 - 57 

365 2, 2, 2, 2, 2, 2, 2, 2, # 58 - 5f 

366 2, 2, 2, 2, 2, 2, 2, 2, # 60 - 67 

367 2, 2, 2, 2, 2, 2, 2, 2, # 68 - 6f 

368 2, 2, 2, 2, 2, 2, 2, 2, # 70 - 77 

369 2, 2, 2, 2, 2, 2, 2, 4, # 78 - 7f 

370 5, 6, 6, 6, 6, 6, 6, 6, # 80 - 87 

371 6, 6, 6, 6, 6, 6, 6, 6, # 88 - 8f 

372 6, 6, 6, 6, 6, 6, 6, 6, # 90 - 97 

373 6, 6, 6, 6, 6, 6, 6, 6, # 98 - 9f 

374 6, 6, 6, 6, 6, 6, 6, 6, # a0 - a7 

375 6, 6, 6, 6, 6, 6, 6, 6, # a8 - af 

376 6, 6, 6, 6, 6, 6, 6, 6, # b0 - b7 

377 6, 6, 6, 6, 6, 6, 6, 6, # b8 - bf 

378 6, 6, 6, 6, 6, 6, 6, 6, # c0 - c7 

379 6, 6, 6, 6, 6, 6, 6, 6, # c8 - cf 

380 6, 6, 6, 6, 6, 6, 6, 6, # d0 - d7 

381 6, 6, 6, 6, 6, 6, 6, 6, # d8 - df 

382 6, 6, 6, 6, 6, 6, 6, 6, # e0 - e7 

383 6, 6, 6, 6, 6, 6, 6, 6, # e8 - ef 

384 6, 6, 6, 6, 6, 6, 6, 6, # f0 - f7 

385 6, 6, 6, 6, 6, 6, 6, 0 # f8 - ff 

386) 

387 

388GB2312_ST = ( 

389 MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START, 3,MachineState.ERROR,#00-07 

390 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f 

391 MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.START,#10-17 

392 4,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#18-1f 

393 MachineState.ERROR,MachineState.ERROR, 5,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ERROR,#20-27 

394 MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START #28-2f 

395) 

396# fmt: on 

397 

398# To be accurate, the length of class 6 can be either 2 or 4. 

399# But it is not necessary to discriminate between the two since 

400# it is used for frequency analysis only, and we are validating 

401# each code range there as well. So it is safe to set it to be 

402# 2 here. 

403GB2312_CHAR_LEN_TABLE = (0, 1, 1, 1, 1, 1, 2) 

404 

405GB2312_SM_MODEL: CodingStateMachineDict = { 

406 "class_table": GB2312_CLS, 

407 "class_factor": 7, 

408 "state_table": GB2312_ST, 

409 "char_len_table": GB2312_CHAR_LEN_TABLE, 

410 "name": "GB2312", 

411} 

412 

413# Shift_JIS 

414# fmt: off 

415SJIS_CLS = ( 

416 1, 1, 1, 1, 1, 1, 1, 1, # 00 - 07 

417 1, 1, 1, 1, 1, 1, 0, 0, # 08 - 0f 

418 1, 1, 1, 1, 1, 1, 1, 1, # 10 - 17 

419 1, 1, 1, 0, 1, 1, 1, 1, # 18 - 1f 

420 1, 1, 1, 1, 1, 1, 1, 1, # 20 - 27 

421 1, 1, 1, 1, 1, 1, 1, 1, # 28 - 2f 

422 1, 1, 1, 1, 1, 1, 1, 1, # 30 - 37 

423 1, 1, 1, 1, 1, 1, 1, 1, # 38 - 3f 

424 2, 2, 2, 2, 2, 2, 2, 2, # 40 - 47 

425 2, 2, 2, 2, 2, 2, 2, 2, # 48 - 4f 

426 2, 2, 2, 2, 2, 2, 2, 2, # 50 - 57 

427 2, 2, 2, 2, 2, 2, 2, 2, # 58 - 5f 

428 2, 2, 2, 2, 2, 2, 2, 2, # 60 - 67 

429 2, 2, 2, 2, 2, 2, 2, 2, # 68 - 6f 

430 2, 2, 2, 2, 2, 2, 2, 2, # 70 - 77 

431 2, 2, 2, 2, 2, 2, 2, 1, # 78 - 7f 

432 3, 3, 3, 3, 3, 2, 2, 3, # 80 - 87 

433 3, 3, 3, 3, 3, 3, 3, 3, # 88 - 8f 

434 3, 3, 3, 3, 3, 3, 3, 3, # 90 - 97 

435 3, 3, 3, 3, 3, 3, 3, 3, # 98 - 9f 

436 #0xa0 is illegal in sjis encoding, but some pages does 

437 #contain such byte. We need to be more error forgiven. 

438 2, 2, 2, 2, 2, 2, 2, 2, # a0 - a7 

439 2, 2, 2, 2, 2, 2, 2, 2, # a8 - af 

440 2, 2, 2, 2, 2, 2, 2, 2, # b0 - b7 

441 2, 2, 2, 2, 2, 2, 2, 2, # b8 - bf 

442 2, 2, 2, 2, 2, 2, 2, 2, # c0 - c7 

443 2, 2, 2, 2, 2, 2, 2, 2, # c8 - cf 

444 2, 2, 2, 2, 2, 2, 2, 2, # d0 - d7 

445 2, 2, 2, 2, 2, 2, 2, 2, # d8 - df 

446 3, 3, 3, 3, 3, 3, 3, 3, # e0 - e7 

447 3, 3, 3, 3, 3, 4, 4, 4, # e8 - ef 

448 3, 3, 3, 3, 3, 3, 3, 3, # f0 - f7 

449 3, 3, 3, 3, 3, 0, 0, 0, # f8 - ff 

450) 

451 

452SJIS_ST = ( 

453 MachineState.ERROR,MachineState.START,MachineState.START, 3,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#00-07 

454 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f 

455 MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START #10-17 

456) 

457# fmt: on 

458 

459SJIS_CHAR_LEN_TABLE = (0, 1, 1, 2, 0, 0) 

460 

461SJIS_SM_MODEL: CodingStateMachineDict = { 

462 "class_table": SJIS_CLS, 

463 "class_factor": 6, 

464 "state_table": SJIS_ST, 

465 "char_len_table": SJIS_CHAR_LEN_TABLE, 

466 "name": "Shift_JIS", 

467} 

468 

469# UCS2-BE 

470# fmt: off 

471UCS2BE_CLS = ( 

472 0, 0, 0, 0, 0, 0, 0, 0, # 00 - 07 

473 0, 0, 1, 0, 0, 2, 0, 0, # 08 - 0f 

474 0, 0, 0, 0, 0, 0, 0, 0, # 10 - 17 

475 0, 0, 0, 3, 0, 0, 0, 0, # 18 - 1f 

476 0, 0, 0, 0, 0, 0, 0, 0, # 20 - 27 

477 0, 3, 3, 3, 3, 3, 0, 0, # 28 - 2f 

478 0, 0, 0, 0, 0, 0, 0, 0, # 30 - 37 

479 0, 0, 0, 0, 0, 0, 0, 0, # 38 - 3f 

480 0, 0, 0, 0, 0, 0, 0, 0, # 40 - 47 

481 0, 0, 0, 0, 0, 0, 0, 0, # 48 - 4f 

482 0, 0, 0, 0, 0, 0, 0, 0, # 50 - 57 

483 0, 0, 0, 0, 0, 0, 0, 0, # 58 - 5f 

484 0, 0, 0, 0, 0, 0, 0, 0, # 60 - 67 

485 0, 0, 0, 0, 0, 0, 0, 0, # 68 - 6f 

486 0, 0, 0, 0, 0, 0, 0, 0, # 70 - 77 

487 0, 0, 0, 0, 0, 0, 0, 0, # 78 - 7f 

488 0, 0, 0, 0, 0, 0, 0, 0, # 80 - 87 

489 0, 0, 0, 0, 0, 0, 0, 0, # 88 - 8f 

490 0, 0, 0, 0, 0, 0, 0, 0, # 90 - 97 

491 0, 0, 0, 0, 0, 0, 0, 0, # 98 - 9f 

492 0, 0, 0, 0, 0, 0, 0, 0, # a0 - a7 

493 0, 0, 0, 0, 0, 0, 0, 0, # a8 - af 

494 0, 0, 0, 0, 0, 0, 0, 0, # b0 - b7 

495 0, 0, 0, 0, 0, 0, 0, 0, # b8 - bf 

496 0, 0, 0, 0, 0, 0, 0, 0, # c0 - c7 

497 0, 0, 0, 0, 0, 0, 0, 0, # c8 - cf 

498 0, 0, 0, 0, 0, 0, 0, 0, # d0 - d7 

499 0, 0, 0, 0, 0, 0, 0, 0, # d8 - df 

500 0, 0, 0, 0, 0, 0, 0, 0, # e0 - e7 

501 0, 0, 0, 0, 0, 0, 0, 0, # e8 - ef 

502 0, 0, 0, 0, 0, 0, 0, 0, # f0 - f7 

503 0, 0, 0, 0, 0, 0, 4, 5 # f8 - ff 

504) 

505 

506UCS2BE_ST = ( 

507 5, 7, 7,MachineState.ERROR, 4, 3,MachineState.ERROR,MachineState.ERROR,#00-07 

508 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f 

509 MachineState.ITS_ME,MachineState.ITS_ME, 6, 6, 6, 6,MachineState.ERROR,MachineState.ERROR,#10-17 

510 6, 6, 6, 6, 6,MachineState.ITS_ME, 6, 6,#18-1f 

511 6, 6, 6, 6, 5, 7, 7,MachineState.ERROR,#20-27 

512 5, 8, 6, 6,MachineState.ERROR, 6, 6, 6,#28-2f 

513 6, 6, 6, 6,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START #30-37 

514) 

515# fmt: on 

516 

517UCS2BE_CHAR_LEN_TABLE = (2, 2, 2, 0, 2, 2) 

518 

519UCS2BE_SM_MODEL: CodingStateMachineDict = { 

520 "class_table": UCS2BE_CLS, 

521 "class_factor": 6, 

522 "state_table": UCS2BE_ST, 

523 "char_len_table": UCS2BE_CHAR_LEN_TABLE, 

524 "name": "UTF-16BE", 

525} 

526 

527# UCS2-LE 

528# fmt: off 

529UCS2LE_CLS = ( 

530 0, 0, 0, 0, 0, 0, 0, 0, # 00 - 07 

531 0, 0, 1, 0, 0, 2, 0, 0, # 08 - 0f 

532 0, 0, 0, 0, 0, 0, 0, 0, # 10 - 17 

533 0, 0, 0, 3, 0, 0, 0, 0, # 18 - 1f 

534 0, 0, 0, 0, 0, 0, 0, 0, # 20 - 27 

535 0, 3, 3, 3, 3, 3, 0, 0, # 28 - 2f 

536 0, 0, 0, 0, 0, 0, 0, 0, # 30 - 37 

537 0, 0, 0, 0, 0, 0, 0, 0, # 38 - 3f 

538 0, 0, 0, 0, 0, 0, 0, 0, # 40 - 47 

539 0, 0, 0, 0, 0, 0, 0, 0, # 48 - 4f 

540 0, 0, 0, 0, 0, 0, 0, 0, # 50 - 57 

541 0, 0, 0, 0, 0, 0, 0, 0, # 58 - 5f 

542 0, 0, 0, 0, 0, 0, 0, 0, # 60 - 67 

543 0, 0, 0, 0, 0, 0, 0, 0, # 68 - 6f 

544 0, 0, 0, 0, 0, 0, 0, 0, # 70 - 77 

545 0, 0, 0, 0, 0, 0, 0, 0, # 78 - 7f 

546 0, 0, 0, 0, 0, 0, 0, 0, # 80 - 87 

547 0, 0, 0, 0, 0, 0, 0, 0, # 88 - 8f 

548 0, 0, 0, 0, 0, 0, 0, 0, # 90 - 97 

549 0, 0, 0, 0, 0, 0, 0, 0, # 98 - 9f 

550 0, 0, 0, 0, 0, 0, 0, 0, # a0 - a7 

551 0, 0, 0, 0, 0, 0, 0, 0, # a8 - af 

552 0, 0, 0, 0, 0, 0, 0, 0, # b0 - b7 

553 0, 0, 0, 0, 0, 0, 0, 0, # b8 - bf 

554 0, 0, 0, 0, 0, 0, 0, 0, # c0 - c7 

555 0, 0, 0, 0, 0, 0, 0, 0, # c8 - cf 

556 0, 0, 0, 0, 0, 0, 0, 0, # d0 - d7 

557 0, 0, 0, 0, 0, 0, 0, 0, # d8 - df 

558 0, 0, 0, 0, 0, 0, 0, 0, # e0 - e7 

559 0, 0, 0, 0, 0, 0, 0, 0, # e8 - ef 

560 0, 0, 0, 0, 0, 0, 0, 0, # f0 - f7 

561 0, 0, 0, 0, 0, 0, 4, 5 # f8 - ff 

562) 

563 

564UCS2LE_ST = ( 

565 6, 6, 7, 6, 4, 3,MachineState.ERROR,MachineState.ERROR,#00-07 

566 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f 

567 MachineState.ITS_ME,MachineState.ITS_ME, 5, 5, 5,MachineState.ERROR,MachineState.ITS_ME,MachineState.ERROR,#10-17 

568 5, 5, 5,MachineState.ERROR, 5,MachineState.ERROR, 6, 6,#18-1f 

569 7, 6, 8, 8, 5, 5, 5,MachineState.ERROR,#20-27 

570 5, 5, 5,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 5, 5,#28-2f 

571 5, 5, 5,MachineState.ERROR, 5,MachineState.ERROR,MachineState.START,MachineState.START #30-37 

572) 

573# fmt: on 

574 

575UCS2LE_CHAR_LEN_TABLE = (2, 2, 2, 2, 2, 2) 

576 

577UCS2LE_SM_MODEL: CodingStateMachineDict = { 

578 "class_table": UCS2LE_CLS, 

579 "class_factor": 6, 

580 "state_table": UCS2LE_ST, 

581 "char_len_table": UCS2LE_CHAR_LEN_TABLE, 

582 "name": "UTF-16LE", 

583} 

584 

585# UTF-8 

586# fmt: off 

587UTF8_CLS = ( 

588 1, 1, 1, 1, 1, 1, 1, 1, # 00 - 07 #allow 0x00 as a legal value 

589 1, 1, 1, 1, 1, 1, 0, 0, # 08 - 0f 

590 1, 1, 1, 1, 1, 1, 1, 1, # 10 - 17 

591 1, 1, 1, 0, 1, 1, 1, 1, # 18 - 1f 

592 1, 1, 1, 1, 1, 1, 1, 1, # 20 - 27 

593 1, 1, 1, 1, 1, 1, 1, 1, # 28 - 2f 

594 1, 1, 1, 1, 1, 1, 1, 1, # 30 - 37 

595 1, 1, 1, 1, 1, 1, 1, 1, # 38 - 3f 

596 1, 1, 1, 1, 1, 1, 1, 1, # 40 - 47 

597 1, 1, 1, 1, 1, 1, 1, 1, # 48 - 4f 

598 1, 1, 1, 1, 1, 1, 1, 1, # 50 - 57 

599 1, 1, 1, 1, 1, 1, 1, 1, # 58 - 5f 

600 1, 1, 1, 1, 1, 1, 1, 1, # 60 - 67 

601 1, 1, 1, 1, 1, 1, 1, 1, # 68 - 6f 

602 1, 1, 1, 1, 1, 1, 1, 1, # 70 - 77 

603 1, 1, 1, 1, 1, 1, 1, 1, # 78 - 7f 

604 2, 2, 2, 2, 3, 3, 3, 3, # 80 - 87 

605 4, 4, 4, 4, 4, 4, 4, 4, # 88 - 8f 

606 4, 4, 4, 4, 4, 4, 4, 4, # 90 - 97 

607 4, 4, 4, 4, 4, 4, 4, 4, # 98 - 9f 

608 5, 5, 5, 5, 5, 5, 5, 5, # a0 - a7 

609 5, 5, 5, 5, 5, 5, 5, 5, # a8 - af 

610 5, 5, 5, 5, 5, 5, 5, 5, # b0 - b7 

611 5, 5, 5, 5, 5, 5, 5, 5, # b8 - bf 

612 0, 0, 6, 6, 6, 6, 6, 6, # c0 - c7 

613 6, 6, 6, 6, 6, 6, 6, 6, # c8 - cf 

614 6, 6, 6, 6, 6, 6, 6, 6, # d0 - d7 

615 6, 6, 6, 6, 6, 6, 6, 6, # d8 - df 

616 7, 8, 8, 8, 8, 8, 8, 8, # e0 - e7 

617 8, 8, 8, 8, 8, 9, 8, 8, # e8 - ef 

618 10, 11, 11, 11, 11, 11, 11, 11, # f0 - f7 

619 12, 13, 13, 13, 14, 15, 0, 0 # f8 - ff 

620) 

621 

622UTF8_ST = ( 

623 MachineState.ERROR,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 12, 10,#00-07 

624 9, 11, 8, 7, 6, 5, 4, 3,#08-0f 

625 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#10-17 

626 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#18-1f 

627 MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#20-27 

628 MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#28-2f 

629 MachineState.ERROR,MachineState.ERROR, 5, 5, 5, 5,MachineState.ERROR,MachineState.ERROR,#30-37 

630 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#38-3f 

631 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 5, 5, 5,MachineState.ERROR,MachineState.ERROR,#40-47 

632 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#48-4f 

633 MachineState.ERROR,MachineState.ERROR, 7, 7, 7, 7,MachineState.ERROR,MachineState.ERROR,#50-57 

634 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#58-5f 

635 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 7, 7,MachineState.ERROR,MachineState.ERROR,#60-67 

636 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#68-6f 

637 MachineState.ERROR,MachineState.ERROR, 9, 9, 9, 9,MachineState.ERROR,MachineState.ERROR,#70-77 

638 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#78-7f 

639 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 9,MachineState.ERROR,MachineState.ERROR,#80-87 

640 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#88-8f 

641 MachineState.ERROR,MachineState.ERROR, 12, 12, 12, 12,MachineState.ERROR,MachineState.ERROR,#90-97 

642 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#98-9f 

643 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 12,MachineState.ERROR,MachineState.ERROR,#a0-a7 

644 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#a8-af 

645 MachineState.ERROR,MachineState.ERROR, 12, 12, 12,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#b0-b7 

646 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#b8-bf 

647 MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,#c0-c7 

648 MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR #c8-cf 

649) 

650# fmt: on 

651 

652UTF8_CHAR_LEN_TABLE = (0, 1, 0, 0, 0, 0, 2, 3, 3, 3, 4, 4, 5, 5, 6, 6) 

653 

654UTF8_SM_MODEL: CodingStateMachineDict = { 

655 "class_table": UTF8_CLS, 

656 "class_factor": 16, 

657 "state_table": UTF8_ST, 

658 "char_len_table": UTF8_CHAR_LEN_TABLE, 

659 "name": "UTF-8", 

660}