Tree:
ef4a13534d
master
1.0.277
help
milestone-0.2
v0.1.0
v0.3.459
v0.4.11
v0.5.5
v0.8.1181
v0.8.1334
v1.0.1000
v1.0.1002
v1.0.1004
v1.0.1006
v1.0.1008
v1.0.101
v1.0.1011
v1.0.1013
v1.0.1015
v1.0.1017
v1.0.1019
v1.0.1021
v1.0.1023
v1.0.1025
v1.0.1027
v1.0.1029
v1.0.103
v1.0.1031
v1.0.1033
v1.0.1035
v1.0.1037
v1.0.1038
v1.0.1040
v1.0.105
v1.0.1051
v1.0.1053
v1.0.1055
v1.0.1057
v1.0.1059
v1.0.1061
v1.0.1062
v1.0.1063
v1.0.1065
v1.0.1067
v1.0.1069
v1.0.107
v1.0.1072
v1.0.1074
v1.0.1076
v1.0.1078
v1.0.1080
v1.0.1082
v1.0.1084
v1.0.1086
v1.0.1088
v1.0.109
v1.0.1090
v1.0.1092
v1.0.1093
v1.0.1100
v1.0.1102
v1.0.1104
v1.0.1106
v1.0.1108
v1.0.1110
v1.0.1118
v1.0.112
v1.0.1123
v1.0.1130
v1.0.1132
v1.0.1135
v1.0.1137
v1.0.114
v1.0.1141
v1.0.1143
v1.0.1145
v1.0.1147
v1.0.1149
v1.0.1151
v1.0.1152
v1.0.1154
v1.0.1156
v1.0.1158
v1.0.1160
v1.0.1162
v1.0.1165
v1.0.1167
v1.0.1169
v1.0.117
v1.0.1171
v1.0.1173
v1.0.1175
v1.0.1177
v1.0.1179
v1.0.1181
v1.0.1183
v1.0.1185
v1.0.1187
v1.0.1189
v1.0.119
v1.0.1191
v1.0.1193
v1.0.1194
v1.0.1196
v1.0.1199
v1.0.1201
v1.0.1203
v1.0.1205
v1.0.1207
v1.0.1208
v1.0.1209
v1.0.1210
v1.0.1211
v1.0.1212
v1.0.1213
v1.0.122
v1.0.125
v1.0.127
v1.0.129
v1.0.131
v1.0.133
v1.0.135
v1.0.137
v1.0.139
v1.0.141
v1.0.143
v1.0.145
v1.0.152
v1.0.155
v1.0.159
v1.0.162
v1.0.165
v1.0.167
v1.0.169
v1.0.171
v1.0.173
v1.0.175
v1.0.177
v1.0.179
v1.0.182
v1.0.184
v1.0.186
v1.0.188
v1.0.190
v1.0.192
v1.0.194
v1.0.197
v1.0.199
v1.0.2
v1.0.203
v1.0.205
v1.0.207
v1.0.209
v1.0.21
v1.0.213
v1.0.215
v1.0.217
v1.0.219
v1.0.221
v1.0.224
v1.0.226
v1.0.229
v1.0.233
v1.0.235
v1.0.237
v1.0.239
v1.0.241
v1.0.245
v1.0.247
v1.0.250
v1.0.254
v1.0.256
v1.0.258
v1.0.260
v1.0.264
v1.0.266
v1.0.268
v1.0.270
v1.0.272
v1.0.274
v1.0.277
v1.0.279
v1.0.281
v1.0.284
v1.0.286
v1.0.288
v1.0.291
v1.0.294
v1.0.296
v1.0.298
v1.0.300
v1.0.302
v1.0.304
v1.0.306
v1.0.308
v1.0.310
v1.0.312
v1.0.320
v1.0.322
v1.0.324
v1.0.326
v1.0.328
v1.0.330
v1.0.332
v1.0.334
v1.0.336
v1.0.338
v1.0.340
v1.0.342
v1.0.345
v1.0.347
v1.0.349
v1.0.351
v1.0.353
v1.0.355
v1.0.357
v1.0.359
v1.0.362
v1.0.366
v1.0.368
v1.0.370
v1.0.374
v1.0.377
v1.0.379
v1.0.381
v1.0.383
v1.0.385
v1.0.387
v1.0.389
v1.0.391
v1.0.393
v1.0.395
v1.0.398
v1.0.400
v1.0.402
v1.0.403
v1.0.406
v1.0.408
v1.0.410
v1.0.413
v1.0.416
v1.0.418
v1.0.423
v1.0.425
v1.0.427
v1.0.429
v1.0.431
v1.0.435
v1.0.437
v1.0.439
v1.0.441
v1.0.444
v1.0.448
v1.0.450
v1.0.452
v1.0.454
v1.0.456
v1.0.459
v1.0.461
v1.0.463
v1.0.465
v1.0.467
v1.0.469
v1.0.471
v1.0.473
v1.0.476
v1.0.478
v1.0.480
v1.0.482
v1.0.484
v1.0.490
v1.0.492
v1.0.494
v1.0.497
v1.0.499
v1.0.501
v1.0.503
v1.0.505
v1.0.509
v1.0.511
v1.0.513
v1.0.515
v1.0.517
v1.0.519
v1.0.521
v1.0.524
v1.0.527
v1.0.529
v1.0.535
v1.0.538
v1.0.544
v1.0.551
v1.0.553
v1.0.558
v1.0.566
v1.0.569
v1.0.571
v1.0.573
v1.0.575
v1.0.577
v1.0.579
v1.0.582
v1.0.584
v1.0.587
v1.0.589
v1.0.592
v1.0.594
v1.0.596
v1.0.598
v1.0.600
v1.0.602
v1.0.604
v1.0.606
v1.0.608
v1.0.610
v1.0.612
v1.0.614
v1.0.616
v1.0.618
v1.0.620
v1.0.622
v1.0.624
v1.0.627
v1.0.629
v1.0.633
v1.0.635
v1.0.639
v1.0.641
v1.0.643
v1.0.645
v1.0.647
v1.0.649
v1.0.651
v1.0.653
v1.0.655
v1.0.657
v1.0.659
v1.0.661
v1.0.663
v1.0.666
v1.0.668
v1.0.672
v1.0.674
v1.0.676
v1.0.678
v1.0.68
v1.0.680
v1.0.682
v1.0.684
v1.0.686
v1.0.688
v1.0.690
v1.0.692
v1.0.694
v1.0.696
v1.0.698
v1.0.700
v1.0.702
v1.0.704
v1.0.706
v1.0.708
v1.0.710
v1.0.712
v1.0.715
v1.0.717
v1.0.719
v1.0.721
v1.0.723
v1.0.725
v1.0.727
v1.0.730
v1.0.732
v1.0.735
v1.0.737
v1.0.740
v1.0.742
v1.0.744
v1.0.746
v1.0.748
v1.0.750
v1.0.753
v1.0.756
v1.0.759
v1.0.761
v1.0.763
v1.0.765
v1.0.768
v1.0.770
v1.0.772
v1.0.774
v1.0.780
v1.0.782
v1.0.787
v1.0.789
v1.0.794
v1.0.796
v1.0.798
v1.0.800
v1.0.804
v1.0.808
v1.0.811
v1.0.813
v1.0.816
v1.0.818
v1.0.820
v1.0.822
v1.0.824
v1.0.826
v1.0.828
v1.0.830
v1.0.833
v1.0.835
v1.0.837
v1.0.849
v1.0.851
v1.0.853
v1.0.855
v1.0.858
v1.0.861
v1.0.863
v1.0.864
v1.0.867
v1.0.869
v1.0.872
v1.0.874
v1.0.876
v1.0.878
v1.0.880
v1.0.882
v1.0.884
v1.0.887
v1.0.889
v1.0.89
v1.0.892
v1.0.894
v1.0.896
v1.0.898
v1.0.900
v1.0.903
v1.0.905
v1.0.907
v1.0.909
v1.0.91
v1.0.911
v1.0.913
v1.0.915
v1.0.917
v1.0.919
v1.0.921
v1.0.924
v1.0.925
v1.0.927
v1.0.929
v1.0.93
v1.0.931
v1.0.933
v1.0.935
v1.0.937
v1.0.940
v1.0.942
v1.0.943
v1.0.945
v1.0.948
v1.0.951
v1.0.954
v1.0.956
v1.0.958
v1.0.96
v1.0.960
v1.0.962
v1.0.964
v1.0.966
v1.0.968
v1.0.970
v1.0.972
v1.0.974
v1.0.976
v1.0.978
v1.0.980
v1.0.982
v1.0.984
v1.0.99
v1.0.993
v1.0.995
v1.0.997
v1.1.1
v1.1.101
v1.1.103
v1.1.105
v1.1.107
v1.1.109
v1.1.11
v1.1.111
v1.1.113
v1.1.114
v1.1.116
v1.1.118
v1.1.120
v1.1.122
v1.1.124
v1.1.126
v1.1.128
v1.1.13
v1.1.130
v1.1.132
v1.1.134
v1.1.136
v1.1.138
v1.1.140
v1.1.143
v1.1.145
v1.1.147
v1.1.149
v1.1.15
v1.1.151
v1.1.153
v1.1.155
v1.1.156
v1.1.157
v1.1.159
v1.1.165
v1.1.167
v1.1.169
v1.1.171
v1.1.174
v1.1.177
v1.1.179
v1.1.18
v1.1.181
v1.1.183
v1.1.185
v1.1.187
v1.1.189
v1.1.191
v1.1.193
v1.1.195
v1.1.197
v1.1.199
v1.1.20
v1.1.201
v1.1.203
v1.1.205
v1.1.207
v1.1.209
v1.1.211
v1.1.213
v1.1.215
v1.1.217
v1.1.218
v1.1.22
v1.1.220
v1.1.222
v1.1.224
v1.1.226
v1.1.228
v1.1.230
v1.1.233
v1.1.238
v1.1.24
v1.1.240
v1.1.242
v1.1.244
v1.1.246
v1.1.248
v1.1.250
v1.1.252
v1.1.254
v1.1.256
v1.1.258
v1.1.26
v1.1.260
v1.1.262
v1.1.264
v1.1.266
v1.1.268
v1.1.270
v1.1.272
v1.1.274
v1.1.276
v1.1.278
v1.1.28
v1.1.280
v1.1.284
v1.1.286
v1.1.288
v1.1.290
v1.1.293
v1.1.295
v1.1.297
v1.1.299
v1.1.3
v1.1.301
v1.1.303
v1.1.305
v1.1.307
v1.1.309
v1.1.311
v1.1.313
v1.1.316
v1.1.32
v1.1.320
v1.1.322
v1.1.324
v1.1.326
v1.1.329
v1.1.332
v1.1.334
v1.1.335
v1.1.337
v1.1.339
v1.1.34
v1.1.341
v1.1.343
v1.1.345
v1.1.347
v1.1.350
v1.1.352
v1.1.355
v1.1.357
v1.1.359
v1.1.36
v1.1.361
v1.1.364
v1.1.366
v1.1.368
v1.1.370
v1.1.373
v1.1.375
v1.1.377
v1.1.379
v1.1.38
v1.1.381
v1.1.387
v1.1.390
v1.1.392
v1.1.394
v1.1.395
v1.1.397
v1.1.399
v1.1.40
v1.1.401
v1.1.403
v1.1.405
v1.1.407
v1.1.409
v1.1.411
v1.1.413
v1.1.415
v1.1.417
v1.1.42
v1.1.425
v1.1.427
v1.1.429
v1.1.431
v1.1.433
v1.1.435
v1.1.438
v1.1.44
v1.1.440
v1.1.442
v1.1.444
v1.1.446
v1.1.448
v1.1.45
v1.1.450
v1.1.452
v1.1.454
v1.1.456
v1.1.460
v1.1.462
v1.1.463
v1.1.465
v1.1.467
v1.1.469
v1.1.47
v1.1.471
v1.1.472
v1.1.474
v1.1.476
v1.1.478
v1.1.480
v1.1.483
v1.1.485
v1.1.488
v1.1.49
v1.1.490
v1.1.492
v1.1.494
v1.1.496
v1.1.498
v1.1.5
v1.1.500
v1.1.503
v1.1.505
v1.1.507
v1.1.509
v1.1.511
v1.1.513
v1.1.515
v1.1.517
v1.1.519
v1.1.52
v1.1.521
v1.1.523
v1.1.527
v1.1.529
v1.1.531
v1.1.534
v1.1.535
v1.1.54
v1.1.544
v1.1.546
v1.1.551
v1.1.56
v1.1.58
v1.1.60
v1.1.63
v1.1.65
v1.1.67
v1.1.69
v1.1.7
v1.1.71
v1.1.73
v1.1.82
v1.1.84
v1.1.86
v1.1.89
v1.1.9
v1.1.94
v1.1.96
v1.1.98
v1.10.100
v1.10.80
v1.10.81
v1.10.83
v1.10.86
v1.10.88
v1.10.90
v1.10.92
v1.10.93
v1.10.95
v1.10.97
v1.10.99
v1.2.101
v1.2.103
v1.2.105
v1.2.107
v1.2.109
v1.2.111
v1.2.113
v1.2.115
v1.2.117
v1.2.119
v1.2.121
v1.2.123
v1.2.125
v1.2.127
v1.2.129
v1.2.131
v1.2.133
v1.2.135
v1.2.26
v1.2.28
v1.2.30
v1.2.32
v1.2.34
v1.2.36
v1.2.38
v1.2.39
v1.2.41
v1.2.43
v1.2.45
v1.2.47
v1.2.49
v1.2.52
v1.2.55
v1.2.56
v1.2.58
v1.2.61
v1.2.64
v1.2.66
v1.2.68
v1.2.70
v1.2.73
v1.2.77
v1.2.79
v1.2.81
v1.2.83
v1.2.85
v1.2.87
v1.2.89
v1.2.91
v1.2.93
v1.2.95
v1.2.97
v1.2.99
v1.3.10
v1.3.100
v1.3.102
v1.3.103
v1.3.104
v1.3.105
v1.3.106
v1.3.108
v1.3.110
v1.3.112
v1.3.114
v1.3.116
v1.3.118
v1.3.12
v1.3.120
v1.3.122
v1.3.124
v1.3.125
v1.3.127
v1.3.129
v1.3.131
v1.3.133
v1.3.135
v1.3.137
v1.3.14
v1.3.142
v1.3.144
v1.3.146
v1.3.148
v1.3.150
v1.3.152
v1.3.154
v1.3.156
v1.3.158
v1.3.16
v1.3.161
v1.3.163
v1.3.165
v1.3.167
v1.3.169
v1.3.17
v1.3.171
v1.3.173
v1.3.175
v1.3.177
v1.3.179
v1.3.181
v1.3.183
v1.3.185
v1.3.187
v1.3.190
v1.3.192
v1.3.194
v1.3.196
v1.3.198
v1.3.20
v1.3.200
v1.3.202
v1.3.204
v1.3.206
v1.3.208
v1.3.210
v1.3.212
v1.3.214
v1.3.216
v1.3.218
v1.3.22
v1.3.220
v1.3.222
v1.3.224
v1.3.226
v1.3.228
v1.3.231
v1.3.233
v1.3.24
v1.3.26
v1.3.28
v1.3.32
v1.3.34
v1.3.36
v1.3.38
v1.3.40
v1.3.42
v1.3.44
v1.3.46
v1.3.48
v1.3.50
v1.3.52
v1.3.54
v1.3.56
v1.3.58
v1.3.6
v1.3.60
v1.3.62
v1.3.64
v1.3.66
v1.3.68
v1.3.70
v1.3.72
v1.3.74
v1.3.76
v1.3.78
v1.3.80
v1.3.81
v1.3.88
v1.3.90
v1.3.91
v1.3.94
v1.3.96
v1.3.98
v1.4.102
v1.4.105
v1.4.107
v1.4.109
v1.4.11
v1.4.111
v1.4.113
v1.4.115
v1.4.117
v1.4.119
v1.4.121
v1.4.122
v1.4.124
v1.4.127
v1.4.129
v1.4.13
v1.4.131
v1.4.133
v1.4.135
v1.4.137
v1.4.139
v1.4.14
v1.4.141
v1.4.143
v1.4.145
v1.4.147
v1.4.149
v1.4.152
v1.4.154
v1.4.155
v1.4.157
v1.4.16
v1.4.162
v1.4.164
v1.4.166
v1.4.168
v1.4.170
v1.4.172
v1.4.174
v1.4.176
v1.4.179
v1.4.18
v1.4.181
v1.4.183
v1.4.185
v1.4.187
v1.4.190
v1.4.192
v1.4.194
v1.4.197
v1.4.199
v1.4.20
v1.4.201
v1.4.203
v1.4.205
v1.4.209
v1.4.21
v1.4.211
v1.4.213
v1.4.215
v1.4.217
v1.4.219
v1.4.221
v1.4.225
v1.4.227
v1.4.229
v1.4.23
v1.4.231
v1.4.235
v1.4.237
v1.4.239
v1.4.241
v1.4.244
v1.4.248
v1.4.250
v1.4.252
v1.4.255
v1.4.257
v1.4.258
v1.4.260
v1.4.263
v1.4.265
v1.4.31
v1.4.33
v1.4.35
v1.4.37
v1.4.39
v1.4.42
v1.4.44
v1.4.46
v1.4.48
v1.4.51
v1.4.53
v1.4.55
v1.4.57
v1.4.59
v1.4.61
v1.4.62
v1.4.63
v1.4.64
v1.4.66
v1.4.68
v1.4.72
v1.4.74
v1.4.76
v1.4.79
v1.4.81
v1.4.83
v1.4.85
v1.4.87
v1.4.91
v1.4.93
v1.4.95
v1.4.97
v1.4.99
v1.5.188
v1.5.190
v1.5.192
v1.5.194
v1.5.196
v1.5.201
v1.5.203
v1.5.205
v1.5.207
v1.5.209
v1.5.211
v1.5.214
v1.5.216
v1.5.218
v1.5.220
v1.5.222
v1.5.224
v1.5.226
v1.5.228
v1.5.230
v1.5.232
v1.5.234
v1.5.236
v1.5.238
v1.5.240
v1.5.242
v1.5.244
v1.5.246
v1.5.248
v1.5.250
v1.5.252
v1.5.254
v1.5.256
v1.5.258
v1.5.260
v1.5.262
v1.5.264
v1.5.266
v1.5.268
v1.5.270
v1.5.272
v1.5.274
v1.5.276
v1.5.278
v1.5.279
v1.5.281
v1.5.283
v1.5.285
v1.5.287
v1.5.289
v1.5.292
v1.5.294
v1.5.296
v1.5.309
v1.5.311
v1.5.312
v1.5.314
v1.5.316
v1.5.318
v1.5.320
v1.5.322
v1.5.324
v1.5.326
v1.5.328
v1.5.330
v1.5.332
v1.5.334
v1.5.336
v1.5.337
v1.5.339
v1.5.341
v1.5.343
v1.5.345
v1.5.347
v1.5.351
v1.5.353
v1.5.355
v1.5.357
v1.5.359
v1.5.361
v1.5.365
v1.5.367
v1.5.369
v1.5.370
v1.5.372
v1.5.374
v1.5.376
v1.5.378
v1.5.381
v1.5.383
v1.5.385
v1.5.387
v1.5.389
v1.5.391
v1.5.393
v1.5.395
v1.5.397
v1.5.399
v1.5.402
v1.5.404
v1.5.406
v1.5.408
v1.5.410
v1.5.413
v1.5.415
v1.5.418
v1.5.421
v1.5.424
v1.5.426
v1.5.430
v1.5.432
v1.5.434
v1.5.437
v1.5.440
v1.5.442
v1.5.444
v1.5.446
v1.5.448
v1.5.450
v1.5.452
v1.5.454
v1.5.456
v1.5.458
v1.5.477
v1.5.479
v1.5.481
v1.5.485
v1.5.488
v1.5.490
v1.5.492
v1.5.494
v1.5.496
v1.5.498
v1.5.500
v1.6.210
v1.6.212
v1.6.214
v1.6.217
v1.6.219
v1.6.221
v1.6.222
v1.6.226
v1.6.230
v1.6.232
v1.6.234
v1.6.237
v1.6.239
v1.6.242
v1.6.244
v1.6.248
v1.6.250
v1.6.254
v1.6.256
v1.6.258
v1.6.263
v1.6.264
v1.6.266
v1.6.268
v1.6.271
v1.6.272
v1.6.274
v1.6.279
v1.6.283
v1.6.284
v1.6.287
v1.6.289
v1.6.293
v1.6.295
v1.6.297
v1.6.299
v1.6.302
v1.6.304
v1.6.306
v1.6.309
v1.6.311
v1.6.313
v1.6.315
v1.6.317
v1.6.319
v1.6.320
v1.6.322
v1.6.324
v1.6.327
v1.6.329
v1.6.331
v1.6.332
v1.6.334
v1.6.336
v1.6.338
v1.6.341
v1.6.343
v1.6.346
v1.6.348
v1.6.350
v1.6.351
v1.6.353
v1.6.355
v1.6.357
v1.6.359
v1.6.361
v1.6.365
v1.6.366
v1.6.370
v1.6.372
v1.6.374
v1.6.377
v1.6.380
v1.6.396
v1.6.401
v1.6.404
v1.6.406
v1.6.411
v1.6.412
v1.6.414
v1.6.416
v1.6.418
v1.6.419
v1.6.422
v1.6.424
v1.6.426
v1.6.428
v1.6.430
v1.6.433
v1.6.437
v1.6.440
v1.6.442
v1.6.444
v1.6.446
v1.6.449
v1.6.451
v1.6.454
v1.6.456
v1.6.458
v1.6.459
v1.6.461
v1.6.463
v1.6.465
v1.6.467
v1.6.469
v1.6.471
v1.6.473
v1.6.475
v1.6.477
v1.6.479
v1.6.481
v1.6.483
v1.6.485
v1.6.486
v1.7.225
v1.7.227
v1.7.229
v1.7.231
v1.7.233
v1.7.235
v1.7.244
v1.7.246
v1.7.248
v1.7.250
v1.7.252
v1.7.254
v1.7.256
v1.7.258
v1.7.260
v1.7.262
v1.7.264
v1.7.267
v1.7.270
v1.7.274
v1.7.276
v1.7.278
v1.7.280
v1.7.282
v1.7.284
v1.7.286
v1.7.288
v1.7.290
v1.7.292
v1.7.294
v1.7.295
v1.7.297
v1.7.300
v1.7.302
v1.7.308
v1.7.310
v1.7.312
v1.7.314
v1.7.316
v1.7.323
v1.7.325
v1.7.327
v1.7.329
v1.7.331
v1.7.337
v1.7.339
v1.7.341
v1.7.344
v1.7.346
v1.7.348
v1.7.351
v1.7.355
v1.7.357
v1.7.359
v1.7.361
v1.7.363
v1.7.365
v1.7.367
v1.7.368
v1.7.370
v1.7.372
v1.7.374
v1.7.376
v1.7.378
v1.7.381
v1.7.384
v1.7.387
v1.7.389
v1.7.391
v1.7.393
v1.7.395
v1.7.397
v1.7.399
v1.7.401
v1.7.403
v1.7.406
v1.7.410
v1.7.412
v1.7.414
v1.7.416
v1.7.418
v1.8.170
v1.8.172
v1.8.173
v1.8.175
v1.8.177
v1.8.179
v1.8.181
v1.8.183
v1.8.186
v1.8.188
v1.8.190
v1.8.192
v1.8.195
v1.8.199
v1.8.201
v1.8.203
v1.8.205
v1.8.207
v1.8.213
v1.8.233
v1.8.235
v1.8.237
v1.8.241
v1.8.252
v1.8.254
v1.8.271
v1.8.273
v1.8.275
v1.8.276
v1.8.278
v1.8.280
v1.8.282
v1.8.284
v1.8.286
v1.8.288
v1.8.290
v1.8.292
v1.8.306
v1.8.308
v1.8.310
v1.8.312
v1.8.314
v1.8.316
v1.8.318
v1.8.320
v1.8.323
v1.8.325
v1.8.327
v1.8.329
v1.8.331
v1.8.333
v1.8.337
v1.8.339
v1.8.342
v1.8.344
v1.8.346
v1.8.349
v1.8.351
v1.8.353
v1.8.355
v1.8.357
v1.8.359
v1.8.361
v1.8.363
v1.8.366
v1.8.369
v1.8.371
v1.8.374
v1.8.376
v1.8.378
v1.8.380
v1.8.382
v1.8.384
v1.8.386
v1.8.388
v1.8.390
v1.8.391
v1.8.394
v1.8.396
v1.8.398
v1.8.400
v1.8.402
v1.8.404
v1.8.406
v1.8.408
v1.8.410
v1.8.412
v1.8.414
v1.8.416
v1.8.418
v1.8.420
v1.8.423
v1.8.425
v1.8.426
v1.8.428
v1.8.430
v1.8.432
v1.8.434
v1.8.436
v1.8.439
v1.8.440
v1.8.442
v1.8.444
v1.8.446
v1.8.448
v1.8.450
v1.8.452
v1.8.454
v1.8.456
v1.8.458
v1.8.462
v1.8.463
v1.8.465
v1.8.467
v1.8.469
v1.8.472
v1.8.474
v1.8.476
v1.8.478
v1.8.480
v1.8.482
v1.8.484
v1.8.487
v1.8.489
v1.8.492
v1.8.493
v1.8.495
v1.8.497
v1.8.499
v1.8.501
v1.8.503
v1.8.505
v1.8.507
v1.8.508
v1.8.510
v1.8.512
v1.8.514
v1.8.516
v1.8.518
v1.8.520
v1.8.522
v1.8.524
v1.8.525
v1.8.527
v1.8.529
v1.8.531
v1.8.532
v1.8.535
v1.8.537
v1.8.540
v1.8.542
v1.8.548
v1.8.550
v1.8.552
v1.8.555
v1.8.557
v1.8.559
v1.8.562
v1.8.564
v1.8.568
v1.8.570
v1.8.571
v1.8.573
v1.8.575
v1.8.577
v1.8.579
v1.8.581
v1.8.583
v1.8.585
v1.8.587
v1.8.589
v1.8.591
v1.8.593
v1.8.595
v1.8.597
v1.8.599
v1.8.601
v1.8.603
v1.8.605
v1.8.607
v1.8.609
v1.8.610
v1.8.612
v1.8.614
v1.8.616
v1.8.618
v1.8.619
v1.9.426
v1.9.430
v1.9.432
v1.9.436
v1.9.438
v1.9.441
v1.9.444
v1.9.446
v1.9.448
v1.9.450
v1.9.452
v1.9.454
v1.9.456
v1.9.458
v1.9.460
v1.9.462
v1.9.466
v1.9.468
v1.9.470
v1.9.472
v1.9.474
v1.9.476
v1.9.478
v1.9.480
v1.9.482
v1.9.484
v1.9.486
v1.9.488
v1.9.489
v1.9.491
v1.9.493
v1.9.496
v1.9.502
v1.9.504
v1.9.506
v1.9.508
v1.9.510
v1.9.512
v1.9.514
v1.9.516
v1.9.523
v1.9.524
v1.9.526
v1.9.528
v1.9.530
v1.9.534
v1.9.537
v1.9.541
v1.9.544
v1.9.549
v1.9.551
v1.9.553
v1.9.554
v1.9.556
v1.9.558
v1.9.560
v1.9.562
v1.9.564
v1.9.566
v1.9.568
v1.9.570
v1.9.572
v1.9.573
v1.9.575
v1.9.577
v1.9.579
v1.9.583
v1.9.585
v1.9.587
v1.9.589
v1.9.593
v1.9.597
v1.9.598
v1.9.600
v1.9.602
v1.9.604
v1.9.607
v1.9.609
v1.9.611
v1.9.613
v1.9.615
v1.9.617
v1.9.620
v1.9.622
v1.9.623
v1.9.625
v1.9.628
v1.9.630
v1.9.632
v1.9.634
v1.9.636
v1.9.638
v1.9.640
v1.9.641
v1.9.643
v1.9.645
v1.9.646
v1.9.648
v1.9.650
v1.9.652
v1.9.654
v1.9.656
v1.9.658
v1.9.659
v1.9.661
v2.0.101
v2.0.104
v2.0.106
v2.0.108
v2.0.112
v2.0.114
v2.0.118
v2.0.120
v2.0.122
v2.0.124
v2.0.126
v2.0.129
v2.0.131
v2.0.133
v2.0.135
v2.0.137
v2.0.139
v2.0.140
v2.0.142
v2.0.144
v2.0.151
v2.0.153
v2.0.155
v2.0.157
v2.0.159
v2.0.161
v2.0.163
v2.0.165
v2.0.167
v2.0.169
v2.0.172
v2.0.173
v2.0.175
v2.0.177
v2.0.179
v2.0.181
v2.0.183
v2.0.185
v2.0.187
v2.0.191
v2.0.193
v2.0.195
v2.0.197
v2.0.199
v2.0.201
v2.0.203
v2.0.205
v2.0.207
v2.0.209
v2.0.211
v2.0.213
v2.0.220
v2.0.222
v2.0.224
v2.0.226
v2.0.228
v2.0.230
v2.0.232
v2.0.234
v2.0.236
v2.0.239
v2.0.241
v2.0.243
v2.0.244
v2.0.246
v2.0.248
v2.0.250
v2.0.252
v2.0.254
v2.0.256
v2.0.258
v2.0.260
v2.0.263
v2.0.265
v2.0.267
v2.0.269
v2.0.271
v2.0.272
v2.0.274
v2.0.276
v2.0.279
v2.0.281
v2.0.283
v2.0.285
v2.0.288
v2.0.290
v2.0.292
v2.0.295
v2.0.301
v2.0.303
v2.0.305
v2.0.310
v2.0.312
v2.0.315
v2.0.318
v2.0.323
v2.0.326
v2.0.328
v2.0.329
v2.0.330
v2.0.332
v2.0.334
v2.0.336
v2.0.338
v2.0.345
v2.0.347
v2.0.349
v2.0.352
v2.0.354
v2.0.357
v2.0.359
v2.0.361
v2.0.363
v2.0.374
v2.0.376
v2.0.378
v2.0.385
v2.0.389
v2.0.391
v2.0.395
v2.0.396
v2.0.398
v2.0.400
v2.0.402
v2.0.419
v2.0.421
v2.0.424
v2.0.426
v2.0.428
v2.0.430
v2.0.432
v2.0.437
v2.0.439
v2.0.442
v2.0.444
v2.0.447
v2.0.449
v2.0.451
v2.0.453
v2.0.455
v2.0.457
v2.0.466
v2.0.468
v2.0.470
v2.0.472
v2.0.474
v2.0.476
v2.0.478
v2.0.480
v2.0.485
v2.0.487
v2.0.489
v2.0.550
v2.0.87
v2.0.89
v2.0.91
v2.0.943
v2.0.95
v2.0.97
v2.0.99
v2.1.266
v2.2.228
vundefined
${ noResults }
1594 Commits (ef4a13534dde2b10d115c56b1add59ec636734d6)
Author | SHA1 | Message | Date |
---|---|---|---|
|
11e95712d4 |
Add support for the `nativeImageDecoderSupport` parameter, to force JPEG image decoding using `src/core/jpg.js`, when running the reference tests
|
8 years ago |
|
01f03fe393 |
Optimize PNG compression in SVG backend on Node.js
Use the environment's zlib implementation if available to get reasonably-sized SVG files when an XObject image is converted to PNG. The generated PNG is not optimal because we do not use a PNG predictor. Futher, when our SVG backend is run in a browser, the generated PNG images will still be unnecessarily large (though the use of blob:-URLs when available should reduce the impact on memory usage). If we want to optimize PNG images in browsers too, we can either try to use a DEFLATE library such as pako, or re-use our XObject image painting logic in src/display/canvas.js. This potential improvement is not implemented by this commit Tested with: - Node.js 8.1.3 (uses zlib) - Node.js 0.11.12 (uses zlib) - Node.js 0.10.48 (falls back to inferior existing implementation). - Chrome 59.0.3071.86 - Firefox 54.0 Tests: Unit test on Node.js: ``` $ gulp lib $ JASMINE_CONFIG_PATH=test/unit/clitests.json node ./node_modules/.bin/jasmine --filter=SVG ``` Unit test in browser: Run `gulp server` and open http://localhost:8888/test/unit/unit_test.html?spec=SVGGraphics To verify that the patch works as desired, ``` $ node examples/node/pdf2svg.js test/pdfs/xobject-image.pdf $ du -b svgdump/xobject-image-1.svg # ^ Calculates the file size. Confirm that the size is small # (784 instead of 80664 bytes). ``` |
8 years ago |
|
a488ff4f70 |
Put every test file on a separate lint in jasmine-boot.js
|
8 years ago |
|
ea71d23f74 |
Fix a stupid spelling error in the `ASCII85Decode` name in `Parser.makeInlineImage` (issue 8613)
This is a trivial follow-up to PR 5383, and it's a bit strange that this has been wrong since late 2014 without anyone noticing (maybe because inline images aren't too common). So, apparently code works better if you actually spell correctly, who knew ;-) Fixes 8613. |
8 years ago |
|
efbbd8533f |
Only mask char codes of (3, 0) cmap tables in the range of 0xF000 to 0xF0FF.
|
8 years ago |
|
6d4f748fb1 |
Fix how we detect and handle missing glyph data.
|
8 years ago |
|
a8a8909d2d |
Fix missing notdef in expert encoding.
|
8 years ago |
|
fc6448d18c |
Move svg:clipPath generation from clip to endPath
In the PDF from issue 8527, the clip operator (W) shows up before a path is defined. The current SVG backend however expects a path to exist before generating a `<svg:clipPath>` element. In the example, the path was defined after the clip, followed by a endPath operator (n). So this commit fixes the bug by moving the path generation logic from clip to endPath. Our canvas backend appears to use similar logic: `CanvasGraphics_endPath` calls `consumePath`, which in turn draws the clip and resets the `pendingClip` state. The canvas backend calls `consumePath` from multiple other places, so we probably need to check whether doing so is also necessary for the SVG backend. I scanned our corpus of PDF files in test/pdfs, and found that in every instance (except for one), the "W" PDF operator (clip) is immediately followed by "n" (endPath). The new test from this commit (clippath.pdf) starts with "W", followed by a path definition and then "n". # Commands used to find some of the clipping commands: grep -ra '^W$' -C7 | less -S grep -ra '^W ' -C7 | less -S grep -ra ' W$' -C7 | less -S test/pdfs/issue6413.pdf is the only file where "W" (a tline 55) is not followed by "n". In fact, the "W" is the last operation of a series of XObject painting operations, and removing it does not have any effect on the rendered PDF (confirmed by looking at the output of PDF.js's canvas backend, and ImageMagick's convert command). |
8 years ago |
|
24f14d44cb |
Preventing from using the same canvas for multiple render()
|
8 years ago |
|
e589834f13 |
Ensure that `TilingPattern`s have valid (non-zero) /BBox arrays (issue 8330)
Fixes 8330. |
8 years ago |
|
8b4a42e5b8 |
Only special-case OpenType fonts with `CFF` data if it's both a composite (i.e. Type0) font and also has a non-default CID to GID map (issue 8480)
*As mentioned the last time that I touched this particular part of the font code, I'm sincerely hope that this doesn't cause any regressions!* However, the patch passes all tests added in PRs 5770, 6270, and 7904 (and obviously all other tests as well). Furthermore, I've manually checked all the issues/bugs referenced in those PRs without finding any issues. Fixes 8480. |
8 years ago |
|
bbd9968f76 |
Added sendWithStream method in MessageHandler.
Adds functionality to accept Queueing Strategy in sendWithStream method. Using Queueing Strategy we can control the data that is enqueued into the sink, and hence regulated the flow of chunks from worker to main thread. Adds capability in pull and cancel methods. Adds ready and desiredSize property in streamSink. Adds unit test for ReadableStream and sendWithStream. |
8 years ago |
|
efbd68efef |
Fix inconsistent spacing and trailing commas in objects in `test/` files, so we can enable the `comma-dangle` and `object-curly-spacing` ESLint rules later on
http://eslint.org/docs/rules/comma-dangle http://eslint.org/docs/rules/object-curly-spacing Given that we currently have quite inconsistent object formatting, fixing this in *one* big patch probably wouldn't be feasible (since I cannot imagine anyone wanting to review that); hence I've opted to try and do this piecewise instead. Please note: This patch was created automatically, using the ESLint `--fix` command line option. In a couple of places this caused lines to become too long, and I've fixed those manually; please refer to the interdiff below for the only hand-edits in this patch. ```diff diff --git a/test/chromium/test-telemetry.js b/test/chromium/test-telemetry.js index cc412a31..2e5bdfa1 100755 --- a/test/chromium/test-telemetry.js +++ b/test/chromium/test-telemetry.js @@ -324,7 +324,7 @@ var tests = [ var window = createExtensionGlobal(); telemetryScript.runInNewContext(window); window.chrome.runtime.getManifest = function() { - return { version: '1.0.1', }; + return { version: '1.0.1', }; }; window.Date.test_now_value += 12 * 36E5; telemetryScript.runInNewContext(window); diff --git a/test/unit/api_spec.js b/test/unit/api_spec.js index 1f00747a..f22988e7 100644 --- a/test/unit/api_spec.js +++ b/test/unit/api_spec.js @@ -503,8 +503,9 @@ describe('api', function() { it('gets destinations, from /Dests dictionary', function(done) { var promise = doc.getDestinations(); promise.then(function(data) { - expect(data).toEqual({ chapter1: [{ gen: 0, num: 17, }, { name: 'XYZ', }, - 0, 841.89, null], }); + expect(data).toEqual({ + chapter1: [{ gen: 0, num: 17, }, { name: 'XYZ', }, 0, 841.89, null], + }); done(); }).catch(function (reason) { done.fail(reason); diff --git a/test/unit/function_spec.js b/test/unit/function_spec.js index 66441212..62127eb9 100644 --- a/test/unit/function_spec.js +++ b/test/unit/function_spec.js @@ -492,9 +492,11 @@ describe('function', function() { it('check compiled mul', function() { check([0.25, 0.5, 'mul'], [], [0, 1], [{ input: [], output: [0.125], }]); check([0, 'mul'], [0, 1], [0, 1], [{ input: [0.25], output: [0], }]); - check([0.5, 'mul'], [0, 1], [0, 1], [{ input: [0.25], output: [0.125], }]); + check([0.5, 'mul'], [0, 1], [0, 1], + [{ input: [0.25], output: [0.125], }]); check([1, 'mul'], [0, 1], [0, 1], [{ input: [0.25], output: [0.25], }]); - check([0, 'exch', 'mul'], [0, 1], [0, 1], [{ input: [0.25], output: [0], }]); + check([0, 'exch', 'mul'], [0, 1], [0, 1], + [{ input: [0.25], output: [0], }]); check([0.5, 'exch', 'mul'], [0, 1], [0, 1], [{ input: [0.25], output: [0.125], }]); check([1, 'exch', 'mul'], [0, 1], [0, 1], ``` |
8 years ago |
|
b66b705ed7 |
Using pre-built code for testing.
|
8 years ago |
|
4ce5e520fb |
Add different code-paths to `{CMap, ToUnicodeMap}.charCodeOf` depending on length, since `Array.prototype.indexOf` can be extremely inefficient for very large arrays (issue 8372)
Fixes 8372. |
8 years ago |
|
a67198895f |
Resets canvas 2d context to the default state.
|
8 years ago |
|
31c24ed631 |
Don't map glyphs to the HANGUL FILLER (0x3164) Unicode location (issue 8424)
*This patch follows a similar pattern as previous ones, by skipping certain problematic Unicode locations.* According to http://searchfox.org/mozilla-central/rev/6c2dbacbba1d58b8679cee700fd0a54189e0cf1b/gfx/harfbuzz/src/hb-unicode-private.hh#136, it seems that the HANGUL FILLER (0x3164) location is "special". Fixes 8424. |
8 years ago |
|
0ddf52aca5 |
Remove the special handling for `nameddest`s that look like standard pageNumbers
PR 7341 added special handling for `nameddest`s that look like pageNumbers, to prevent issues since we previously *incorrectly* supported specifying a pageNumber directly in the hash; i.e. `#10` versus the correct `#page=10` format. Since this behaviour wasn't correct, PR 7757 fixed and deprecated the old format, which means that we no longer need to maintain the `nameddest` hack in multiple files. |
8 years ago |
|
c9f44f30e5 |
Adds streams-lib polyfill and exports ReadableStream from shared/util.
Added test for ReadableStream. Adds ref-implementation license-header in streams-lib and change gulp task to copy external/streams/ in build/ external/streams/ and build/dist/external/streams folder. Adds README.md and LICENSE.md |
8 years ago |
|
65a1e836cf |
Removes shelljs
|
8 years ago |
|
cfc2f36f5c |
Adds additional parameter so background color of canvas can be set
|
8 years ago |
|
bbe8c3d8ed |
Enable running a subset of the API unit-tests on Travis
Notably, this patch skips all canvas rendering tests in Node.js. |
8 years ago |
|
32baa6af7a |
Convert the `DOMCMapReaderFactory` to an ES6 class
Given that we only create *one* instance of this class per `getDocument` call, this shouldn't matter performance wise. |
8 years ago |
|
b5775af716 |
Wait for previous pdfDocument(s) to be destroyed before running the next reference test
Refactors `Driver._cleanup` to return a `Promise` which is resolved once all opened documents have been destroyed. This is then used in `Driver._nextTask` to ensure that we wait for everything to be cleaned up, such that the tests run sequentially. |
8 years ago |
|
7a040c05d7 |
Wait until `PDFDocumentLoadingTask.destroy` is resolved before calling `done` in the API unit-tests
Try to ensure that everything, including workers, are properly destroyed before running the next test-case. |
8 years ago |
|
0c2ebda31c |
Cache JPEG images, just as we do for other image formats, in `evaluator.js` (issue 8380)
For some reason, we're putting all kind of images *except* JPEG into the `imageCache` in `evaluator.js`.[1] This means that in the PDF file in issue 8380, we'll keep sending the *same* two small images[2] to the main-thread and decoding them over and over. This is obviously hugely inefficient! As can be seen from the discussion in the issue, the performance becomes *extremely* bad if the user has the addon "Adblock Plus" installed. However, even in a clean Firefox profile, the performance isn't that great. This patch not only addresses the performance implications of the "Adblock Plus" addon together with that particular PDF file, but it *also* improves the rendering times considerably for *all* users. Locally, with a clean profile, the rendering times are reduced from `~2000 ms` to `~500 ms` for my setup! Obviously, the general structure of the PDF file and its operator sequence is still hugely inefficient, however I'd say that the performance with this patch is good enough to consider the issue (as it stands) resolved.[3] Fixes 8380. --- [1] Not technically true, since inline images are cached from `parser.js`, but whatever :-) [2] The two JPEG images have dimensions 1x2, respectively 4x2. [3] To make this even more efficient, a new state would have to be added to the `QueueOptimizer`. Given that PDF files this stupid fortunately aren't too common, I'm not convinced that it's worth doing. |
8 years ago |
|
b06022895e |
Add no-default-browser-check to chrome runner.
|
8 years ago |
|
3e20d30afc |
Change the signatures of the `PartialEvaluator` "constructor" and its `getOperatorList`/`getTextContent` methods to take parameter objects
Currently these methods accept a large number of parameters, which creates quite unwieldy call-sites. When invoking them, you have to remember not only what arguments to supply, but also the correct order, to avoid runtime errors. Furthermore, since some of the parameters are optional, you also have to remember to pass e.g. `null` or `undefined` for those ones. Also, adding new parameters to these methods (which happens occasionally), often becomes unnecessarily tedious (based on personal experience). Please note that I do *not* think that we need/should convert *every* single method in `evaluator.js` (or elsewhere in `/core` files) to take parameter objects. However, in my opinion, once a method starts relying on approximately five parameter (or even more), passing them in individually becomes quite cumbersome. With these changes, I obviously needed to update the `evaluator_spec.js` unit-tests. The main change there, except the new method signatures[1], is that it's now re-using *one* `PartialEvalutor` instance, since I couldn't see any compelling reason for creating a new one in every single test. *Note:* If this patch is accepted, my intention is to (time permitting) see if it makes sense to convert additional methods in `evaluator.js` (and other `/core` files) in a similar fashion, but I figured that it'd be a good idea to limit the initial scope somewhat. --- [1] A fun fact here, note how the `PartialEvaluator` signature used in `evaluator_spec.js` wasn't even correct in the current `master`. |
8 years ago |
|
40feca12c1 |
Ignore line-breaks between operator and digit in `Lexer.getNumber`
This is consistent with the behaviour in Adobe Reader (and PDFium), and it fixes the display of page 30 in https://bug1354114.bmoattachments.org/attachment.cgi?id=8855457 (taken from https://bugzilla.mozilla.org/show_bug.cgi?id=1354114). The patch also makes the `error` message for invalid numbers slightly more useful, by including the charCode as well. (Having that information available would have reduced the time spent on debugging the PDF file above.) |
8 years ago |
|
7560f12a17 |
Enable the `object-shorthand` ESLint rule
Please see http://eslint.org/docs/rules/object-shorthand.
Unfortunately, based on commit
|
8 years ago |
|
35730148a7
|
Convert the files in the `/test/unit` folder to ES6 modules
|
8 years ago |
|
ee86a81a50
|
Bots: disable the default browser test and enable E10s
The test runner is automated, so if the default browser test is performed, the browser hangs waiting for user input it never gets. Disable the test to fix that. Moreover, enable E10s now that it is mature. This may help with the performance of the test runner as well. |
8 years ago |
![]() |
64deb6c700 |
Subtract the X/Y offsets when decoding refinement regions of JBIG2 images (issue 7145, 7308, 7401, 7850, 8270)
Please refer to the JBIG2 standard, see https://www.itu.int/rec/dologin_pub.asp?lang=e&id=T-REC-T.88-200002-I!!PDF-E&type=items. In particular, section "6.3.5.3 Fixed templates and adaptive templates" mentions that the offsets should be *subtracted*; where the offsets are defined according to "Table 6" under section "6.3.2 Input parameters". Fixes 7145. Fixes 7308. Fixes 7401. Fixes 7850. Fixes 8270. |
8 years ago |
|
ae04cf1c37 |
Enable running the `ui_utils` unit-tests on Travis
With the exception of just one test-case, all the current `ui_utils` unit-tests can run successfully on Node.js (since most of them doesn't rely on the DOM). To get this working, I had to first of all add a new `LIB` build flag such that `gulp lib` produces a `web/pdfjs.js` file that is able to load `pdf.js` successfully. Second of all, since neither `document` nor `navigator` is available in Node.js, `web/ui_utils.js` was adjusted slightly to avoid errors. |
8 years ago |
|
84472b30ee |
Change `getPDFFileNameFromURL` to ignore `data:` URLs for performance reasons (issue 8263)
The patch also changes the `defaultFilename` to use the ES6 default parameter notation, and fixes the formatting of the JSDoc comment. Finally, since `getPDFFileNameFromURL` currently has no unit-tests, a few basic ones are added to avoid regressions. |
8 years ago |
|
30bee9fe0c |
Moves Uint32ArrayView and hasCanvasTypedArrays into compatibility.js.
|
8 years ago |
|
e15a2ec523
|
Annotations: implement support for line annotations
This patch implements support for line annotations. Other viewers only show the popup annotation when hovering over the line, which may have any orientation. To make this possible, we render an invisible line (SVG element) over the line on the canvas that acts as the trigger for the popup annotation. This invisible line has the same starting coordinates, ending coordinates and width of the line on the canvas. |
8 years ago |
|
a39d636eb8 |
[api-minor] Always allow e.g. rendering to continue even if there are errors, and add a `stopAtErrors` parameter to `getDocument` to opt-out of this behaviour (issue 6342, issue 3795, bug 1130815)
Other PDF readers, e.g. Adobe Reader and PDFium (in Chrome), will attempt to render as much of a page as possible even if there are errors present. Currently we just bail as soon the first error is hit, which means that we'll usually not render anything in these cases and just display a blank page instead. NOTE: This patch changes the default behaviour of the PDF.js API to always attempt to recover as much data as possible, even when encountering errors during e.g. `getOperatorList`/`getTextContent`, which thus improve our handling of corrupt PDF files and allow the default viewer to handle errors slightly more gracefully. In the event that an API consumer wishes to use the old behaviour, where we stop parsing as soon as an error is encountered, the `stopAtErrors` parameter can be set at `getDocument`. Fixes, inasmuch it's possible since the PDF files are corrupt, e.g. issue 6342, issue 3795, and [bug 1130815](https://bugzilla.mozilla.org/show_bug.cgi?id=1130815) (and probably others too). |
8 years ago |
|
4969b2ad97 |
Normalize blend mode names.
|
8 years ago |
|
9d62ff80ca |
Actually skip pages included in the `skipPages` array when running tests, rather than creating empty 1x1 canvases (issue 8241)
Considering how extremely simple this patch turned out to be, I'm almost worried that I completely misunderstood why the current code looks like it does... |
8 years ago |
|
cdc79a4721 |
Don’t skip glyph 0 in cmap.
|
8 years ago |
|
437104969d |
Improve the error handling when loading of built-in CMap files fail (PR 8064 follow-up)
I happened to notice that the error handling wasn't that great, which I missed previously since there were no unit-tests for failure to load built-in CMap files. Hence this patch, which improves the error handling *and* adds tests. |
8 years ago |
|
62eee8c782 |
Try harder to find the next valid JPEG marker when decoding Scan data (issue 8182, issue 8189)
Tentatively fixes 8182 and fixes 8189. |
8 years ago |
|
5c0c122a7d |
Ensure that the `XMLHttpRequest` is `open`ed before attempting to set the `responseType` in the `DOMCMapReaderFactory`, since IE fails otherwise (issue 8193)
I really cannot understand why this change is necessary, since modern browsers such as Firefox and Chrome work just fine with the old code. Hence this is patch is yet another "hack" that's needed just because IE apparently cannot just work like you'd expect. For consistency, the Node factory used in the CMap unit-tests is changed as well. Fixes 8193. |
8 years ago |
|
3705e5e459 |
Use a proper `MessageHandler` for `PartialEvaluator.getTextContent` to avoid errors for fonts relying on built-in CMap files (PR 8064 follow-up)
*My apologies for inadvertently breaking this in PR 8064; apparently we don't have any tests that cover this use-case :(* Without this patch `getTextContent` will fail if called before `getOperatorList`, since loading of fonts during text-extraction may require fetching of built-in CMap files. *Please note:* The `text` test added here, which uses an already existing PDF file, fails without this patch. |
8 years ago |
|
d6d0f778aa |
Don't read past the EOI marker for JPEG images with non-default restart interval (issue 7828)
*After browsing through (a version of) the JPEG specification, see https://www.w3.org/Graphics/JPEG/itu-t81.pdf, I hope that this patch makes sense.* Note that while issue 7828 became a problem after PR 7661, it isn't really a regression from than PR. The explanation is rather that we're now relying on `core/jpg.js` instead of the Native Image decoder in more situations than before, which thus exposed an *existing* issue in our JPEG decoder. Another factor also seems to be that in many JPEG images, the DRI (Define Restart Interval) marker isn't present, in which case this bug won't manifest either. According to https://www.w3.org/Graphics/JPEG/itu-t81.pdf#page=89 (at the bottom of the page): "NOTE – The final restart interval may be smaller than the size specified by the DRI marker segment, as it includes only the number of MCUs remaining in the scan." Furthermore, according to https://www.w3.org/Graphics/JPEG/itu-t81.pdf#page=39 (in the middle of the page): "[...] If restart is enabled and the restart interval is defined to be Ri, each entropy-coded segment except the last one shall contain Ri MCUs. The last one shall contain whatever number of MCUs completes the scan." Based on the above, it thus seem to me that we should simply ensure that we're not attempting to continue to parse Scan data once we've found all MCUs (Minimum Coded Unit) of the image. Fixes 7828. |
8 years ago |
|
be1a6f294f |
Try to recover when encountering JPEG markers with too short marker lengths (issue 8169)
The issue with the JPEG image in question, is that the COM (Comment) marker has an incorrect length entry. Fixes 8169. |
8 years ago |
|
098a56270d |
Normalize the `BBox` entry in Tiling Pattern dictionaries (issue 8117)
According to the PDF specification, see http://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/PDF32000_2008.pdf#G7.3982967, the `BBox` entry should have the form `[left, bottom, right, top]`. Since some PDF generators apparently violates the specification, we normalize the `BBox` to ensure that the pattern is (correctly) rendered. Fixes 8117. |
8 years ago |
|
e6db75b2ef |
Use the `DOMCanvasFactory` in the API unit-tests
There's still some work necessary if we want to be able to run (even a subset of) the API unit-tests on Travis. However, this patch could be considered a small first step, since the relevant unit-tests will now rely on a `CanvasFactory` rather than using `document.createElement('canvas')` directly. |
8 years ago |
|
d37d271afa |
[api-minor] Reject the `RenderTask` with an actual `Error`, instead of just a `string`, when rendering is cancelled
This patch gets rid of the only case in the code-base where we're throwing a plain `string`, rather than an `Error`, which besides better/more consistent error handling also allows us to enable the [`no-throw-literal`](http://eslint.org/docs/rules/no-throw-literal) ESLint rule. |
8 years ago |