summaryrefslogtreecommitdiff
path: root/log.txt
blob: b203f574778509d4460fbb04dea94493baf9dfac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379

Argyll CMS change log
=====================

Version 1.9.1 28th September 2016
-------------

* Added some diagnostics to ChromeCast discovery, and increased mDNS
  TTL count and wait time. 

* Fixed regression on MSWindows systems with no serial ports.

Version 1.9.0 26th September 2016
-------------

* Added smoothing filter to pre-conditioning profile lookup in
  target/targen/ofps.c, to improve its robustness when faced with
  more poorly behaved profiles.

* Fixed oeminst so that it locates cdrom's in Linuxes latest
  mount point of /run/media/$USER/.
  (Who can guess where it will move to next ? What's a stable API again ??)

* Fixed bug in i1pro2 driver, in which strip calibration would
  fail if instrument had been first calibrated with ARGYLL_DISABLE_I1PRO2_DRIVER
  set, and then calibrated with ARGYLL_DISABLE_I1PRO2_DRIVER unset.
  This was due to an incompatible minimum integration time being saved and
  then restored in the .cal file.

* Fixed bug with i1pro2 (Rev E), where on OS X it would always operate
  in Rev A-D (i1pro 1) mode.

* Fixed problems with serial connected & USB serial
  instrument discovery, particularly with the Spectroscan.

* Enhanced spec2cie to process .sp files as well as .ti3.

* Added measurement type to .sp file format, to more inteligently
  interpret such files in specplot.

* Added option to icclib to write Output profiles using
  'chad' tag if the ARGYLL_CREATE_DISPLAY_PROFILE_WITH_CHAD
  environment variable is set. This is not recommended
  for normal use, but may assist compatibility with other
  systems.

* Added JETI spectraval (1511, 1501) support, including Bluetooth access.

* Added support for the Klein K10 connecting via a serial port.

* Fixed bug in Colormunki Smile driver that causes crash
  on Ubuntu 16.04.1 LTS.

* Fixed problem with targen -g, in that the corresponding XYZ
  values had double the power applied, rather than none. This
  was causing problems with printtarg spacer colors.

* Modified instlib API slightly, to improve ease of internationalization.

* Modified "lp" intent to greatly reduce Helmholtz-Kohlrausch appearance
  modelling.

* Added -V option to xicclu to allow looking up or plotting 'vcgt'
  tag calibration curves.

* Fixed webwin and oeminst web interface headers (Thanks to Florian Hoech).

* Extensive re-write of colorimetric nearest clipping code in rspl/rev.c
  to restore precision that was lost in the speedups made
  in V1.0.0. The nnrev setup now takes a lot longer with
  high resolution CMYK profiles though. This corrects a
  "green becomming too yellow" problem for mapping from
  ProPhoto space with some RGB devices. Added LCh nearest
  clip mapping weighting values to allow fine tuning of
  clipping behaviour to better match peoples expectations.

* Change dispwin to properly set DirectColor and take account
  of TrueColor Colormap.  This fixes problem with NVidia linux driver 364.12
  exposing a VideoLUT depth that is different from the frame buffer depth.
  Also changed the VideoLut test patch set code to load the same input
  value either side of the expected one, to allow a margin for any imprecision
  or difference in how the hardware actually processes frame buffer output.

* Change icclib to automatically repair icmTextDescription strings that
  have an allocation that is longer than their size.

* Added -e option to average, to use per-component
  Median rather than average.

* Fixed chartread so that it doesn't fail if no
  instruments are found when -x option is used.

* Added i1Pro Lamp Drift test and fix functions to
  spotread (-Y l|L options).
 
* Fixed bug in gammap.c that sometimes causes crash when
  using colprof -s -S general compression ratio. 

* Add -x parameter to iccgamut and tiffgamut, to create a cylindrically
  expanded gamut. This can be used to emulate the colprof -s/-S compression
  percentage when using collink.

* Change colprof so that -s -S will accept general compression percentage
  as an alternative to a source colorspace/image gamut.

* Added optional conversion from native Gretag-MacBeth & X-Rite
  reflective calibration standards to/from XRGA.

* Changed OS X GUI support code so as not to switch to
  "interact with the Dock" mode until actual GUI element
  is to be displayed. This prevents batch commands with optional
  GUI elements from blocking normal GUI interactions.

* Re-jigged OS X UI code to use the main thread to avoid
  window creation timing issues and a warning backtrace on OS X 10.11.

* Add UI synchronization code into OS X test patch display,
  to ensure test window is displayed before measurements start.

* Added CMP_Digital_Target-7.cht

* Fix spec2cie to cope with .ti3 files that are missing
  device values, so that it can process a wider range of
  input CIE reference files.

* Make ColorMunki spectro do "reset on close" on Linux
  to avoid USB problem every second time it is opened.

* Remove oeminst diagnostic code that writes "temp.cab" file.

* Fix crash in ccxxmake.

* Changed implementation of ARGYLL_NOT_INTERACTIVE on MSWin
  to make it more reliable when operated progromatically.

* Fix bug in how colverify was computing worst 10% average.

* Fixed chartread so that if you are reading patch by patch,
  the location strings can be arbitrary (i.e. they don't
  have to conform to an alpha/num strip/patch pattern.)

* Added Current Aprox. Gamma to displcal Display adjustment menu Check All
  output.

* Fix dispcal "icc_chromAdaptMatrix called with no deviceClass" warning
  when creating a matrix display profile.

* Fix colprof eronious "FWA compensation ignored for emissive" warning.

* Fix debug system info being printed, even with no debug option.

* Made DTP92/94 driver ignore Offset drift calibration checksum failed
  error for Set to factory calibration command as well as reset.  

* Added support for Sencore ColorPro V, IV & III colorimeters
  (based on Sequel Chroma colorimeter.)

Version 1.8.3 (26 October 2015)
-------------

* Added SpyderCheckr24 scaning .cht and .cie files.

* Fixed USB problem with i1pro (Rev B & D ?), where
  communications would occasionally break down on
  fast systems.

* Added another fixed display intergration time to i1pro
  non-adaptive emission mode to cope with higher brightness displays.

* Added workaround for i1d3 Rev. B status code 0x83 on very low light measurement.

* Fixed minor bug in i1d3.c that truncated serial number string.
  (Thanks to Mikael Sterner).

* Fixed bug in Klein K10 driver - adaptive measurement
  wasn't properly using all the extra measurements.

* Improved Klein K10 driver to be more robust when lights off
  command returns bogus error codes, or causes a cascade of
  bogus measurement errors.

* Added workaround for OS X 10.9+ "App Nap" problem.

* Added maximum sensor frequency check for Spyder & i1d3 drivers, so that
  erronious readings due to excessive brightness can't be missed.

* Changed chartread so that it doesn't warn of a possible wrong
  strip being read, nor allows bi-directional strip reading,
  if "printtarg -r" was used. A warning will be issued if
  "printtarg -r" was used, and "chartread -B" wasn't used.

* Fixed collink for eeColor Full range RGB to use
  output curve ("second" 1D curves) to compensate for
  cLUT being wired for 1.0 output from 1.0 input.

* Added "lp" gamut mapping intent :- Luminance Preserving Perceptual,
  for Photographers concerned with maintaining tonal variations.

* Fixed bugs in image specific gamut mapping that were degrading
  the accuracy of the result.

* Re-wrote gamut smoothing code, and re-tuned it to behave similarly
  to the V1.8.2 release.

* Changed default viewing condition glare to 5%, to smooth out
  shadow tone curve.

* Reduced the level of Helmholtz-Kohlrausch effect in CIECAM02
  implementation in the light of visual experiments.

Version 1.8.2 (7th September 2015)
-------------

* Fixed endless loop bug in alternate calibration selectors code.

Version 1.8.1 (4th September 2015)
-------------

* Fixed bug in "spec2cie -n" wrong field indexes were being used.

* Fixed colorimeter calibration selectors to add in alternate
  selectors if the letters are free.

Version 1.8.0 (20th August 2015)
-------------

* Added support for "EMISINPUT" type .ti3 file.

* Build using OpenSSL rather than axTLS if it is built on Linux.

* Added Added Television Lighting Consistency Index (EBU TLCI-2012 Qa)
  to spotread and specplot output.

* Added R9 value to CRI value in spotread and specplot output.

* Added support for the Image Engineering EX1 spectroradiometer.

* Added support for the SwatchMate Cube reflective colorimeter with
  improved accuracy.

* Added workaround for JETI specbos having been calibrated by a 3rd party,
  and its calibrated range being out of sync with its claimed range. 

* Fixed stack space problem in OS X UI programs by expanding
  main thread proxy to have 8MB instead of the default 512K.

* Updated built in libtiff to V4.0.4beta

* Changed CGATS format to not emit unknown keyword declaration ("KEYWORD")
  by default.

* Added inst_calc_cond_mask to inst.h to allow for flags in
  calibration conditions. A consequence of this is that
  calc needs to be masked with this when comparing against
  a specific condition, and the inst_calc_optional_flag should
  be cleared if it is set, before callint inst->calibrate() if
  the user wants to proceed with a particular calibration.

* Fixed bug with dispcal -e N

* Fixed bug in xicclu -fg and -kp

* Added dispcal -x x option to allow reading a chart and manually
  entering the XYZ values.

* Fix spyder4 & 5 bug where some display types were set as refresh
  when they shouldn't be.

* Fix collink "Warning :- RGB black hack trigger more than once!"
  when -b is used with input video encoding (-e).

* Changed colprof so that the default ICC description is the base
  filename rather than the whole file path.

* Fix technology type and display type selector "uniqueification" bug
  that shows up in "ccxxmake -??".

* Add OEM field to ccmx and ccss files to mark files that have
  been installed from OEM disk, so that custom ccmx & ccss files
  can be given suggested selector letter priority (+ ref/CRT.ccss).

* Tweak CGATS write format to avoid scientific notation until the
  numbers are bigger and smaller (i.e until e6 and e-6 are needed).


Version 1.7.0  (1st May 2015)
-------------

*	Improved gamut mapping to reduce unnecessary changes to less saturated colors
	such as skin tones.
	
*	Add support for DataColor Spyder 5.

*	Ignore any patches that have zero values for creating Display profiles,
	unless they are for device zero. This is to avoid measurements below
	and instruments measurement capability causing shadow response to be raised.

*	Add better cross compatibility with non-Argyll ICC profiles:
	+ Use "wrong Von Kries" media white point adapation for non-Argyll non-display profiles
	+ Optionally create "wrong Von Kries" media white point adapation profiles
	  using the "ARGYLL_CREATE_WRONG_VON_KRIES_OUTPUT_CLASS_REL_WP" env. variable,
	  while maintaining ArgyllCMS compatibility using the 'arts' tag.
	+ Implement proper absolute colorimetric intent for ICCV2 Display profiles
	  that use the ICCV4 style of have a media white of D50 and storing the
	  media chromatic trasnform in the 'chad' tag.
	+ Optionally create such ICCV4 style V2 Display profiles by using the
	  "ARGYLL_CREATE_DISPLAY_PROFILE_WITH_CHAD" env. variable.

*	Reverted to handling collink Video encoding overrage input (WTW) with
	extrapolation that preserves hues, and added an input encoding option
	"Video with clipping" to cope with TV's that don't preserver hue
	for WTW..
 
*	Add X3D and X3DOM support as an alternative to VRML, and make X3DOM the default.

*	Update to use latest MadVR background setting code (v0.87.11)

*   Fix problem with JETI communication overrun and 1201 timeout.

*	Improve JETI specbos 1201 and 1211 compatibility with older firmware.

*   Improve KLEIN robustness by automatically retrying range errors.

*	Fix bug in recognizing Klein K-10 (non A) instrument.

*	Fixed bug in working with newer firmware Klein K10A.

*	Fix gestaltSystemVersion warning on OS X 10.10.

*	Fix crash in targen with -l 100.

*	Fix crash in colprof when -s/S and -p are used together.

*	Fix very major bug in illumread. It wasn't actually working
	at all since V1.4.0.

*	Fix poor handling of corrupted .ccmx and .ccss files.

*	Fix endless loop bug in dispcal verify.

*	Fix bug in collink -iaw when the destination profile
	is a matrix + gamma type.

*	Add -z option to ccxxmake to allow setting separate display type
	for reference instrument.

*	Fix XDG_CONFIG_HOME and XDG_CONFIG_DIRS environment variable names.

*	Fix occasional timout in specbos on reading spectral.

*	Added preliminary support for ColorHug2

*	Fixed bug in colverify -L if one of the Normalise options isn't used.

*	Added capability of using the Google ChromeCast as a test
	patch generator for Video displays. If you are running on
	Linux, you might have to check that your firewall is configured
	to allow TCP ports 8081 for this to work, if it
	falls back to the Default receiver.	 Accuracy is OK, but
	not as good as main display or MadTPG, due to ChromeCast
	using YCbCr video encoding and upsizing of rasters sent to it.

*	Fixed problem with certain .ccmx files note
	being recognisd for -y option.

*	Added profcheck -s flag to output delta E orderd patch
	list with -v2.

*	Fix bug in chartread for DTP20 - it was timing out when
	a off-line chart was being loaded, or an on-line chart was being read.

*	Fix bug in xicc/xicc.c & xicc/xlut.c that sometimes causes bad B2A
	tables due to the black point being a NaN.
	(This was noticed on code compiled on Ubuntu 14.)

*	Changed Linux udev/hotplug files to be more compatible
	with colord, so that colord 69-cd-sensors.rules file
	can be upgraded by replacing with 55-Argyll.rules.

*	Fixed bug in tiffgamut when handling .jpg files. Some
	pixels were being computed with the wrong values.

*	Added collink -I[gG][:p.p]:x.x options that allows an output offset
	gamma curve be targetted instead of BT1886. Like dispcal, this
	also allows a hybrid between input black offset (BT.1886-like) and
	pure output black offset curves. The -I[bB] option also accepts
	an option output proportion value (:p.p), and that
	-I[bB]:p.p:x.x has exactly the same effect as -I[gG]:p.p:x.x.
	Note using output black offset tends to loose shadow
	detail compared to input black offset (BT.1886-like).

	The -I[bBgG] flags now substitute a BT.1886-like EOTF
	for the native EOTF of the matrix input profile, rather than
	applying an Rec709 to BT.1886 transform. This change has no
	impact on source colorspaces that use the Rec709 encoding curve.

*	Added dispcal -b black point hack. This forces the
	input zero to map to the output zero, which can be useful
	with displays that are well behaved and have a very dark
	black point, which an instrument is unable to measure precisely.

*	Added collink -b black point hack. This forces the
	input zero to map to the output zero for RGB->RGB links,
	which can be useful with displays that are well behaved
	and have a very dark black point, which an instrument is
	unable to measure precisely.

*	Added nonadaptive mode to i1d3. This allows fast measurement
	with much lower accuracy for dark colors.

*	Changes to inst API to accomodate display technology
	setting and retrival from instrument.
	Also fixed setting custom matrix or ccss so that
	other required details (display type & cbid) can
	be provided. This now means that the instrument will
	automatically configured when a ccmx is loaded.

*	Changed dispwin/dispsup patch delay calculations
	(including matching code in targen) to adopt a more
	sophisticated display settling model using the display
	techology type.

*	Changed dispwin/dispsup patch delay calculations to allow
	for a separate instrument reaction time parameter.

*	Added preset list of display techologies to select from
	in ccxxmake. The -T option is deprecated, and the required
	-t option replaces it. Used "ccxxmake -?? or -t?" to list
	display technology types to choose from.

*	Added Klein K10-A instrument support.

*	Fixed bug in hcfr driver which prevented operation.

*	Fixed bug in chartread which caused high res mode to
	be used when the -T flag is used.

*	Switched dispcal -R Video LUT entry bit depth algorithm.

*	Added IRIDAS .cube 3DLut format support to collink.

*	Added -O option to spotread that makes it do calibration
	or one measurement and then exit.

*	Added better support for installing the Spyder1 firmware.
	Simplified the Spyder PLD loading for applications
	by modifying setup_spyd2();

*	Added a -P prune option to profcheck, that creates a
	.ti3 file pruned of any patches that have a delta E fit error
	greater than a threshold. This may be of use in eliminating
	bad reading values from a measurement set.

*	Added histogram plot option -h to both profcheck and verify.

*	Added ls2ti3 tool to convert LightSpace .bcs files to .ti3.

*	Fixed some time measurement bugs in OS X and Linux
	USB drivers that mainly affect the DTP92 & DTP94.

*	Simplified the OS X USB drivers.

*	Fixed bug in DTP20 driver where it fails to wait for
	a calibration to complete.

*	Fixed collink to more accuratly encode values
	for the eeColor 3DLut, as well as change the
	BT1886 black point mapping to be more accurate.

*	Added a dispread & fakeread -Z option to set the number of bits
	to quantize the test values to. This defaults
	to 8 for TV encoded ouput, and using the -Z option may improve
	profiling accuracy on systems with limited bit depth
	control over their displays.

*	Add support for other OEM versions of the i1d2 and i1d3 colorimeter.

*	Fixed bug in targen - the -V dark emphasis wasn't being
	applied to OFPS generated points.

*	Added ColorCheckerSG.ti2 file to ref/, so that a reference file
	can be created using chartread.

*	Make sure that if an instrument display reading is interrupted by a
	forced calibration, that the user is asked to place it back on the
	display before resuming the measurements.

*	Make sure that checking whether an instrument wants calibration
	(ie. needs_calibration() or get_n_a_cals()) does not change its
	state, requiring calibration due to calibrations being
	too old.

Version 1.6.3 (26 January 2014)
-------------

*   Added icc/mkDispProf.c sample code

*	Added ProPhoto.icm and ProPhotoLin.icm to ref profiles.

*	Fix bug in xicclu -py conversion.

*	Added code to minimize ICC rounding error on matrix profile white point
	accuracy. Re-generated all reference profiles with this change.

*	Changed i1d3 driver to completely ignore any EEPROM checksum
	errors for non "A-01" rev. instruments.

*	Made transplot handle RGB->RGB device link.

*	Removed colprof -y option. Use "profcheck -v2" instead, as it is
	more developed.

*	Fixed bug in dispcal - it was not using the final measurement
	pass to update the calibration curves.

*	Fixed bug in spotread, dispcal & dispread for CCSS capable instruments
	where refresh display types was being ignored if a custom observer
	was used, and/or the custom observer as being ignored, and/or
	a CCMX was being ignored.
	Changed instlib semantics for inst_opt_set_ccss_obs :-
	this is now set immediately, and applied also to any subsequent
	set_disptype() or col_cal_spec_set().

*	Renamed verify to colverify to avoid clash with MSWin program
	of the same name. Made it print the patch location for -v2
	if it is present in the file.

*	Changed targen to ensure that -V and -p options effects are reflected
	in the resulting expected CIE values of the .ti1 file.

*	Changed targen so that -V parameter also affects single channel,
	grey wedge, grid & body centered grid point distribution.

*	Changed colprof to deal with variable grid distribution
	in a more neuanced way, to reduce overshoot artifacts
	when the -V parameter is used.

*	Changed colprof to used a power_like function for the
	grid distribution shape from the -V parameter, so as
	to avoid issues with a power curve infinte slope near zero.

*	Changed colprof to used a scaled down value of the targen -V
	parameter as the default for its -V parameter. Documentation
	now recommends more moderate values for -V.

*	Added a special case to collink for RGB video input encoding
	to (attempt) to fine tune the black point to compensate
	for it (probably) not falling on a cLUT grid point. & out encoding

*	Tweaked dispcal to try and improve accuracy of black
	point calibration.

*	Switch dispread to use NoClamp readings, so that
	average black point value is not biased.

*	Fixed bug introduced into 1.6.2 oeminst that prevents .ccss files
	being installed.


Version 1.6.2 - (19th November 2013)
-------------

*	Added "dark region emphasis" -V parameter to targen and colprof,
	in an attempt to improve the accuracy of display profiles intended
	for use with video. This should improve the subsequent black
	point accuracy of the profile. 
	
*	Fixed bug and tweaked dispcal black point optimization to
	err on the black side. Added -v3 for even more debugging information.

*	Changed i1d3 driver to be more forgiving of EEProm checksum
	calculation, so that it works with the latest release "A-02" rev. 
	i1 display pro & colormunki display instruments.

*	Improved robustness of i1d3 driver in recovering from errors.

*	Fixed race condition bug in OS X HID driver. This
	fixes occassional problem with i1d3, and also solves
	problem with the ColorHug on OS X. ColorHug is now fully supported.

*	Fixed problem with TV encoded output and dispread -E -k/-K
	(Thanks to Florian Hoch).

*	Fixed minor bug in DE94 in icclib.

*	Fixed major bug in illumread - result was being corrupted.

*	Fixed "edges don't match" bug in printarg when -iCM -h -s/-S used.

*	Fix bug in -H flag in ccxxmake, chartread, dispcal, dispread,
	illumread & spotread so that it works once again. 

*	Changed OS X VideoLut access code to issue a warning if the
	frame buffer bit depth does not match the gamma table depth,
	rather than erroring out due to a bug in OS X. The gamma table
	depth is the number actually used, and reports are that this
	works.

Version 1.6.1 (30th September 2013)
-------------

*	Fix bug in "average -m"

*	Fix oeminst to work with a wider range of i1d3 install
	files.

*	Fix bug introduced into ColorMunki (spectro) reflective
	measurement that created discrepancies between spot
	and strip measurement mode. Changed short wavelength
	handling to be more like the manufacturers driver in
 	duplicating values, reduced reflective strip reading
	scan rate to 55Hz to reduce reflective electrical interference
	error.

*	Fix bug introduced into DTP94 driver when running on OS X.

*	Add valid (but unsigned) .cat files for MSWin libusb-win32 driver
	installation. This seems to remove the need to disable diver signature
    enforcement, and makes it possible to install on Win8.1

*	Fix MadVR test pattern access to look for 64 bit .dll if it's been
	compiled as 64 bit, otherwise API will fail.

*	Change instlib API to honour the inst_mode_highres flag in set_mode().
	Note that this means that High Res. mode state will be set by whatever
	the last set_mode() or get_set_opt(inst_opt_highres/inst_opt_stdre) was.


Version 1.6.0 (16th August 2013) 
-------------

*	Fixed crash in ucmm/ucmm.c when loading certain profiles
	using dispwin (thanks to Torok Edwin).

*	Fixed JETI specbos 1201 handling so that all refresh mode
	support is disabled, since it is not supported by this instrument.

*	Changed collink video level extended range handling to do a simple
	extrapolation rather than linearly interpolated to the sync. values.

*	Added extra options to fakeread & verify to support Video verification.

*	Changed spotread -ew mode to be Bradford chromatic transform
	rather than XYZ scaling, to better match Argyll ICC abs. vs. rel.
 
*	Added support to xicclu to lookup colors though CAL files, both
	forward and backwards. Will also plot CAL file contents using -g.

*	Changed frequency calibration test pattern to be 80% white, to
	avoid some situations where 100% does not exhibit refresh flicker.
	Added warning for spotread when refresh calibration is expected.

*	Added -Y R:rate option to spotread, dispcal, dispread & ccxxmake
	to allow setting a chosen display refresh rate. This can be used
	with the Colormunki display, as well as situations in which refresh rate
	measurement is not reliable.

*	Added 't' interactive command to specbos to toggle laser target
	for JETI specbos.

*	Turned off B2A table clip map smoothing, as it seems to introduce
	reversals for some data sets, and provides little benefit.

*	Changed dispwin & other display test patch programs on Linux/X11
	to use XRandR V1.3 XRRGetScreenResourcesCurrent() if available,
	to avoid flickering and blackouts on some displays.

*	Linux profile installation will use colord if libcolordcompat.so
	is present on system.

*	Changed dispwin to use XRandR V1.3 XRRGetScreenResourcesCurrent()
	rather than XRRGetScreenResources() if available.

*	Added MadVR test patch support to dispwin, dispcal, dispread
	and ccxxmake.

*	For those instruments that support it, made ambient readings
	honour refresh mode measurements, to improve repeatability
	when measuring regularly flickering light sources.
	(specbos, i1d3, i1disp).

*	Made allowance for non standard ICC cLUT resolution of 256
	for special case of MadVR device links.

*	Tweaked colprof display profile creation to give more weight
	to samples near the black point, in an attempt to improve
	the black point accuracy.

*	Added default 4 black patches in targen for Grey & RGB spaces, -B option
	to specify the number of black patches.

*	Fixed gamut mapping intent "rl" to really use relative L*a*b*

*	Add Rec2020 YCbCr encoding support (both types) to collink and xicclu.
	Added experimental xvYCC encoding support to collink.

*	Add Rec2020 profile.

*	By default printtarg will create PS and EPS files with a CUPS
	job ticket to disable color management. Use the -U flag to disable this.

*	!!! Changed instlib API ambient XYZ and spectral units to Lux. In prevous versions
	of instlib they were Lux/pi. !!!

*	Changed spotread so that it won't fall back to emissive spot mode if
	an ambient reading is requested.

*	Fixed bug in xicclu for Yxy input.

*	Added display update delay calibration support to i1pro and munki (just like
	i1disp3), to improve measurement times.

*	Changed dispcal & dispread so that they wait up to 0.5 seconds when reading dark
	patches after light ones to allow for display fall time. Added a patch order
	optimisation for display patch sets in targen to minimze the extra time.

*	Added MadVR Video calibration support.

*	Added eeColor Video calibration support.

*	Changed dispwin daemon loader mode from -E to -X.
	Added -E option to encode test patch colors in Video 16-235 range.

*	Changed dispcal verify option from -E to -z.
	Added -E option to encode test patch colors in Video 16-235 range.

*	Added -E option to to dispread to encode test patch colors in Video 16-235 range.

*	Changed enumerated viewing conditions for new Flare/Glare settings,
	changed all to Flareless to improve dark image behaviour, while
	retaining Glare modelling. Tweaked brightness and ambient values.

*	Changed CIECAM02 Flare model to distinguish between Flare from
	the image itself, and Glare from ambient light. This allows
	scaling Glare with ambient automatically.

*	Fix bug in cicam02 in V1.5.0 that causes some mapping
	problems in the red for collink -ir or -ila.

*	Changed cctiff so that it does lossless JPEG copy
	when there is no color transformation. This makes it
	more useful for embedding a profile.

*	Fix xicclu so that it works with device links.

*	Add -Et and -E7 option to xicclu to help with testing
	Video calibration device links.

*	Made sure that MSWin test colors are not color managed.
	This may affect Vista, Win7 and Win8.

*	Changed spectro/dispwin.c so that null transform
	color matching is used for displaying test patches
	on OS X >= 10.6. This should fix calibrating/profiling
	secondary displays on > OS X 10.6. Note that the 32 bit 10.4
	binary will still have problems on > OS X 10.6.

*	Improved i1pro hi-res mode to improve accuracy.

*	Added JETI specbos 1211/1201 instrument support.

*	Fix some corner case bugs in imdi/cctiff when handling
	a calibration file colorspace mismatch, and the zero
	color transformation case.	

*	Tweak B2A cLUT clipping behaviour slighly, to reduce L* delta E.

*	Added Body Centered Cubic grid option to targen.

*	Added -Yn flag to dispcal and dispread, which skips asking
	the user to place the instrument on the measuring spot.

*	Fixed bug in shaper/matrix profile curves that caused
	random bumpy black behaviour (shaper curve optimization local minumum problem).

*	Increased default smoothing for XYZ cLUT profiles, to make
	their smoothness comparable to L*a*b* cLUT profiles.

*	Improve robustness of i1d3 display update measurement code.

*	Don't add colorant tag to .tiff files in cctiff unless
	it is a non-standard space, as Photoshop will barf
	on such files.

*	Added support for applying calibration curves in collink.

*	Added a Rec709.icm HDTV, EBU3213_PAL and SMPTE_RP145_NTSC profiles to samples.

*	Fix ColorHug driver so that it is backwards compatible with FW 1.1.8

*	Fix bug with Spyder not being able to break out of
	dispcal adjustment loop.

*	Fix bug in xicc/xicclu, -K flag not being recognised.

*	Fix bug in xicc/xmatrix.c introduced in V1.5 that prevents
	matrix only profiles from being created. 

*	Using libusb is now deprecated in favour of native USB.

*	Added some prelinary BSD USB driver support. [incomplete]

Version 1.5.1 (8th March 2013)
-------------

*	Fix spectro/instlib.ksh and standalone instlib build.

*	Turned off debug plot on using FWA.

*	Changed link $(LINKFLAGS) location in link command line
	Jambase to get latest gcc working. 

*	Fixed new bug in matrix display profile creation that causes an	
	inacurate relative white point. This causes Photoshop to barf on
	the profiles.

*	Added -m option to printcal.

*	Fix bug in webwin that causes crash.


Version 1.5.0 (1st March 2013)
-------------

*	Made SpectroScanT respond to enter key when reading
	transparent samples.

*	Added signal handlers to dispwin to restore VideoLUT
	in case of interrupt.

*	Added support for an FWA simulated instrument illuminant
	separate to the illuminant used to compute XYZ values.
	This (and the provision of appropriate illuminants and illuminant
	aliases) allows simulation of ISO 13655:2009 M0, M1 and M2
	measurements using any spectrometer that can take non-UV filtered
	measurements. An optional argumen to the -f flag is used to select
	this.

*	Increased stability of i1d3 refresh display measurements
	by increasing integration time, and tweaking crossover
	from frequency to period measurement.
	Fixed bug that sometimes resulted in zero dark readings
	due to round up of integration time that then exceeded
	the valid maximum.

*	Added spotread interactive function 'f' to read out the 
	calibrate display refresh rate for instruments that have a refresh display
	mode, as well as an 'F' function that measures the refresh rate for instruments
	that support a refresh rate measurement function (colorimeters & spectrometers).

*	Added refresh rate measurement function to the i1pro
	and ColorMunki Spectro's. Also added a set refresh rate
	function, so that a refresh rate calibration can
	be carried over between sessions, or set manually.

*	Bumped icclib to 2.15.
	Change icc->read_tag() to only succeed if the tag type is
	known, since the standard expectation of a non NULL
	return type is that it is of a known type. Added new
	method icc->read_tag_any() which will return a
	icmSigUnknownType if the tag type is unknown.

*	The Display Type selection option -y in dispcal, dispread,
	chartread, spotread & ccxxmake now lists installed
	CCSS and CCMX files as a selction. The -X options
	is no longer used to select installed CCSS files.
	To make this work, the CCMX and CCSS files now have extra
	fields to indicate the refresh mode, an optional list of
	default UI selection characters, and (for CCMX files)
	the base display type they apply over (CB-n). ccxxmake now
	only allows Base Calibration display types to be selected.
	The installer (oeminst) checks for the refresh mode
	and base ID before installing CCMX and CCSS's.

*	Tweaked B2A least squares aproximation code to reduce
	artefacts when used on badly behaved CMYK profiles.

*	Fixed targen so that use of -v1 (verify) doesn't cause it to fail
	if ofps stats pass fails.

*	Tweaked CIECAM02 to imrove behaviour for extreme blue
	colors, so that the hue doesn't swing too far towards the
	cyan. This helps in the clipping behaviour from colorspaces
	such as ProPhotoRGB.

*	Added some post table setting filtering to the B2A table
	creation for out of gamut colors.

*	Made the input profile cLUT extra neutral axis extrapolation
	points the default for colprof -u and non -u profiles. Fixed serious
	bug in colprof -u :- the white point was being set incorrectly.
	Changed -u algorithm to work similarly to -U scale :- it
	sets the scale automatically. Relative colorimetric is therefore
	hue matched to the white reference patch,
	Removed colprof -un, as it seems unnecessary.
	Added coloprof -uc, which clips cLUT colors over Y = 1
	to white.
	Modified matrix profile creation to match cLUT in terms
	of how these options work.
	
*	Add verbose report if dispcal/dispread -Ibw is used.

*	Fixed bug in CRI computation - the TCS09 sample was incorrect.
	(Thanks to Gabriele Guarnieri for noticing this).

*	The spyd2en, spyd4en and i1d3ccss tools have been combined into
	and replaced by a single oeminst tool.

*	Fix problem with dispwin/dispcal/dispread -dweb and the latest
	Safari browser.

*	Added optional fourth parameter to dispwin, dispcal, dispread, ccxxmake
	-P option, that allows setting different horizontal and vertical
	scalings of the test window.

*	Changed to a single ArgyllCMS.inf file for MSWin USB driver
	installation. This eases instalation of more than a single
	type of isntrument.
	Tested on MS Windows 8 and updated installation instructions.

*	Added scanin support for ColorCheckerPassort
	(Thanks to Ben Goren)

*	Enable the ColorHug by default, although it
	isn't advertised as supported, since it doesn't
	yet work reliably on OS X.

*	Updated OS X code to compile on 10.6 and 10.7
	(64 bit compatible API used when compiling
	on those platforms, including Cocoa for the test
	patch window).

*	Added support for Quato Silver Haze 3 OEM i1d3

*	No longer using libusb for USB access, using native USB access instead.
	MSWin uses the libusb-win32 kernel driver.
	(This resolves the long standing issue of ArgyllCMS using
	 a custom version of libusb.)

*	Moved the usb setup files from libusb1 to
	a new directory, usb.

*	Added support for X-Rite ColorMunki Smile colorimeter.

*	Changed udev file usb/55-Argyll.rules to eliminate
	the test for /lib/udev/udev-acl as a condition of using
	ACL_MANAGE, since I'm informed that it is deprecated
	in recent distribution releases.

*	Deprecated -V flag (adaptive mode) in dispcal, dispread and ccxxmake,
	since this is now the default. Flag will be ignored with a warning.
	Added -ZA flag instead, to select non-adaptive integration time mode.

*	spotread -d flag is deprecated, and is now a synonym for the -e
	flag, since it defaults to adaptive mode. Added -ZA flag instead, to
	select non-adaptive integration time mode. Also addes -Zr and -ZR flags
	to allow testing of the refresh mode overrides.

*	Migrated ArgyllCMS specific application runtime files (such as instrument
	blobs, calibration state & calibration files) to an "ArgyllCMS"
	subdirectory rather than the generic "color" directory.
	On OS X also moved data files to below the "Application Support" sub
	directory. The old locations will be used as a fallback.

*	Fix potential array bounds violation in icc/icc.c for malformed
	cLUT profiles with zero input channels. Bump to icclib to V2.14

* 	Fixed bug in cgats/pars.c that caused a parsing failure
	with the ARM compiler.

*	Modified colprof so that a -rr smoothing parameter is now
	passed to the shaper fitting of shaper/matrix.

*	Reduced regularisation weight of order 0 & 1 curve shape parameters
	for matrix and cLUT based profiles, as well as converting it to
	be a two pass matrix then matrix+curves approach, making for a more
	reliable and better fit for some devices. This may improve matrix input profiles.

*	Added partial i1pro Rev E (i1pro2) support.
	Uses RevE measurement mode, and does wavelength calibration.
	Uses RevE (internal) stray light reduction, and black level temperature
	compensation. The only Rev E feature not currently supported is U.V.
	measurement, which would improve the accuracy of FWA compensation.
	Rev E driver can be disabled and the legacy driver
	mode used by setting the ARGYLL_DISABLE_I1PRO2_DRIVER environment variable.

*	Changed ColorMunki adaptive mode to avoid high gain mode,
	so as to give more consistent and longer integration
	times for low levels. Added black level temperature compensation.

*	Changed i1pro adaptive mode to avoid high gain mode,
	so as to give more consistent and longer integration
	times for low light levels.

*	Added automatic adjustment of patch reading delay
	for i1d3, so that a more conservative (longer) default value (200 msec)
	can be used without impacting i1d3 speed.
	Also added environment variable ARGYLL_MIN_DISPLAY_UPDATE_DELAY_MS
	that can set a different minimum update delay.

*	Fixed a bug introduced in V1.3.6 that stops the dtp41 from being initialised properly.

*	Added warning message to colprof if an additive device (ie. RGB)
	has an ink limit set that will affect the white point.	

*	Modified printtarg so as to output CMY colorspace charts in CMYK PS, EPS & TIFF
	files by default rather than Device N, and to add an option (-o) to select
	CMY as inverted RGB, or CMY Device N as an option

*	Add explicity icoms error message when there are no instruments to be found.

*	Updated ColorHug PCI VID & PID 

*	Change ColorHug driver to not do Raw mode post scale if
	firmware is >= 1.1.5

*	Fixed regression with Spectrolino not taking filter options.

*	Added doco for QPcard_201, and ref. files for QPcar_202

*	Modify numlib/numsup so that error() is marked noreturn,
	to shut up bogus compiler warnings.

*	Fix problem in libusb1 for MSWIN libusb0 devices not
	being able to be opened with more than one instance of
	usb open (This bug is not relevant to ArgyllCMS, but is to libinst use).

*	For Spyder, emit a warning rather than error if the feature bits
	are missing for calibration tables.

*	Added an introduction to color management document.

*	Change libjpg to libjpeg in Jamtop & jpg/Jamfile
	so it picks up system libraries, and fix system library link flag.

*	Fix bug in profile B2A table construction that
	sometimes created reversals in black clipping behaviour.

*	For i1d3, make transition to longer re-measure integration
	time smooth and progressive. Changed debugging so that reading
	details are printed if debug >= 6

*	Fix bug in gamut/gammap.c - freeing not allocated memory
	if no nearpoint mapping was being done.

*	Update icclib to address robustness against malformed profiles.

*	Various API changes to the instlib to make it more
	self contained and flexible:

	 The ipatch structure has been changed to remove the unused/unsupported
	 Lab[] value, and merge the XYZ[] and aXYZ[] values.
	 There is a new type indicator "mtype" to track what sort of
	 measurement it is, and (implicitly) what units the measurement is in. 

	 Spectral readings have always been clamped to be +ve in past
	 release of Argyll, but this has now been removed, because
	 it has a detrimetal effect on dark XYZ readings, limiting the
	 minimum reading possible. By default now, read_sample allows
	 possibly -ve XYZ values (which will aid the accuracy
	 of averaged dark readings) and has an option flag to
	 clamp XYZ values to be +ve for compatibility with previous behaviour.

	 To avoid enumerating USB devices multiple times, the list of
	 available instruments now uses an icompaths object, and a
	 particular icompath is handed to new_inst().

	 An error, debug and verbose logging object 'a1log' (declared
	 in numlib/numsup.h) is now used to control and capture
	 informational output. This is handed to new_icompaths()
	 as well as new_inst(); Existing error(), warning() and
	 verbose() function calls now funnel into the default
	 global a1log object 'g_log'.

	 instlib user interaction is now funnelled through a callback
	 function (uicallback) rather than interacting with stdout and
	 command line input itself. The implementation of the callback
	 function and the default calibration setup handler for Argyll
	 command line applications is now in a separate library instappsup.c. 

	 There is now an asynchronous callback for indicating events
	 such as the instrument switch being pressed, or the
	 instrument measurement configuration being changed (ie.
	 sensor position, ambient filter). Only some instruments
	 will use this. This is called from a thread.
	 
	 inst_capability and inst_mode are now one and the same: inst_mode.
	 The IMODETST macro should be used for testing a capability or mode,
	 but because a specific mode is represented by a combinations of
	 bits, this test is not definitive, and should also be verified with 
	 the check_mode() function to be sure it is valid, and won't be
	 rejected by set_mode();

	 inst_emis_disptype, inst_emis_disptypem, inst_ccmx and inst_ccss
	 have moved to cap2 as inst2_disptype, inst2_disptypem, inst2_ccmx
	 and inst2_ccss respectively.

	 The capabilities2() method has been removed, and capabilities() now
	 returns inst_mode capability, inst2_capability and new placeholder
	 inst3_capability flags.

	 All the inst2_cal_* enumerations have been replaced by the new
	 get_n_a_cals() call, which gives fuller information about what
	 calibrations are needed and available for the current measurement mode.

	 needs_calibration() now retuns a mask of calibrations needed.
	 calibrate() now can be given one of three pseudo-calibrations,
	 and returns a mask of remaining calibrations.

	 The inst_mode_emis_disp and inst_mode_emis_proj modes have been removed
	 and replaced with a general emissive mode, with a "tele" modifier
     to indicate projector mode (there are also corresponding changes in
	 the calibration types and conditions, replacing "disp" and "proj" with
	 "emis"). Adaptive measurement mode used as default
	 for emmissive measurement. inst_mode_emis_spot and inst_mode_emis_tele can
	 be used as replacements, with the inst_mode_emis_nonadaptive
	 option used to get the non-adaptive display measurement mode
	 previously triggered by inst_mode_emis_disp/proj in those instances
	 where it is wanted and the device supports it. (i1pro, colormunki spectro.)

	 By default display refresh synchronized calibration and measurement
	 is selected in tandem with the display type selector
	 (indicated in inst_disptypesel). Where supported, this refresh
	 mode can now be overridden using the inst_mode_emis_refresh_ovd and
	 inst_mode_emis_norefresh_ovd modes.

	 Changed get_status(inst_stat_sensmode) to a new
	 function meas_config(), and changed the values returned to be the
	 valid measurement modes or calibration conditions for the current
	 instrument physical configuration.
	 This allows the application to be sensitive to what measurement
	 modes are available with things like the Colormunki sensor position,
	 and the i1d3 ambient adapter position.

	 A new function get_ref_rate() has been added to make the measured
	 display refresh rate available.

	 get_opt_details(inst_optdet_disptypesel) has been replaced by get_disptypesel();

	 Commbined set_opt_mode() and get_status() into get_set_opt(),
	 and combined inst_opt_mode and inst_status_type into inst_opt_type;

	 col_cal_spec_set() now only sets the CCSS, not the observer.
	 The observer can be set by a call to get_set_opt(inst_opt_set_ccss_obs);

     

Version 1.4.0 (20th April 2012) 
-------------

*	Modified spectro/ccxxmake so that a colorimeter can be used
	as a reference to make ccmx files if two .ti3 files are used.
	Added ref/ccxx.ti1 as convenient way of creating ccmx .ti3 files.
	
*	Added dither/screening support for 8 bit output of 
	render, and then made it available in target/printtarg -D switch.

*	Added JPEG file support to imdi/cctiff, xicc/tiffgamut and xicc/extracticc.
	ICC profiles embedded in JPEG files can now be used anywhere a TIFF
	file with embedded ICC profile can be used as a source of an ICC profile.
	This makes it more convenient to color correct photographs.

*	Fixed memory leaks in usbio.c, xdg_bds.c & conv.c

*	Fixed double memory free bug in icc/icc.c when
	iccdump'ing a profile that has a duplicate tag.

*	Changed license of xicc/ccmx.[ch] to GPL2+.

*	Removed dispcal -K option, since it is not
	needed with more graceful handling of no
	VideoLUT access.

*	Made display calibration and profile making
	deal with displays without hardware calibration
	support (VideoLUT support) more graceful.
	Added tutorial section covering this.

*	Added option to dispwin/dispcal/dispread/ccxxmake to
	redirect the test patches to a web browser via
	a local web server. This augments Argyll's long standing
	local and remote display capability.

*   Fixed bug in spectro/i1d3.c which results in NAN if a
    low level readings drops to zero at a particular time.
    Improved refresh rate calibration accuracy. Fixed bugs
    in adaptive measurement logic that caused a channel to
    be pre-measured when it shouldn't. This seems to noticeably
    improve repeatability on refresh displays.

*	Fixed bug in ucmm/jcnf where it was failing to locate 
	the correct profile for a display.

*	Fix bugs in ColorMunki Transmissive measurement mode
	calibration.

Version 1.3.7 (26 March 2012)
-------------

*	Fix regression in Spyder support - ccmx files were not
	being handled (bug introduced in 1.3.6).

*	Fix packaging problem - Spyder4 MSWin .inf file was missing.

*	Change dispwin so that it will install a profile when
	there is no access to the display VideoLUT if the profile
	has no vcgt.

Version 1.3.6  (19th March 2012)
-------------

*	Experimental ColorHug support is compiled in, but is disabled
	unless the environment variable "ENABLE_COLORHUG" is set.
	(The ColorHug currently doesn't seem to work reliably
	 accross all platforms Argyll supports). 

*	Modified spectro/hidio.c for OS X so that it only
	attaches run loop when an hid call is made,
	to make the SW more GUI friendly.

*	Fixed bug in Spyder 2 driver, where aborting a reading
	(ie. in interactive dispcal), leaves hardware out of sync
	with driver, leading to a bad next reading.

*	Reworked i1disp driver slightly to improve repeatability
	when in CRT mode.

*	Added a -V option to spotread to allow tracking
	reading consistency.

*	Tweaked i1d3 integration times, and added refresh
	period calibration to the refresh display mode.
	Refresh display measurement times are double
	non-refresh displays.
	
*	Added Spyder4 support. Note the need for sptd4en.
	Speeded up Spyder on brighter colors. Hopefully
	this doesn't affect accuracy.

*	Changed ccxxmake to create default .ccss with just
	RGBW, and not to weight W. This may give better
	matching. Made corresponding change to CCMX, giving
	the white patch 1/4 weighting of sum of all other patches.

*	Changed display selection (-y flag) to be instrument
	specific. This is to support the Spyder4 and ColorHug.

*	Improved i1d3 period measurement logic to improve
	measurement speed and accuracy for dark colors.

*	Removed Linux serial port filtering code for USB serial
	ports, since it may interfere with other devices.

*	Fixed OS X and Linux profile installation so that if you run
	dispwin -I as root (ie. sudo), the profile is still installed
	as the underlying user, not to the root user location.

*	Fixed bug in black point finding code in xicc/xicc.c that 
	affected xicclu.

*	Fixed txt2ti3 to cope with inputs that don't have any device values.
	This is useful for dealing with input chart reference values.

*	Fixed applycal so that it applies calibration to both A2B and B2A tables,
	to preserve softproofing.

*	Changed ICC unknown manufracturer and model Tags to value 0, rather than "????".

*	Fixed timeout in SpectroScanT reference transmission measurement.

*	Switched ucmm over to using spectro/xdg_bds code,
	to solve problem with multiple paths in
	XDG_*_DIRS. Changed xdg_bds and aglob code to
	an "MIT" license, consistent with all the ucmm code.

*	Made DTRP94 driver ignore with a warning any
	NEEDS_OFFSET_DRIFT_CAL_ERR after a full reset.
	It seems that occasionally a few instruments do this,
	and X-Rite don't appear to be prepared to treat this
	as an instrument fault.

*	Added support for Datacolor SpyderCheckr (Thanks to Jos Pereira).

*	Improved the ability of spyd2en to cope with slightly
	different setup.exe formats.

*	Made sure that dispcal and dispread now error if
    reading of ccmx or ccss files fail.

*	Add support for NEC SpectraSensor Pro version of the i1d3.

*	Add smoothing control flag to printcal.

*	Fix bug in ccxxmake with regard to -I and -T options.

*	Fix bug in ccxxmake that stops the test patch from being scaled
	properly using -P

*	Supress TIFF open message errors better when attempting to
	open an ICC profile embedded within a TIFF file.

Version 1.3.5  (24th October 2011)
-------------

*	Add support for the OEM version of the i1d3.

*	Fix bug in dispread where spectral instrument readings weren't being
	normalized to the display white Y when they were supposed to be.

*	Kill i1ProfileTray.exe process if unable to open i1d3 on MSWin.

*	Tweak gamut mapping to improve dark area mapping, non-monotonic
	profile inversion, and contrast preservation to small gamut.

*	Fix bug that stopped ccxxmake being able to make ccmx's.
	(Unable to use colorimeter due to "instrument doesn't support spectral or CCSS"
	error).

*	Fix bug (crash) that affects ColorMunki design/photo display measurement.
	This also stops it restoring a calibration (-N flag).

*	Fix DTP20 chart printing - TID was sometimes incomplete.
	This shows up on a 4x6 chart.

*	Changed DTP20 chart to use a much smaller and ligher row label
	to try and avoid mis-reads.

Version 1.3.4 (31 August 2011)
-------------

*	Fix gamut code to ignore setting primary/secondary cusps that
	are unlikely to be true. This avoids buggy gamut mapping
	behaviour for gamuts that are very small and odd shaped.
	Tweak saturation intent very slightly to improved hue consistency.

*	Changed Linux USB code to avoid doing a set_configuration
	if possible, since the USB driver does this by default.
	This then avoids triggering a bug in the Spyder2, which
	allows it to work on Linux version without the reset_ep fix,
	and may also allow the Spyder to work better with USB hubs.

*	Added support for the X-Rite i1 Display Pro and ColorMunki Display
	colorimeters. As part of this, added support for CCSS calibration
	files for the instruments and added CCSS support to ccxxmake (renamed from ccmxmake).
	Provide new tool i1d3ccss to translating and installing CCSS files as well as
    the manufacturers calibration files for these instruments.
    Added non-default observer support for these instruments too.

*	Fix all colorimeters so that the ccmx matrix is used only
	for non-Ambient measurements.

*	Change printtarg for DTP20 to allow for variable patch size.
	Note that patch length must me 6.5, 7, 10, 12.5 or 13 mm.

*	Changed dummy display matrix table to have channels rotated
	rather than R & G swapped, to make it more obvious.

*	Added option to colprof to allow setting the default profile
	rendering intent.

*	Fix bug in spectro/average.c - field match check index was wrong variable.

*	Fix bug in xicc/xlut.c that caused bad reverse lookup
	values at some clipped grid points.

*	Increase number of re-seeding retries in target/ofps.c,
	and fix bug that caused failure to finish rather than
	error.

*	Enhanced spectro/fakeread so that it will process a .ti3
	file that has been renamed to .ti1.

*	Fix bug in matrix input profile white point selection,
	+ add in slight neutral bias code used in clut profiles.

*	New profcheck -I wasn't working - fix option parsing.

Version 1.3.3 (12th May 2011)
-------------

*	Added -I relative colorimetric intent flags to spectro/fakeread
    and profile/profcheck, for special use.

*	Fixed compiler dependant bug in Eye-One pro and (posibly) Munki
	high res. spectral wavelength calculation.

*	Add support for install variables DESTDIR and PREFIX
	in Jamtop. These can be set on the command line using "jam -s"

*	Add ref/linear.cal to distribution.

*	Added targen -N parameter to allow adjustment of neutral axis
	patch density emphasis. The default effect has also been
	increased. Note this is only effective when perceptual distributions
	are created, or the defaul OFPS with a high level of Adaptation is
	used. This will be most effective when a pre-conditioning profile
	is used. This may reduce the number of patches needed for a given
	quality profile, or increase the quality for a given number of
	patches. This should improve the result without needing to add
    explicit grey test patches.

*	Added spectro/instlib.ksh script to assemble all the files needed
	for a standalone instrument library. Changed licence to GPLv2 for
	the files included in the instlib.zip file that is thus created.
	Can be built using the included Makefile, once libusb-1.0A has
	been built.

*	Fix Jambase so that recent MingW compilers don't need extra .dll's

*	Change Linux serial code to test ports using O_NONBLOCK 

*	Modify xspect & illumread to improve realism of UV spectrum estimation.

*	Fixed profile/txt2ti3 so that a sample name that looks like an integer
	is treated as text. (Fixes problem with latest ProfileMaker file).

*	Added LCh option to spotread.

*	Fixed numerical issue in scanin/scanrd.c, where large input rasters
	would cause fitting to fail.

*	Modified colprof input chart white patch detection to slightly
	favour patches that are close to D50 neutral.

*	Scaled XYZ PCS A2B profile deviation to improve default
	smoothness.

*	Change Make cLUT input -u black & white  point extrapolation
	to use gamma curve + one order shaper, and increase these
	extra points weights.

*	Change black point search weighting to give a*b* error less
	weight, so that devices narow gamuts due to strange inks
	get a better chance at a reasonable black point.

*	Added -Z option to colprof, to allow setting ICC attribute flags.

*	Attempted to (yet again) fix the shortcoming of cam02 blue behaviour.
	This may well improve the purity and color of blue gamut mapping.
	Also fixed problem with inversion not matching the forward conversion,
	resulting in gamut mapped cLUT tables white points not
	being exact, and resulted in non perfect device values for white.

*	Add code to temporarily disable X-Rite's new Daemon drivers on
	OS X, for ColorMunki and EyeOne. The Argyll utilities either need
	to be run as root, or the X-Rite Daeomon .plist's need to
	be changed to run as the user.
 
*	Added -R flag to colprof, which restricts the values of the white, black
	and primaryies to have Y <= 1 and +ve, respectively. This can aid
	compatibility with other programs.

*	Fixed typo in spectro/inst.h that prevented flash measurement mode from
	working.

*	Replaced spectro/average with a new version that is more
	general. Merging and Averaging are are now separate operations.

*	Fixed bug in printcal - it wasn't dealing with spectral only files.

*	Added extra verbose output to printcal in which it
	computes an ideal power-like value to apply to the test chart values
	in targen. Modified targen to use power-like function, to avoid
	issues with small values with real power curve.

* 	Reduced printcal data point smoothing slightly, to improve
	accuracy.

*	Fix bug in profile/printcal where the white point device
	value wasn't beeing computed as the average of all the
    white patches. Tightened up definition of white patch
	to avoid targen -p type test charts slipping non-white
	patches into white average. Made sort of device value consistent.

*	Modify the way that XYZ cLUT B2A tables are indexed, so that
	the white point is at the top corner of the grid. This should
	make better use of the cLUT, as well as improving the accuracy
	of the inverse white mapping. [Should solve Photoshop CS4/CS5
	complaining that XYZ LUT profiles are 'defective'.]

*	Added option in xicc/xicclu to plot an arbitrary slice.

*	Expand the number of i1 Display OEM devices that can be used.

*	Added some patches to help compile on FreeBSD.
	(Thanks to Simon Walton)

*	Added offset parameter to spectro/synthcal, to allow generation of
	inverted ramps.

*	Added another intent, "pa", Perceptual Appearance, which is the
	same as perceptual except that the grey axes are not forced into
	alignment, allowing the appearance parameters to have full affect,
	including altering the chromatic mapping.

*	txt2ti3 wasn't creating an iRGB colorspace file for output device
	RGB files. This can cause warnings and failurs when mixed with
	other iRGB tool sequences. Also fixed fakeread grey fudge to recognise
	both RGB and iRGB.

*	Added pathological case fix for target/ofps where the ink
	limit == di-2. For CMYK this needs slightly more than
	32 bits of mask. Fix forces limit to be slightly less than
	di-2.

*	targen was failing to proceed when fixed points happened
	to be numerically just over the total ink limit, and ofps
	then got stumped in adding them. Now clip them before
	ofps tries to add them.

*	Added more navigation options for chartread patch by patch mode.

*	Fixed bug in "chartread -r -H" that caused resume of i1Pro high res
	to fail with "The resumed spectral type seems to have changed"
	due to a floating point mismatch.

*	Modified profcheck so that it prints patch location if it is
	present in the .ti3 file.

*	Made doubly sure that DTP94 has offset drift compensation on.

*	Changed dispcal and dispread -K option to -J. Added -K option to dispcal as
	an alternate way of profiling a calibrated display, and also added a -K
	option to dispcal. These options may be useful for displays that
	don't have VideoLUTs or that (very strangely) have VideoLUTs with lower
	precision entries than the frame buffer.

*	Increased ColorMunki emissive auto scaling target "over" margine
	from 5% to 10% to allow more room for instrument drift.

*	Add more runtime debugging output in dispsup code (dispcal, dispread etc.)

*	Fix bug in winusb + i1Display, where dark CRT measurements timeout.

Version 1.3.2 (4th November 2010)
-------------

*	Turn off debugging that was accidentally left on in FWA code.
	Add gcc 3.3 PPC optimizer bug workaround to FWA code in xicc/xspect.c

*	Change shaper/matrix profile back to using power curve as 0th
	order shape. Improve it with input & output offsets and
	straight segment at zero. Make cLUT input -u black & white
	point extrapolation use pure shaper curves with special tweaks.

*	Increase dispcal native white target weighting from 10 to 50
	to encourage white to be device 1.0,1.0,1.0 more strongly.

Version 1.3.1 (26th October 2010)
-------------

*	Tightened up scanin -ca option parsing to reduce chances of false
	trigger.

*	Added synthetic device white/black point for input cLUT profiles
	where the -u flag is being used. Particularly for Lab PCS, this can
	improve the reasonableness of the extrapolation along the neutral
	axis. Added -un flag option to disable this.

*	Changed shaper/matrix profiles so that they use pure shaper curves
	rather than base gamma + shapers, as this seems to be a better fit
	for real device behaviour.

* 	Fixed MSWIN Vista/Win7 problem where having Task Manager running
	would stop display test window updating. Also fixed plot library to
	avid the same problem.

*	Added -i (input) option to profile/txt2ti3, as well as making
	device value scaling be guessed from the data range.
	
*	Fixed problem in MSWin .inf files not copying libusb .dll to system
	directories.

*	Swapped dispwin -E and -D flags, to make -D debug consistent
	throughout tools.

*	Changed the ARGYLL_NOT_INTERACTIVE mode so that all return and line
	feed characters are ignored, so that they can be used freely to
	flush stdin without triggering anything.

*	Added ref/ECI2002.ti1, so ECI2002 test values can be printed using
	printtarg.

*	Added -L option to chartread, to save both XYZ and Lab values.

*	Fixed endless loop problem with chartread -r -p on fully read chart.

*	Increase display patch color change to instrument measurement
	settling time from 60 to 200 msec, to allow for very slow
	MVA and PVA LCD displays.

*	Fixed problem in Jambase that stops MSWin MingW compiling.

*	Added -S option to chartread, that suppresses wrong strip and unexpected value warnings.

*	Fix dispcal and spotread so that color temperature takes into account any non-standard
	observer (ie. the color temperature is the closest point on the spectrum locus
	as determined by the chosen observers interpretation of the Plancian or
    daylight spectrum.)

*	Fix bug in libusb1 triggered on systems that support bulk continuation (Linux)

*	Added 1964_10c observer to spectro/dispcal, to better allow comparison to
	the default numbers.
 
*	Added recognition for Huey built into Lenovo W series Laptops. 

*	Fixed chartread/dispsup/spotread etc. so that -N isn't fatal if the instrument
	doesn't support it.

*   Fixed dispcal to disable black & white drift tracking during interactive adjustment.

*	Added -s option to ccmxmake to allow the number of test patches to be set.


Version 1.3.0 (8th September 2010)
-------------

*	Added option to dispread to save non-normalised to Y=100 values.
	Fixed colprof to normalise display spectral values that haven't been normalised.
	Fixed profcheck to normalise display spectral values that haven't been normalised.
	Fixed verify to scale white point reference to be larger than largest Y value
	being compared.

*	Added option to dispcal and dispread that attempts to counteract instrument
	black drift and display white drift (-I option). This may help with 
	instruments that haven't properly acclimatised to the measurement location,
	and LCD displays that also take some time to stabilise.

*	Added option to dispcal to allow specifying a non 1931 2 degree observer
	if a spectrometer is being used.

*	Added new utility spectro/ccmxmake, which makes Colorimeter Correction
	Matrices for a particular Colorimeter/Display combination, using a
	Spectrometer as a reference. The resulting .ccmx file can then be used
	with spotread/dispcal/dispread (-X option) to improve the accuracy of
	the colorimeter on that particular display.

*	Fixed bug in spotread's handling of emsissive measurements.
	If the XYZ was computed from spectral, it was using a D50 white
	instead of no white reference.

*	Fixed bug in i1pro normal resolution wavelength calibration,
	introduced in V1.2.0. 

*   Fixed bug in the way illumread displays available instruments.

*	Changed libusb V1.0 name to libusb-1.0A, so as not to clash
	with any official but different libubs V1.0 installation.
	[This may necessitate re-installing device drivers on MSWin.]

*	Added support for HP DreamColor version of the i1 display.

*	Fix problem with ARGYLL_NOT_INTERACTIVE - reading from instruments
	was not actually possible, because polling for input was disabled.

*	Adjust ColorMunki dark threshold to reduce misread reports.
	Add inconsitent data to debug output.
	Fix bug in adaptive mode - the integration time was sometimes
	too short.
	Set adapative emissive target at 95% to allow a little more
	margin to saturation.

*   Fix some minor compiler warnings.

*   Added direction indicators to xy values in dispcal interactive
	monitor adjustments.

Version 1.2.1 (9 August 2010) 
-------------

*	Fix problem with ColorMunki reporting erroneous inconsistent
	measurement errors. This shows up on display calibration.
	
*	Fix bug in CIECAM02 viewing condition settings :- the enumerated
	conditions after "mt" are displaced by 1. (ie. "mt" is really "pc",
	"mb" is "mt", "md" is "mb" etc.) Added option -c:sn for auto
	surround from the Lv parameter (-c:l).

*   Add option to illumread to average several readings.

Version 1.2.0 (30 July 2010)
-------------

*	Added EV calculation to spotread -a

*	Updates included libtiff to V3.9.4

*	Modified colprof -p to allow different abstract profiles to be applied
	for each intent.

*	Added -I option (imitation) to printcal, so that an existing devices
	response can be set as a target.

*	Fixed scale by 100 bug in spec2cie -f spectral output values.

*	Fixed memory allocation bug in spectro/fakeread.c.
	(Also fix memory allocation leak in xicc/mpp.c)

*	Fixed bug in target/targen where .mpp pre-conditioning profiles
	ink limits wern't being handled properly.

*	Reduced i1pro high res mode from 750 to 740 nm because of
	unreliable sensor values.

*	Added support for filter in chartread.

*	Re-worked gamut mapping to improve perceptual intent saturation
	levels, as well as improve highlight and shadow contrast.
	Added fine tuning to improve both smoothness and the precision
	with which the source is mapped to the destination.

*	Fixed bug in installing profile on MSWin Vista/Win 7 in system scope.

*	Fixed bug in xsp_Tdensity() table values.

*	Enable -C option in dispcal.

*   Increase target/ofps.c vertex intersection retries from 10 to 40
	to give it a better chance of working with difficult profiles.

*	Fixed printcal -D problem.

*	Fixed average spectral output problems.

*	Changed i1pro & Munki driver to save instrument calibration
	file in $XDG_CACHE_HOME/color/ (or the XDG fallback) 
	rather than in the directory that the executable
	exists in. Also changed spyd2en to save the PLD pattern
	in the $XDG_DATA_HOME or $XDG_DATA_DIRS.

*	Fixed bug in plot that shows up on XP+, where the window
	isn't dismissed by the first keystroke, but only after it
	has been moved or resized.

*	Added illumread, which allows measuring an illuminant and
	estimating its UV content, for better accuracy with
	FWA compensation.

*	Use a modified/forked version of libusb V1.0, that supports Win2K
	(libusb0.sys) back end by default. Supports 64 but MSWin
	using a combination of WinUSB.sys and ptlibusb0.sys.
	[ The HCFR does not work on Win 64 bit though, due to its
	buggy USB implementation. ]

	NOTE that the included version of Libusb V1 has been carefully
	tested with all supported instruments on all supported platforms,
	and includes many bug fixes needed for correct functioning.
	While bug fixes have been fed upstream, not all have been
	adopted. In particular there is a nasty race condition
	that has not, and may never be fixed upstream, as well as
	missing critical functionality (clearep()).

*	Changed CMYK black point to be neutral, rather than the darkest
	point in the same direction and K only. This may wreck
	K only to black point matching, but it will stop printers
	with funny colored K ink from messing up the black point.

*	Make Lacie Blue Eye colorimeter appear as an i1display.

*	Improved i1pro matching to Original Manufacturers Driver
	(see doc/i1proDriver.html).

*	Improved i1pro/ColorMunki patch recognition for beter uniformity.

*	Fixed bug in ColorMunki driver scan mode calibration
	when instrument is more sensitive than usual.

*	Fix usage of dispread, -V option was missing.

*	Fix plot bug in printcal

Version 1.1.1 (21 February 2010)
-------------

*	Altered xpsect FWA code to reduce overshoot artefacts due to filetering.

*	Updated ref/CMP_Digital_Target-3.cht as it seems that the reference
	chart has columns labeled "2A - 2D" rather than the "AA - AD" that
	is actually printed on the chart...

*	Changed dispcal and dispread so that a request for projector
	mode falls back to display mode if the instrument doesn't 
	support a projector mode.

*	Changed printcal so that it will create .AMP file with more
	than 4 channels.
	Also fixed up plotting to plot up to 10 channels.

*   Renamed the following tools:

	cb2cgats    -> cb2ti3
	kodak2cgats -> kodak2ti3
	logo2cgats  -> txt2ti3
	splitcgats  -> splitti3
	mpprof      -> mppprof

*	Modified scanin so that it ignores any alpha channels
	in the input .tif file.

*	Change spotread so that it takes spectral readings by
	default so that FWA compensation readings can be used.

*	Changed link/collink to apply Y to L* curve if the input or output
	space is XYZ. Fixed the Y to L* scaling to make sure it only
	apples to XYZ space, and that the L* non-linearisation still
	applies to Y like device spaces.

*	Fixed colprof so that the per channel input curves for
	XYZ PCS B2A tables are actually scaled correctly.

*	Re-organized imdi/cctiff to allow for the possibility of
	the Y to L* linearization being applied to actual XYZ input
	spaces, not just Y like device spaces.

*	Modifed target/targen to cope better with case where adding
	nodes fails to determine vertex positions a lot of the time, causing
	extreme slowdown. Re-shuffle node order and retry now.
	Also change appoach of adding fixed nodes to temporarily
	skip fixed nodes that fail to add due to vertex positioning 
	failures. Also removed special node as this doesn't seem to
	be required for reasonable positioning, and caused problems
	in at least one case (media fixed node could never be added).

*	Modified libusb/55-Argyll.rules for better compatibility
	with systems that have ACL installed but no ConsoleKit.
	Also set ID_VENDOR and ID_MODEL using usb-db

*	Added matrix only/linear algorithm option to
	profile/colprof, for raw camera profiling.

*	Fixed bug in input matrix profiles introduced by the XYZ cLUT
	display matrix profile change, where the correct white and
	black point wern't being written.

*	Changed tiffgamut to use one pass gamut hull finding,
	since this seems to be more reliable on the odd shaped
	image gamuts, as well as use a convex hull surface that
	more closely wraps the raster colors.

*	Added standards references to the viewing condition pre-set
	descriptions, and also added a preset for the ISO Critical
	print viewing lighting level.

*	Fixed bug in profile/colprof -u, this wasn't being
	applied properly to matrix profiles.

*	Fixed several build bugs in imdi code related to 64 bits.
	The 64 bit code was sometimes being compiled on non-native 64
	bit architectures, and not being compiled on native 64 bit
	architectures. The table setup code was not handling 64 bit
	setup correctly on 32 bit architectures. 

*	Tried to improve dispcal -E (verify) behavior
	by switching to native response for base measurement used	
	to establish black aim point. Probably would be better to
	store all aim info in .cal file, and verify against that
	rather than altering verification target by the current response...

*	Added documentation for specplot.

*	Added -M option to printtarg, for the case where the TIFF
	file is to include the margin.

*	Fixed bug in ucmm/ucmm.c where wrong malloc length
	causes crash when installing/unintstalling profiles
	with long filenames.

*	Modified black curve to make sure that smoothed
	curve meets target level at boundaries, and to
	reduce smoothing filter width.

Version 1.1.0 (17th January 2010)
-------------

*	Added some warnings to colprof for strange combinations
	of -s -S and -t -T and -g.

*	Fixed problem in perceptual gamut mapping that resulting in
	less deep blacks than desirable. Also tweaked gamut mapping
	to try and maintain luminance gradation near black
	for chromatic colors.

*	Simplified the Linux instalation instructions, particularly
	with regard to USB and serial permissions. Permissions use groups now,
	or ACL if it is available.

*	Added working MSWindows 64 bit libusb drivers, which will work
	on Vista 64 and MSWindows 7 64 bit. Because of
	Microsofts driver signing requirements though, they won't be
	usable unless a driver code signing workaround is used.

*	Fixed viewgam so that the number of gamuts that can be
	viewed is unlimited. Also added error when computing intersecting
	volume if the two gamuts are incompatible.

*	Added -O option to scanin and colprof, to allow overriding the
	default output filename/location.

*	There was a regression in the black inking fixes, the K target
    was corresponding to the pre-1D Lut values, this is now fixed.

*	Fixed another glitch in rspl/rev.c when computing black solution -
	the auxiliary target was not always the closest one possible.
	This fix may also help smoothness near black.

Version 1.1.0 RC4 (6th January 2010) 
-----------------

*	Fixed bug in xicclu -pz that caused maximum rather than minimum ink. Also
    fixed tolerance glitch in rspl/rev.c that was causing non-exact black
    values to be returned.

*	Changed printtarg so that the TIFF output has the paper margin subtracted
	from it. This is so that the resulting TIFF can be placed on that sized paper
	without clipping or scaling. Set the margin to zero to get a TIFF that
	exactly fits into the specified paper size.

*	Fixed bug in colprof -aX which caused crash when there are calibration
	curves.

*	Fixed bug in printcal, changed first -n option to -d to distinguish it
	from second -n parameter.

Version 1.1.0 RC3 (4th January 2010) 
-----------------

*	Fixed bug in Linux profile uninstall (dispwin -U)
	(Typo in path causes uninstall to fail).

*	Changed MSWindows athread implementation to kill a thread
	that hasn't terminated on thread object deletion. This
	isn't nice, but avoids the problem of the i1pro switch handler
	thread exiting after 600 seconds and then accessing
	a free'd structure when dispread -K is used.

*	Change colprof XYZ B2A table scaling to make better
	use of the cLUT table grid resolution.

*	Fixed bugs in black generation rule to do with white->black point
	calculations, scale and input/output curve handling. Changed
	xicclu -g to better correspond with -k p parameters.
	Changed xlut CMYK black locus handling to pick largest K value
	when there are multiple K locus segments and the desired K 
	doesn't fall on any segment, to give better K continuity.
	Added "skew" adjustment to K generation rule to make
	the curve it better fit typical device behaviour.
	Updated tutorial to reflect these changes.
	Note that the -kp parameter values will have to
	be re-established for a particular device using V1.1.0 RC3.
	(This may improve the "bumpy black" problem ?)

*	Changed profile/colprof to generate matrix tags for Display XYZ PCS cLUT profiles,
	to improve compatibility with other CMMs.
	By default (-ax) the matrix tags will be a dummy transform that swaps red and green
	so that it is obvious if the matrix is being used instead of the cLUT, and so it does
	not increase profiling time.  Using -aX will create real matrix tags.

*	Removed deprecated imdi/cctiff -o option, and added per profile -o option to set the
	tag search order so as to be able to test profiles that have both matrix and
	cLUT tags.

*	Removed general cLUT clip warnings, and added a specific RGB display/output
	device warning if a primary can't be encoded in L*a*b* PCS.

*	Fixed bug in i1pro driver - the linearization factors were being swapped
	between low and high gain.  This improves the absolute luminance calibration,
	and may have subtle effects on the accuracy of other readings.

*	Added -V option to dispcal and dispread to allow using the
	adaptive mode of the i1pro for display measurement.
	This may give better low level readings ?

*	Improved targen so that it doesn't slow down as badly
	when a very large number of fixed points are used together
	with full spread points.

*	Improved profile/logo2cgats so that it errors
	on a wrong spectral field type.

*	Change spectro/dispcal to default to -f 1.0 (assume
	black is all output offset) to make it work in more
	sympathy to a typical display response. This may give
	better fit and lessen the chance of color tints 
	due to a poor fit.

*	Increased profile/printcal curve smoothing to reduce
	the effect of noise.

*	Changed chartread strip reading mode to allow navigating about the
	strips, saving a partially read chart, and resuming a partially
	read chart (chartread -r).
	Also added a "next unread patch" key to the patch by patch mode.
	Chartread won't exeit automaticcaly now, once all the patches have
	been read (in case any patches need to be re-read), so the 'd'
	key must be hit to finish.
	Removed chartread -a option (it always saves the patch locations now).
	Added a -I option to allow re-using .ti2 files on a chart printed
	with different calibration curves.

*	Modified xicc/cam02 to clip the blue to avoid
	crazy behaviour outside the spectrum locus.
	Removed previous attempt at spectrum locus clipping.

*	Fixed bug in Spyder 3 driver that can cause readings
	to be scaled by a factor of 16. (This depends on
	when the Spyder was manufactured.)

*	Fixed bug in adding CIE illuminant C to spectral support.

*	Change printtarg last row padding to be media color
	for both random and non-random layout.

Version 1.1.0 RC2 (7th December 2009)
-----------------

*	Re-worked gamut mapping to improve saturation levels
	within the bulk of the gamut, as well as improve
	hue preservation. 

*	Changed "la" intent (luminance matched appearance) to have
	zero luminance matching enhancement "knee", to make
	it more appropriate for assessing transformations
	in light of their estimated appearance.
 
*	Added CIE C type illuminant spectrum support.

*	Modified DTP20 driver to double check for an offline
	read chart in case it is running old firmware.

*	Added device power value for targen to allow
	calibrating devices that have extreme non linearity.

*	Fixed bug in targen when full spread patches were
	mixed with other test patch types.

*	Updated yajl library to latest version.

*	Improved X11 XRandR CRTC detection 

*   Added verbosity level to profcheck to match invprofcheck.

*   Clarified licensing of various files (GPLv2+ files, reference
	files and documentation).

Version 1.1.0 RC1 (6 November 2009)
-----------------

*	Added flash measurement support to i1pro and Munki, + corresponding
	option in spotread.

*	Added new link/collink flags -fcmy that force pure 100% C, M and/or Y
	colorant input values to be pure output values. Gamut mapping
	is adjusted sympathetically with these options too.

*	Fixed link/collink so that the -f, fk and -F options used
	to force K only output also trigger gammut mapping
	to the K only destination range. Also made these
	options set black generation and intent in a sympathetic
	way by default. The result is that there now should be
	no discontinuity between the K only mapped colors and
	others in the gamut, and the source gamut should be
	mapped to be within the range of the K only black device.

* 	Modified and improved gamut mapping to fix perceptual uniformity,
	and also greatly improves smoothness and preservation of
	source detail.. Re-tuned gamut mapping parameters.
	Added support for K only black gamut mapping from source
	and/or destination.

*	Fixed most CIECAM02 usages so as to clip values against
	the spectrum locus before converting to Jab. This
	may help avoid poor CIECAM behaviour for imaginary color values.

*	Fixed bug in rspl/inv.c that was causing innacurate
	inverse lookups in some corner cases. This may have been
	afecting black generation accuracy and general B2A table
	and device link accuracy.

*	Added support for Spyder3Express (ie. disable ambient capability
	if it's an Express).

*	Added workalike sRGB and Adobe1998 ICC profiles to /ref
	Note that the sRGB profile has slightly higher accuracy
	(better matching of matrix to white point) than the
	original H.P./Microsoft profile.
	Also provided lab2lab profile to use with collink.

*	Add support for the ColorMunki Create colorimeter.

*	Fixed xicc/xicc.x and xicc/xlut.c to be more robust in
	computing a CMYK black point. Fixed bug in K limit handling.

*	Changed xicc/xfit to use higher order delta E metric, so that
	maximum errors do not blow out. This seems to make the
	output curves a much better fit, and reduces the error
	when higher rspl smoothing factors are used. Curve stiffness
	has been increased to improve smoothness ant match higher order error
	values.

*	Added support for the Christophe Mtairie's Digital Target-3 chart with 570
	patches. (Thanks to Nikolay Pokhilchenko & Ben Goren).

*	Changed the rspl/rev "> colprof: Error - rev: bwd vertex 0 is not prime or secondary"
	error to a warning. This seems to be triggered by odd data sets (ie. monochrome).

*	Created a new tool extractttag to extract text tags from an ICC
	profile. This can be used to extract the original target data
	(ie. .ti3 file) and/or CAL curves from an ICC profile.

*	Fixed all the ink limit calculations to work in post-calibrated
	final device values when per-channel calibration is being used,
	and the calibration curves are embedded in the .ti3 file or ICC profile.

*	Added printer calibration capability:
	Added printcal utility to create and verify printer calibrations.
	Added calibration file support to printtarg.
	Added calibration file support to cctiff.
	New utility "applycal" to apply calibration to ICC profiles.
	Modified targen etc. to distiguish between real RGB and fake
	printer RGB.

*	Changed targen ofps point distribution to maintain
	any initial gamut surface points during itterative
	refinement, and to distribute them independently in
	the sub-dimension they lie in. Changed adaptive operation
	to be the default, and to use a much more sophisticated error
	estimation model in determining the points locations.

*	Fixed problem with reliably detecting backward read strips
	using the i1pro & Munki, by making target/printtarg optimize the
	random patch layout to maximize the difference between
	patches read from each direction. (This problem was more
	prevalent with large charts with lots of strips.)

*	Added support for the LaserSoft DCPro scanner/camera
	target chart.

*	Changed profile/logo2cats.c spectral scaling heuristic threshold
	from 2 to 10 to allow more margin.

*	Fixed bug in spectro/dispwin.c for 256 byte EDID's (thanks to Omari Stephens).

*	Fixed bug in scanin/scanrd.c that caused crash due to diagnositic
	output when a gross chart recognition mismatch occures.

*	Added warnings to colprof, collink and tweak if any values
	get clipped when setting the cLUTs.

*   Fix bug in xicc/xfit.c where too little memory was being allocated.

*	Fix dispwin/dispcal problem on X11 with compositing WMs displaying
	transparent test window.

*	Fix spectro/dispcal to fall back if Jacobian inversion fails.

*	Reduce default reverse cache memory limits to avoid thrashing.

*	Changed all code with my copyright to the
    GNU AFFERO GENERAL PUBLIC LICENSE Version 3.
	This may be of significance to anyone using
	this code to provide a service over the Internet.

*	Modified spyder 2 & 3 driver to change how adaptive works.
	Now increases the integration time to try and get
	a minimum transition count. This speeds Spyder 2
	readings (at some cost to accuracy), while helping
	make the Spyder 3 a bit more useful on dark displays
	(at the cost of a long read time). Also added workaround
	to the Spyder 3 not having a reset command - drain
	any pending read data on startup, so that it doesn't
	corrupt calibration or initial readings.

*	Fix USB instruments so that a comms failure doesn't try
	and re-establish communications. Fix i1pro & Munki so
	that they don't return a comms error on a short measurement.

*	For the ColorMunki on OS X, kill the manufacturers daemon process that 
	has it open, when Argyll wants to open it. (daemon will automatically
	restart).

*	Changed spectro/dispsup.c to show test window without
	black background to position instrument, and
	then re-create the test window with black backgroud.

*	Fixed memory allocation bug in i1pro & Munki drivers
	when sensor gets saturated during display measurement.

*	Tweaked Jambase to work with Microsoft VC++8 and 9
	when the Platform SDK February 2003 is used.

*	Removed need for DDK to access HID devices on MSWindows.
	This simplifies compiling with Microsoft VC++ and
	means that a MingW compile can use HID.

*	Enhanced plot library to aid debugging target/ofps.

*	Added a -M "command" option to dispcal and dispread, that
	allows an external command to supply display readings.
	This could be used to interface to an instrument not directly
	supported by Argyll.

*	Fix spectrum -> XYZ conversion scale factor for absolute readings.
	It was in error by 100/(10.685 * 6.83) = 1.37. This affected display
	and emission readings for the i1pro.

*   Modified printtarg to allow creating of a ColorMunki chart.
	By default the rows are as wide as the instrument, but -h will
	double the row density. 

*	Added -p for projector mode to spotread, dispcal and dispread.

*	Change dispread, dispcal & dispwin to use -P to position test window,
	so that -p can be used for projector mode.

*	Added ColorMunki spectrometer driver.

*	Changed most code that reports progress on optimization
	to aproximate percentage rather than ".....".

*	Added interactive option to spotread to allow saving specrums
	to a CGATS ".sp" spectral file, suitable for use as an illuminant.

*	Added Spyder3 colorimeter driver.

*	Modified libusb/linux.c to make sure that a single large
	request is broken down into overlapping 16K reads, so that
	the i1pro rev A/B doesn't time out on SuSE Linux.

*	Fix bug in spectro/ntio.c involving error() and warning()
	declarations. This causes crashes on machines with no serial ports.

*	Added another challenge/response key for DTP22.

*	Fix bug in gamut creation that caused internal error if
	.gam points matches fake initial gamut tetrahedron.

*   Fix two problems in spectro/i1pro_imp.c:
	The way that calibration files were detected as invalid
	was insufficiently sesitive to the parameters being
 	changed in the driver. This meant reading and partially
	re-using some parameters when the previous calibratin
	should really have been ignored.

	The second issue was in not being sufficiently sensitive
	to sensor saturation for display measurement. Fix by
	now having a zero tollerance, and allowing for 3 different
	display measurement exposures.

*	Fix bug in link/collink -ke where the K value was being
	distorted by not taking into account the B2A per channel output curves. 

*	Fix bug in spectro/hidio.c that can cause a crash (bus error) on OS X
	for any program that accesses the instruments.

*	Make cgats lib easier to use from C++ (Thanks to Alastair M. Robinson).

*	Fix ICC spec. compliance issue with minimum
	description tag length in Profile Sequence Description
	tag type.

*	Fix bug in spectro/dispwin that prevented DPMS being
	re-enabled if the process is killed.

*	Fix bug in xicc/tiffgamut.c that prevented it working for
	Lab TIFF input. Fixed issues with doing image specific gamut mapping
    in collink.

*	Make sure CGATS file identifiers are always a minimum of 7 characters.

*	Add 'targ' tag to hold chart data in profiles.

*	Fix problem where rev would fail on systems with lots
	of RAM, due to running out of Virtual Memory space.
	This happens mostly on OS X, because its malloc
	routine use a lot more VM for small allocations
	than the actual memory consumed.

*	Fixed problem with Spyder 2 driver, where errors or user
	terminating/aborting measurements leaves the instrument
	in a hung or corrupted state. Fix by making sure that
	a measurement is always completed before returning.

*	Added Color Rendering Ra Index to measurements returned
	from spotread for ambient or with the -T flag.

*	Add an option to tweak/refine to improve matching for
	white point relative test chart data (Relative Colorimetric
	intent matching).

*	Fix a memory leak in gamut.c, plus a few other 1-off minor leaks
	elsewhere. (Thanks to Jordi Nodal for pointing these out.)

*	Add -U scale option to colprof so that input profiles can be created
	that have a media white that is whiter than PCS white.

*	Fixed bug introduced in V1.0.0 in matrix input profiles where white point
	was being normalized rather than being left absolute.
	Also changed Lut based display profiles so that the white
	point is forced to have a Y value of 1.0, to bring it into
	line with matrix profiles. (This may worsen the verification
	match to the original data though.) 

*	Change rev cache RAM allocation to make sure
	ARGYLL_REV_CACHE_MULT scaled value can't exceed VM size.

*	Added -A option to displcal, so that the neutral axis to
	black point blend rate can be altered, and changed default to 4.0
	to improve the off axis visual appearance with some LCD displays.

*	Made verify and refine a bit more robust in the face
	of different format .ti3 files, partucularly those created
	by logo2cgats.

*	Added a -O parameter to tiffgamut, to allow the resulting gamut
	file to be located somewhere other that the directory the last .tiff
	file is in.

Version 1.0.4 bug fix release  (30th June 2009)
-----------------------------

*   Modify icc/icclib to protect against integer overflow exploits,
	and fixes to minor bugs.
    Bump icclib version to 2.11 to reflect this.

*   Fix bug in spectro/hidio.c that can cause a crash (bus error) on OS X
    for any program that accesses the instruments.

*	Fix bug in xicc/xfit.c where too little memory was being allocated.


Version 1.0.3 bug fix release  (3rd September 2008)
-----------------------------

*	Modified tiffgamut so that it processes an arbitrary number
	of raster files. Also added a filter option, that filters out
	little used colors from the raster gamut.

*	Changed gamut mapping to fix problem in which the gamut
	mapping for profiles didn't match that in collink by
	fixeing out of gamut mapping to make extended source
	gamut of B2A table more sensible without afecting
	primary gamut hull fidelity. Tweaked the gamut mapping
	to de-emphasise luminence matching slightly, resulting
	in more saturated but darker primaries for the typical
	RGB->CMYK gamut mapping.

*	Fixed problem with i1display in which it would
	time out for some particular inputs (low level dynamic
	input ?) 

*	Fixed MSWindows screensaver reset to work on
	Vista by adding fake mouse move event.

*	Changes rspl/rev to have a "fast setup" mode
	that trades a faster setup time for slower
	reverse lookups. This is to improve the
	responsiveness of xicclu.

*	Fixed bug in dispcal when using -a with -t

*	Added -L option to printtarg to suppress the i1pro target holder
	clip margin.

* 	Fix yet another PPC GCC optimizer bug in spectro/dispread.c

*	Modifed rspl/rev cache allocation to make sure
	that it is somewhat less than the maximum virtual
	memory that a process can allocate. On some systems
	with lots of RAM, it is possible to have malloc() fail
	due to this.

* 	Added support for i1 Monitor instrument,
	which is an i1pro without reflective capability.

Version 1.0.2 bug fix release 19th August 2008
-----------------------------

*	Fixed two typo bugs in colprof (xicc/xfit.c) to do with output
	per curve optimization - the symptoms were gcc based compiles
	taking a long time to create the A2B tables.

*	Added workaround to strange i1pro Rev A upgrade/Rev B quirk,
	that causes extra time to be taken for reads.

*	Added some extra verbose output when creating profiles (rspl/rev)
	to show the system RAM detected and the limit imposed on
	each rev cache. Also changed code to prevent failure when
	there is not enough memory to allocate a single cell
	to search, and to fix memory limit setting for systems that
	may have 4 Gbytes or more of memory.

*	Added new option to collink -fk, that forces 000K input
	to K only output.

*	Fix dispwin.c so that -K option (calibrate instrument)
	doesn't fail when it thinks two dispwin's are being requested.

*	Change spectro/hidio.c so that HidD_GetAttributes() fail is ignored.

*	Fixed bug in dispcal which causes a numerical fault if a Yxy white point
	is specified and ambient correction is used.

*	Changed colprof -bn to be the same effect as -B (ie. a minimal resolution
	B2A table).

*	Fixed dispwin -R "Effective LUT entry depth" report to work without -v.

*	Modified MSWindows display enumeration to not ignore displays
	that have EnumDisplayDevices() fail, but ignore displays
	with a name \\.\\DISPLAYV*. This us to get it working under VMWARE. 

*	Added device target value quantization option to
	target/printtarg, as well as making it default for TIFF output files.

*	Fixed a bad memory leak in render/render.c, that was
	affecting target/printtarg. Probably improved the
	anti-aliased rendering speed too.

*	Fix typo in spectro/dispwin.c that sometimes causes a crash
	when the system has XRandR 1.2.

*	Fix latent bug in xicc/xfit.c that could affect
	profiles that are not white point corrected (ie. colorof -u inputdevice). 

*	Fixed problem with an i1pro that has had it's
	EEProm reset after a firmware upgrade - a previous
	calibration EEPRom integration time of 0.0 is increased
	to the minimum integration time to prevent divide by zero etc.

*	Added Argyll version number to the i1pro calibration file,	
	to try and make sure that old files are invalidated with
	each potentialy incompatible update.

*	Fix LUT entry depth reporting bug, and add yet another
	workaround for the GCC/PPC optimizer bug.

Version 1.0.1 bug fix release (14th July 2008) 
-----------------------------

*	Changed XRandR code to index the _ICC_PROFILE property
    such than inactive displays are ignored.

*	Fixed problem in rspl/rev.c where the memory consuption
	was sometimes exceeding the maximum RAM limit.

*	Changed XRandR code to fall back to other extensions
	if it fails simple VideoLUT access tests.
*	Add environment variable "ARGYLL_IGNORE_XRANDR1_2" to
	cause XRandR 1.2 to be ignored on X11 systems
	that have buggy XRandR 1.2 implementation.

*	Fixed problem with locating displays on MSWindows with
	some particular configurations.

*	Fixed bug introduced into cam02.c that ignored
	enumerated viewing condition.

*	Changed udev USB matches to lower case, since
	apparently udev does a text match rather than matching
	the integers...

*	Fixed malloc size bug in profile/logo2cgats.c
	(thanks to Steven Greaves).

*   Fix dispwin so that the lack of an EDID_DATA atome is
	not a fatal error.

*	Fixed jcnf so that the temporary file is in the same directory
	as the file it will be renamed to.

*	Added debug option to dispwin/ucmm to help with diagnosis of
	locating displays.

Version 1.0.0 changes	(1st July 2008)
---------------------

*	Changed input device profile creation to create B2A table
	by default. This can be disabled with the -b option.

*	Changed scanin to pass spectral information from reference file
	to .ti3 file, and also changed coloprof to honour observer and
	illuminant options for input profile creation.

* 	Added check to using libusb to check that it has
	been patched to work properly with Argyll supported instruments. 

*	Remove termination character setting from ntio.c and unixio.c
	to work around problem with Prolific 2302 USB<->Serial converted.

*	Fixed bug in MingW build that caused a run time
	"(null) DLL cannot be found" error, for any
	program that linked to the libusb library.

*	Modified profile/logo2cgats to output the sample name,
	to make it more useful. Added -n flag to spectro/spec2cie
	to optionaly suppress spectral output. Documented spec2cie-p
	(plot spectrum) flag.

*	Modified gamut/nearsmth.c to change optimization search
	from 3D to 2D to improve speed.

*	Added experimental "Daemon" mode to dispwin, so that it
	monitors an X11 server and keeps each screen up to date
	with the corresponding profile and calibration using XRandR 1.2.

*	Tweaked dispcal to try and improve behaviour and resulting
	smoothness of curves. Added black brightness option -B.
	Added extra report to -R to show VideoLUT entry bits of significance.

*	The i1pro fixed integration time of 2.0 seconds for display 
	calibration turns out to be too long for some very bright
	displays. To cope, an alternat 1.0 second integration
	time is calibrated, and switched to if the display
	is bright enough.

*	Changed distribution archives so that they have a top
	level directory. Changed OS X and Linux to gzip'd tar
	archives rather than .zip, so as to preserve the
	UNIX style permissions better.

*	Modified rspl/rev.c to add improved nearest acceleration
	lookup grid structure, to tackle performance issues.
	Changed aceleration grids to only hold fwd cells that
	are within the ink limit. Changes sub-simplex handling
	to make common face sub-simplexes shared between cells.
	Fixed bug in ink limit that was causing many sub-simplexes
	to be treated as if they straddled the ink boundary, slowing
	down inversions with ink limits applied. Changed reverse
	memory size accounting from cells to bytes, for more
	accurate containtment of memory usage below the swap
	threshold. Made default memory limit automatically adapt
	to available system RAM. Increased default reverse
	acceleration grid resolution to be twice the forward grid
	resolution, for much improved speed. Added another performance
	tuning environment variable ARGYLL_REV_ACC_GRID_RES_MULT to
	allow altering the reverse acceleration grid resolution.

*	Fixed cctiff so that it will copy a tiff file
	with no color transformation. This allows embedding
	an ICC profile in the output. Note that the TIFF file
	will have been modified, the format may have changed,
	and tags may be lost (ie., this is not the same as
	an "in place" embedding).

*	Added a simple utility "extracticc" to extract
	embedded ICC profiles from TIF files.

*	Modify tiffgamut, cctiff colprof and collink so that a TIFF file
	with an embedded profile may be used to supply ICC profiles.
	Also added an option to cctiff of embedding a profile in the
	destination raster file.

*	Added a micro cmm to Linux port, to supord recording
	the installed display profile to monitor association
	in the file system. dispwin uses this for installing
	display profiles, as well as setting a display
	to the currently installed profile.

*	Changed dispwin operation on OS X to be able 
	to set the display calibration in a semi-persistent
	way that is similar to the behaviour on other systems.

*	Fixed imdi/cctiff and link/collink so that they
    no longer rely on a Matrix profile device space
	being roughtly perceptualy linear - instead
	use the per channel curves and convert them
	to an L* type space for indexing the CLUT grid,
	and also make a Matrix output space L* like
	for interpolation.

*	Changed colprof to extract the source gamuts
	for the perceptual and saturation gamut
	mapping from the perceptual and saturation
	A2B tables of the source profile (if they exist).
	This makes for a better match of the gamut
	mapping to that particular source profile
	when subsequently linked with a CMM that
	chooses the same intent table for source
	and destination profiles. Changed iccgamut, tiffgamut
	and xicclu to correspond - make Jab appearance space
	selection orthogonal to intent table used.

*	Checked and adjsted ambient calibration (Lux etc.).
	The Eye-One pro, Huey etc. now give reasonable readings.

*	Changed dispcal to make handling of input and/or
	output black offset consistent across all calibration
	curve selections, as well as make it selectable/blendable.
	Added some other standard video calibration curves.
	Added a viewing conditions transform based on CIECAM02
	to adjust for the effect of ambient light on display
	visual contrast, plus option of measuring the ambient
	light with the instrument.

*	Made cam02 set_view() argument order consistent.

*	Added battery status report to spotread and chartread
	for DTP20.

*	Enhanced dispwin to take care of installing
	and uninstalling profiles for a chosen display.
	Also allow setting the display calibration to the
	appropriate installed profile.

*	Changed colprof so that the .ti3 data is
	included in a 'DevD' and 'CIED' text tag in the profile.

*	Added X11 RandR 1.2 support, and use this in
	preference to Xinerama and XF86VidMode extensions.
	Support the _ICC_PROFILE atom in the Xrandr output
	object, as well as the usual RootWindow properties.

*	Added TIFF file output support to target/printtarg,
	as well as an identification string on each page.

*	Enhance argyll/render to support text (using Hershey fonts),
	solid and dotted lines, improve speed, plus add
	anti-aliased output. This is in order to make
	it usable with printtarg.

*	Completely re-wrote the Jambase & Jamfiles to make
	a build system thaht works from the top and within
	sub-directories, as well as cleaning up the Jamfiles
	and improving the build system capabilities.
	This solves the circular dependency issues,
	makes a full build faster and cleaner,
	and makes it easier to ensure that a full
	build has consistent build flags and completes
	sucessfuly. The system TIFF library will
	now be used if available. Argyll project setup
	is now in "Jamtop" in the project root directory.

*	Added ability to dispwin to display test patches
	from a CGATS file, so that it can be used for manual
	patch measurement.

*	Improved ability of cctiff to cope with input
	files that have extra planes.

*	Changed tiffgamut to accept Lab encoded TIFF files without
	using an ICC profile, as well as accepting a colorspace
	ICC profile.

*	Removed limititation that VideoLUTs have exactly 256 entries.

*	Fixed problem with accuracy of dispcal -o profiles.
	[There were two issues, one being that the fitting was
	 weighting smoothness to the detrement of accuracy,
	 and the other being that there are unconstrained
 	 parameters that allow the model curves not to
	 go through 1,1]

*	Fixed problem with Linux PolicyKit/Hal permission
	files not enabling serial ports and Huey.

*	Fixed and verified that the major Linux/X11 screensavers
	(X11 saver, xscreensaver, gnome & kde screensavers) and DPMS
	are disabled properly, and now we avoid doing an exec()
	every 60 seconds!

*	Modified libusb to address Linux intr/bulk polling
	and reliability issues.

*	Improved install documentation in the light of current
	Linux distributions, and MSWindows versions.

*	Renamed "profile" to "colprof", and "icclink" to "collink"
	to avoid clashes that have arisen with other executable names.

*	Fixed bug in scanin/scanrd.c that sometimes caused
	a double free crash on Linux. (Thanks to Guy K. Kloss)

*	Modified dispwin to open a device context to a particular
	MSWindows display differently, for better compatibility with
	MS Vista.

*	Changed dispwin to allow several of the commands
	to operate in one call. Clearing the LUT,
	setting the X11 ICC_PROFILE, loading the profile or
	X11 ICC_PROFILE can now be done with one
	invokation of dispwin.

*	Fixed bug in dispcal that affected black level
	adjustment and calibration. Symptom was a black
	level not quite as low as it should be.
	[Thanks to Hal V. Engel for noticing this]

*   Made sure that display profiles have the luminance tag
    value set, so that it's possible to recover the
    actual instrument reading.

*	Fixed dispcal and dispread -dfake so that
	they will take notice of a -kcal file.

[Beta 8 Snapshot 2008/1/15]

*	Added -S and -L options to spectro/dispwin for Unix/X11
	systems, to allow setting and using the _ICC_PROFILE
	root window property to store the displays profile
	and calibration.

*	Changed MSWindows and OS X dispwin/dispcal/dispread test
	window to be title and borderless, and also have
	an option (-B) to mask the whole screen behind the
	test window with black.

*	Added a "create intersection gamut" method
	to the gamut class, and also added a companion
	-i/-I flag to viewgam to print out the intersecting
	volume of the first two gamuts, and oprionaly
	save the intersecting gamut. Improved robustness of
	the gamut "radial" point test methods slightly.

*	Fixed spotread so that it doesn't display any
	color information when reading the Huey ambient
	sensor, and added an option (-T) to show
	color temperature for each reading.

*	Added gamut volume report (with -v) to tiffgamut.

*	Changed spectro/spyd2setup.h to only set the
	loaded flag after sucessfuly loaded a firmware file.

*	Changed numlib/numsup.c error, warning and verbose
	functions into function pointers so that they
	can be overridden by callers of library functions
	that make use of them (lprof).

*	Switched icc and cgats library from
	the "BSD like" license to the "MIT" license.

*	Added better DTP22 support to driver and
	printtarg.c (thanks to Nigel Rowe)

*	Fixed spectro/ntio.c to cope gracefully with systems
	that don't have any serial ports.

*	Renamed spectro/printread to spectro/chartread.

*	Fixed problem in spectro/usbio.c where on
	some systems usb_detach_kernel_driver_np() needs
	to be called before usb_set_configuration().

*	Added option to dispread (-C) to allow a shell callout
	with each color being tested, to allow relaying the
	test patch value to a remote display via a script.

*	Removed spectro/filmread.c and target/filmtarg.c
	until their licensing compatibility with GPLv3 is
	figured out.

*	Added -W parameter to instrument using programs,
	that allows overriding the default serial flow
	control protocol. This may allow working around
	problems caused by flow control not working
	on certain systems.

*	Added quick ICC profile creation to dispcal,
	so that single operation calibration & profile
	is now possible.

*	Fixed some bugs in cctiff handling of Lab PCS and/or
	-p operation.

*	Added a new test chart type to render/timage, for
	testing profile B2A tables.

*	Added -V option to spectro/dispwin, that verifies
	the currently loaded calibration.

*	Added (yet another!) variation of the spectral
	field names to support colorport output,
	to profile/logo2cgats.

*	Fixed problem with dispcal -u (and possibly
	other cases, ie. profile) where an out of range
	VideoLUT calibration value can wrap around
	rather than saturating.

*	Improved black point setting in dispcal,
	so that it doesn't get lighter if the white point
	is reset during the run. Also changed the white
	point cliping to use the device model, rather than
	relying in the cube clipping code, which was not
	so accurate.

*	Modified profout per channel curve algorithm
	to be encapsulated in an independent module (xicc/xfit.c),
	and to create input curves that adjust the curve shape and
	clut grid locations independently of each other.
	This has similar performance to the old code in many
	cases, but reduces fit errors for certain types
	of device characteristics.

[Beta 7 Snapshot 2007/10/15]

*	Fixed minor bug in icc.c - was double freeing while
    a V4 profile was being rejected.
	Also changed SYMETRICAL_DEFAULT_LAB_RANGE
	B2A input curve tweak for 16 bit -
	the range can be almost -128 to 128 and still
	remain symetrical.

*	Improved robustness of dispcal in zeroing in
	on the neutral patches. Got Jacobian matrix
	refinement going, added device value clipping,
	and made it revert back to the best ever
	value as a worst case result. Tested all the colorimeters
	on every platform, fixed bugs with spyder on
	different platforms (USB bugs ?).

*   Tweaked spyder driver to improve repeatability
	for low light conditions - made integration
	time adaptive.

*	Added Huey colorimeter support, including driving
	it through the HID drivers on MSWindows and OS X.

*	Added Spyder 2 Colorimeter support, including the
	firware transfer utility spyd2en, to allow the
	end user to get their instrument workings.

*	Fixed a problem in dispwin/dispcal/dispread not keeping
	the Gnome screensaver at bay.

*	Fixed very minor error in profile that caused a crash
	if -taw was used without a -s.

*	Hopefully fixed the last lingering issues with the
	gamut function "split plane" problem. Improved
	the split plane choice criteria too, reducing
	the structure size and (presumably)
	improving interogation speed slightly.
	(Visualizing things always helps a lot!)

[Beta 6 Snapshot 2007/9/15]

*	Fixed bugs in dispcal target curve - the curves
	didn't seem to be as neutral as they should be.

*	Changed HCFR setup to assume no special 2mm apatures
	on its sensors, since this is the default hardware configuration.

*	Added support for more scan targets. The list is now:
	IT8.7/2, ColorCheckerDC, ColorCheckerSG, 
	Eye-One Pro Scan Target 1.4 and HutchColor HCT.
	
*	Fixed bug in printread -xl :- XYZ wasn't being scaled to 100
	(thanks to Duane Ruck for pointing this out).

*	Fixed bug that affected printread handling a chart with
	the patch location identifier that has patch location
	before strip location. This was affecting reading the
	Eye-One Pro Scan Target 1.4 chart.

*	Added a -a flag to printread, to cause the patch locations
	to be saved to the output, so that a chart read can be used
	to create a scan/input CIE reference file.

*	Added good/bad beeps to printread for the Eye-One Pro,
	to speed up chart reading.

*	Added a -B flag to print read, to disable bi-directional
	strip recognition if the reference patch values are not to 
	be relied upon.

*	Modified i1pro patch recognition to make it more
	sensitive to differences in just some wavelength bands
	- this fixes Eye-One Scan Target 1.4 patch recognition,
	and generally helps robustness for all charts.

*	Supressed "There is at least one patch with an very unexpected response!"
	warning in printread unless the expected values were created using
	a specific device model such as an ICC or MPP profile in targen.

[Beta5a Snapshot 2007/9/10]

*	Fixed bug that had crept into profile/profout.c
	that wreckes the contents of the gamut lut.

*	Added a manual chart recognition fiducial marks to
	print charts that are intended to be scanned in (printtar -s),
	so that manual chart recognition can be used on these too.

[Beta5 Snapshot 2007/8/28]

*	Fixed serious bug in dispcal & dispread on Linux -
	screensaver suppression using fork() was causing
	programs to execute twice at the same time.

*	Changed spectro/dispcal.c calibration algorithm
	to be faster, more precise, and more robust.
	Improved handling of "native white" mode
	to better hit the target 1.0 RGB values.
	This should contain the worst case errors better.

*	Changed printtarg to pad i1 test chart last row,
	since the printread logic can't cope otherwise.

*	Added a manual chart recognition option (-F) to scanin,
	that makes use of fiducial marks defined in the .cht file.

*	Added a -G gamma option to scanin/scanin to allow
	some flexibility in the face of extreme device behaviour.

*	(Hopefully) fixed DTP02Q thanks to feedback from Udo Lembke.

*	Changed all of my code and other GPL code that allows upgrading,
	to the GPL Version 3 license.	Corrected "licence" to "license"
	in many (but probably not all) places.

*	Modified DTP51 driver to ignore a "bad command"
	error to the GI command (allow for old firmware ?)

*	Modifed dtp20 on-line reading to be more forgiving
	of unexpected status after a strip read.

*   Added some fudge scale factors for i1pro emission
	and ambient modes. I'm not sure at the moment where the
	real scale factors come from, so I've roughly matched
	the scale to what the GM driver returns.
	Also add fudge factor for i1display2 ambient mode.

*	Fixed some bugs that had crept into DTP20
	offline chart reading (not reading, heap corruption on free).

*	Added diagnostic for DTP20 offline chart reading
	to hint at what strip hasn't been read.

*	Changed printtarg to optimise contrast between
	test patches and spacers.

*	Added "aproximate least squares" setting mode
	to icc set_lut and rspl set_rspl to improve average
	accuract when setting interpolation arrays from
	a function (ie. when inverting A2B).

*	Added a "display with normalized brightness" to spot
	read to make it easier to verify spot readings
	for a display profile.

*	Fixed "r" and "rl" intents so that the white points
	are linearly mapped, as is the normal expectation with
	relative colorimetric intents.

[Beta4 Snapshot 2007/5/16]

*	Fixed icclib to handle unknown tag types now,
	as well as cope more gracefully with ProfileMaker4
	profiles that have an illegal flag value in their
	data tagtype flag field.

*	Modified gamut mapping to improve coherence of mapping
	outside the source gamut when used to create B2A table.

* 	Created first cut of VRML debug plot library in plot/vrml.c,
    and switched gamut/gammap.c to use it. Other diagnostics
	could be switched to use it too (ie gamut/gamut.c).

*	Modified ciecam02 to improve handling of imaginary colors,
	and coherence in those regions.

*	Added a delay between setting a screen color (spectro/dispwin.c)
	and starting to read the patch with a display instrument.

*	Fixed issue on OS X with locating displays - IO dictionary
	string handling.

*	Made the dispcal/dispread calibration a bit friendlier if the
	instrument doesn't actually support calibration.

*	Added profile comment options to link/icclink.

*	Fixed bugs in xicc/xicc.c and xicc/xlut.c that were affecting
	how black generation was controlled by the input luminence
	value for a -kp option. This affected profile/profile the
	most, but could also have changed how link/icclink -G
	generates black as well. The black generation should now
	match quite closelgy between the B2A tables generated
	by profile/profile, and the black generation generated
	by link/icclink -G.

*	Added "patch by patch" mode to print read, that allows
	reading media where strip recognition is unreliable.

*	Added patch consistency tolerance modifier to
	printread and the i1pro driver.

[Beta3 Snapshot 2007/4/10]

*	Modified i1pro driver to do scan measurements with
	single USB read, to avoid read latency issues.

*	Added display/emission distinction for i1pro,
	to speed up display measurement, while still allowing general
	ambient measurements to be adaptive. Added display mode
	to spotread.
	
*	Added workaround to the i1pro rev D crashing on
	close under Linux. It's reset rather than closed.

*	Modified libusb-win32 to fix problem with i1pro rev D
	crashing on a get_configuration.

*	Reworked scan patch recognition to work for reflective
	or emissive scans, and to be more tolerant of noisy media.

*	Added support for emission scans to i1pro and printreaf.

*	Fixed ref/*.sp files, as well as adding back in D50*.sp
	variations that seem to have gone missing.

*	Change i1pro trigger/read logic to ensure that
	process scheduling latency doesn't cause the read to
	be late, causing read failure. Add trigger/read timing diagnostics.

*	Fix i1pro switch thread cleanup to avoid memory access fault.

*	Tweak xicc/xspect.c FWA to have better estimation accuracy
	with a range of paper stocks, as verified by xicc/spectest2.c
	and xicc/spectest.c

*	Fixed spotread to display FWA corrected spectra correctly,
	as well as fix some bugs with the reference spectra.

[Beta2 Snapshot 2007/3/29]

*	Fixed gcc 3.3 optimiser problems on OS X which were
	causing crashes in spotread -S and i1pro high res.

* 	Modified spec2cie to look for specific device values to
	identify white, since some devices fool looking for maximum Y.

*	Fix triggering to make FWA spotreads work.

*	Fix bug in Spectrolino calibration with filter messages
	work properly.

*	Fix bugs with DTP41 and DTP51 triggering.

*	Change how rows per strip are stored in .ti2 file,
	to remove base 62 limit.

*   Increase scope of target/printtarg scale options,
	and add extra scale for spacers.

*   Changed Linux serial port location to look
	for /dev/ttyUSB* as well as /dev/ttyS*,
	and only offer them if they can be opened.

*   Fix i1pro driver so that it does not return
    spectral data unless asked.

[Beta1 Snapshot 2007/3/22]

*	Finished i1pro driver by adding highres spectral mode
	(+ matching changes in dispcal, dispread, printread, spotread),
	and making the calibrations non-volatile so that
	they can be retained between utility starts.

*	Changed the default observer backto the 1931 2 degree
	observer in various programs (profile etc.), so there
	is less surprise at the discrepancy between the
	default instrument values and the values when
	spectral data is used.

*	Changed profile/logo2cgats so that it uses a heuristic to
	determine if the spectral data needs scaling by 1.0 or
	100.0, since it seems the type of file cannot be relied upon
	as an indicator.

*	Fixed link/icclink to record a more accurate summary of
	overall intent in the header.

*   Re-worked tweak/refine.c slightly, to try and improve how
    it copes with out of gamut points. Added automatic
	extra weight (5) for lightest patch.

*   Added new black generation feature to link/icclink. It can
    now take the output inking from that of the output profile
	B2A table, just like revfix.

*   Fix bug in link/icclink - the changeover to using K target rather than
	locus had a bug in it. It was still partially defaulting to locus rather
	than K value target (some C library has a global called locus ?)

*   Made it so Eye-One pro can recognise strips when read in either direction.

*   Re-worked instrument calibration and measurement triggering
    to support instrument operated buttons.

*   Added support for DTP20 spectrometer.

*   Added support for Eye-One Pro spectrometer.

*   Fixed bug in profile where RGB space profiles didn't handle FWA correctly.

*	Fixed some bugs in cctiff that were causing inacurate results.

*	Added support for the DTP22/Digital Swatchbook.

*	Changed serial port driven instruments type to be automatically
	recognized, eliminating the need for the -i option on
	all the instrument using utilities (dispcal, dispread, printread, spotread).
	
*   Reworked gamut hull triangulation, hopefully making it more
	robust against any numerical issues.

*   Fix bug in printtarg that caused green spacers instead of white ones.

*   Added -c flag to spectro/dispwin. This clears a display
	calibration.

*   Added support for Eye-One Display 1 and 2 colorimeters.

*	Added extra configuration for DTP92 to cope with
	a firmware bug for certain early DTP92Q instruments.

*	Fixed bug in logo2cgats - X-Rite ColorPort spectral data
	is already scaled to 100, so only do this for Gretag files.

*	Added the -m flag to scanin/scanin, to allow it to
	return true mean values, rather than robust mean values
	(but see latter bugfix).

*	Fixed a bug in profile/profout.c that caused some matrix shaper
	profile to generate colorant XYZ values slightly less than
	0.0, due to numerical inacuracy, triggering an assert.

*   Added a new option to spectro/spot read to allow use of
    the Spectrolino with filters fitted.

*	Added error handler to spectro/dispwin.c, so that there
	is not a fatal error triggered in just listing the
	screens on an X11 system running TwinView or MergedFB.

*   Fixed problem with USB/DTP94 that caused instrument
	coms to fail after doing calibration. 

*   Fix bug in render/timage.c that caused central wedge to be
	corrupted.


Version 0.60 changes (July 17 2006)
--------------------

*	Changed both gamut mapping intents, and enumerated
	viewing conditions to be symbolic mnemonics, so that
	the options don't change as intents and viewing conditions
	are added, deleted or re-ordered. Selection of
	intents or viewinging conditions using a numerical
	enumerator is no longer supported, to help
	catch problems caused by changes to the list
	with this releas.

*	Fixed bug in profile/profile.c when creation XYZ PCS
	LUT profiles - the gamut tag was being created with the
	wrong color space, and often this would cause an
	internal fault in gamut surface creation.

*	Changed profile/profile so that if a source
	gamut/profile is supplied for display LUT type
	profile creation, an ICC V2.4.0 profile is created
	with all 3 intent tables, rather than the single
	colorimetric intent that is default for ICC V2.2.0 and
	earlier. Fixed icc/icc.c to properly support the
	possibility of a full set of intent Luts in
	display and input profiles. (Profile does
	not yet support intents for input profiles.)

*	Added new intent to link/icclink and profile/profile.c,
	that does an absolute colorimetric link, but
	will scale the brightness down if needed to
	avoid clipping the source white point. This
	is useful in soft-proofing situatations.

*   Went through with both gcc -Wall, and Vc++ -w3
	and reduced the number of waring messages.
	Fixed some very minor bugs along the way.

* 	Made additional changes to spectro/dispcal.c, to
	improve behaviour when adjusting controls with and
	without targets. When adjusting without a white target,
	the control hints now help you adjust to be on
	the chosen black body or daylight locus.

*	Changed profile smoothing factors that are different
	for the L* a* and b* channels.

*	Made profile/profile.c label the profile with the platform
	it was created on.

*	Improved the device model used by dispcal, including
	optimising the model, so that it zero's in on
	calibration faster, and handles the black point
	more accurately. Added a variable -k option to
	dispcal.

*   Added display controls addjustment mode to dispcal,
	and altered the target gamma curve to better take the
	black point into account. 

* 	Added report option to dispcal, to measure and report on
	the current display behaviour.

*	Added verification mode to dispcal (-E), to
    allow checking how well a display meets its calibration
	targets.

*   Added -N option to dispcal, dispread and spotread to
    allow instrument calibration to be bypassed. This makes
    repeatedly operating some instruments (ie. Spectrolino)
	more convenient in emission mode.

*	Added a "load video LUT" mode to dispwin, so it can now
	be used to initialse the displays from either ICC profiles,
	or Argyll .cal files. Can be used on all platforms (but
	particularly MSWindows and X11) in startup scripts.

*	Fixed bug in X11 disable screensaver, and disabled
    the cursor over the test window.  

*	Added proper multiscreen support on all platforms
    (Even X11 Xinerama!).

*	Fixed bug in dispcal that was causing the achievable
	brightness calculation to misbehave.

*	Added -u "update" option to dispcal, to speed up
	maintenance of display calibration.

*	Added separate options in dispcal for a daylight or
	black body color temperature target.

*   Added "plot spectra" option to spotread.

*   Added support for the X-Rite DTP94 (AKA OPTIX) to spotread, dispcal,
	dispread. Added -y option to allow specifying whether a CRT or LCD
	is being read.

*   Streamlined instalation (particularly on Unix and OSX),
    so that tifflib and libusb don't need special handling.
	Changes to Jambase to accomodate this.

*   Added support for USB connected instruments using libusb.

*   Added support in profile/logo2cgats for converting from
	X-Rite ColorPort format.

*	Added extra facilities to imdi to suppport arbitrary
	colorant order, arbitrary pixel padding, reduced
	runtime code size and improved cross platform
	compatibility. 

*   Added warnings in all the instrument driver
	code, that instrument companies are not to be
	expected to support anything involving these drivers.

*	Completed new version of cctiff, that deals with an
	arbitrary sequence of profiles, as well as supporting
	L*a*B* encoded TIFF I/O.

*	Added alternate sort algorithm to imdi/cgen.c, for
	16 bit input support, speeding up higher dimensional
	input conversions.

*   Changed icc/iccdump so that the -t parameter can
	be specified multiple times.

*   Added extra PCS curve for BtoA table of XYZ LUT
	profiles :- this greatly improves the accuracy
	of the BtoA lookup of XYZ LUT profiles.

*	Added greytiff utlity to binary distribution,
	and also added option to convert using CIECAM02
	space, for lighter chromatic colors.

*	Added ColorantTable tag to profiles created by
	profile/profile.

*   Added a new option to dispcal and dispread, to allow
    the test window to be positioned and sized. This
	allows some people to cope with multiple displays
	better, and may give some flexibility in applying
	these utilities to projectors etc.

*   Added three stage overal conversions to icc/icclib.c,
	for monochrome, matrix and lut conversion classes.
	This is to make it convenient to split up every conversion
	into input per component, core intercomponent conversion,
	and per component output, to match the capabilities
	of imdi.

*   Modifed xicc/xicclu, xicc/revfix.c, profile/profile.c
	and link/icclink.c, to default the -k black generation
	to setting black level targets, instead of locus targets.
	In pratcice it seems easier to create smooth black curves
	this way, especially when meshing with the black behaviour
	forced by ink limits and L target levels.
	Backward compatibility with the previous controls is provided
	via the -K flag. Default black generation has generally
	been switched to -kr. xicc/xicclu has had the -kq option
	added, so that the behaviour of icclink -kq can be
	explored. Some bugs in -kq may have been fixed.

*   Added full verbosity levels to icc/icclu and xicc/icclu,
	so that -v0 can be used to capture batch output that
	is ready for further batch processing.

*   Enabled proper gamut tag creation in profiles.

*   Fixed numerical issue in xicc/xicc.c:icxdCIE94sq(),
    that was causing profile to fail when optimising
	matrix and curves.

*   Bumped up the default profile smoothing factors,	
	as the resulting gamut boundaries were noticably
	bumpy. Default profile -r is 0.5%, and internal
	factors within rspl/scat.c have also been increased.
	This seems to be favouring smoothness over accuracy
	somewhat, but is still on the shallow part of the
	"knee", where further increasing smoothness would 
	start to strongly decrease fit.

*   Fixed problem in profile (xicc/xlut.c) in locating
	the black point. Doing one search is not robust
	given the behaviour of many profiles, so
	several searches are now used to avoid local
	minima. The same fix is applied to xicc/mpp.c
	(Thanks to Gerhard Fuernkranz for discovering
	the problem.)

*   Fixed target/targen, link/icclink, xicc/iccgamut,
	xicc/fakeCMY, xicc/revfx, xicc/xfbview and xicc/xicclu
	to have estimated default ink limit values. Added input
	profile ink limit options to link/icclink.

*   Added a function to icc/icc.c to estimate the
	total link limit and per channel limits of
	an ICC profile. This is to workaround the lack
	of a standard tag in the ICC profiles.
	A function built on top of this in xicc/xicc.c
	(icxDefaultLimits()) established default total
	and black ink limits for a profile.

*   Modified gammap.c & nearsmth.c to increase
    the control over gamut mapping, and add new features.
	The controll weightings within gammap.c are now
	tables rather than #defines, and can be segmented
	by color, to fine tune particular areas. Only
	yellow uses this feature, to keep the gamut mapping
	universal. Two aditional features have been added,
	cusp mapping, that applies a degree of rotation to
	areas surounding source primary/secondary colorant
	cusps to partially align them with the destination
	cusps. The radius of influence of this mapping is
	settable. Another factor called "elevation" has been
	added, that simulates the effect of inflating the
	source gamut, allowing more complience in the
	mapping of the control vectors.
	Just perceptual and saturation tables are present.
	In nearsmth, expansion of the gamut is finessed a little
	by termporarily reversing the direction of the mapping
	when expansion is present. There are lots of
	other changes in nearsmth.c aimed at improving the robustness
	and behaviour of the nearsmooth function.
	The gammap tuning factors are aimed at providing good saturation
	while maintaining smoothness at the gamut surface.
	
*   Added code to the gamut hull finding, to locate and
    store the primary and secondary colorant "cusps" in
	the gamut file, as well as adding options to
	the various vrml utilities to mark the cusps.
    The cusps can be used within the new gamut mapping
    to align or partially align the colorants
	of the source to the destination.

*	Modified gamut boundary code to improve detail and acuracy
	of the gamut hulls. The smoothness of the destination
	hull affects the smoothness of the resulting gamut
	mapping to some degree.

*	Changed gamut mapping so that "full" neutral axis alignment
	no longer aligns the black point a*b* to the destination.
	The L/J range is mapped as if the black points are
	fully aligned, so the contrast ratio is not compromised.
	This approach seems to give a better subjective neutral result.
	(There appears to be no such thing as black point hue adaptation.)

*   Modified enumerated viewing conditions list to tweak
    ambient values slihtly, and introduce "monitor in bright
    work environment".
 
*	Added new option to spectro/fakeread to allow manipulation
	of the black point of the fake readings, to allow creation
	of test profiles with different black points.

*	Added another numerical problem workaround to
	xicc/cam02.c, to deal with Jab->XYZ issues when J == 0

*	Created utility render/itest to generate RGB test images
	for checking gamut mapping behaviour.

*	Created new sub project "render", for a simple 2d raster rendering
	system. This is intended for use in generating test images, as
	well as rendering measurment test charts directly to rasters,
	rather than just postscript.

*   Added a -m option to target/printtarg, so that the paper margins
	can be increased from the default.

*   Added documentation for the .ti3 and .cal file formats.

*	Fixed bug in spectro/unixio.c, which caused long strips read
	on the DTP41 on OSX or Linux to fail when spectral readings
	were enabled. The canonical input buffer size was being exceeded.
	Switched to non-canonical input mode. (Also seemed to fix
	problem with Xon/Xoff flow control on OSX.) 

*   Added flow control to serio I/O, to make instrument
	communications more robust. Hardware handshaking
	seems to be the most reliable (but see above).

*	Converted icc/fbtest into profile/invprofcheck,
	and added some more features to make it comparible to
	profile/profcheck.

*	Added VRML L*a*b* axis labels to gamut/viewgam, profile/*profcheck.

*   Increased gamut mapping RSPL smoothness, to compensate for
	RSPL changes in V0.53. Smooths out bumps in saturation mapping
	somewhat better, and should eliminate the "non-monotonic" warning
	message.

Version 0.53 changes (16 December 2005)
--------------------

*   Fixed serious bug in target/ofps.c, that made
	the default distribution of points very non-optimal. 

*	Added CIEDE2000 Delta E function to icc/icc.c, and
	also added this as an option to profile/profcheck,
	profile/mppcheck and profile/verify. 

*   Added new utilities rspl/smtmpp.c and profile/splitcgats.c
	to allow testing and verification of profile optimised smoothness
	factors with more realistic device data. Use splitcgats in
	combination with profcheck and the hidden "-rs" flag in
	profile to cross validate the optimised smoothness factors.

*	Added new "-r" parameter to profile/profile to allow
	the profile smoothness factor to be adjusted to suite
	the uncertaintly of the device and instrument readings.

*   Created more in depth simulation of device behaviour to 
	verify profiling operation (rspl/smtnd.c). Running this
	indicated that no single smoothness factor will suite
	all combinations of dimension, number of sample points
	and sample point uncertainty. Create a interpolation table 
	lookup to provide an "optimised" smoothness factor,
	determined from the simulations. Used new profile/splitcgats
	to cross validate 

*   Fixed serious bug in rspl/scat.c - new smoothness tracking
	factors were seriously wrong. Figured out correct approach
	and fixed it. Will affect various components including
	profile, icclink and refine.

*   Added support for hexagonal layout of charts on XY instruments.
	Supports aprox 14% more patches on the same sized chart.
	Changed default patch size for Spectrolino to 7mm, since
	this fits more patches on a page while remaining more
	reliable than the 6mm patches used in charts such as the
	ECI2002. (Changes to target/printtarg and spectro/printread) 

*   Added extra check code for argument handling in link/icclink.c
	- we now switch to appropriate linking mode if options that
	require it are selected.

*   Added better algorithm for weakly tending rspl's to 
	a particular mapping. Added weak default function
	API to scattered fit, and now make use of this
	in tweak/refine. This should eliminate an "overshoot"
	issue that was present with the simple grid of weak
	mapping points previously used (Thanks to Gerhard Fuernkranz
	for pointing out the problem.) Affects tweak/refine.
	tweak/refine has also been afected by problems with RSPL
	scattered data fit functionality - see above.

*   Modified spectro/dispcal.c to more acurately compute clip
	of target white with device gamut, and also use matrix to
	compute aprox. inverse more quickly and acurately, to
	give faster and more accurate convergence. Needs some
	more testing, may not work well on real monitors ?

*   Started adding support for ICC V4 Lab encoding into icc.c

Version 0.52 changes (3 November 2005)
--------------------

*   Added a display calibration utility, dispcal,
    to create appropriate display lookup curves.
	Modified dispread and profile to carry the display
	curves through to the vcgt tag in the profile.
	Not extensively tested yet.

*   Added spectro/spec2cie.c from  Gerhard Fuernkranz.

*   Changed clut profile input and output curve optimisation
	code to use conjgrad() instead of powell(). Aim was to
	speed up profiling, but speed seems to be about even.
	Added "optimise all" step since conjgrad() makes this
	feasible, getting slightly better fit.

*   Modified the rspl code to support non-equal grid resolutions.
    This was to support display calibration, but may come in handy
	for support of V4 profiles. Noticed that the smoothness tracking
	with different resolutions and dimensions wasn't working very well.
	Improved the test code (c1, t2d, t3d) to help reveal this, and
	fixed the problem. Now operates faster, more accurately, more
	smooth output with a better fit to the input points. Should
	improve the quality of forward profiles somewhat.
	The fitting error is more noticably improved from -ql through -qu. 
	Gamut mapping seems to be a little smoother.

*   Completed the tweak/refine tool, useful for improving the accuracy
	of proofing systems. Changes were made to profile, icclink and
	revfix to support simple use of abstract correction profiles created
	using refine.

*   Added option to printread, to allow CIE data to be saved
	as D50 L*a*b*, for more flexibility for other purposes.

*   Fixed minor bug in DTP51 reading, where the guide setting
	was wrong for strips with less than the 6 passes.
	Also added fix code for DTP51 "off by one" patch
	problem - the error should be corrected automatically.

*   Fixed problem in reverse lookup of per channel curves,
    that affected performance of profile and icclink -G.
	This problem became evident when CAM was switched to CIECAM02.
	Note this problem seems only significant when CIECAM02 is used,
	ie. when the -c and -d flags are used to specify viewing conditions.

*   Added support for alternate test patch indexing, to
    better support non Argyll test charts (ie. ECI2002)

*   Renamed printspot to spotread, and expanded the range
    of instrument modes supported.

*   Added emmisive measurement mode support to printspot.

*   Added independent Gretag Spectrlino/SpectroScan
    interface library to cleanup some minor problems,
    and add some more features (such as a fake transmission
    measurement mode using a light table, etc.)

*   Added extra option to targen that allows creating test
    points targetted at a specified portion of the devices
    colorspace.

*   Fixed problem with imid & cctiff, where a profile that returns
    device values > 1.0 causes pixel value wraparound.

*   Added an extra option to printtarg to scale the size of the test
    patches. This can be used to allow for coarse screening, poor
    registration, and packing more test patches onto a page. 

*   Added extra support in fakeread to allow monochrome test charts to
    be faked using RGB/CMYK profiles.

*   Added extra options to printtarg, to allow greyscale test charts to
    be represented in a number of different postscript color representations.

*   Fixed bug in targen when > 4 colorants are used, and -v is turned on.
	Diagnostic fails for > 4 colorants. (Thanks to Andrej Javorsek).

*   Fixed bugs in matrix/shaper profiling :- -ve offsets in shaper don't
    make any sense, so removed them; weighting of parameter values was
    faulty, so suppression of unsconstrained bumps in curves wasn't always
    effective. This change may improve matrix/shaper profile quality slightly.

Version 0.51 changes (11 March 2005)
--------------------

*   Added new option to xicc/xicclu to allow plotting of the neutral
    axis to examine black generation behaviour.

*   scanin has problems with new correlation code. Revert to
    old code until problems are figured out.

*   Added support for a black channel ink limit
    in nearly all utilities that currently support
    a total ink limit.

*   Created cam02plot to explore discontinuities in
    CIECAM02 conversions. To support this, the usage
    of Helmholtz-Kohlraush effect is now a runtime flag.

*   A few changes in icc/ moving towards V4 support

*   Modify Jamfiles to support a more restricted "install" of
    executables and other files to bin/

Version 0.5 changes (7 November 2004)
-------------------

*   Got the GUI and serial coms dependent parts running
    under Mac OSX. Changes to Jambase and Jamfiles to make this work.

*   Modified Jambase to allow for Mac OSX Carbon GUI applications
    needing a minimal resource fork to run properly.

*   Added incremental rspl scattered point suport, to allow
    for us in an error driven targen point generation routine.

*   Added "EXTRAFIT" option to rspl, that allows for better fitting
    to scattered data points that have a high error after normal
    fitting. May improve profile accuracy when large test charts are used.

*	Add a special purpose "-f" and "-F" option to icclink, that causes
	K only or all output for RGB/CMY in to CMYK out devices for neutral
	(R=G=B) input.

*   Switched around gamut mapping high level controls into
    a simple "Perceptual" and "Saturation" set of pre-canned
    surface point weighting values. This allows more detail
    in setting the two different styles. A saturation enhancement
    control has also been made available, although this may need
    a little more work to be fully effective.

*   Switched over to CIECAM02 for better blue gamut mappings.
    Fix CIECAM02 so that it is robust given arbitrary Jab input values.

*   Fixed bug in gretag spectroscan print chart reader - it wasn't
    recalibrating every 50 readings.

*   Added support in spectro/fakeread.c for a "separation" device
    link profile to preceed the real device profile. This allows
    simulating the response of a device that used an explicit
    separation in its rendering pipeline.

*   Creating a hack CMY to CMYK separation creation support tool
    called xicc/fakeCMY.c This creates a dummy CMY->PCS .ti3 file
    from a CMYK device profile, that can then be turned into a CMY
    device profile that can then be linked with the CMYK device profile
    to create a CMY->CMYK device link separation profile. This program
    will be redundant when profile/sepgen is completed.

*   Add support for the Spectrocam illuminant spectrum (Xenon Lamp),
    even though this instrument is not supported directly. This
    allows the FWA to be used on spectral readings from this instrument.
    (Thanks to Gerhard Fuernkranz for providing this information).

*   Add method to gamut object to compute a gamuts volume,
    and report the total volume in xicc/iccgamut if verbose
	is set.

*   Modified scanin to work with scan of Gretag ColorCheckerDC.
    Needed to modify edge detection filter to reduce noise,
    modify edge matching code to support a wider range of
    scales, change matching logic to ignore target edges
    with no matching reference edge, stop using crossings
	as part of edge matching. 

*   Added new entries to test chart recognition template, to
	allow scanin to determine correct rotation, even when the
    chart has no asymetric elements. This works similarly
	to the strip reading code, in checking correlation
	between expected and measured color values.
	Printtarg has also been modified to support
	this new scan recognition template entries.

*	Fixed up Gretag Spectroscan operation so that
	emission readings (for displays) etc. modes are
	correctly set and calibrated.

*   Added new facility to cgats library, to allow for a
    wildcard table keyword, as well as a variable "CGATS.XX"
	table keyword.

*   Switched to CIE94 delta E for shaper/matrix profile
    model fitting.

*   Introduce new flag ICX_CAM_CLIP to xicc, to allow full
    accuracy lookups within gamut, and clipping in CAM Jab space
    for out of gamut values. Turned this flag on in profile/profile,
	to improve clipping behaviour of colorimetric B2A table, and
	in link/icclink, to do the same for absolute and appearance
	indents.

*   fix argument '-t' processing error in profile/profile.c

*   gamut/gammap.c: Change over to better vector alignment code.

*   Improved some of the black point handling precision in icclink
	to reduce some innacuracies noticed by Gerhard Fuernkranz.

*   Modified Absolute Appearance intent to use
    a common white point between the input and
	output profiles, as well as scaling it to
    Y = 1.0, to try and prevent Jab values
	exceeding J = 100.0

*   Improved profile/logo2cgats to cope with the latest
    formats of data files from Gretag. They seems to
    have moved over to including the device values in
    the readings file, just like Argyll :-).

*   Changed rspl/rev.c so that instead of failing
	when it runs out of room to cache all the cells
    being searched in a query, it proceeds with the
	search in chunks. This allows the memory usage to
    be curtailed, without risking the reverse lookup
    being aborted. There will be a slight performance
	loss if this happens though.

*   Fixed imdi/cctiff when linking profiles,
    to not use explicit per channel curves when
    the PCS is XYZ. This was causing excessive
    quantization, because XYZ is a non-perceptual
    space. (Same problem noticed in link/icclink some
    time ago!)

*   Fixed old bug in target/ppoint.c,
	that caused a crash under Linux in targen.
	(Thanks to Greg Sullivan for bringing this to my attention.)

*   Improved robustness of cam97s3 some more,
	some cases encountered in b2a table creation
    triggered problems with out of range values.

*   Added grid range override for gamut creation,
	to assist uniform handling of gamut compression
    in b2a table creation.

*   Added perceptual and saturation gamut mapping
	support to the profile creator (profile.c,
	profout.c). This takes an input profile as a parameter,
	to determine the necessary gamut mapping.

*   Added new function to icclib to allow setting
    of up to 3 Lut tags simultaniously.
	This is to allow the multiple intent B2A table
    values to be set while getting the best possible speed
    of inverse A2B lookup.

*   Added two new functions (fwd_relpcs_outpcs,
	bwd_outpcs_relpcs) to xicclu, to allow
    converting between native relative PCS and the
	appearance space configured in the space conversion.
	This is to allow converting to/from source/destination
	CAM Jab space for gamut mapping during profile creation.

*   2003/12/9	Unstable release

*   Started HTML documentation in the doc directory.
    This is work in progress, and is not yet complete.
	See doc/Index.html

*   Changed per channel curve algorithm in xicc/profout.c,
    xicc/mpp.c and xicc/xmatrix.c, to improve accuracy
    of profile, and markedly reduce "wiggles" in certain
    cases, as well as improving the accuracy of the
    profile compared to the "true" underlying device
    characteristic. Changed how the white point is preserved
    once again, this time by simply adjusting the order 0
    a*b* curve harmonic to map 0.0 to 0.0. Tuned curve
    weighting. Checked that the rspl scatterd data smoothing
    default is still an approproate compromise.

*   Added support for a TI3 file as reference for
    profile/fakeread, to improve reference set generation.

*   Fixed a bug that was causing the A2B output curve
	ranges to be excessive (160%, rather than the intended
	110%).  Altered profile/profile.c to remove the code that disables
	the use of A2B output curves when a high quality B2A is needed,
    now that there is a way of ensuring that the a*b* curves go
    through 0.0.

*	Tweaked xicc/mpp.c to improve accuracy with
	a very small number of points, by improving the
	sophistication of its estimation of ink 100% overlap
	values in the "anchor points" (which become defaults
	if measured values are missing), as well as strengthening
	the weight given to minimising the transfer curve and
	ink interaction "shape" values.

*   Added comment support in icclink, similar
	to that in profile.

*   Added support for MPP profile in profile/fakeread,
    to permit a simple way of creating an ICC profile
    from an MPP profile for <= 4 colorants. Spectral
	values can be generated using an MPP profile.
	This provides a path to creating a useful
	profile when very few measurements are available.

*   Changed -n flag in profile/profile.c to allow
    disabling input (-ni) and/or output (-no) clut lut
	curves. This allows testing of the effects of
    per channel curves.

*   Added -r flag to link/icclink.c to allow
	overriding the device link clut resolution.

*   Add some filtering to the K locus curve
    generation in profile, icclink etc., to smooth
    out mixing behaviour. Transition to ink limiting
    isn't smoothed at the moment.
	This may improve problems with banded colorization,
    but only if high resolution, reverse AtoB linking
    is being performed.

*   Correct Gamut boundary table support has been added
    to profile/profout.c, but isn't enabled or debugged yet.

*   Add spectral lookup support to mpplu.c utility.

*   Fix bug in spectro/dispread.c - we hadn't
    updated it for the latest .ti1 format.

*   Added a special "simple" mpp model mode
    to profile/mpprof.c and xicc/mpp.c,
    to support a more simple Neugenbauer 
	like model for possible proofing standards use.

*   Added support in diagnostic plot for up to 6 curves,
    with do_plot6() function.

*   Disable USE_MERGE_CLUT_OPT from icclink, since
    it compromises accuracy, without a noticable
    improvement in speed. 

*   Added simple link support into cctiff
    for convenience, and to serve as an
	example of how to link and convert pixel data
	in one step.

*   2003/4/23	Unstable release

*   Modify gamut/gamut.c to #undefine ADD_EXTRA. This
    code doesn't seem to add much, and seems to go
    crazy with some profiles, using endless amounts
    of memory.

*   Changed rev.c allocation code to make sure
    doubles get allocated on their natural boundaries.
	This may fix problems with some processors (MIPS).
	(Thanks to Daniel Borenstein for pointing out the issue.).

*   Changed Absolute intent to clip in CIECAM97 space,
    for improved out of gamut color handling.
	(link/icclink.c, xicc/xicc.h, xicc/xicc.c, xicc/xlut.x xicc/xicclu.x).
	CIECAM97 is tricked into an absolute mode
	by forcing a D50 adapted white point for both source
	and destination profiles. The other appearance
	parameters still have an effect.

*   Hopefully removed the last problems involving
    the confusion about whether RGB device values ranges
    are 0-100 or 0-255. Argyll should now be consistent
    in using 0-100 for all its CGATS data files.
    [Changes mainly to scanin/scanin.c, plus warning
     code in profile/profout.c and profile/profin.c]

*   Added support in targen for using an mpp model
    to set test point distribution.

*   MPP profile format and creation now complete.
    Using much more complicated derivative minimisation
    equations to get adequate speed out of it.
    Overall accuracy of the profiles hasn't yet been
    established.

*   2003/2/8	Unstable release

*   Added a slight refinement to the CIECAM97 model -
    rather than using linear interpolation for computing
    the eccentricity factor, use a spline blend
    to smooth out the slight "kink" at the
    knot points.

*   Updates mpp.c - work in progress.

*   2002/12/25	Unstable release

*   Completed Gretag Macbeth Spectroscan support
    for print profiling. Most changess in spectro/printread.c,
	spectro/gretag.[ch] and spectro/spm.[ch].

*   Tuned gamut mapping to improve perceptual. Fixed
    gamut/gammap.c so that separate luminance, chrominance 
    and hue weighting works properly. Added variable chrominance
    weighting so that blues will be mapped with high L weight,
    while yellows will map to closest. This exploits the
    extra blue lightness added by allowing for the
    Helmholtz-Kohlraush effect in conversion to CIECAM97 Jab
    colorspace.  Tweaked xicc/xicc.c gamut mapping control
    parameters to improve perceptual and saturation
    gamut mapping. Made extra gamut mapping surface point code
    in gamut/gamut.c more robust so that it can be turned
    on by default (since disabled again).

*   Added Helmholtz-Kohlraush effect modeling
    in xicc/cam97s3, using the equation from
	Bradford-Hunt 96C, as detailed in Mark Fairchilds
    "Color Appearance Models". CIECAM97 was derived
    from Bradford-Hunt 96S Simple model.
    It turns out that this effect is crucuial in
    gamut mapping CRT blues onto printing blues,
    and making sure that they take into account
	the subjective lightness of the highly saturated
    CRT blue.

*   Added more elaborate "thru Black" controll to
    link/icclink.c, allowing a CMYK to CMYK with a partial
    through black. This is implemented using two
    "upper" and "lower" limit black generation curves.

*   Added hack program profile/logo3 to
    allow for a smaller number of test
    sheets read on the Spectrolino.

*   Added new test point generation module
    target/ifarp.c, an "Incremental Far Point"
    generation algorithm, intended for N dimention
    test chart generation. This is none too quick, but
    seems to generate reasonably well distributed
    test points at a steady rate. Any reasonable
    algorithm in N dimensions needs to create test
    points starting with some in gamut "seed" point,
    as the valid gamut space becomes smaller and smaller
    as N increases.

*   2002/12/2	Unstable release

*   Increased imdi code to handle at least
    8 channels in and out.
    Added tables to generate all
    possible dimension combinations
    in and out from 3 to 8.
    Added -q and -s flags to itest to
    increase testing speed.

*   Added full 16 bit processing support
    to the imdi code. This also allows
    the handling of > 4 channel input conversions.
	Configured generation of 8 bit to 16 bit
    conversion kernels. The per channel output
    table value is 16 bits, useful for final device 
    linearisation without the penalty of 16 bit
    precision thruout.
    Cleaned up the cgen code to more gracefully
    handle the differences between sort and simplex
    table code, as well as better handle 64 bit
    capability properly.

*   Changes imdi_gen to, by default generate
    all the imdi kernel code in a single
    file, reducing clutter. The -i flag
    invokes the previous behaviour.

*   Added -w flag to icclink, which enables
    a white point matching hack during linking.
    If set, the white points are forced to match
    regardless of the intent or gamut mapping.

*   Modified rspl to separate out the functions
    that are limited in the maximum input
    dimensions, and those that aren't,
    so that some rspl functionality can
    be used with larger numbers of colors.
    This translates through to increased number
    of colors support in some of xicc.

*   Fixed memory leak in imdi/imdi_tab.c
    (thanks to Krzysztof Spera)

*   Merged back basic changes to support compiling
    under Mac OSX. GUI and serial port dependent
    code isn't finished though.

*   Made allowance in CGATS and icc
    library for compiling without support
    of the usual system file and memory
    allocation calls, to increase flexibility
    when using these libraries in non
    standard environments.

*   Changed CGATS library to support
    alternate allocator and/or file I/O,
    for broader system compatibiliy.
    Added error return codes for all methods,
    to eliminate any calls to error().
	Added new method error() to avoid having to
    check every method for a return code.

*   Finished first cut at the model printer profile
    object (xicc/mpp.[ch], profile/mpprof.c),
    that supports profiling N color printing devices.
    Note that ink modeling is not supported at the moment,
    but there is enough support for optimised seprations.

*   Added -u flag to profile/profile,
    that forces input Lut based profiles
    to be stored as an absolute profile.
    This is non-standard, but very useful for
    avoiding Lab range clipping when using
	a image as a colorimiter.

*   Added hack program profile/logo4 to
    convert four separate spectral files read
    using the logo software, to a single
    argyll .ti3 file. This won't be needed
    once Argyll can run the SpectroScan
    directly.

*   Added numerical library support for
    a Sobol sub-random multi-dimentional
    sequence generator, to support an
    alternate means of creating greater than
    4 dimentional test chart values, plus
    first cut point support using it in
    target/qrand.c (This doesn't seem useful in
    practice though.)

*   Added -s option to iccdump to enable
    searching and dumping embedded profiles.

*   Fix bug in profile white point adjustment
    (xlut.c). The actual white point didn't
    match the specified white point to the degree
    of accuracy desired. There may also have been
    issues with clipping values in Lab PCS.
    
*   Added option to spectral to CIE module to
    compensate for the presense of FWA (Fluorescent
    Whitener Additive) in paper. This improves the
    accuracy of the CIE color values when a media
    measured under one illuminant is going to be
    viewer under a different illuminant. This works
    if you are using a spectral measurment instrument.
	(See poster in proceedings of the IS&T/SID
    11th Color Imaging Conference, November 2003 page 248).
	
*   Added shaper/matrix input profile support.
	(profile/profin.c, xicc/xmatrix.c)
    This may be more accurate for scanner profiles,
    given the poor coverage of test points provided
    by an IT8 chart (but doesn't appear to be in practice).

*   Added support in scanin.c and scanrd.c for
    processing 16 bit TIFFs, allowing for higher
    precision scans (useful when using the image to
    measure color).

*   Added support in scanin.c and scanrd.c for
    using a scan of a print test chart, plus a
    profile for the scanner, to be able to measure
    color for printer calibration. This
	new mode handles multi-page test charts.

*   Added support in printtarg, for producing a scan
    recognition template (.cht) for each page.

*	Added patch optimisation module to target/printtarg,
	to arrange patches to maximise their contrast for
	strip reading instruments.

*   Removed the color directory, since it's functionality
    has been taken over by the xcolorants library,
	and the (yet to be completed) MPP profile library.

*   Added DTP41T (tranmission) support in target/printtarg.c
	and spectro/printread.c etc.

*   Made changes to target/targen.c, target/printtarg.c
	and spectro/printread.c to be able to generate
	and then read >4 color test charts, to be able to
	characterise 6 to 8 color devices.

*   Added support in xicc/xspect.c for measuring
	StatusT and Visual density from a spectral
	reading, as well as an aproximate XYZ to
	density conversion, to support spectrometer
	patch spacer contrast determination.
	Also added an XYZ to sRGB conversion
	function to support RGB previews of N color
	devices, as well as scanner recognition template files.

*	Expanded xicc/xcolorants.c to incorporate
	an approximate device model for arbitrary
	colorant combinations. This is used to
	be able to approximate expected density readings,
	as well as preview colors and scanner recognition templates.

*   Create a new test point creation module,
    target/simplat.c, to create higher dimentional,
	regular simplex latice test pointsi (this seems
    rather slow and has difficulty arriving at the
    desired number of test points.)


Fourth snapshot changes: (25 March 2002)
------------------------

*   Removed gamut/iccgamut, and renamed
    xicc/xiccgamut to xicc/iccgamut.

*   Modified tiffgamut to be able to emit CIECAM97 style
    colorspace gamuts, so that it can be used to
    generate appropriate gamut files as input to
    icclink. Moved it to the xicc subdirectory,
	as it depends on xicc, just like xiccgamut.

*   Fixed up icclink.c, gammap.c and nearsmth.c to
    more correctly handle gammut mapping for a particular
    image gamut, rather than a source colorspace.

*	Added text description option to profile utility.

*   Made significant modifications to the perceptual
    gamut mapping. Turned gammap into an object, rather
    than merely returning a rspl to allow for a separate
	L mapping step. Added #define to control this.
    Made the source to destination surface point a weighted
	optimisation algorithm for more control over the absolute
	vs. relative error introduced, and setup some initial
	weighting values. This is intended to combat the
	tendency of the "smallest absolute error" mapping
	to map many to one in the most saturated regions,
	leading to a loss of detail. The weighting scheme
	could probably use some more fine tuning, or even
	some alteration to make it vary with respect to (say)
	the absolute L value, or the absolute C value.

*   Added first cut at a model based forward profile
    creation (profile/mpprof.c). This is intended for
    profiling 6 or more color devices, and using as
    the profile driving optimised separations.

*   Added xcolorants resource to allow specifying and defining
    device colorant combinations. This is needed as a foundation
    to profiling 6 or more color printing devices.
   
*   Tweaked targen to concentrate test patch points
    at regions of higher curvature. This should improve profiling
    efficiency slightly.

*   Fix bug in xlut.c where creating a gamut cleared
    any ink limit set on a rspl. This caused the ink limit
	to be ignored in any icclink that used gamut mapping.

*   Modified printtarg.c to try and get more reliable
	DTP41 operation. Switch to black and white patch
    spacers by default. It's difficult to know what the
	instrument really requires to reliably pick up
	the test spacers.

*   Fixed bug in gamut where it was still hanging on to
    vertex points that disapear below the log convex hull.
	This has no consequences.

*   Added option in icclink to allow specifying an explicit source
    gamut for the gamut mapping. This allows tailoring the gamut
	compression to be optimised for a particular image.

*	Added profile checking utility, that checks measured device points
	against an icc profile.

*	Fixed probem with linking when any of the profiles native PCS is XYX.
	The device linearisation curve should not be preserved if the
	native device profile PCS is XYZ.

*   Fixed bug in xmatrix.c & xmono.c when finding the gamuts of
	matrix and mono transforms when a Bwd transform is used.
	Showed up in icclink when the output profile was a matrix
	of monochrome transform.

*   Fixed bug in icclib when PCS overide is used with a
    Bwd transform. Similar problem to above for matrix & mono
	profiles, but at the icclib level.

*	Added function in icclink.c to allow the generation of
	a device linearisation curve for XYZ profiles. This was
	expected to improve the result when linking to XYZ profiles,
	but currently seems to make things worse. This feature is
	therefore off by default. :-( (This should be changed
    to work the same as the current xlut.c profile code!)

*   Added preliminary support in printtarg for the SpectroScan
    spectrodensitometer. Also added preliminary support for
    scanner recognisable test charts.

*   Added option to icclink to turn off the use of linearisation
    curves in the output link, since this sometimes seems to
    make the accuracy worse given profiles with odd device
	linearisation curves.

*   Added custom page size support to printtarg.

*   Modified icc library defines to use INR32 rather than INT32
    definition, to avoid clashes with system typdefs etc.

*   Added CIE94 delta E support to profchek utility, changed
    peak reading to be peak delta E rather than peak individual
	L, a or b, and made the same change in the check code
	in profout.c

*   Added utility to do reflective spot readings using appropriate
    instrument (printspot). DTP41 supported.

*   Fixed bug in profile.c that meant that the spectral mode
    was ignored unless an observer was specified (ie. it wasn't
    defaulting to 1978_2).

*	Modified targen.c so that when a previous profile is used
	to pre-condition test points, the neutral axis has a higher
	density of points, in line with the higher sensitivity the
	CIE94 delta E formula has in this region. This should improve
	the tolerance of the resulting profile in the important
	neutral gray area.

*   Fixed bug in printread.c that is triggered when more than
	26 strips are being read.

*	Modified targen.c so that the 4 dimentional auxiliary chanel
	weighting (ie. K chanel in CMYK) is 150% of the Lab spacing,
	rather than being 50% of it, when ICC profile pre-conditioning
	is being used. This seems to improve both the worst case, and
	average error of the resulting profile for at least some devices. 

*	Switched to (now working) xlut2.c code, for creating clut
	based profiles. This version creates both input and output
	1D luts by optimising the accuracy of the profile for a linear clut.
	The result seems to be more accurate profiles, since the underlying
	device characteristic is better modeled. It also seems to aleviate
	some of the issues when linking and preserving the device 1D luts
	in the linked profile.

*	Added verification function to icclink.c, to check the
	accuracy of a link profile.

*	Fixed numsup.c 2d array malloc/free to be more efficient
	by allocating the main array as a single block.

*	Fixed bugs in handling XYZ lut based profiles.

*	Fixed bug in setting white and black points for input
	profiles.

*	Added support for selecting algorithm type for all
	types of profiles - input, display and output.
	(XYZ lut doesn't seem to work properly yet though!)

*	Merged Raph Levien's cleanups to icc.c, to quiet gcc
	warnings.

*   Improved new xlut2.c to handle pathalogical input data
	from gridded charts. The order of the curves is now
	adjusted so that it is not greater than what can
	be supported by the data. Also changed shaper curve
	parameter action to be more progressive, and tied
	the parameters into the optimisation goal so that
	parameters that have no effect are minimised, resulting
	in less "ringing". Fixed bug in shaper curve transform
	that was clipping parameters, resulting in gross errors
	before the white point was exactly fixed on.
	
*   Added new features to profcheck: Sorting feature to
    indicate support for a particular device->pcs value,
    + VRML output of errors between profile and datapoints.

*	Modified scanin/scanrd to allow for Grey and CMYK .tiff
	files, as well as just outputing a CGATS data file,
	rather than only performing the data collection needed
    for and RGB scan calibration. This is useful for capturing
	the patch values from a test chart only available as a
	TIFF file. Removed automatic extention stuff. 

*   Added black wedge generation to targen, and extra checking
    to elminate redundant test patches.

*   Added EPS output support to printtarg.

*   Added a couple of options to cctiff to aid diagnostics.


Third snapshot changes: (17 July 2001)
----------------------

*	Changed targen to allow full spread test points to take account
	of the others sorts of test points.

*	Changed icclib to use the Bradford chromatic adaption for
	white point shifting in profile creation and absolute profiles
	lookup. This creates some minor incompatiblity with profiles
	produced with earlier versions, but is likely to be more
	compatible with other CMMs.

*	Added support in icclib for abstract file accesor type (icmFile), and included
	implementations for standard file and memory image.

*	Added support in icclib for abstract memory allocator, and included
	implementation for standard alloc/free.

*	25/2/2001	Changed targen to use ICC profile for perceptual even
	point generation. Includes support for Gray and RGB as well as CMYK
	perceptual support.

*   Film profiling using the Spectroscan-T care of Niel Okamoto.

*   Print charts suitable for the Xrite DTP41 are
    now supported, and print chart reading using the DTP41
    is now supported.

*   Added DTP92 support and Lut and matrix profile support for
	display profiles.

*	Added spectral reading support to the DTP41 readings.

*   Added support in profile for using spectral data with choice
    of observers and builtin or loadable illuminant spectra.

*   Modified the gammap code to precicely match the white and black
    points. Solves "background color" problems in linking RGB and CMYK etc.

*   Changed K generation curve parameters to be easier to control.
    Have two breakpoints and curve shape along the luminance axis.

*   Added more sophisticated auxiliary chanel locus finder in rspl/rev.c,
    to be able to detect profile anomolies (not made use of in current code).

*   Added underlying support for optimised separations into
    4 to 8 separations in rspl/opt.[ch] . This is intended to be
    used internally as an option for driving a CMYK device, and
    also explicitly to support 6 or more color devices. Not tested
    or made use of just yet.

*   Added development area for Java GUI development. The intention
    is to use Java as a sophisticated scripting front end, to
	make the command line commands more palatable.

Second snapshot changes: (30 November 2000)
------------------------

  Neil Okamoto has contributed support for generating
  RGB TIFF targets suitable for film recorder output,
  as well as Gretag Spectrolino support for reading them
  in again.

  The target patch generation now uses ICC profile to
  pre-condition the test points. This now works for
  RGB and Grey targets.

  Finished port to Linux.
  Cleaned up build automation somewhat.

  Added RGB output device profile generation support.
  Added RGB scanner device profile generation support.

  Added a couple of spectrometer conversion utilities for
  raw data files from other CMSs.

  Added gamut boundary mapping and visualization tools (VRML)

  Added CIECAM97s Color Appearance Model (CAM) colorspace support.

  Added experimental gamut mapping code.

  Enhanced linker to use CAM and gamut mapping.

  Numerous bug fixes and enhancement.

First snapshot	(28 October 2000)
--------------