1 /* -*- C++ -*-
2  * Copyright 2019-2021 LibRaw LLC (info@libraw.org)
3  *
4  LibRaw uses code from dcraw.c -- Dave Coffin's raw photo decoder,
5  dcraw.c is copyright 1997-2018 by Dave Coffin, dcoffin a cybercom o net.
6  LibRaw do not use RESTRICTED code from dcraw.c
7 
8  LibRaw is free software; you can redistribute it and/or modify
9  it under the terms of the one of two licenses as you choose:
10 
11 1. GNU LESSER GENERAL PUBLIC LICENSE version 2.1
12    (See file LICENSE.LGPL provided in LibRaw distribution archive for details).
13 
14 2. COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
15    (See file LICENSE.CDDL provided in LibRaw distribution archive for details).
16 
17  */
18 
19 #include "../../internal/dcraw_defs.h"
20 
21 /*
22    All matrices are from Adobe DNG Converter unless otherwise noted.
23  */
adobe_coeff(unsigned make_idx,const char * t_model,int internal_only)24 int LibRaw::adobe_coeff(unsigned make_idx, const char *t_model,
25                         int internal_only)
26 {
27   // clang-format off
28   static const struct
29   {
30 	  unsigned m_idx;
31 	  const char *prefix;
32 	  int t_black, t_maximum, trans[12];
33   } table[] = {
34     { LIBRAW_CAMERAMAKER_Agfa, "DC-833m", 0, 0,
35       { 11438,-3762,-1115,-2409,9914,2497,-1227,2295,5300 } }, /* DJC */
36 
37     { LIBRAW_CAMERAMAKER_Apple, "QuickTake", 0, 0,
38       { 21392,-5653,-3353,2406,8010,-415,7166,1427,2078 } }, /* DJC */
39 
40     { LIBRAW_CAMERAMAKER_Broadcom, "RPi IMX219", 66, 0x3ff,
41       { 5302,1083,-728,-5320,14112,1699,-863,2371,5136 } }, /* LibRaw */
42     { LIBRAW_CAMERAMAKER_Broadcom, "RPi OV5647", 16, 0x3ff,
43       { 12782,-4059,-379,-478,9066,1413,1340,1513,5176 } }, /* DJC */
44 	{ LIBRAW_CAMERAMAKER_Broadcom, "Pi", 16, 0x3ff,
45 	  { 12782,-4059,-379,-478,9066,1413,1340,1513,5176 } }, /* DJC */
46 
47 #ifdef USE_6BY9RPI // this code normalizes model to LIBRAW_CAMERAMAKER_RaspberryPi
48     { LIBRAW_CAMERAMAKER_RaspberryPi, "RP_imx477", 0, 0, // Do not set black, it is set at parser to 256 or 64
49       { 5603, -1351, -600, -2872, 11180, 2132, 600, 453, 5821 } }, /* PyDNG */
50     { LIBRAW_CAMERAMAKER_RaspberryPi, "RP_imx", 66, 0x3ff,
51       { 5302,1083,-728,-5320,14112,1699,-863,2371,5136 } }, /* LibRaw */
52     { LIBRAW_CAMERAMAKER_RaspberryPi, "ov5647", 16, 0x3ff,
53       { 12782,-4059,-379,-478,9066,1413,1340,1513,5176 } }, /* DJC */
54 #endif
55     { LIBRAW_CAMERAMAKER_Canon, "EOS D30", 0, 0,
56       { 9900,-2771,-1324,-7072,14229,3140,-2790,3344,8861 } },
57     { LIBRAW_CAMERAMAKER_Canon, "EOS D60", 0, 0xfa0,
58       { 6211,-1358,-896,-8557,15766,3012,-3001,3507,8567 } },
59     { LIBRAW_CAMERAMAKER_Canon, "EOS 5DS", 0, 0x3c96, // same CMs: 5DS, "5DS R" */
60       { 6250,-711,-808,-5153,12794,2636,-1249,2198,5610 } }, // v.2
61     { LIBRAW_CAMERAMAKER_Canon, "EOS 5D Mark IV", 0, 0,
62       { 6446,-366,-864,-4436,12204,2513,-952,2496,6348 } },
63     { LIBRAW_CAMERAMAKER_Canon, "EOS 5D Mark III", 0, 0x3c80,
64       { 6722,-635,-963,-4287,12460,2028,-908,2162,5668 } },
65     { LIBRAW_CAMERAMAKER_Canon, "EOS 5D Mark II", 0, 0x3cf0,
66       { 4716,603,-830,-7798,15474,2480,-1496,1937,6651 } },
67     { LIBRAW_CAMERAMAKER_Canon, "EOS 5D", 0, 0xe6c,
68       { 6347,-479,-972,-8297,15954,2480,-1968,2131,7649 } },
69     { LIBRAW_CAMERAMAKER_Canon, "EOS 6D Mark II", 0, 0x38de,
70       { 6875,-970,-932,-4691,12459,2501,-874,1953,5809 } },
71     { LIBRAW_CAMERAMAKER_Canon, "EOS 6D", 0, 0x3c82,
72       { 7034,-804,-1014,-4420,12564,2058,-851,1994,5758 } },
73     { LIBRAW_CAMERAMAKER_Canon, "EOS 77D", 0, 0,
74       { 7377,-742,-998,-4235,11981,2549,-673,1918,5538 } },
75     { LIBRAW_CAMERAMAKER_Canon, "EOS 7D Mark II", 0, 0x3510,
76       { 7268,-1082,-969,-4186,11839,2663,-825,2029,5839 } },
77     { LIBRAW_CAMERAMAKER_Canon, "EOS 7D", 0, 0x3510,
78       { 6844,-996,-856,-3876,11761,2396,-593,1772,6198 } },
79     { LIBRAW_CAMERAMAKER_Canon, "EOS 850D", 0, 0,
80       { 9079,-1923,-1236,-4677,12454,2492,-922,2319,5565}},
81     { LIBRAW_CAMERAMAKER_Canon, "EOS 800D", 0, 0,
82       { 6970,-512,-968,-4425,12161,2553,-739,1982,5601 } },
83     { LIBRAW_CAMERAMAKER_Canon, "EOS 80D", 0, 0,
84       { 7457,-671,-937,-4849,12495,2643,-1213,2354,5492 } },
85     { LIBRAW_CAMERAMAKER_Canon, "EOS 10D", 0, 0xfa0,
86       { 8250,-2044,-1127,-8092,15606,2664,-2893,3453,8348 } },
87     { LIBRAW_CAMERAMAKER_Canon, "EOS 250D", 0, 0,
88       { 9079,-1923,-1236,-4677,12454,2492,-922,2319,5565 } },
89     { LIBRAW_CAMERAMAKER_Canon, "EOS 200D", 0, 0,
90       { 7377,-742,-998,-4235,11981,2549,-673,1918,5538 } },
91     { LIBRAW_CAMERAMAKER_Canon, "EOS 20Da", 0, 0,
92       { 14155,-5065,-1382,-6550,14633,2039,-1623,1824,6561 } },
93     { LIBRAW_CAMERAMAKER_Canon, "EOS 20D", 0, 0xfff,
94       { 6599,-537,-891,-8071,15783,2424,-1983,2234,7462 } },
95     { LIBRAW_CAMERAMAKER_Canon, "EOS 30D", 0, 0,
96       { 6257,-303,-1000,-7880,15621,2396,-1714,1904,7046 } },
97     { LIBRAW_CAMERAMAKER_Canon, "EOS 40D", 0, 0x3f60,
98       { 6071,-747,-856,-7653,15365,2441,-2025,2553,7315 } },
99     { LIBRAW_CAMERAMAKER_Canon, "EOS 50D", 0, 0x3d93,
100       { 4920,616,-593,-6493,13964,2784,-1774,3178,7005 } },
101     { LIBRAW_CAMERAMAKER_Canon, "EOS 60Da", 0, 0x2ff7,
102       { 17492,-7240,-2023,-1791,10323,1701,-186,1329,5406 } },
103     { LIBRAW_CAMERAMAKER_Canon, "EOS 60D", 0, 0x2ff7,
104       { 6719,-994,-925,-4408,12426,2211,-887,2129,6051 } },
105     { LIBRAW_CAMERAMAKER_Canon, "EOS 70D", 0, 0x3bc7,
106       { 7034,-804,-1014,-4420,12564,2058,-851,1994,5758 } },
107     { LIBRAW_CAMERAMAKER_Canon, "EOS 100D", 0, 0x350f,
108       { 6602,-841,-939,-4472,12458,2247,-975,2039,6148 } },
109     { LIBRAW_CAMERAMAKER_Canon, "EOS 300D", 0, 0xfa0,
110       { 8250,-2044,-1127,-8092,15606,2664,-2893,3453,8348 } },
111     { LIBRAW_CAMERAMAKER_Canon, "EOS 350D", 0, 0xfff,
112       { 6018,-617,-965,-8645,15881,2975,-1530,1719,7642 } },
113     { LIBRAW_CAMERAMAKER_Canon, "EOS 3000D", 0, 0,
114       { 6939,-1016,-866,-4428,12473,2177,-1175,2178,6162 } },
115     { LIBRAW_CAMERAMAKER_Canon, "EOS 400D", 0, 0xe8e,
116       { 7054,-1501,-990,-8156,15544,2812,-1278,1414,7796 } },
117     { LIBRAW_CAMERAMAKER_Canon, "EOS 450D", 0, 0x390d,
118       { 5784,-262,-821,-7539,15064,2672,-1982,2681,7427 } },
119     { LIBRAW_CAMERAMAKER_Canon, "EOS 500D", 0, 0x3479,
120       { 4763,712,-646,-6821,14399,2640,-1921,3276,6561 } },
121     { LIBRAW_CAMERAMAKER_Canon, "EOS 550D", 0, 0x3dd7,
122       { 6941,-1164,-857,-3825,11597,2534,-416,1540,6039 } },
123     { LIBRAW_CAMERAMAKER_Canon, "EOS 600D", 0, 0x3510,
124       { 6461,-907,-882,-4300,12184,2378,-819,1944,5931 } },
125     { LIBRAW_CAMERAMAKER_Canon, "EOS 650D", 0, 0x354d,
126       { 6602,-841,-939,-4472,12458,2247,-975,2039,6148 } },
127     { LIBRAW_CAMERAMAKER_Canon, "EOS 750D", 0, 0x3c00,
128       { 6362,-823,-847,-4426,12109,2616,-743,1857,5635 } },
129     { LIBRAW_CAMERAMAKER_Canon, "EOS 760D", 0, 0x3c00,
130       { 6362,-823,-847,-4426,12109,2616,-743,1857,5635 } },
131     { LIBRAW_CAMERAMAKER_Canon, "EOS 700D", 0, 0x3c00,
132       { 6602,-841,-939,-4472,12458,2247,-975,2039,6148 } },
133     { LIBRAW_CAMERAMAKER_Canon, "EOS 90D", 0, 0,
134       { 11498, -3759, -1516, -5073, 12954,  2349,  -892,  1867,  6118}},
135     { LIBRAW_CAMERAMAKER_Canon, "EOS 1000D", 0, 0xe43,
136       { 6771,-1139,-977,-7818,15123,2928,-1244,1437,7533 } },
137     { LIBRAW_CAMERAMAKER_Canon, "EOS 1100D", 0, 0x3510,
138       { 6444,-904,-893,-4563,12308,2535,-903,2016,6728 } },
139     { LIBRAW_CAMERAMAKER_Canon, "EOS 1200D", 0, 0x37c2,
140       { 6461,-907,-882,-4300,12184,2378,-819,1944,5931 } },
141     { LIBRAW_CAMERAMAKER_Canon, "EOS 1300D", 0, 0x37c2,
142       { 6939,-1016,-866,-4428,12473,2177,-1175,2178,6162 } },
143     { LIBRAW_CAMERAMAKER_Canon, "EOS 1500D", 0, 0,
144       { 8300,-2110,-1120,-4917,12694,2482,-938,2141,5666 } }, // v.2
145 
146     { LIBRAW_CAMERAMAKER_Canon, "EOS RP", 0, 0,
147       { 8608,-2097,-1178,-5425,13265,2383,-1149,2238,5680 } },
148     { LIBRAW_CAMERAMAKER_Canon, "EOS R5", 0, 0,
149       { 9766,-2953,-1254,-4276,12116,2433,-437,1336,5131 } },
150     { LIBRAW_CAMERAMAKER_Canon, "EOS R6", 0, 0,
151       { 8293,-1611,-1132,-4759,12711,2275,-1013,2415,5509 } },
152     { LIBRAW_CAMERAMAKER_Canon, "EOS R", 0, 0,
153       { 8293,-1789,-1094,-5025,12925,2327,-1199,2769,6108 } }, // v.2
154 
155     { LIBRAW_CAMERAMAKER_Canon, "EOS M6 Mark II", 0, 0,
156       { 11498,-3759,-1516,-5073,12954,2349,-892,1867,6118 } },
157     { LIBRAW_CAMERAMAKER_Canon, "EOS M6", 0, 0,
158       { 8532,-701,-1167,-4095,11879,2508,-797,2424,7010 } },
159     { LIBRAW_CAMERAMAKER_Canon, "EOS M50 Mark II", 0, 0,
160       { 10463,-2173,-1437,-4856,12635,2482,-1216,2915,7237 } },
161     { LIBRAW_CAMERAMAKER_Canon, "EOS M50", 0, 0,
162       { 8532,-701,-1167,-4095,11879,2508,-797,2424,7010 } },
163     { LIBRAW_CAMERAMAKER_Canon, "EOS M5", 0, 0,
164       { 8532,-701,-1167,-4095,11879,2508,-797,2424,7010 } },
165     { LIBRAW_CAMERAMAKER_Canon, "EOS M3", 0, 0,
166       { 6362,-823,-847,-4426,12109,2616,-743,1857,5635 } },
167     { LIBRAW_CAMERAMAKER_Canon, "EOS M200", 0, 0,
168       { 10463,-2173,-1437,-4856,12635,2482,-1216,2915,7237 } },
169     { LIBRAW_CAMERAMAKER_Canon, "EOS M2", 0, 0,
170       { 6400,-480,-888,-5294,13416,2047,-1296,2203,6137 } },
171     { LIBRAW_CAMERAMAKER_Canon, "EOS M100", 0, 0,
172       { 8532,-701,-1167,-4095,11879,2508,-797,2424,7010 } },
173     { LIBRAW_CAMERAMAKER_Canon, "EOS M10", 0, 0,
174       { 6400,-480,-888,-5294,13416,2047,-1296,2203,6137 } },
175     { LIBRAW_CAMERAMAKER_Canon, "EOS M", 0, 0,
176       { 6602,-841,-939,-4472,12458,2247,-975,2039,6148 } },
177 
178     { LIBRAW_CAMERAMAKER_Canon, "EOS-1Ds Mark III", 0, 0x3bb0,
179       { 5859,-211,-930,-8255,16017,2353,-1732,1887,7448 } },
180     { LIBRAW_CAMERAMAKER_Canon, "EOS-1Ds Mark II", 0, 0xe80,
181       { 6517,-602,-867,-8180,15926,2378,-1618,1771,7633 } },
182     { LIBRAW_CAMERAMAKER_Canon, "EOS-1D Mark IV", 0, 0x3bb0,
183       { 6014,-220,-795,-4109,12014,2361,-561,1824,5787 } },
184     { LIBRAW_CAMERAMAKER_Canon, "EOS-1D Mark III", 0, 0x3bb0,
185       { 6291,-540,-976,-8350,16145,2311,-1714,1858,7326 } },
186     { LIBRAW_CAMERAMAKER_Canon, "EOS-1D Mark II N", 0, 0xe80,
187       { 6240,-466,-822,-8180,15825,2500,-1801,1938,8042 } },
188     { LIBRAW_CAMERAMAKER_Canon, "EOS-1D Mark II", 0, 0xe80,
189       { 6264,-582,-724,-8312,15948,2504,-1744,1919,8664 } },
190     { LIBRAW_CAMERAMAKER_Canon, "EOS-1Ds", 0, 0xe20,
191       { 3925,4060,-1739,-8973,16552,2545,-3287,3945,8243 } },
192     { LIBRAW_CAMERAMAKER_Canon, "EOS-1D C", 0, 0x3c4e,
193       { 6847,-614,-1014,-4669,12737,2139,-1197,2488,6846 } },
194     { LIBRAW_CAMERAMAKER_Canon, "EOS-1D X Mark III", 0, 0,
195       {  8971, -2022, -1242, -5405, 13249,  2380, -1280,  2483,  6072}},
196     { LIBRAW_CAMERAMAKER_Canon, "EOS-1D X Mark II", 0, 0x3c4e,
197       { 7596,-978,-967,-4808,12571,2503,-1398,2567,5752 } },
198     { LIBRAW_CAMERAMAKER_Canon, "EOS-1D X", 0, 0x3c4e,
199       { 6847,-614,-1014,-4669,12737,2139,-1197,2488,6846 } },
200     { LIBRAW_CAMERAMAKER_Canon, "EOS-1D", 0, 0xe20,
201       { 6806,-179,-1020,-8097,16415,1687,-3267,4236,7690 } },
202     { LIBRAW_CAMERAMAKER_Canon, "EOS C500", 853, 0,
203       { 17851,-10604,922,-7425,16662,763,-3660,3636,22278 } }, /* DJC */
204 
205     { LIBRAW_CAMERAMAKER_Canon, "IXUS 160", 0, 0,
206       { 11657,-3781,-1136,-3544,11262,2283,-160,1219,4700 } }, /* DJC */
207     {LIBRAW_CAMERAMAKER_Canon, "PowerShot 600", 0, 0,
208       { -3822,10019,1311,4085,-157,3386,-5341,10829,4812,-1969,10969,1126 } },
209 
210     { LIBRAW_CAMERAMAKER_Canon, "PowerShot A3300 IS", 0, 0,
211       { 10826,-3654,-1023,-3215,11310,1906,0,999,4960 } }, /* DJC */
212     { LIBRAW_CAMERAMAKER_Canon, "PowerShot A460", 0, 0,
213       { 6493,-2338,-885,-1589,5934,697,-445,1368,2543 } }, // CHDK
214     { LIBRAW_CAMERAMAKER_Canon, "PowerShot A470", 0, 0,
215       { 12513,-4407,-1242,-2680,10276,2405,-878,2215,4734 } }, /* DJC */
216     { LIBRAW_CAMERAMAKER_Canon, "PowerShot A530", 0, 0,
217       { 7252,-2405,-1223,-2102,6560,523,-112,704,3007 } }, // CHDK
218     { LIBRAW_CAMERAMAKER_Canon, "PowerShot A50", 0, 0,
219       { -6233,10706,1825,3260,821,3980,-6512,10745,6287,-2539,12232,262 } },
220     { LIBRAW_CAMERAMAKER_Canon, "PowerShot A5", 0, 0,
221       { -5707,10308,2002,2662,1829,4139,-6265,11063,6033,-2659,11911,593 } },
222     { LIBRAW_CAMERAMAKER_Canon, "PowerShot A610", 0, 0,
223       { 15591,-6402,-1592,-5365,13198,2168,-1300,1824,5075 } }, /* DJC */
224     { LIBRAW_CAMERAMAKER_Canon, "PowerShot A620", 0, 0,
225       { 15265,-6193,-1558,-4125,12116,2010,-888,1639,5220 } }, /* DJC */
226     { LIBRAW_CAMERAMAKER_Canon, "PowerShot A630", 0, 0,
227       { 14201,-5308,-1757,-6087,14472,1617,-2191,3105,5348 } }, /* DJC */
228     { LIBRAW_CAMERAMAKER_Canon, "PowerShot A640", 0, 0,
229       { 13124,-5329,-1390,-3602,11658,1944,-1612,2863,4885 } }, /* DJC */
230     { LIBRAW_CAMERAMAKER_Canon, "PowerShot A650 IS", 0, 0,
231       { 9427,-3036,-959,-2581,10671,1911,-1039,1982,4430 } }, /* DJC */
232     { LIBRAW_CAMERAMAKER_Canon, "PowerShot A720 IS", 0, 0,
233       { 14573,-5482,-1546,-1266,9799,1468,-1040,1912,3810 } }, /* DJC */
234 
235     { LIBRAW_CAMERAMAKER_Canon, "PowerShot D10", 127, 0,
236       { 14052,-5229,-1156,-1325,9420,2252,-498,1957,4116 } }, /* DJC */
237 
238     { LIBRAW_CAMERAMAKER_Canon, "PowerShot G10", 0, 0,
239       { 11093,-3906,-1028,-5047,12492,2879,-1003,1750,5561 } },
240     { LIBRAW_CAMERAMAKER_Canon, "PowerShot G11", 0, 0,
241       { 12177,-4817,-1069,-1612,9864,2049,-98,850,4471 } },
242     { LIBRAW_CAMERAMAKER_Canon, "PowerShot G12", 0, 0,
243       { 13244,-5501,-1248,-1508,9858,1935,-270,1083,4366 } },
244     { LIBRAW_CAMERAMAKER_Canon, "PowerShot G15", 0, 0,
245       { 7474,-2301,-567,-4056,11456,2975,-222,716,4181 } },
246     { LIBRAW_CAMERAMAKER_Canon, "PowerShot G16", 0, 0,
247       { 8020,-2687,-682,-3704,11879,2052,-965,1921,5556 } },
248     { LIBRAW_CAMERAMAKER_Canon, "PowerShot G1 X Mark III", 0, 0,
249       { 8532,-701,-1167,-4095,11879,2508,-797,2424,7010 } },
250     { LIBRAW_CAMERAMAKER_Canon, "PowerShot G1 X Mark II", 0, 0,
251       { 7378,-1255,-1043,-4088,12251,2048,-876,1946,5805 } },
252     { LIBRAW_CAMERAMAKER_Canon, "PowerShot G1 X", 0, 0,
253       { 7378,-1255,-1043,-4088,12251,2048,-876,1946,5805 } },
254     { LIBRAW_CAMERAMAKER_Canon, "PowerShot G1", 0, 0,
255       { -5686,10300,2223,4725,-1157,4383,-6128,10783,6163,-2688,12093,604 } },
256     { LIBRAW_CAMERAMAKER_Canon, "PowerShot G2", 0, 0,
257       { 9194,-2787,-1059,-8098,15657,2608,-2610,3064,7867 } },
258     { LIBRAW_CAMERAMAKER_Canon, "PowerShot G3 X", 0, 0,
259       { 9701,-3857,-921,-3149,11537,1817,-786,1817,5147 } },
260     { LIBRAW_CAMERAMAKER_Canon, "PowerShot G3", 0, 0,
261       { 9326,-2882,-1084,-7940,15447,2677,-2620,3090,7740 } },
262     { LIBRAW_CAMERAMAKER_Canon, "PowerShot G5 X Mark II",0, 0,
263       { 11629, -5713, -914, -2706, 11090, 1842, -206, 1225, 5515 } },
264     { LIBRAW_CAMERAMAKER_Canon, "PowerShot G5 X",0, 0,
265       { 9602,-3823,-937,-2984,11495,1675,-407,1415,5049 } },
266     { LIBRAW_CAMERAMAKER_Canon, "PowerShot G5", 0, 0,
267       { 9869,-2972,-942,-7314,15098,2369,-1898,2536,7282 } },
268     { LIBRAW_CAMERAMAKER_Canon, "PowerShot G6", 0, 0,
269       { 9876,-3774,-871,-7613,14807,3071,-1448,1305,7485 } },
270     { LIBRAW_CAMERAMAKER_Canon, "PowerShot G7 X Mark III", 0, 0,
271       { 11629, -5713, -914, -2706, 11090, 1842, -206, 1225, 5515 } },
272     { LIBRAW_CAMERAMAKER_Canon, "PowerShot G7 X Mark II", 0, 0,
273       { 9602,-3823,-937,-2984,11495,1675,-407,1415,5049 } },
274     { LIBRAW_CAMERAMAKER_Canon, "PowerShot G7 X", 0, 0,
275       { 9602,-3823,-937,-2984,11495,1675,-407,1415,5049 } },
276     { LIBRAW_CAMERAMAKER_Canon, "PowerShot G9 X Mark II", 0, 0,
277       { 10056,-4131,-944,-2576,11143,1625,-238,1294,5179 } },
278     { LIBRAW_CAMERAMAKER_Canon, "PowerShot G9 X",0, 0,
279       { 9602,-3823,-937,-2984,11495,1675,-407,1415,5049 } },
280     { LIBRAW_CAMERAMAKER_Canon, "PowerShot G9", 0, 0,
281       { 7368,-2141,-598,-5621,13254,2625,-1418,1696,5743 } },
282 
283     { LIBRAW_CAMERAMAKER_Canon, "PowerShot S2 IS", 0, 0,
284       { 5477,-1435,-992,-1868,6639,510,-58,792,2670 } }, // CHDK
285     { LIBRAW_CAMERAMAKER_Canon, "PowerShot S3 IS", 0, 0,
286       { 14062,-5199,-1446,-4712,12470,2243,-1286,2028,4836 } }, /* DJC */
287     { LIBRAW_CAMERAMAKER_Canon, "PowerShot S30", 0, 0,
288       { 10744,-3813,-1142,-7962,15966,2075,-2492,2805,7744 } },
289     { LIBRAW_CAMERAMAKER_Canon, "PowerShot S40", 0, 0,
290       { 8606,-2573,-949,-8237,15489,2974,-2649,3076,9100 } },
291     { LIBRAW_CAMERAMAKER_Canon, "PowerShot S45", 0, 0, // +
292       { 8251,-2410,-964,-8047,15430,2823,-2380,2824,8119 } },
293     { LIBRAW_CAMERAMAKER_Canon, "PowerShot S50", 0, 0,
294       { 8979,-2658,-871,-7721,15500,2357,-1773,2366,6634 } },
295     { LIBRAW_CAMERAMAKER_Canon, "PowerShot S60", 0, 0,
296       { 8794,-2482,-797,-7804,15403,2572,-1422,1996,7083 } },
297     { LIBRAW_CAMERAMAKER_Canon, "PowerShot S70", 0, 0,
298       { 9976,-3810,-832,-7115,14463,2906,-901,989,7889 } },
299     { LIBRAW_CAMERAMAKER_Canon, "PowerShot S90", 0, 0,
300       { 12374,-5016,-1049,-1677,9902,2078,-83,852,4683 } },
301     { LIBRAW_CAMERAMAKER_Canon, "PowerShot S95", 0, 0,
302       { 13440,-5896,-1279,-1236,9598,1931,-180,1001,4651 } },
303     { LIBRAW_CAMERAMAKER_Canon, "PowerShot S120", 0, 0,
304       { 6961,-1685,-695,-4625,12945,1836,-1114,2152,5518 } },
305     { LIBRAW_CAMERAMAKER_Canon, "PowerShot S110", 0, 0,
306       { 8039,-2643,-654,-3783,11230,2930,-206,690,4194 } },
307     { LIBRAW_CAMERAMAKER_Canon, "PowerShot S100", 0, 0,
308       { 7968,-2565,-636,-2873,10697,2513,180,667,4211 } },
309 
310     { LIBRAW_CAMERAMAKER_Canon, "PowerShot SD300", 0, 0,
311       { 6526,-1720,-1075,-1390,5945,602,-90,820,2380 } }, // CHDK
312 
313     { LIBRAW_CAMERAMAKER_Canon, "PowerShot SX1 IS", 0, 0,
314       { 6578,-259,-502,-5974,13030,3309,-308,1058,4970 } },
315     { LIBRAW_CAMERAMAKER_Canon, "PowerShot SX20 IS", 0, 0,
316       { 8275,-2904,-1260,-128,5305,505,51,481,2450 } }, // CHDK
317     { LIBRAW_CAMERAMAKER_Canon, "PowerShot SX30 IS", 0, 0,
318       { 13014,-4698,-1026,-2001,9615,2386,-164,1423,3759 } }, // CHDK
319     { LIBRAW_CAMERAMAKER_Canon, "PowerShot SX40 HS", 0, 0,
320       { 54480,-17404,-8039,-7505,44044,1136,-580,7158,11891 } }, // CHDK
321     { LIBRAW_CAMERAMAKER_Canon, "PowerShot SX50 HS", 0, 0,
322       { 12432,-4753,-1247,-2110,10691,1629,-412,1623,4926 } },
323     { LIBRAW_CAMERAMAKER_Canon, "PowerShot SX60 HS", 0, 0,
324       { 13161,-5451,-1344,-1989,10654,1531,-47,1271,4955 } },
325     { LIBRAW_CAMERAMAKER_Canon, "PowerShot SX70 HS", 0, 0,
326       { 18285,-8907,-1951,-1845,10688,1323,364,1101,5139 } },
327     { LIBRAW_CAMERAMAKER_Canon, "PowerShot SX110 IS", 0, 0,
328       { 14134,-5576,-1527,-1991,10719,1273,-1158,1929,3581 } }, /* DJC */
329     { LIBRAW_CAMERAMAKER_Canon, "PowerShot SX120 IS", 0, 0,
330       { 7286,-2242,-1047,41,4401,457,269,684,1864 } }, // CHDK
331     { LIBRAW_CAMERAMAKER_Canon, "PowerShot SX220 HS", 0, 0,
332       { 13898,-5076,-1447,-1405,10109,1297,-244,1860,3687 } }, /* DJC */
333     { LIBRAW_CAMERAMAKER_Canon, "PowerShot SX710 HS", 0, 0,
334       { 13161,-5451,-1344,-1989,10654,1531,-47,1271,4955 } },
335 
336     { LIBRAW_CAMERAMAKER_Canon, "PowerShot Pro1", 0, 0,
337       { 10062,-3522,-1000,-7643,15117,2730,-765,817,7322 } },
338     { LIBRAW_CAMERAMAKER_Canon, "PowerShot Pro70", 34, 0,
339       { -5106,10695,1576,3820,53,4566,-6497,10736,6701,-3336,11887,1394 } },
340     { LIBRAW_CAMERAMAKER_Canon, "PowerShot Pro90", 0, 0,
341       { -5912,10768,2288,4612,-989,4333,-6153,10897,5944,-2907,12288,624 } },
342 
343     { LIBRAW_CAMERAMAKER_Casio, "EX-F1", 0, 0,
344       { 9084,-2016,-848,-6711,14351,2570,-1059,1725,6135 } },
345     { LIBRAW_CAMERAMAKER_Casio, "EX-FH100", 0, 0,
346       { 12771,-4179,-1558,-2149,10938,1375,-453,1751,4494 } },
347     { LIBRAW_CAMERAMAKER_Casio, "EX-S20", 0, 0,
348       { 11634,-3924,-1128,-4968,12954,2015,-1588,2648,7206 } }, /* DJC */
349     { LIBRAW_CAMERAMAKER_Casio, "EX-Z750", 0, 0,
350       { 10819,-3873,-1099,-4903,13730,1175,-1755,3751,4632 } }, /* DJC */
351     { LIBRAW_CAMERAMAKER_Casio, "EX-Z10", 128, 0xfff,
352       { 9790,-3338,-603,-2321,10222,2099,-344,1273,4799 } }, /* DJC */
353 
354     { LIBRAW_CAMERAMAKER_CINE, "650", 0, 0,
355       { 3390,480,-500,-800,3610,340,-550,2336,1192 } },
356     { LIBRAW_CAMERAMAKER_CINE, "660", 0, 0,
357       { 3390,480,-500,-800,3610,340,-550,2336,1192 } },
358 	  { LIBRAW_CAMERAMAKER_CINE, "", 0, 0, /* empty camera name*/
359       { 20183,-4295,-423,-3940,15330,3985,-280,4870,9800 } },
360 
361     { LIBRAW_CAMERAMAKER_Contax, "N Digital", 0, 0xf1e,
362       { 7777,1285,-1053,-9280,16543,2916,-3677,5679,7060 } },
363 
364     { LIBRAW_CAMERAMAKER_DXO, "ONE", 0, 0,
365       { 6596,-2079,-562,-4782,13016,1933,-970,1581,5181 } },
366 
367     { LIBRAW_CAMERAMAKER_Epson, "R-D1", 0, 0, // same CMs: R-D1, R-D1s, R-D1x
368       { 6827,-1878,-732,-8429,16012,2564,-704,592,7145 } },
369 
370     { LIBRAW_CAMERAMAKER_Fujifilm, "DBP for GX680", -128, 0x0fff,
371       { 12741,-4916,-1420,-8510,16791,1715,-1767,2302,7771 } }, /* temp, copy from S2Pro */
372 
373     { LIBRAW_CAMERAMAKER_Fujifilm, "E550", 0, 0,
374       { 11044,-3888,-1120,-7248,15167,2208,-1531,2276,8069 } },
375     { LIBRAW_CAMERAMAKER_Fujifilm, "E900", 0, 0,
376       { 9183,-2526,-1078,-7461,15071,2574,-2022,2440,8639 } },
377     { LIBRAW_CAMERAMAKER_Fujifilm, "F5", 0, 0, // F500EXR/F505EXR; F550EXR
378       { 13690,-5358,-1474,-3369,11600,1998,-132,1554,4395 } },
379     { LIBRAW_CAMERAMAKER_Fujifilm, "F6", 0, 0, // F600EXR/F605EXR; F660EXR
380       { 13690,-5358,-1474,-3369,11600,1998,-132,1554,4395 } },
381     { LIBRAW_CAMERAMAKER_Fujifilm, "F77", 0, 0xfe9, // F770EXR/F775EXR
382       { 13690,-5358,-1474,-3369,11600,1998,-132,1554,4395 } },
383     { LIBRAW_CAMERAMAKER_Fujifilm, "F7", 0, 0, // same CMs: F700, F710EXR
384       { 10004,-3219,-1201,-7036,15047,2107,-1863,2565,7736 } },
385     { LIBRAW_CAMERAMAKER_Fujifilm, "F810", 0, 0,
386       { 11044,-3888,-1120,-7248,15167,2208,-1531,2276,8069 } },
387     { LIBRAW_CAMERAMAKER_Fujifilm, "F8", 0, 0, // F800EXR
388       { 13690,-5358,-1474,-3369,11600,1998,-132,1554,4395 } },
389     { LIBRAW_CAMERAMAKER_Fujifilm, "F900EXR", 0, 0,
390       { 12085,-4727,-953,-3257,11489,2002,-511,2046,4592 } },
391 
392     { LIBRAW_CAMERAMAKER_Fujifilm, "GFX 100", 0, 0, // same CMs: "GFX 100", "GFX 100S"/"GFX100S", "GFX 100 IR"
393       { 16212,-8423,-1583,-4336,12583,1937,-195,726,6199 } },
394     { LIBRAW_CAMERAMAKER_Fujifilm, "GFX 50", 0, 0,  // same CMs: "GFX 50S", "GFX 50R", "GFX 50S II"
395       { 11756,-4754,-874,-3056,11045,2305,-381,1457,6006 } },
396 
397     { LIBRAW_CAMERAMAKER_Fujifilm, "HS10", 0, 0xf68,
398       { 12440,-3954,-1183,-1123,9674,1708,-83,1614,4086 } },
399     { LIBRAW_CAMERAMAKER_Fujifilm, "HS2", 0, 0, // HS20EXR/HS22EXR
400       { 13690,-5358,-1474,-3369,11600,1998,-132,1554,4395 } },
401     { LIBRAW_CAMERAMAKER_Fujifilm, "HS3", 0, 0, // HS30EXR/HS33EXR/HS35EXR
402       { 13690,-5358,-1474,-3369,11600,1998,-132,1554,4395 } },
403     { LIBRAW_CAMERAMAKER_Fujifilm, "HS50EXR", 0, 0,
404       { 12085,-4727,-953,-3257,11489,2002,-511,2046,4592 } },
405 
406     { LIBRAW_CAMERAMAKER_Fujifilm, "IS-1", 0, 0,
407       { 21461,-10807,-1441,-2332,10599,1999,289,875,7703 } },
408     { LIBRAW_CAMERAMAKER_Fujifilm, "IS Pro", 0, 0,
409       { 12300,-5110,-1304,-9117,17143,1998,-1947,2448,8100 } },
410 
411     { LIBRAW_CAMERAMAKER_Fujifilm, "S5000", 0, 0,
412       { 8754,-2732,-1019,-7204,15069,2276,-1702,2334,6982 } },
413     { LIBRAW_CAMERAMAKER_Fujifilm, "S5100", 0, 0,
414       { 11940,-4431,-1255,-6766,14428,2542,-993,1165,7421 } },
415     { LIBRAW_CAMERAMAKER_Fujifilm, "S5200", 0, 0, // S5200/S5600
416       { 9636,-2804,-988,-7442,15040,2589,-1803,2311,8621 } },
417     { LIBRAW_CAMERAMAKER_Fujifilm, "S6", 0, 0, // S6000fd/S6500fd
418       { 12628,-4887,-1401,-6861,14996,1962,-2198,2782,7091 } },
419     { LIBRAW_CAMERAMAKER_Fujifilm, "S7000", 0, 0,
420       { 10190,-3506,-1312,-7153,15051,2238,-2003,2399,7505 } },
421     { LIBRAW_CAMERAMAKER_Fujifilm, "S9000", 0, 0, // S9000/S9500
422       { 10491,-3423,-1145,-7385,15027,2538,-1809,2275,8692 } },
423     { LIBRAW_CAMERAMAKER_Fujifilm, "S9100", 0, 0, // S9100/S9600
424       { 12343,-4515,-1285,-7165,14899,2435,-1895,2496,8800 } },
425 
426     { LIBRAW_CAMERAMAKER_Fujifilm, "S100FS", -514, 0,
427       { 11521,-4355,-1065,-6524,13767,3058,-1466,1984,6045 } },
428 
429     { LIBRAW_CAMERAMAKER_Fujifilm, "S20Pro", 0, 0,
430       { 10004,-3219,-1201,-7036,15047,2107,-1863,2565,7736 } },
431     { LIBRAW_CAMERAMAKER_Fujifilm, "S20", -512, 0x3fff, // S200EXR/S205EXR
432       { 11401,-4498,-1312,-5088,12751,2613,-838,1568,5941 } },
433 
434     { LIBRAW_CAMERAMAKER_Fujifilm, "SL1000", 0, 0,
435       { 11705,-4262,-1107,-2282,10791,1709,-555,1713,4945 } },
436 
437     { LIBRAW_CAMERAMAKER_Fujifilm, "S1", 0, 0,
438       { 12297,-4882,-1202,-2106,10691,1623,-88,1312,4790 } },
439     { LIBRAW_CAMERAMAKER_Fujifilm, "S2Pro", -128, 0,
440       { 12741,-4916,-1420,-8510,16791,1715,-1767,2302,7771 } },
441     { LIBRAW_CAMERAMAKER_Fujifilm, "S3Pro", 0, 0,
442       { 11807,-4612,-1294,-8927,16968,1988,-2120,2741,8006 } },
443     { LIBRAW_CAMERAMAKER_Fujifilm, "S5Pro", 0, 0,
444       { 12300,-5110,-1304,-9117,17143,1998,-1947,2448,8100 } },
445 
446     { LIBRAW_CAMERAMAKER_Fujifilm, "X100F", 0, 0,
447       { 11434,-4948,-1210,-3746,12042,1903,-666,1479,5235 } },
448     { LIBRAW_CAMERAMAKER_Fujifilm, "X100S", 0, 0,
449       { 10592,-4262,-1008,-3514,11355,2465,-870,2025,6386 } },
450     { LIBRAW_CAMERAMAKER_Fujifilm, "X100T", 0, 0,
451       { 10592,-4262,-1008,-3514,11355,2465,-870,2025,6386 } },
452     { LIBRAW_CAMERAMAKER_Fujifilm, "X100V", 0, 0,
453       { 13426,-6334,-1177,-4244,12136,2371,580,1303,5980 } },
454     { LIBRAW_CAMERAMAKER_Fujifilm, "X100", 0, 0,
455       { 12161,-4457,-1069,-5034,12874,2400,-795,1724,6904 } },
456 
457     { LIBRAW_CAMERAMAKER_Fujifilm, "X10", 0, 0,
458       { 13509,-6199,-1254,-4430,12733,1865,-331,1441,5022 } },
459     { LIBRAW_CAMERAMAKER_Fujifilm, "X20", 0, 0,
460       { 11768,-4971,-1133,-4904,12927,2183,-480,1723,4605 } },
461     { LIBRAW_CAMERAMAKER_Fujifilm, "X30", 0, 0,
462       { 12328,-5256,-1144,-4469,12927,1675,-87,1291,4351 } },
463     { LIBRAW_CAMERAMAKER_Fujifilm, "X70", 0, 0,
464       { 10450,-4329,-878,-3217,11105,2421,-752,1758,6519 } },
465 
466     { LIBRAW_CAMERAMAKER_Fujifilm, "XF10", 0, 0,
467       { 11673,-4760,-1041,-3988,12058,2166,-771,1417,5569 } },
468     { LIBRAW_CAMERAMAKER_Fujifilm, "XF1", 0, 0,
469       { 13509,-6199,-1254,-4430,12733,1865,-331,1441,5022 } },
470 
471     { LIBRAW_CAMERAMAKER_Fujifilm, "XQ", 0, 0,  // same CMs: XQ1, XQ2
472       { 9252,-2704,-1064,-5893,14265,1717,-1101,2341,4349 } },
473 
474     { LIBRAW_CAMERAMAKER_Fujifilm, "X-Pro1", 0, 0,
475       { 10413,-3996,-993,-3721,11640,2361,-733,1540,6011 } },
476     { LIBRAW_CAMERAMAKER_Fujifilm, "X-Pro2", 0, 0,
477       { 11434,-4948,-1210,-3746,12042,1903,-666,1479,5235 } },
478     { LIBRAW_CAMERAMAKER_Fujifilm, "X-Pro3", 0, 0,
479       { 13426,-6334,-1177,-4244,12136,2371,580,1303,5980 } },
480 
481     { LIBRAW_CAMERAMAKER_Fujifilm, "X-A10", 0, 0,
482       { 11540,-4999,-991,-2949,10963,2278,-382,1049,5605} },
483     { LIBRAW_CAMERAMAKER_Fujifilm, "X-A20", 0, 0,
484       { 11540,-4999,-991,-2949,10963,2278,-382,1049,5605} },
485     { LIBRAW_CAMERAMAKER_Fujifilm, "X-A1", 0, 0,
486       { 11086,-4555,-839,-3512,11310,2517,-815,1341,5940 } },
487     { LIBRAW_CAMERAMAKER_Fujifilm, "X-A2", 0, 0,
488       { 10763,-4560,-917,-3346,11311,2322,-475,1135,5843 } },
489     { LIBRAW_CAMERAMAKER_Fujifilm, "X-A3", 0, 0,
490       { 12407,-5222,-1086,-2971,11116,2120,-294,1029,5284 } },
491     { LIBRAW_CAMERAMAKER_Fujifilm, "X-A5", 0, 0,
492       { 11673,-4760,-1041,-3988,12058,2166,-771,1417,5569 } },
493     { LIBRAW_CAMERAMAKER_Fujifilm, "X-A7", 0, 0,
494       { 15055,-7391,-1274,-4062,12071,2238,-610,1217,6147 } },
495     { LIBRAW_CAMERAMAKER_Fujifilm, "X-E1", 0, 0,
496       { 10413,-3996,-993,-3721,11640,2361,-733,1540,6011 } },
497     { LIBRAW_CAMERAMAKER_Fujifilm, "X-E2S", 0, 0,
498       { 11562,-5118,-961,-3022,11007,2311,-525,1569,6097 } },
499     { LIBRAW_CAMERAMAKER_Fujifilm, "X-E2", 0, 0,
500       { 8458,-2451,-855,-4597,12447,2407,-1475,2482,6526 } },
501     { LIBRAW_CAMERAMAKER_Fujifilm, "X-E3", 0, 0,
502       { 11434,-4948,-1210,-3746,12042,1903,-666,1479,5235 } },
503     { LIBRAW_CAMERAMAKER_Fujifilm, "X-E4", 0, 0,
504       { 13426, -6334, -1177, -4244, 12136, 2371, -580, 1303, 5980 } },
505     { LIBRAW_CAMERAMAKER_Fujifilm, "X-H1", 0, 0,
506       { 11434,-4948,-1210,-3746,12042,1903,-666,1479,5235 } },
507     { LIBRAW_CAMERAMAKER_Fujifilm, "X-M1", 0, 0,
508       { 10413,-3996,-993,-3721,11640,2361,-733,1540,6011 } },
509     { LIBRAW_CAMERAMAKER_Fujifilm, "X-S10", 0, 0,
510       { 13426,-6334,-1177,-4244,12136,2371,-580,1303,5980 } },
511     { LIBRAW_CAMERAMAKER_Fujifilm, "X-S1", 0, 0,
512       { 13509,-6199,-1254,-4430,12733,1865,-331,1441,5022 } },
513 
514     { LIBRAW_CAMERAMAKER_Fujifilm, "X-T100", 0, 0,
515       { 11673,-4760,-1041,-3988,12058,2166,-771,1417,5569 } },
516     { LIBRAW_CAMERAMAKER_Fujifilm, "X-T1", 0, 0, /* same CMs: X-T1, "X-T1IR", "X-T1 IR", X-T10 */
517       { 8458,-2451,-855,-4597,12447,2407,-1475,2482,6526 } },
518     { LIBRAW_CAMERAMAKER_Fujifilm, "X-T200", 0, 0,
519       { 15055,-7391,-1274,-4062,12071,2238,-610,1217,6147 } },
520     { LIBRAW_CAMERAMAKER_Fujifilm, "X-T2", 0, 0,  // same CMs: X-T2, X-T20
521       { 11434,-4948,-1210,-3746,12042,1903,-666,1479,5235 } },
522     { LIBRAW_CAMERAMAKER_Fujifilm, "X-T3", 0, 0,   // same CMs: X-T3, X-T30
523       { 13426,-6334,-1177,-4244,12136,2371,580,1303,5980 } }, // v.2
524     { LIBRAW_CAMERAMAKER_Fujifilm, "X-T4", 0, 0,
525       { 13426,-6334,-1177,-4244,12136,2371,580,1303,5980 } },
526 
527     { LIBRAW_CAMERAMAKER_GITUP, "G3DUO", 130, 62000,
528        { 8489,-2583,-1036,-8051,15583,2643,-1307,1407,7354 } },
529 
530     { LIBRAW_CAMERAMAKER_GITUP, "GIT2P", 4160, 0,
531       { 8489,-2583,-1036,-8051,15583,2643,-1307,1407,7354 } },
532     { LIBRAW_CAMERAMAKER_GITUP, "GIT2", 3200, 0,
533       { 8489,-2583,-1036,-8051,15583,2643,-1307,1407,7354 } },
534 
535     { LIBRAW_CAMERAMAKER_GoPro, "HERO5 Black", 0, 0,
536 	    { 10344,-4210,-620,-2315,10625,1948,93,1058,5541 } },
537 
538     {LIBRAW_CAMERAMAKER_Hasselblad, "L1D-20c", 0, 0,
539       {  7310, -2746,  -646, -2991, 10847,  2469,   163,   585,  6324}},
540 
541     { LIBRAW_CAMERAMAKER_Hasselblad, "16-Uncoated-3FR", 0, 0,
542       {  8519, -3260,  -280, -5081, 13459,  1738, -1449,  2960,  7809}},
543     { LIBRAW_CAMERAMAKER_Hasselblad, "16-Uncoated-FFF", 0, 0,
544       {  8068, -2959,  -108, -5788, 13608,  2389, -1002,  2237,  8162}},
545     { LIBRAW_CAMERAMAKER_Hasselblad, "16-Uncoated", 0, 0,
546       {  8519, -3260,  -280, -5081, 13459,  1738, -1449,  2960,  7809}},
547 
548     { LIBRAW_CAMERAMAKER_Hasselblad, "22-Uncoated-3FR", 0, 0,
549       {  8523, -3257,  -280, -5078, 13458,  1743, -1449,  2961,  7809}},
550     { LIBRAW_CAMERAMAKER_Hasselblad, "22-Uncoated-FFF", 0, 0,
551       {  8068, -2959,  -108, -5788, 13608,  2389, -1002,  2237,  8162}},
552     { LIBRAW_CAMERAMAKER_Hasselblad, "22-Uncoated", 0, 0,
553       {  8519, -3260,  -280, -5081, 13459,  1738, -1449,  2960,  7809}},
554 
555     {LIBRAW_CAMERAMAKER_Hasselblad, "31-Uncoated-FFF", 0, 0,
556       {  5155, -1201,   200, -5841, 13197,  2950, -1101,  2317,  6988}},
557     {LIBRAW_CAMERAMAKER_Hasselblad, "31-Uncoated", 0, 0,
558       {  5458, -1448,   145, -4479, 12338,  2401, -1659,  3086,  6710}},
559 
560     {LIBRAW_CAMERAMAKER_Hasselblad, "39-Uncoated-3FR", 0, 0,
561       {  3904,  -100,   262, -4318, 12407,  2128, -1598,  3594,  6233}},
562     {LIBRAW_CAMERAMAKER_Hasselblad, "39-Uncoated-FFF", 0, 0,
563       {  4739,  -932,   295, -4829, 12220,  2952, -1027,  2341,  7083}},
564     {LIBRAW_CAMERAMAKER_Hasselblad, "39-Uncoated", 0, 0,
565       {  3894,  -110,   287, -4672, 12610,  2295, -2092,  4100,  6196}},
566 
567     { LIBRAW_CAMERAMAKER_Hasselblad, "39-Coated-3FR", 0, 0,
568       {  5427, -1147,   173, -3834, 12073,  1969, -1444,  3320,  5621}},
569     { LIBRAW_CAMERAMAKER_Hasselblad, "39-Coated-FFF", 0, 0,
570       {  5323, -1233,   399, -4926, 12362,  2894,  -856,  2471,  5961}},
571     { LIBRAW_CAMERAMAKER_Hasselblad, "39-Coated", 0, 0,
572       {  3857,   452,   -46, -6008, 14477,  1596, -2627,  4481,  5718}},
573 
574     {LIBRAW_CAMERAMAKER_Hasselblad, "40-Coated5-3FR", 0, 0,
575       {  7014, -2067,  -540, -4821, 13016,  1980, -1663,  3089,  6940}},
576     {LIBRAW_CAMERAMAKER_Hasselblad, "40-Coated5-FFF", 0, 0,
577       {  5963, -1357,  -172, -5439, 12762,  3007,  -964,  2222,  7172}},
578     {LIBRAW_CAMERAMAKER_Hasselblad, "40-Coated5", 0, 0,
579       {  6159, -1402,  -177, -5439, 12762,  3007,  -955,  2200,  7104}},
580 
581     { LIBRAW_CAMERAMAKER_Hasselblad, "40-Coated-3FR", 0, 0,
582       {  6550, -1681,  -399, -4626, 12598,  2257, -1807,  3354,  6486}},
583     { LIBRAW_CAMERAMAKER_Hasselblad, "40-Coated-FFF", 0, 0,
584       {  6041, -1375,  -174, -5439, 10000,  3007,  -930,  2145,  6923}},
585     { LIBRAW_CAMERAMAKER_Hasselblad, "40-Coated", 0, 0,
586 	    {  6159, -1402,  -177, -5439, 12762,  3007,  -955,  2200,  7104}},
587 
588     { LIBRAW_CAMERAMAKER_Hasselblad, "50-Coated5-3FR", 0, 0,
589       {  5707,  -693,  -382, -4285, 12669,  1773, -1615,  3519,  5410}},
590     { LIBRAW_CAMERAMAKER_Hasselblad, "50-Coated5-FFF", 0, 0,
591       {  5263,  -612,    39, -4950, 12426,  2843,  -935,  2423,  5941}},
592     { LIBRAW_CAMERAMAKER_Hasselblad, "50-Coated5", 0, 0,
593       {  5656,  -659,  -346, -3923, 12306,  1791, -1602,  3509,  5442}},
594 
595     { LIBRAW_CAMERAMAKER_Hasselblad, "50-Coated-3FR", 0, 0,
596       {  5656,  -659,  -346, -3923, 12305,  1790, -1602,  3509,  5442}},
597     { LIBRAW_CAMERAMAKER_Hasselblad, "50-Coated-FFF", 0, 0,
598       {  5280,  -614,    39, -4950, 12426,  2843,  -939,  2434,  5968}},
599     { LIBRAW_CAMERAMAKER_Hasselblad, "50-Coated", 0, 0,
600 	    {  5656,  -659,  -346, -3923, 12306, 1791,  -1602,  3509,  5442}},
601 
602     { LIBRAW_CAMERAMAKER_Hasselblad, "50-15-Coated5-II-3FR", 0, 0,
603       { 10887, -6152,  1034, -3564, 12412,  4224,    63,   626, 10123}},
604     { LIBRAW_CAMERAMAKER_Hasselblad, "50-15-Coated5-II-FFF", 0, 0,
605       {  4932,  -835,   141, -4878, 11868,  3437, -1138,  1961,  7067}},
606     { LIBRAW_CAMERAMAKER_Hasselblad, "50-15-Coated5-II", 0, 0,
607       {  8737, -4937,   830, -2860,  9961,  3390,    51,   502,  8124}},
608 
609     { LIBRAW_CAMERAMAKER_Hasselblad, "50-15-Coated5", 0, 0,
610 	    { 4932,-835,141,-4878,11868,3437,-1138,1961,7067 } },
611 
612     { LIBRAW_CAMERAMAKER_Hasselblad, "60-Coated-3FR", 0, 0,
613       {  9296,   336, -1088, -6442, 14323,  2289, -1433,  2942,  5756}},
614     { LIBRAW_CAMERAMAKER_Hasselblad, "60-Coated", 0, 0,
615 	    {  9662,  -684,  -279, -4903, 12293,  2950,  -344,  1669,  6024}},
616 
617     { LIBRAW_CAMERAMAKER_Hasselblad, "100-17-Coated5", 0, 0,
618       {  5110, -1357,  -308, -5573, 12835,  3077, -1279,  2025,  7010}},
619 
620     { LIBRAW_CAMERAMAKER_HTC, "One A9", 64, 1023,
621       { 101,-20,-2,-11,145,41,-24,1,56 } }, /* this is FM1 transposed */
622 
623     { LIBRAW_CAMERAMAKER_Imacon, "Ixpress", 0, 0,
624       { 7025,-1415,-704,-5188,13765,1424,-1248,2742,6038 } }, /* DJC */
625 
626     { LIBRAW_CAMERAMAKER_Kodak, "NC2000", 0, 0, // AP Nikon
627       { 13891,-6055,-803,-465,9919,642,2121,82,1291 } },
628     { LIBRAW_CAMERAMAKER_Kodak, "DCS315C", -8, 0,
629       { 17523,-4827,-2510,756,8546,-137,6113,1649,2250 } },
630     { LIBRAW_CAMERAMAKER_Kodak, "DCS330C", -8, 0,
631       { 20620,-7572,-2801,-103,10073,-396,3551,-233,2220 } },
632     { LIBRAW_CAMERAMAKER_Kodak, "DCS420", 0, 0,
633       { 10868,-1852,-644,-1537,11083,484,2343,628,2216 } },
634     { LIBRAW_CAMERAMAKER_Kodak, "DCS46", 0, 0, // same CM as EOSDCS1 and DCS465 DB
635       { 10592,-2206,-967,-1944,11685,230,2206,670,1273 } },
636     { LIBRAW_CAMERAMAKER_Kodak, "DCS520C", -178, 0, // same CamID: DCS520C, "EOS D2000C"
637       { 24542,-10860,-3401,-1490,11370,-297,2858,-605,3225 } },
638     { LIBRAW_CAMERAMAKER_Kodak, "DCS560C", -177, 0, // same CamID: DCS560C, "EOS D6000C"
639       { 20482,-7172,-3125,-1033,10410,-285,2542,226,3136 } },
640     { LIBRAW_CAMERAMAKER_Kodak, "DCS620C", -177, 0,
641       { 23617,-10175,-3149,-2054,11749,-272,2586,-489,3453 } },
642     { LIBRAW_CAMERAMAKER_Kodak, "DCS620X", -176, 0,
643       { 13095,-6231,154,12221,-21,-2137,895,4602,2258 } },
644     { LIBRAW_CAMERAMAKER_Kodak, "DCS660C", -173, 0,
645       { 18244,-6351,-2739,-791,11193,-521,3711,-129,2802 } },
646     { LIBRAW_CAMERAMAKER_Kodak, "DCS720X", 0, 0,
647       { 11775,-5884,950,9556,1846,-1286,-1019,6221,2728 } },
648     { LIBRAW_CAMERAMAKER_Kodak, "DCS760C", 0, 0,
649       { 16623,-6309,-1411,-4344,13923,323,2285,274,2926 } },
650     { LIBRAW_CAMERAMAKER_Kodak, "DCS Pro SLR", 0, 0,
651       { 5494,2393,-232,-6427,13850,2846,-1876,3997,5445 } },
652     { LIBRAW_CAMERAMAKER_Kodak, "DCS Pro 14nx", 0, 0,
653       { 5494,2393,-232,-6427,13850,2846,-1876,3997,5445 } },
654     { LIBRAW_CAMERAMAKER_Kodak, "DCS Pro 14", 0, 0, // same CamID: "DCS Pro 14N", "Photo Control Camerz ZDS 14"
655       { 7791,3128,-776,-8588,16458,2039,-2455,4006,6198 } },
656     { LIBRAW_CAMERAMAKER_Kodak, "EOSDCS1", 0, 0,
657       { 10592,-2206,-967,-1944,11685,230,2206,670,1273 } },
658     { LIBRAW_CAMERAMAKER_Kodak, "EOSDCS3", 0, 0,
659       { 9898,-2700,-940,-2478,12219,206,1985,634,1031 } },
660     { LIBRAW_CAMERAMAKER_Kodak, "ProBack645", 0, 0,
661       { 16414,-6060,-1470,-3555,13037,473,2545,122,4948 } },
662     { LIBRAW_CAMERAMAKER_Kodak, "ProBack", 0, 0,
663       { 21179,-8316,-2918,-915,11019,-165,3477,-180,4210 } },
664 
665     {LIBRAW_CAMERAMAKER_Kodak, "PIXPRO AZ901", 0, 0,	// dng
666       { 21875, -8006, -2558,   634,  8194,  1104,  1535,   951,  6969}},
667     { LIBRAW_CAMERAMAKER_Kodak, "P712", 0, 3963,
668       { 9658,-3314,-823,-5163,12695,2768,-1342,1843,6044 } },
669     { LIBRAW_CAMERAMAKER_Kodak, "P850", 0, 3964,
670       { 10511,-3836,-1102,-6946,14587,2558,-1481,1792,6246 } },
671     { LIBRAW_CAMERAMAKER_Kodak, "P880", 0, 3963,
672       { 12805,-4662,-1376,-7480,15267,2360,-1626,2194,7904 } },
673     { LIBRAW_CAMERAMAKER_Kodak, "Z980", 0, 0,
674       { 11313,-3559,-1101,-3893,11891,2257,-1214,2398,4908 } },
675     { LIBRAW_CAMERAMAKER_Kodak, "Z981", 0, 0,
676       { 12729,-4717,-1188,-1367,9187,2582,274,860,4411 } },
677     { LIBRAW_CAMERAMAKER_Kodak, "Z990", 0, 0xfed,
678       { 11749,-4048,-1309,-1867,10572,1489,-138,1449,4522 } },
679     { LIBRAW_CAMERAMAKER_Kodak, "Z1015", 0, 0xef1,
680       { 11265,-4286,-992,-4694,12343,2647,-1090,1523,5447 } },
681 
682     {LIBRAW_CAMERAMAKER_Leaf, "AFi 54S", 0, 0,
683       {  8236,  1746, -1313, -8251, 15953,  2428, -3672,  5786,  5771}},
684     {LIBRAW_CAMERAMAKER_Leaf, "AFi 65S", 0, 0,
685       {  7914,  1414, -1190, -8776, 16582,  2280, -2811,  4605,  5562}},
686     {LIBRAW_CAMERAMAKER_Leaf, "AFi 75S", 0, 0,
687       {  7914,  1414, -1190, -8776, 16582,  2280, -2811,  4605,  5562}},
688     {LIBRAW_CAMERAMAKER_Leaf, "Aptus 17", 0, 0,
689       {  8236,  1746, -1313, -8251, 15953,  2428, -3672,  5786,  5771}},
690     {LIBRAW_CAMERAMAKER_Leaf, "Aptus 22", 0, 0,
691       {  8236,  1746, -1313, -8251, 15953,  2428, -3672,  5786,  5771}},
692     {LIBRAW_CAMERAMAKER_Leaf, "Aptus 54S", 0, 0,
693       {  8236,  1746, -1313, -8251, 15953,  2428, -3672,  5786,  5771}},
694     {LIBRAW_CAMERAMAKER_Leaf, "Aptus 65S", 0, 0,
695       {  7914,  1414, -1190, -8776, 16582,  2280, -2811,  4605,  5562}},
696     {LIBRAW_CAMERAMAKER_Leaf, "Aptus 65", 0, 0,
697       {  7914,  1414, -1190, -8776, 16582,  2280, -2811,  4605,  5562}},
698     {LIBRAW_CAMERAMAKER_Leaf, "Aptus 75S", 0, 0,
699       {  7914,  1414, -1190, -8776, 16582,  2280, -2811,  4605,  5562}},
700     {LIBRAW_CAMERAMAKER_Leaf, "Aptus 75", 0, 0,
701       {  7914,  1414, -1190, -8776, 16582,  2280, -2811,  4605,  5562}},
702     {LIBRAW_CAMERAMAKER_Leaf, "C-Most", 0, 0,
703       {  3952,  2188,   449, -6701, 14584,  2275, -4536,  7349,  6535}},
704     {LIBRAW_CAMERAMAKER_Leaf, "Credo 40", 0, 0,
705       {  8035,   435,  -962, -6001, 13872,  2320, -1159,  3065,  5434}},
706     {LIBRAW_CAMERAMAKER_Leaf, "Credo 50", 0, 0, // emb
707       { 10325,   845,  -604, -4113, 13385,   481, -1791,  4163,  6924}},
708     {LIBRAW_CAMERAMAKER_Leaf, "Credo 60", 0, 0,
709       {  8035,   435,  -962, -6001, 13872,  2320, -1159,  3065,  5434}},
710     {LIBRAW_CAMERAMAKER_Leaf, "Credo 80", 0, 0,
711       {  6294,   686,  -712, -5435, 13417,  2211, -1006,  2435,  5042}},
712     {LIBRAW_CAMERAMAKER_Leaf, "Valeo 11", 0, 0,
713       {  8236,  1746, -1313, -8251, 15953,  2428, -3672,  5786,  5771}},
714     {LIBRAW_CAMERAMAKER_Leaf, "Valeo 17", 0, 0,
715       {  8236,  1746, -1313, -8251, 15953,  2428, -3672,  5786,  5771}},
716     {LIBRAW_CAMERAMAKER_Leaf, "Valeo 22", 0, 0,
717       {  8236,  1746, -1313, -8251, 15953,  2428, -3672,  5786,  5771}},
718     {LIBRAW_CAMERAMAKER_Leaf, "Valeo 6", 0, 0,
719       {  3952,  2188,   449, -6701, 14584,  2275, -4536,  7349,  6535}},
720 
721 //     { LIBRAW_CAMERAMAKER_Leaf, "AFi-II 6", 0, 0,
722     { LIBRAW_CAMERAMAKER_Leaf, "AFi-II 7", 0, 0,
723       { 7691,-108,-339,-6185,13627,2833,-2046,3899,5952 } },
724     { LIBRAW_CAMERAMAKER_Leaf, "AFi-II 10", 0, 0,
725       { 6719,1147,-148,-6929,14061,3176,-1781,3343,5424 } },
726 
727     { LIBRAW_CAMERAMAKER_Leaf, "Aptus-II 5", 0, 0,
728       { 7914,1414,-1190,-8777,16582,2280,-2811,4605,5562 } },
729     { LIBRAW_CAMERAMAKER_Leaf, "Aptus-II 6", 0, 0,
730       { 7989,-113,-352,-6185,13627,2833,-2028,3866,5901 } },
731     { LIBRAW_CAMERAMAKER_Leaf, "Aptus-II 7", 0, 0,
732       { 8209,-116,-362,-6185,13627,2833,-1962,3740,5709 } },
733     { LIBRAW_CAMERAMAKER_Leaf, "Aptus-II 8", 0, 0,
734       { 7361,1257,-163,-6929,14061,3176,-1839,3454,5603 } },
735     { LIBRAW_CAMERAMAKER_Leaf, "Aptus-II 10R", 0, 0,
736       { 7167,1224,-158,-6929,14061,3176,-1826,3429,5562 } },
737     { LIBRAW_CAMERAMAKER_Leaf, "Aptus-II 10", 0, 0,
738       { 7527,1285,-166,-6929,14061,3176,-1995,3747,6077 } },
739 //     { LIBRAW_CAMERAMAKER_Leaf, "Aptus-II 12R", 0, 0,
740     { LIBRAW_CAMERAMAKER_Leaf, "Aptus-II 12", 0, 0,
741       { 7361,1257,-163,-6929,14061,3176,-1695,3182,5162 } },
742 
743     { LIBRAW_CAMERAMAKER_Leica, "CL", 0, 0,
744       { 7743,-2896,-921,-4211,12271,2169,-697,1562,5491 } },
745 
746     { LIBRAW_CAMERAMAKER_Leica, "M8", 0, 0,
747       { 7675,-2196,-305,-5860,14119,1856,-2425,4006,6578 } },
748     { LIBRAW_CAMERAMAKER_Leica, "M9", 0, 0,
749       { 6687,-1751,-291,-3556,11373,2492,-548,2204,7146 } },
750     { LIBRAW_CAMERAMAKER_Leica, "M10", 0, 0, // same CMs: M10, M10-D, M10-P
751       { 9090,-3342,-740,-4006,13456,493,-569,2266,6871 } },
752     { LIBRAW_CAMERAMAKER_Leica, "M (Typ 2", 0, 0, // same CMs: "M (Typ 240)", "M (Typ 262)", "M-D (Typ 262)"
753       { 7199,-2140,-712,-4005,13327,649,-810,2521,6673 } },
754 
755     { LIBRAW_CAMERAMAKER_Leica, "Q (Typ 116)", 0, 0,
756       { 10068,-4043,-1068,-5319,14268,1044,-765,1701,6522 } },
757     { LIBRAW_CAMERAMAKER_Leica, "Q2", 0, 0,
758       { 12312,-5440,-1307,-6408,15499,824,-1075,1677,7220 } },
759 
760     { LIBRAW_CAMERAMAKER_Leica, "SL (Typ 601)", 0, 0,
761       { 11865,-4523,-1441,-5423,14458,935,-1587,2687,4830 } },
762     { LIBRAW_CAMERAMAKER_Leica, "S (Typ 007)", 0, 0,
763       { 6063,-2234,-231,-5210,13787,1500,-1043,2866,6997 } },
764     { LIBRAW_CAMERAMAKER_Leica, "S2", 0, 0,
765       { 5627,-721,-447,-4423,12456,2192,-1048,2948,7379 } },
766     { LIBRAW_CAMERAMAKER_Leica, "S3", 0, 0,
767 //      { 5147,-1464,-318,-5374,13263,2325,-1425,2918,6450 } },
768       { 5092,-1630,-470,-6313,14297,2170,-1603,3135,5982 } },
769     {LIBRAW_CAMERAMAKER_Leica, "S", 0, 0, // same CMs: "S-E (Typ 006)", "S (Typ 006)"
770       { 5749,-1072,-382,-4274,12432,2048,-1166,3104,7105 } },
771 
772     { LIBRAW_CAMERAMAKER_Leica, "TL2", 0, 0,
773       { 6375,-2062,-732,-4878,12838,2262,-877,1705,6204 } },
774     { LIBRAW_CAMERAMAKER_Leica, "T", 0, 0, // same CMs: TL, "T (Typ 701)"
775       { 6295,-1679,-475,-5586,13046,2837,-1410,1889,7075 } },
776 
777     { LIBRAW_CAMERAMAKER_Leica, "X2", 0, 0,
778       { 8336,-2853,-699,-4425,11989,2760,-954,1625,6396 } },
779     { LIBRAW_CAMERAMAKER_Leica, "X1", 0, 0,
780       { 9055,-2611,-666,-4906,12652,2519,-555,1384,7417 } },
781     { LIBRAW_CAMERAMAKER_Leica, "X", 0, 0, /*  same CMs: "X (Typ 113)", "X-U (Typ 113)", XV, "X Vario (Typ 107)" */
782       { 9062,-3198,-828,-4065,11772,2603,-761,1468,6458 } },
783 
784     { LIBRAW_CAMERAMAKER_Mamiya,"ZD", 0, 0,
785       { 7645,2579,-1363,-8689,16717,2015,-3712,5941,5961 } },
786 
787     { LIBRAW_CAMERAMAKER_Micron, "2010", 110, 0,
788       { 16695,-3761,-2151,155,9682,163,3433,951,4904 } }, /* DJC */
789 
790     { LIBRAW_CAMERAMAKER_Minolta, "DiMAGE 5", 0, 0xf7d,
791       { 9117,-3063,-973,-7949,15763,2306,-2752,3136,8093 } },
792     { LIBRAW_CAMERAMAKER_Minolta, "DiMAGE 7Hi", 0, 0xf7d,
793       { 11555,-4064,-1256,-7903,15633,2409,-2811,3320,7358 } },
794     { LIBRAW_CAMERAMAKER_Minolta, "DiMAGE 7i", 0, 0xf7d,
795       { 11050,-3791,-1199,-7875,15585,2434,-2797,3359,7560 } },
796     { LIBRAW_CAMERAMAKER_Minolta, "DiMAGE 7", 0, 0xf7d,
797       { 9258,-2879,-1008,-8076,15847,2351,-2806,3280,7821 } },
798     { LIBRAW_CAMERAMAKER_Minolta, "DiMAGE A1", 0, 0xf8b,
799       { 9274,-2548,-1167,-8220,16324,1943,-2273,2721,8340 } },
800     { LIBRAW_CAMERAMAKER_Minolta, "DiMAGE A200", 0, 0,
801       { 8560,-2487,-986,-8112,15535,2771,-1209,1324,7743 } },
802     { LIBRAW_CAMERAMAKER_Minolta, "DiMAGE A2", 0, 0xf8f,
803       { 9097,-2726,-1053,-8073,15506,2762,-966,981,7763 } },
804     { LIBRAW_CAMERAMAKER_Minolta, "DiMAGE Z2", 0, 0,
805       { 11280,-3564,-1370,-4655,12374,2282,-1423,2168,5396 } }, /* DJC */
806     { LIBRAW_CAMERAMAKER_Minolta, "DG-5D", 0, 0xffb, // same CamID: "ALPHA 5D", "DYNAX 5D", "MAXXUM 5D", "Alpha Sweet Digital"
807       { 10284,-3283,-1086,-7957,15762,2316,-829,882,6644 } },
808     { LIBRAW_CAMERAMAKER_Minolta, "DG-7D", 0, 0xffb, // same CamID: "ALPHA 7D", "DYNAX 7D", "MAXXUM 7D"
809       { 10239,-3104,-1099,-8037,15727,2451,-927,925,6871 } },
810 
811     { LIBRAW_CAMERAMAKER_Motorola, "PIXL", 0, 0,
812       { 8898,-989,-1033,-3292,11619,1674,-661,3178,5216 } }, /* DJC */
813 
814     { LIBRAW_CAMERAMAKER_Nikon, "1 AW1", 0, 0,
815       { 6588,-1305,-693,-3277,10987,2634,-355,2016,5106 } },
816     { LIBRAW_CAMERAMAKER_Nikon, "1 J3", 0, 0,
817       { 6588,-1305,-693,-3277,10987,2634,-355,2016,5106 } },
818     { LIBRAW_CAMERAMAKER_Nikon, "1 J4", 0, 0,
819       { 5958,-1559,-571,-4021,11453,2939,-634,1548,5087 } },
820     { LIBRAW_CAMERAMAKER_Nikon, "1 J5", 0, 0,
821       { 7520,-2518,-645,-3844,12102,1945,-913,2249,6835 } },
822     { LIBRAW_CAMERAMAKER_Nikon, "1 S2", -200, 0,
823       { 6612,-1342,-618,-3338,11055,2623,-174,1792,5075 } },
824     { LIBRAW_CAMERAMAKER_Nikon, "1 V2", 0, 0,
825       { 6588,-1305,-693,-3277,10987,2634,-355,2016,5106 } },
826     { LIBRAW_CAMERAMAKER_Nikon, "1 V3", -200, 0,
827       { 5958,-1559,-571,-4021,11453,2939,-634,1548,5087 } },
828     { LIBRAW_CAMERAMAKER_Nikon, "1 ", 0, 0,      /* same CMs: "1 J1", "1 J2", "1 S1", "1 V1" */
829       { 8994,-2667,-865,-4594,12324,2552,-699,1786,6260 } },
830 
831     { LIBRAW_CAMERAMAKER_Nikon, "COOLPIX 2100", 0, 0, // a.k.a. E2100
832       { 13142,-4152,-1596,-4655,12374,2282,-1769,2696,6711 } }, /* DJC, copied from Z2, new white balance */
833     { LIBRAW_CAMERAMAKER_Nikon, "COOLPIX 2500", 0, 0, // a.k.a. E2500, possibly same CM as for E5000
834       { -5547,11762,2189,5814,-558,3342,-4924,9840,5949,688,9083,96 } },
835     { LIBRAW_CAMERAMAKER_Nikon, "COOLPIX 3200", 0, 0, // a.k.a. E3200
836       { 9846,-2085,-1019,-3278,11109,2170,-774,2134,5745 } }, /* DJC */
837     { LIBRAW_CAMERAMAKER_Nikon, "COOLPIX 4300", 0, 0, // a.k.a. E4300
838       { 11280,-3564,-1370,-4655,12374,2282,-1423,2168,5396 } }, /* DJC, copied from Minolta DiMAGE Z2 */
839     { LIBRAW_CAMERAMAKER_Nikon, "COOLPIX 4500", 0, 0, // a.k.a. E4500, possibly same CM as for E5000
840       { -5547,11762,2189,5814,-558,3342,-4924,9840,5949,688,9083,96 } },
841     { LIBRAW_CAMERAMAKER_Nikon, "COOLPIX 5000", 0, 0, // a.k.a. E5000
842       { -6678,12805,2248,5725,-499,3375,-5903,10713,6034,-270,9976,134 } },
843     { LIBRAW_CAMERAMAKER_Nikon, "COOLPIX 5400", 0, 0, // a.k.a. E5400
844       { 9349,-2988,-1001,-7918,15766,2266,-2097,2680,6839 } },
845     { LIBRAW_CAMERAMAKER_Nikon, "COOLPIX 5700", 0, 0, // a.k.a. E5700
846       { -6475,12496,2428,5409,-16,3180,-5965,10912,5866,-177,9918,248 } },
847     { LIBRAW_CAMERAMAKER_Nikon, "COOLPIX 8400", 0, 0, // a.k.a. E8400
848       { 7842,-2320,-992,-8154,15718,2599,-1098,1342,7560 } },
849     { LIBRAW_CAMERAMAKER_Nikon, "COOLPIX 8700", 0, 0, // a.k.a. E8700
850       { 8489,-2583,-1036,-8051,15583,2643,-1307,1407,7354 } },
851     { LIBRAW_CAMERAMAKER_Nikon, "COOLPIX 8800", 0, 0, // a.k.a. E8800
852       { 7971,-2314,-913,-8451,15762,2894,-1442,1520,7610 } },
853 
854     { LIBRAW_CAMERAMAKER_Nikon, "COOLPIX 700", 0, 0x3dd, // a.k.a. E700
855       { -3746,10611,1665,9621,-1734,2114,-2389,7082,3064,3406,6116,-244 } }, /* DJC */
856     { LIBRAW_CAMERAMAKER_Nikon, "COOLPIX 800", 0, 0x3dd, // a.k.a. E800
857       { -3746,10611,1665,9621,-1734,2114,-2389,7082,3064,3406,6116,-244 } }, /* DJC */
858     { LIBRAW_CAMERAMAKER_Nikon, "COOLPIX 950", 0, 0x3dd, // a.k.a. E950
859       { -3746,10611,1665,9621,-1734,2114,-2389,7082,3064,3406,6116,-244 } }, /* DJC */
860     { LIBRAW_CAMERAMAKER_Nikon, "COOLPIX 995", 0, 0,     // a.k.a. E995
861       { -5547,11762,2189,5814,-558,3342,-4924,9840,5949,688,9083,96 } }, /* DJC, copied from E5000 */
862 
863     { LIBRAW_CAMERAMAKER_Nikon, "COOLPIX A1000", 0, 0,
864       { 10601,-3487,-1127,-2931,11443,1676,-587,1740,5278 } },
865     { LIBRAW_CAMERAMAKER_Nikon, "COOLPIX B700", 0, 0,
866       { 14387,-6014,-1299,-1357,9975,1616,467,1047,4744 } },
867     { LIBRAW_CAMERAMAKER_Nikon, "COOLPIX A", 0, 0,
868       { 8198,-2239,-724,-4871,12389,2798,-1043,2050,7181 } },
869     { LIBRAW_CAMERAMAKER_Nikon, "COOLPIX P1000", 0, 0,
870       { 14294,-6116,-1333,-1628,10219,1637,-14,1158,5022 } },
871     { LIBRAW_CAMERAMAKER_Nikon, "COOLPIX P6000", 0, 0,
872       { 9698,-3367,-914,-4706,12584,2368,-837,968,5801 } },
873     { LIBRAW_CAMERAMAKER_Nikon, "COOLPIX P7000", 0, 0,
874       { 11432,-3679,-1111,-3169,11239,2202,-791,1380,4455 } },
875     { LIBRAW_CAMERAMAKER_Nikon, "COOLPIX P7100", 0, 0,
876       { 11053,-4269,-1024,-1976,10182,2088,-526,1263,4469 } },
877     { LIBRAW_CAMERAMAKER_Nikon, "COOLPIX P7700", -3200, 0, // same CamID: "COOLPIX P7700", "COOLPIX Deneb"
878       { 10321,-3920,-931,-2750,11146,1824,-442,1545,5539 } },
879     { LIBRAW_CAMERAMAKER_Nikon, "COOLPIX P7800", -3200, 0, // same CamID: "COOLPIX P7800", "COOLPIX Kalon"
880       { 10321,-3920,-931,-2750,11146,1824,-442,1545,5539 } },
881     { LIBRAW_CAMERAMAKER_Nikon, "COOLPIX P330", -200, 0,
882       { 10321,-3920,-931,-2750,11146,1824,-442,1545,5539 } },
883     { LIBRAW_CAMERAMAKER_Nikon, "COOLPIX P340", -200, 0,
884       { 10321,-3920,-931,-2750,11146,1824,-442,1545,5539 } },
885     { LIBRAW_CAMERAMAKER_Nikon, "Coolpix P950", 0, 0,
886       { 13307, -5641, -1290, -2048, 10581,  1689,   -64,  1222,  5176}},
887 
888     { LIBRAW_CAMERAMAKER_Nikon, "D3000", 0, 0,
889       { 8736,-2458,-935,-9075,16894,2251,-1354,1242,8263 } },
890     { LIBRAW_CAMERAMAKER_Nikon, "D3100", 0, 0,
891       { 7911,-2167,-813,-5327,13150,2408,-1288,2483,7968 } },
892     { LIBRAW_CAMERAMAKER_Nikon, "D3200", 0, 0xfb9,
893       { 7013,-1408,-635,-5268,12902,2640,-1470,2801,7379 } },
894     { LIBRAW_CAMERAMAKER_Nikon, "D3300", 0, 0,
895       { 6988,-1384,-714,-5631,13410,2447,-1485,2204,7318 } },
896     { LIBRAW_CAMERAMAKER_Nikon, "D3400", 0, 0,
897       { 6988,-1384,-714,-5631,13410,2447,-1485,2204,7318 } },
898     { LIBRAW_CAMERAMAKER_Nikon, "D3500", 0, 0,
899       { 8821,-2938,-785,-4178,12142,2287,-824,1651,6860 } },
900     { LIBRAW_CAMERAMAKER_Nikon, "D5000", 0, 0xf00,
901       { 7309,-1403,-519,-8474,16008,2622,-2433,2826,8064 } },
902     { LIBRAW_CAMERAMAKER_Nikon, "D5100", 0, 0x3de6,
903       { 8198,-2239,-724,-4871,12389,2798,-1043,2050,7181 } },
904     { LIBRAW_CAMERAMAKER_Nikon, "D5200", 0, 0,
905       { 8322,-3112,-1047,-6367,14342,2179,-988,1638,6394 } },
906     { LIBRAW_CAMERAMAKER_Nikon, "D5300", 0, 0,
907       { 6988,-1384,-714,-5631,13410,2447,-1485,2204,7318 } },
908     { LIBRAW_CAMERAMAKER_Nikon, "D5500", 0, 0,
909       { 8821,-2938,-785,-4178,12142,2287,-824,1651,6860 } },
910     { LIBRAW_CAMERAMAKER_Nikon, "D5600", 0, 0,
911       { 8821,-2938,-785,-4178,12142,2287,-824,1651,6860 } },
912     { LIBRAW_CAMERAMAKER_Nikon, "D7000", 0, 0,
913       { 8198,-2239,-724,-4871,12389,2798,-1043,2050,7181 } },
914     { LIBRAW_CAMERAMAKER_Nikon, "D7100", 0, 0,
915       { 8322,-3112,-1047,-6367,14342,2179,-988,1638,6394 } },
916     { LIBRAW_CAMERAMAKER_Nikon, "D7200", 0, 0,
917       { 8322,-3112,-1047,-6367,14342,2179,-988,1638,6394 } },
918     { LIBRAW_CAMERAMAKER_Nikon, "D7500", 0, 0,
919       { 8813,-3210,-1036,-4703,12868,2021,-1054,1940,6129 } },
920 
921     { LIBRAW_CAMERAMAKER_Nikon, "D100", 0, 0,
922       { 5902,-933,-782,-8983,16719,2354,-1402,1455,6464 } },
923     { LIBRAW_CAMERAMAKER_Nikon, "D200", 0, 0xfbc,
924       { 8367,-2248,-763,-8758,16447,2422,-1527,1550,8053 } },
925     { LIBRAW_CAMERAMAKER_Nikon, "D300", 0, 0,    // same CMs: D300, D300s
926       { 9030,-1992,-715,-8465,16302,2255,-2689,3217,8069 } },
927     { LIBRAW_CAMERAMAKER_Nikon, "D500", 0, 0,
928       { 8813,-3210,-1036,-4703,12868,2021,-1054,1940,6129 } },
929     { LIBRAW_CAMERAMAKER_Nikon, "D600", 0, 0x3e07,
930       { 8178,-2245,-609,-4857,12394,2776,-1207,2086,7298 } },
931     { LIBRAW_CAMERAMAKER_Nikon, "D610",0, 0,
932       { 8178,-2245,-609,-4857,12394,2776,-1207,2086,7298 } },
933     { LIBRAW_CAMERAMAKER_Nikon, "D700", 0, 0,
934       { 8139,-2171,-663,-8747,16541,2295,-1925,2008,8093 } },
935     { LIBRAW_CAMERAMAKER_Nikon, "D750", -600, 0,
936       { 9020,-2890,-715,-4535,12436,2348,-934,1919,7086 } },
937     { LIBRAW_CAMERAMAKER_Nikon, "D780", -600, 0,
938       { 9943,-3269,-839,-5323,13269,2259,-1198,2083,7557 } },
939     { LIBRAW_CAMERAMAKER_Nikon, "D800", 0, 0,    // same CMs: D800, D800E
940       { 7866,-2108,-555,-4869,12483,2681,-1176,2069,7501 } },
941     { LIBRAW_CAMERAMAKER_Nikon, "D810A", 0, 0,
942       { 11973,-5685,-888,-1965,10326,1901,-115,1123,7169 } },
943     { LIBRAW_CAMERAMAKER_Nikon, "D810", 0, 0,
944       { 9369,-3195,-791,-4488,12430,2301,-893,1796,6872 } },
945     { LIBRAW_CAMERAMAKER_Nikon, "D850", 0, 0,
946       { 10405,-3755,-1270,-5461,13787,1793,-1040,2015,6785 } },
947 
948     { LIBRAW_CAMERAMAKER_Nikon, "D40X", 0, 0,
949       { 8819,-2543,-911,-9025,16928,2151,-1329,1213,8449 } },
950     { LIBRAW_CAMERAMAKER_Nikon, "D40", 0, 0,
951       { 6992,-1668,-806,-8138,15748,2543,-874,850,7897 } },
952     { LIBRAW_CAMERAMAKER_Nikon, "D50", 0, 0,
953       { 7732,-2422,-789,-8238,15884,2498,-859,783,7330 } },
954     { LIBRAW_CAMERAMAKER_Nikon, "D60", 0, 0,
955       { 8736,-2458,-935,-9075,16894,2251,-1354,1242,8263 } },
956     { LIBRAW_CAMERAMAKER_Nikon, "D70", 0, 0,     // same CMs: D70, D70s
957       { 7732,-2422,-789,-8238,15884,2498,-859,783,7330 } },
958     { LIBRAW_CAMERAMAKER_Nikon, "D80", 0, 0,
959       { 8629,-2410,-883,-9055,16940,2171,-1490,1363,8520 } },
960     { LIBRAW_CAMERAMAKER_Nikon, "D90", 0, 0xf00,
961       { 7309,-1403,-519,-8474,16008,2622,-2434,2826,8064 } },
962 
963     { LIBRAW_CAMERAMAKER_Nikon, "D1H", 0, 0,
964       { 7659,-2238,-935,-8942,16969,2004,-2701,3051,8690 } },
965     { LIBRAW_CAMERAMAKER_Nikon, "D1X", 0, 0,
966       { 7702,-2245,-975,-9114,17242,1875,-2679,3055,8521 } },
967     { LIBRAW_CAMERAMAKER_Nikon, "D1", 0, 0,
968 //      { 16772,-4726,-2141,-7611,15713,1972,-2846,3494,9521 } }, /* multiplied by 2.218750, 1.0, 1.148438 */
969       { 7637,-2199,-974,-9109,17099,2043,-2822,3306,8372 } },
970     { LIBRAW_CAMERAMAKER_Nikon, "D2H", 0, 0,     // same CMs: D2H, D2Hs
971       { 5733,-911,-629,-7967,15987,2055,-3050,4013,7048 } },
972     { LIBRAW_CAMERAMAKER_Nikon, "D2X", 0, 0,     // same CMs: D2X, D2Xs
973       { 10231,-2768,-1254,-8302,15900,2551,-797,681,7148 } },
974     { LIBRAW_CAMERAMAKER_Nikon, "D3S", 0, 0,
975       { 8828,-2406,-694,-4874,12603,2541,-660,1509,7587 } },
976     { LIBRAW_CAMERAMAKER_Nikon, "D3X", 0, 0,
977       { 7171,-1986,-648,-8085,15555,2718,-2170,2512,7457 } },
978     { LIBRAW_CAMERAMAKER_Nikon, "D3", 0, 0,
979       { 8139,-2171,-663,-8747,16541,2295,-1925,2008,8093 } },
980     { LIBRAW_CAMERAMAKER_Nikon, "D4", 0, 0,      // same CMs: D4, D4S (and Df)
981       { 8598,-2848,-857,-5618,13606,2195,-1002,1773,7137 } },
982     { LIBRAW_CAMERAMAKER_Nikon, "D5", 0, 0,
983       { 9200,-3522,-992,-5755,13803,2117,-753,1486,6338 } },
984     { LIBRAW_CAMERAMAKER_Nikon, "D6", 0, 0,
985       { 9028,-3423,-1035,-6321,14265,2217,-1013,1683,6928 } },
986     { LIBRAW_CAMERAMAKER_Nikon, "Df", 0, 0,
987       { 8598,-2848,-857,-5618,13606,2195,-1002,1773,7137 } },
988 
989     { LIBRAW_CAMERAMAKER_Nikon, "Z 50", 0, 0,
990       { 11640,-4829,-1079,-5107,13006,2325,-972,1711,7380 } },
991     { LIBRAW_CAMERAMAKER_Nikon, "Z 5", 0, 0,
992       { 8695,-2558,-648,-5015,12711,2575,-1279,2215,7514 } },
993     { LIBRAW_CAMERAMAKER_Nikon, "Z 6", 0, 0,
994       { 9943,-3269,-839,-5323,13269,2259,-1198,2083,7557 } },  // 'Z 6'(v.2), 'Z 6_2'
995     { LIBRAW_CAMERAMAKER_Nikon, "Z 7", 0, 0,
996       { 13705,-6004,-1400,-5464,13568,2062,-940,1706,7618 } }, // 'Z 7'(v.2), 'Z 7_2'
997     { LIBRAW_CAMERAMAKER_Nikon, "Z fc", 0, 0,
998       { 11640,-4829,-1079,-5107,13006,2325,-972,1711,7380 } },
999 
1000     { LIBRAW_CAMERAMAKER_Olympus, "AIR A01", 0, 0xfe1,
1001       { 8992,-3093,-639,-2563,10721,2122,-437,1270,5473 } },
1002 
1003     { LIBRAW_CAMERAMAKER_Olympus, "C-5050Z", 0, 0,
1004       { 10633,-3234,-1285,-7460,15570,1967,-1917,2510,6299 } },
1005     { LIBRAW_CAMERAMAKER_Olympus, "C-5060WZ", 0, 0,
1006       { 10445,-3362,-1307,-7662,15690,2058,-1135,1176,7602 } },
1007     { LIBRAW_CAMERAMAKER_Olympus, "C-7070WZ", 0, 0,
1008       { 10252,-3531,-1095,-7114,14850,2436,-1451,1723,6365 } },
1009     { LIBRAW_CAMERAMAKER_Olympus, "C-7000Z", 0, 0,
1010       { 10793,-3791,-1146,-7498,15177,2488,-1390,1577,7321 } },
1011     { LIBRAW_CAMERAMAKER_Olympus, "C-8080WZ", 0, 0,
1012       { 8606,-2509,-1014,-8238,15714,2703,-942,979,7760 } },
1013 
1014     { LIBRAW_CAMERAMAKER_Olympus, "E-300", 0, 0,
1015       { 7828,-1761,-348,-5788,14071,1830,-2853,4518,6557 } },
1016     { LIBRAW_CAMERAMAKER_Olympus, "E-330", 0, 0,
1017       { 8961,-2473,-1084,-7979,15990,2067,-2319,3035,8249 } },
1018     { LIBRAW_CAMERAMAKER_Olympus, "E-400", 0, 0,
1019       { 6169,-1483,-21,-7107,14761,2536,-2904,3580,8568 } },
1020     { LIBRAW_CAMERAMAKER_Olympus, "E-410", 0, 0xf6a,
1021       { 8856,-2582,-1026,-7761,15766,2082,-2009,2575,7469 } },
1022     { LIBRAW_CAMERAMAKER_Olympus, "E-420", 0, 0xfd7,
1023       { 8746,-2425,-1095,-7594,15612,2073,-1780,2309,7416 } },
1024     { LIBRAW_CAMERAMAKER_Olympus, "E-450", 0, 0xfd2,
1025       { 8745,-2425,-1095,-7594,15613,2073,-1780,2309,7416 } },
1026     { LIBRAW_CAMERAMAKER_Olympus, "E-500", 0, 0,
1027       { 8136,-1968,-299,-5481,13742,1871,-2556,4205,6630 } },
1028     { LIBRAW_CAMERAMAKER_Olympus, "E-510", 0, 0xf6a,
1029       { 8785,-2529,-1033,-7639,15624,2112,-1783,2300,7817 } },
1030     { LIBRAW_CAMERAMAKER_Olympus, "E-520", 0, 0xfd2,
1031       { 8344,-2322,-1020,-7596,15635,2048,-1748,2269,7287 } },
1032     { LIBRAW_CAMERAMAKER_Olympus, "E-600", 0, 0xfaf,
1033       { 8453,-2198,-1092,-7609,15681,2008,-1725,2337,7824 } },
1034     { LIBRAW_CAMERAMAKER_Olympus, "E-620", 0, 0xfaf,
1035       { 8453,-2198,-1092,-7609,15681,2008,-1725,2337,7824 } },
1036 
1037     { LIBRAW_CAMERAMAKER_Olympus, "E-10", 0, 0x3ff,
1038       { 12970,-4703,-1433,-7466,15843,1644,-2191,2451,6668 } },
1039     { LIBRAW_CAMERAMAKER_Olympus, "E-20", 0, 0x3ff,  // model is "E-20,E-20N,E-20P"
1040       { 13414,-4950,-1517,-7166,15293,1960,-2325,2664,7212 } },
1041     { LIBRAW_CAMERAMAKER_Olympus, "E-30", 0, 0xfbc,
1042       { 8144,-1861,-1111,-7763,15894,1929,-1865,2542,7607 } },
1043 
1044     { LIBRAW_CAMERAMAKER_Olympus, "E-1", 0, 0,
1045       { 11846,-4767,-945,-7027,15878,1089,-2699,4122,8311 } },
1046     { LIBRAW_CAMERAMAKER_Olympus, "E-3", 0, 0xf99,
1047       { 9487,-2875,-1115,-7533,15606,2010,-1618,2100,7389 } },
1048     { LIBRAW_CAMERAMAKER_Olympus, "E-5", 0, 0xeec,
1049       { 11200,-3783,-1325,-4576,12593,2206,-695,1742,7504 } },
1050 
1051     { LIBRAW_CAMERAMAKER_Olympus, "E-P1", 0, 0xffd,
1052       { 8343,-2050,-1021,-7715,15705,2103,-1831,2380,8235 } },
1053     { LIBRAW_CAMERAMAKER_Olympus, "E-P2", 0, 0xffd,
1054       { 8343,-2050,-1021,-7715,15705,2103,-1831,2380,8235 } },
1055     { LIBRAW_CAMERAMAKER_Olympus, "E-P3", 0, 0,
1056       { 7575,-2159,-571,-3722,11341,2725,-1434,2819,6271 } },
1057     { LIBRAW_CAMERAMAKER_Olympus, "E-P5", 0, 0,
1058       { 8380,-2630,-639,-2887,10725,2496,-627,1427,5438 } },
1059     { LIBRAW_CAMERAMAKER_Olympus, "E-P7", 0, 0,
1060       { 9476,-3182,-765,-2613,10958,1893,-449,1315,5268 } },
1061 
1062     { LIBRAW_CAMERAMAKER_Olympus, "E-PL10", 0, 0,
1063       { 9197,-3190,-659,-2606,10830,2039,-458,1250,5458 } },
1064     { LIBRAW_CAMERAMAKER_Olympus, "E-PL1s", 0, 0,
1065       { 11409,-3872,-1393,-4572,12757,2003,-709,1810,7415 } },
1066     { LIBRAW_CAMERAMAKER_Olympus, "E-PL1", 0, 0,
1067       { 11408,-4289,-1215,-4286,12385,2118,-387,1467,7787 } },
1068     { LIBRAW_CAMERAMAKER_Olympus, "E-PL2", 0, 0xcf3,
1069       { 15030,-5552,-1806,-3987,12387,1767,-592,1670,7023 } },
1070     { LIBRAW_CAMERAMAKER_Olympus, "E-PL3", 0, 0,
1071       { 7575,-2159,-571,-3722,11341,2725,-1434,2819,6271 } },
1072     { LIBRAW_CAMERAMAKER_Olympus, "E-PL5", 0, 0xfcb,
1073       { 8380,-2630,-639,-2887,10725,2496,-627,1427,5438 } },
1074     { LIBRAW_CAMERAMAKER_Olympus, "E-PL6", 0, 0,
1075       { 8380,-2630,-639,-2887,10725,2496,-627,1427,5438 } },
1076     { LIBRAW_CAMERAMAKER_Olympus, "E-PL7", 0, 0,
1077       { 9197,-3190,-659,-2606,10830,2039,-458,1250,5458 } },
1078     { LIBRAW_CAMERAMAKER_Olympus, "E-PL8", 0, 0,
1079       { 9197,-3190,-659,-2606,10830,2039,-458,1250,5458 } },
1080     { LIBRAW_CAMERAMAKER_Olympus, "E-PL9", 0, 0,
1081       { 8380,-2630,-639,-2887,10725,2496,-627,1427,5438 } },
1082 
1083     { LIBRAW_CAMERAMAKER_Olympus, "E-PM1", 0, 0,
1084       { 7575,-2159,-571,-3722,11341,2725,-1434,2819,6271 } },
1085     { LIBRAW_CAMERAMAKER_Olympus, "E-PM2", 0, 0,
1086       { 8380,-2630,-639,-2887,10725,2496,-627,1427,5438 } },
1087 
1088     { LIBRAW_CAMERAMAKER_Olympus, "E-M10 Mark IV", 0, 0,
1089       { 9476,-3182,-765,-2613,10958,1893,-449,1315,5268 } },
1090     { LIBRAW_CAMERAMAKER_Olympus, "E-M10", 0, 0,	  // Same CMs: E-M10, E-M10 Mark II, E-M10 Mark III; "CLAUSS piX 5oo"
1091       { 8380,-2630,-639,-2887,10725,2496,-627,1427,5438 } },
1092     { LIBRAW_CAMERAMAKER_Olympus, "E-M1X", 0, 0,
1093       { 11896,-5110,-1076,-3181,11378,2048,-519,1224,5166 } },
1094 
1095     { LIBRAW_CAMERAMAKER_Olympus, "E-M1 Mark III", 0, 0,
1096       { 11896,-5110,-1076,-3181,11378,2048,-519,1224,5166 } },
1097     { LIBRAW_CAMERAMAKER_Olympus, "E-M1 Mark II", 0, 0,
1098       { 9383,-3170,-763,-2457,10702,2020,-384,1236,5552 } },
1099     { LIBRAW_CAMERAMAKER_Olympus, "E-M1", 0, 0,
1100       { 7687,-1984,-606,-4327,11928,2721,-1381,2339,6452 } },
1101 
1102     { LIBRAW_CAMERAMAKER_Olympus, "E-M5 Mark III", 0, 0,
1103       { 11896,-5110,-1076,-3181,11378,2048,-519,1224,5166 } },
1104     { LIBRAW_CAMERAMAKER_Olympus, "E-M5 Mark II", 0, 0,
1105       { 9422,-3258,-711,-2655,10898,2015,-512,1354,5512 } },
1106     { LIBRAW_CAMERAMAKER_Olympus, "E-M5", 0, 0xfe1,
1107       { 8380,-2630,-639,-2887,10725,2496,-627,1427,5438 } },
1108 
1109     { LIBRAW_CAMERAMAKER_Olympus, "PEN-F",0, 0,
1110       { 9476,-3182,-765,-2613,10958,1893,-449,1315,5268 } },
1111 
1112     { LIBRAW_CAMERAMAKER_Olympus, "SH-2", 0, 0, // same CamID: SH-2, SH-3
1113      { 10156,-3425,-1077,-2611,11177,1624,-385,1592,5080 } },
1114 
1115     { LIBRAW_CAMERAMAKER_Olympus, "SP-350", 0, 0,
1116       { 12078,-4836,-1069,-6671,14306,2578,-786,939,7418 } },
1117     { LIBRAW_CAMERAMAKER_Olympus, "SP-3", 0, 0,	// Same CMs: SP310, SP320
1118       { 11766,-4445,-1067,-6901,14421,2707,-1029,1217,7572 } },
1119     { LIBRAW_CAMERAMAKER_Olympus, "SP-500UZ", 0, 0xfff,
1120       { 9493,-3415,-666,-5211,12334,3260,-1548,2262,6482 } },
1121     { LIBRAW_CAMERAMAKER_Olympus, "SP-510UZ", 0, 0xffe,
1122       { 10593,-3607,-1010,-5881,13127,3084,-1200,1805,6721 } },
1123     { LIBRAW_CAMERAMAKER_Olympus, "SP-550UZ", 0, 0xffe,
1124       { 11597,-4006,-1049,-5432,12799,2957,-1029,1750,6516 } },
1125     { LIBRAW_CAMERAMAKER_Olympus, "SP-560UZ", 0, 0xff9,
1126       { 10915,-3677,-982,-5587,12986,2911,-1168,1968,6223 } },
1127     { LIBRAW_CAMERAMAKER_Olympus, "SP-565UZ", 0, 0,
1128       { 11856,-4469,-1159,-4814,12368,2756,-993,1779,5589 } },
1129     { LIBRAW_CAMERAMAKER_Olympus, "SP-570UZ", 0, 0,
1130       { 11522,-4044,-1146,-4736,12172,2904,-988,1829,6039 } },
1131 
1132     { LIBRAW_CAMERAMAKER_Olympus, "STYLUS 1",0, 0,	// Olympus "STYLUS 1 and STYLUS 1s have the same CamID, cameras are slightly different
1133       { 8360,-2420,-880,-3928,12353,1739,-1381,2416,5173 } },
1134 
1135     { LIBRAW_CAMERAMAKER_Olympus, "TG-4", 0, 0,
1136      { 11426,-4159,-1126,-2066,10678,1593,-120,1327,4998 } },
1137     { LIBRAW_CAMERAMAKER_Olympus, "TG-", 0, 0, // same CMs: TG-5, TG-6
1138      { 10899,-3833,-1082,-2112,10736,1575,-267,1452,5269 } },
1139 
1140     { LIBRAW_CAMERAMAKER_Olympus, "XZ-10", 0, 0,
1141       { 9777,-3483,-925,-2886,11297,1800,-602,1663,5134 } },
1142     { LIBRAW_CAMERAMAKER_Olympus, "XZ-1", 0, 0,
1143       { 10901,-4095,-1074,-1141,9208,2293,-62,1417,5158 } },
1144     { LIBRAW_CAMERAMAKER_Olympus, "XZ-2", 0, 0,
1145       { 9777,-3483,-925,-2886,11297,1800,-602,1663,5134 } },
1146 
1147 	{ LIBRAW_CAMERAMAKER_OmniVison, "", 16, 0x3ff,
1148       { 12782,-4059,-379,-478,9066,1413,1340,1513,5176 } }, /* DJC */
1149 
1150     { LIBRAW_CAMERAMAKER_Pentax, "*istDL2", 0, 0,
1151       { 10504,-2438,-1189,-8603,16207,2531,-1022,863,12242 } },
1152     { LIBRAW_CAMERAMAKER_Pentax, "*istDL", 0, 0,
1153       { 10829,-2838,-1115,-8339,15817,2696,-837,680,11939 } },
1154     { LIBRAW_CAMERAMAKER_Pentax, "*istDS2", 0, 0,
1155       { 10504,-2438,-1189,-8603,16207,2531,-1022,863,12242 } },
1156     { LIBRAW_CAMERAMAKER_Pentax, "*istDS", 0, 0,
1157       { 10371,-2333,-1206,-8688,16231,2602,-1230,1116,11282 } },
1158     { LIBRAW_CAMERAMAKER_Pentax, "*istD", 0, 0,
1159       { 9651,-2059,-1189,-8881,16512,2487,-1460,1345,10687 } },
1160 
1161     { LIBRAW_CAMERAMAKER_Pentax, "K-01", 0, 0,
1162       { 8134,-2728,-645,-4365,11987,2694,-838,1509,6498 } },
1163     { LIBRAW_CAMERAMAKER_Pentax, "K10D", 0, 0,
1164       { 9679,-2965,-811,-8622,16514,2182,-975,883,9793 } },
1165     { LIBRAW_CAMERAMAKER_Pentax, "K1", 0, 0, // same CMs: K100D, "K100D Super", K110D
1166       { 11095,-3157,-1324,-8377,15834,2720,-1108,947,11688 } },
1167     { LIBRAW_CAMERAMAKER_Pentax, "K20D", 0, 0,
1168       { 9427,-2714,-868,-7493,16092,1373,-2199,3264,7180 } },
1169     { LIBRAW_CAMERAMAKER_Pentax, "K200D", 0, 0,
1170       { 9186,-2678,-907,-8693,16517,2260,-1129,1094,8524 } },
1171     { LIBRAW_CAMERAMAKER_Pentax, "K-m", 0, 0,
1172       { 9730,-2989,-970,-8527,16258,2381,-1060,970,8362 } },
1173     { LIBRAW_CAMERAMAKER_Pentax, "KP", 0, 0,
1174       { 7825,-2160,-1403,-4841,13555,1349,-1559,2449,5814 } },
1175     { LIBRAW_CAMERAMAKER_Pentax, "K-x", 0, 0,
1176       { 8843,-2837,-625,-5025,12644,2668,-411,1234,7410 } },
1177     { LIBRAW_CAMERAMAKER_Pentax, "K-r", 0, 0,
1178       { 9895,-3077,-850,-5304,13035,2521,-883,1768,6936 } },
1179     { LIBRAW_CAMERAMAKER_Pentax, "K-1", 0, 0, // same CMs: K-1, "K-1 Mark II"
1180       { 8596,-2981,-639,-4202,12046,2431,-685,1424,6122 } },
1181     { LIBRAW_CAMERAMAKER_Pentax, "K-30", 0, 0,
1182       { 8134,-2728,-645,-4365,11987,2694,-838,1509,6498 } },
1183     { LIBRAW_CAMERAMAKER_Pentax, "K-3 Mark III", 0, 0,
1184       {  9251, -3817, -1069, -4627, 12667,  2175,  -798,  1660,  5633 } },
1185     { LIBRAW_CAMERAMAKER_Pentax, "K-3", 0, 0, // same CMs: K-3, "K-3 II"
1186       { 7415,-2052,-721,-5186,12788,2682,-1446,2157,6773 } },
1187     { LIBRAW_CAMERAMAKER_Pentax, "K-500", 0, 0,
1188       { 8109,-2740,-608,-4593,12175,2731,-1006,1515,6545 } },
1189     { LIBRAW_CAMERAMAKER_Pentax, "K-50", 0, 0,
1190       { 8109,-2740,-608,-4593,12175,2731,-1006,1515,6545 } },
1191     { LIBRAW_CAMERAMAKER_Pentax, "K-5 II", 0, 0, // same CMs: "K-5 II" and "K-5 IIs"
1192       { 8170,-2725,-639,-4440,12017,2744,-771,1465,6599 } },
1193     { LIBRAW_CAMERAMAKER_Pentax, "K-5", 0, 0,
1194       { 8713,-2833,-743,-4342,11900,2772,-722,1543,6247 } },
1195     { LIBRAW_CAMERAMAKER_Pentax, "K-70", 0, 0,
1196       { 8766,-3149,-747,-3976,11943,2292,-517,1259,5552 } },
1197     { LIBRAW_CAMERAMAKER_Pentax, "K-7", 0, 0,
1198       { 9142,-2947,-678,-8648,16967,1663,-2224,2898,8615 } },
1199     { LIBRAW_CAMERAMAKER_Pentax, "KP", 0, 0,
1200       { 8617,-3228,-1034,-4674,12821,2044,-803,1577,5728 } },
1201     { LIBRAW_CAMERAMAKER_Pentax, "K-S1", 0, 0,
1202       { 8512,-3211,-787,-4167,11966,2487,-638,1288,6054 } },
1203     { LIBRAW_CAMERAMAKER_Pentax, "K-S2", 0, 0,
1204       { 8662,-3280,-798,-3928,11771,2444,-586,1232,6054 } },
1205 
1206     { LIBRAW_CAMERAMAKER_Pentax, "Q-S1", 0, 0,
1207       { 12995,-5593,-1107,-1879,10139,2027,-64,1233,4919 } },
1208     { LIBRAW_CAMERAMAKER_Pentax, "Q7", 0, 0,
1209       { 10901,-3938,-1025,-2743,11210,1738,-823,1805,5344 } },
1210     { LIBRAW_CAMERAMAKER_Pentax, "Q10", 0, 0,
1211       { 11562,-4183,-1172,-2357,10919,1641,-582,1726,5112 } },
1212     { LIBRAW_CAMERAMAKER_Pentax, "Q", 0, 0,
1213       { 11731,-4169,-1267,-2015,10727,1473,-217,1492,4870 } },
1214 
1215     { LIBRAW_CAMERAMAKER_Pentax, "MX-1", 0, 0,
1216       { 9296,-3146,-888,-2860,11287,1783,-618,1698,5151 } },
1217 
1218     { LIBRAW_CAMERAMAKER_Pentax, "645D", 0, 0x3e00,
1219       { 10646,-3593,-1158,-3329,11699,1831,-667,2874,6287 } },
1220     { LIBRAW_CAMERAMAKER_Pentax, "645Z", 0, 0,
1221       { 9519,-3591,-664,-4074,11725,2671,-624,1501,6653 } },
1222 
1223 
1224     {LIBRAW_CAMERAMAKER_Panasonic, "DC-S1R", 0, 0,
1225       { 11822,-5321,-1249,-5958,15114,766,-614,1264,7043 } },
1226     {LIBRAW_CAMERAMAKER_Panasonic, "DC-S1H", 0, 0,
1227       { 9397,-3719,-805,-5425,13326,2309,-972,1715,6034 } },
1228     {LIBRAW_CAMERAMAKER_Panasonic, "DC-S1", 0, 0,
1229       { 9744,-3905,-779,-4899,12807,2324,-798,1630,5827 } },
1230     {LIBRAW_CAMERAMAKER_Panasonic, "DC-S5", 0, 0,
1231       { 9744,-3905,-779,-4899,12807,2324,-798,1630,5827 } },
1232 
1233     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-CM1", -15, 0, // same CMs: DMC-CM1, DMC-CM10
1234       { 8770,-3194,-820,-2871,11281,1803,-513,1552,4434 } },
1235 
1236     { LIBRAW_CAMERAMAKER_Panasonic, "DC-FZ1000M2", -15, 0,
1237       { 9803,-4185,-992,-4066,12578,1628,-838,1824,5288 } },
1238     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-FZ1000", -15, 0,
1239       { 7830,-2696,-763,-3325,11667,1866,-641,1712,4824 } },
1240     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-FZ2500", -15, 0,
1241       { 7386,-2443,-743,-3437,11864,1757,-608,1660,4766 } },
1242 
1243     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-FZ100", -15, 0xfff,
1244       { 16197,-6146,-1761,-2393,10765,1869,366,2238,5248 } },
1245     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-FZ150", -15, 0xfff,
1246       { 11904,-4541,-1189,-2355,10899,1662,-296,1586,4289 } },
1247     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-FZ200", -15, 0xfff,
1248       { 8112,-2563,-740,-3730,11784,2197,-941,2075,4933 } },
1249     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-FZ300", -15, 0xfff,
1250       { 8378,-2798,-769,-3068,11410,1877,-538,1792,4623 } },
1251 
1252     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-FZ18", 0, 0,
1253       { 9932,-3060,-935,-5809,13331,2753,-1267,2155,5575 } },
1254     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-FZ28", -15, 0xf96,
1255       { 10109,-3488,-993,-5412,12812,2916,-1305,2140,5543 } },
1256     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-FZ30", 0, 0xf94,
1257       { 10976,-4029,-1141,-7918,15491,2600,-1670,2071,8246 } },
1258     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-FZ35", -15, 0,
1259       { 9938,-2780,-890,-4604,12393,2480,-1117,2304,4620 } },
1260     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-FZ40", -15, 0,
1261       { 13639,-5535,-1371,-1698,9633,2430,316,1152,4108 } },
1262     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-FZ50", 0, 0,
1263       { 7906,-2709,-594,-6231,13351,3220,-1922,2631,6537 } },
1264     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-FZ70", -15, 0,
1265       { 11532,-4324,-1066,-2375,10847,1749,-564,1699,4351 } },
1266     { LIBRAW_CAMERAMAKER_Panasonic, "DC-FZ80", -15, 0,
1267       { 8550,-2908,-842,-3195,11529,1881,-338,1603,4631 } },
1268 
1269     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-FZ8", 0, 0xf7f,
1270       { 8986,-2755,-802,-6341,13575,3077,-1476,2144,6379 } },
1271 
1272 
1273     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-L10", -15, 0xf96,
1274       { 8025,-1942,-1050,-7920,15904,2100,-2456,3005,7039 } },
1275     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-L1", 0, 0xf7f,
1276       { 8054,-1885,-1025,-8349,16367,2040,-2805,3542,7629 } },
1277 
1278     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-LC1", 0, 0,
1279       { 11340,-4069,-1275,-7555,15266,2448,-2960,3426,7685 } },
1280 
1281     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-LF1", -15, 0,
1282       { 9379,-3267,-816,-3227,11560,1881,-926,1928,5340 } },
1283 
1284     { LIBRAW_CAMERAMAKER_Panasonic, "DC-LX100M2", -15, 0,
1285       { 8585,-3127,-833,-4005,12250,1953,-650,1494,4862 } }, // v.2
1286     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-LX100", -15, 0,
1287       { 8844,-3538,-768,-3709,11762,2200,-698,1792,5220 } },
1288 
1289     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-LX1", 0, 0xf7f,
1290       { 10704,-4187,-1230,-8314,15952,2501,-920,945,8927 } },
1291     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-LX2", 0, 0,
1292       { 8048,-2810,-623,-6450,13519,3272,-1700,2146,7049 } },
1293     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-LX3", -15, 0,
1294       { 8128,-2668,-655,-6134,13307,3161,-1782,2568,6083 } },
1295     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-LX5", -15, 0,
1296       { 10909,-4295,-948,-1333,9306,2399,22,1738,4582 } },
1297     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-LX7", -15, 0,
1298       { 10148,-3743,-991,-2837,11366,1659,-701,1893,4899 } },
1299     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-LX9", -15, 0,
1300       { 7790,-2736,-755,-3452,11870,1769,-628,1647,4898 } },
1301 
1302     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-FX150", -15, 0xfff,
1303       { 9082,-2907,-925,-6119,13377,3058,-1797,2641,5609 } },
1304 
1305     { LIBRAW_CAMERAMAKER_Panasonic, "DC-G99", -15, 0,
1306       { 9657,-3963,-748,-3361,11378,2258,-568,1415,5158 } },
1307     { LIBRAW_CAMERAMAKER_Panasonic, "DC-G100", -15, 0,
1308       { 8370,-2869,-710,-3389,11372,2298,-640,1599,4887 } },
1309     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-G10", 0, 0,
1310       { 10113,-3400,-1114,-4765,12683,2317,-377,1437,6710 } },
1311     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-G1", -15, 0xf94,
1312       { 8199,-2065,-1056,-8124,16156,2033,-2458,3022,7220 } },
1313     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-G2", -15, 0xf3c,
1314       { 10113,-3400,-1114,-4765,12683,2317,-377,1437,6710 } },
1315     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-G3", -15, 0xfff,
1316       { 6763,-1919,-863,-3868,11515,2684,-1216,2387,5879 } },
1317     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-G5", -15, 0xfff,
1318       { 7798,-2562,-740,-3879,11584,2613,-1055,2248,5434 } },
1319     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-G6", -15, 0xfff,
1320       { 8294,-2891,-651,-3869,11590,2595,-1183,2267,5352 } },
1321     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-G7", -15, 0xfff,
1322       { 7610,-2780,-576,-4614,12195,2733,-1375,2393,6490 } },
1323     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-G8", -15, 0xfff,
1324       { 7610,-2780,-576,-4614,12195,2733,-1375,2393,6490 } },
1325     { LIBRAW_CAMERAMAKER_Panasonic, "DC-G9", -15, 0,
1326       { 7685,-2375,-634,-3687,11700,2249,-748,1546,5111 } },
1327 
1328     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-GH1", -15, 0xf92,
1329       { 6299,-1466,-532,-6535,13852,2969,-2331,3112,5984 } },
1330     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-GH2", -15, 0xf95,
1331       { 7780,-2410,-806,-3913,11724,2484,-1018,2390,5298 } },
1332     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-GH3", -15, 0,
1333       { 6559,-1752,-491,-3672,11407,2586,-962,1875,5130 } },
1334     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-GH4", -15, 0,
1335       { 7122,-2108,-512,-3155,11201,2231,-541,1423,5045 } },
1336     { LIBRAW_CAMERAMAKER_Panasonic, "DC-GH5s", -15, 0,
1337       { 6929,-2355,-708,-4192,12534,1828,-1097,1989,5195 } },
1338     { LIBRAW_CAMERAMAKER_Panasonic, "DC-GH5M2", 0, 0,
1339       {  9300, -3659,  -755, -2981, 10988,  2287,  -190,  1077,  5016 } },
1340     { LIBRAW_CAMERAMAKER_Panasonic, "DC-GH5", -15, 0,
1341       { 7641,-2336,-605,-3218,11299,2187,-485,1338,5121 } },
1342 
1343     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-GM1", -15, 0,
1344       { 6770,-1895,-744,-5232,13145,2303,-1664,2691,5703 } },
1345     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-GM5", -15, 0,
1346       { 8238,-3244,-679,-3921,11814,2384,-836,2022,5852 } },
1347 
1348     { LIBRAW_CAMERAMAKER_Panasonic, "DC-GF10", -15, 0,
1349       { 7610,-2780,-576,-4614,12195,2733,-1375,2393,6490 } },
1350     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-GF1", -15, 0xf92,
1351       { 7888,-1902,-1011,-8106,16085,2099,-2353,2866,7330 } },
1352     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-GF2", -15, 0xfff,
1353       { 7888,-1902,-1011,-8106,16085,2099,-2353,2866,7330 } },
1354     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-GF3", -15, 0xfff,
1355       { 9051,-2468,-1204,-5212,13276,2121,-1197,2510,6890 } },
1356     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-GF5", -15, 0xfff,
1357       { 8228,-2945,-660,-3938,11792,2430,-1094,2278,5793 } },
1358     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-GF6", -15, 0,
1359       { 8130,-2801,-946,-3520,11289,2552,-1314,2511,5791 } },
1360     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-GF7", -15, 0,
1361       { 7610,-2780,-576,-4614,12195,2733,-1375,2393,6490 } },
1362     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-GF8", -15, 0,
1363       { 7610,-2780,-576,-4614,12195,2733,-1375,2393,6490 } },
1364     { LIBRAW_CAMERAMAKER_Panasonic, "DC-GF9", -15, 0,
1365       { 7610,-2780,-576,-4614,12195,2733,-1375,2393,6490 } },
1366 
1367     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-GX85", -15, 0,
1368       { 7771,-3020,-629,-4029,11950,2345,-821,1977,6119 } },
1369     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-GX1", -15, 0,
1370       { 6763,-1919,-863,-3868,11515,2684,-1216,2387,5879 } },
1371     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-GX7", -15,0,
1372       { 7610,-2780,-576,-4614,12195,2733,-1375,2393,6490 } },
1373     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-GX8", -15,0,
1374       { 7564,-2263,-606,-3148,11239,2177,-540,1435,4853 } },
1375     { LIBRAW_CAMERAMAKER_Panasonic, "DC-GX9", -15, 0,
1376       { 7564,-2263,-606,-3148,11239,2177,-540,1435,4853 } },
1377 
1378     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-ZS100", -15, 0,
1379       { 7790,-2736,-755,-3452,11870,1769,-628,1647,4898 } },
1380     { LIBRAW_CAMERAMAKER_Panasonic, "DC-ZS200", -15, 0,
1381       { 7790,-2736,-755,-3452,11870,1769,-628,1647,4898 } },
1382 
1383     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-ZS40", -15, 0,
1384       { 8607,-2822,-808,-3755,11930,2049,-820,2060,5224 } },
1385     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-ZS50", -15, 0,
1386       { 8802,-3135,-789,-3151,11468,1904,-550,1745,4810 } },
1387     { LIBRAW_CAMERAMAKER_Panasonic, "DMC-ZS60", -15, 0,
1388       { 8550,-2908,-842,-3195,11529,1881,-338,1603,4631 } },
1389     { LIBRAW_CAMERAMAKER_Panasonic, "DC-ZS70", -15, 0,
1390       { 9052,-3117,-883,-3045,11346,1927,-205,1520,4730 } },
1391     { LIBRAW_CAMERAMAKER_Panasonic, "DC-ZS80", -15, 0,
1392       { 12194,-5340,-1329,-3035,11394,1858,-50,1418,5219 } },
1393 
1394     { LIBRAW_CAMERAMAKER_PhaseOne, "H20", 0, 0,
1395       { 3906,1422,-467,-9953,18472,1365,-3307,4496,6406 } },
1396     { LIBRAW_CAMERAMAKER_PhaseOne, "H25", 0, 0,
1397       { 2905,732,-237,-8134,16626,1476,-3038,4253,7517 } },
1398     { LIBRAW_CAMERAMAKER_PhaseOne, "IQ4 150MP", 0, 0,
1399       {  6644, -2257,  -804, -6459, 14562,  2019, -1221,  1876,  6411}},
1400     { LIBRAW_CAMERAMAKER_PhaseOne, "IQ140", 0, 0,
1401       { 8035,435,-962,-6001,13872,2320,-1159,3065,5434 } },
1402     { LIBRAW_CAMERAMAKER_PhaseOne, "IQ150", 0, 0,
1403       {10325,845,-604,-4113,13385,481,-1791,4163,6924}}, /* temp */ /* emb */
1404 //      { 3984,0,0,0,10000,0,0,0,7666 } },
1405     { LIBRAW_CAMERAMAKER_PhaseOne, "IQ160", 0, 0,
1406       { 8035,435,-962,-6001,13872,2320,-1159,3065,5434 } },
1407     { LIBRAW_CAMERAMAKER_PhaseOne, "IQ180", 0, 0,
1408       { 6294,686,-712,-5435,13417,2211,-1006,2435,5042 } },
1409 
1410     { LIBRAW_CAMERAMAKER_PhaseOne, "IQ250",0, 0,
1411 //    {3984,0,0,0,10000,0,0,0,7666}},
1412       {10325,845,-604,-4113,13385,481,-1791,4163,6924}}, /* emb */
1413     { LIBRAW_CAMERAMAKER_PhaseOne, "IQ260", 0, 0,
1414       { 8035,435,-962,-6001,13872,2320,-1159,3065,5434 } },
1415     { LIBRAW_CAMERAMAKER_PhaseOne, "IQ280", 0, 0,
1416       { 6294,686,-712,-5435,13417,2211,-1006,2435,5042 } },
1417 
1418     { LIBRAW_CAMERAMAKER_PhaseOne, "IQ3 100MP", 0, 0,
1419 //    {2423,0,0,0,9901,0,0,0,7989}},
1420       { 10999,354,-742,-4590,13342,937,-1060,2166,8120} }, /* emb */
1421     { LIBRAW_CAMERAMAKER_PhaseOne, "IQ3 50MP", 0, 0,
1422 //      { 3984,0,0,0,10000,0,0,0,7666 } },
1423       {10058,1079,-587,-4135,12903,944,-916,2726,7480}}, /* emb */
1424     { LIBRAW_CAMERAMAKER_PhaseOne, "IQ3 60MP", 0, 0,
1425       { 8035,435,-962,-6001,13872,2320,-1159,3065,5434 } },
1426     { LIBRAW_CAMERAMAKER_PhaseOne, "IQ3 80MP", 0, 0,
1427       { 6294,686,-712,-5435,13417,2211,-1006,2435,5042 } },
1428 
1429     { LIBRAW_CAMERAMAKER_PhaseOne, "P21", 0, 0,
1430       { 6516,-2050,-507,-8217,16703,1479,-3492,4741,8489 } },
1431     { LIBRAW_CAMERAMAKER_PhaseOne, "P30", 0, 0,
1432       { 4516,-244,-36,-7020,14976,2174,-3206,4670,7087 } },
1433     { LIBRAW_CAMERAMAKER_PhaseOne, "P40", 0, 0,
1434       { 8035,435,-962,-6001,13872,2320,-1159,3065,5434 } },
1435     { LIBRAW_CAMERAMAKER_PhaseOne, "P45", 0, 0,
1436       { 5053,-24,-117,-5685,14077,1703,-2619,4491,5850 } },
1437     { LIBRAW_CAMERAMAKER_PhaseOne, "P65", 0, 0,
1438       { 8035,435,-962,-6001,13872,2320,-1159,3065,5434 } },
1439     { LIBRAW_CAMERAMAKER_PhaseOne, "P2", 0, 0,
1440       { 2905,732,-237,-8134,16626,1476,-3038,4253,7517 } },
1441 
1442     { LIBRAW_CAMERAMAKER_Photron, "BC2-HD", 0, 0,
1443       { 14603,-4122,-528,-1810,9794,2017,-297,2763,5936 } }, /* DJC */
1444 
1445 	  { LIBRAW_CAMERAMAKER_Polaroid, "x530", 0, 0,
1446       { 13458,-2556,-510,-5444,15081,205,0,0,12120 } },
1447 
1448 	  { LIBRAW_CAMERAMAKER_RED, "One", 704, 0xffff,
1449       { 21014,-7891,-2613,-3056,12201,856,-2203,5125,8042 } }, /* DJC */
1450 
1451     { LIBRAW_CAMERAMAKER_Ricoh, "S10 24-72mm F2.5-4.4 VC", 0, 0,
1452       { 10531,-4043,-878,-2038,10270,2052,-107,895,4577 } },
1453     { LIBRAW_CAMERAMAKER_Ricoh, "GR A12 50mm F2.5 MACRO", 0, 0,
1454       { 8849,-2560,-689,-5092,12831,2520,-507,1280,7104 } },
1455     { LIBRAW_CAMERAMAKER_Ricoh, "GR DIGITAL 2", 0, 0,
1456       { 8846,-2704,-729,-5265,12708,2871,-1471,1955,6218 } },
1457     { LIBRAW_CAMERAMAKER_Ricoh, "GR DIGITAL 3", 0, 0,
1458       { 8170,-2496,-655,-5147,13056,2312,-1367,1859,5265 } },
1459     { LIBRAW_CAMERAMAKER_Ricoh, "GR DIGITAL 4", 0, 0,
1460       { 8771,-3151,-837,-3097,11015,2389,-703,1343,4924 } },
1461     { LIBRAW_CAMERAMAKER_Ricoh, "GR III", 0, 0,
1462       { 6127,-1777,-585,-5913,13699,2428,-1088,1780,6017 } },
1463     { LIBRAW_CAMERAMAKER_Ricoh, "GR II", 0, 0,
1464       { 5329,-1459,-390,-5407,12930,2768,-1119,1772,6046 } },
1465     { LIBRAW_CAMERAMAKER_Ricoh, "GR", 0, 0,
1466       { 5329,-1459,-390,-5407,12930,2768,-1119,1772,6046 } },
1467     { LIBRAW_CAMERAMAKER_Ricoh, "GX200", 0, 0,
1468       { 8040,-2368,-626,-4659,12543,2363,-1125,1581,5660 } },
1469     { LIBRAW_CAMERAMAKER_Ricoh, "GXR Mount A12", 0, 0,
1470       { 7834,-2182,-739,-5453,13409,2241,-952,2005,6620 } },
1471     { LIBRAW_CAMERAMAKER_Ricoh, "GXR A12 50mm", 0, 0,
1472       { 8849,-2560,-689,-5092,12831,2520,-507,1280,7104 } },
1473     { LIBRAW_CAMERAMAKER_Ricoh, "GXR A12 28mm", 0, 0,
1474       { 10228,-3159,-933,-5304,13158,2371,-943,1873,6685 } },
1475     { LIBRAW_CAMERAMAKER_Ricoh, "GXR A16", 0, 0,
1476       { 7837,-2538,-730,-4370,12184,2461,-868,1648,5830 } },
1477     { LIBRAW_CAMERAMAKER_Ricoh, "GXR P10", 0, 0,
1478       { 13168,-5128,-1663,-3006,11569,1611,-373,1244,4907 } },
1479     { LIBRAW_CAMERAMAKER_Ricoh, "GXR S10", 0, 0,
1480       { 8963,-2926,-754,-4881,12921,2164,-1464,1944,4901 } },
1481 
1482     { LIBRAW_CAMERAMAKER_Samsung, "EX1", 0, 0x3e00,
1483       { 8898,-2498,-994,-3144,11328,2066,-760,1381,4576 } },
1484     { LIBRAW_CAMERAMAKER_Samsung, "EX2F", 0, 0x7ff,
1485       { 10648,-3897,-1055,-2022,10573,1668,-492,1611,4742 } },
1486 //    { LIBRAW_CAMERAMAKER_Samsung, "GX20", 0, 0,
1487 //      { 23213,-14575,-4840,-7077,16564,316,385,-1656,9398 } }, // Adobe DNG
1488 //      { 27717,-17403,-5779,-8450,19778,377,459,1978,11221 } }, // Samsung DNG
1489 //      { 9427,-2714,-868,-7493,16092,1373,-2199,3264,7180 } },  // Adobe DCP
1490 
1491 //    { LIBRAW_CAMERAMAKER_Samsung, "Galaxy S6 Edge Rear Camera", 0, 0,
1492 //    { LIBRAW_CAMERAMAKER_Samsung, "Galaxy S6 Rear Camera", 0, 0,
1493     { LIBRAW_CAMERAMAKER_Samsung, "Galaxy S6", 0, 0, // same CMs: "Galaxy S6", "Galaxy S6 Edge"
1494       { 13699,-5767,-1384,-4449,13879,499,-467,1691,5892 } },
1495 
1496 //    { LIBRAW_CAMERAMAKER_Samsung, "Galaxy S7 Edge Rear Camera", 0, 0,
1497 //    { LIBRAW_CAMERAMAKER_Samsung, "Galaxy S7 Rear Camera", 0, 0,
1498     { LIBRAW_CAMERAMAKER_Samsung, "Galaxy S7", 0, 0, // same CMs: "Galaxy S7", "Galaxy S7 Edge"
1499       { 9927,-3704,-1024,-3935,12758,1257,-389,1512,4993 } },
1500 
1501 //    { LIBRAW_CAMERAMAKER_Samsung, "Galaxy S8+ Rear Camera", 0, 0,
1502 //    { LIBRAW_CAMERAMAKER_Samsung, "Galaxy S8 Rear Camera", 0, 0,
1503     { LIBRAW_CAMERAMAKER_Samsung, "Galaxy S8", 0, 0, // same CMs: "Galaxy S8", "Galaxy S8+"
1504       { 9927,-3704,-1024,-3935,12758,1257,-389,1512,4993 } },
1505 
1506 //    { LIBRAW_CAMERAMAKER_Samsung, "Galaxy S9+ Rear Camera", 0, 0,
1507 //    { LIBRAW_CAMERAMAKER_Samsung, "Galaxy S9 Rear Camera", 0, 0,
1508     { LIBRAW_CAMERAMAKER_Samsung, "Galaxy S9", 0, 0, // same CMs: "Galaxy S9", "Galaxy S9+"
1509       { 13292,-6142,-1268,-4095,12890,1283,-557,1930,5163 } },
1510 //    { LIBRAW_CAMERAMAKER_Samsung, "Galaxy Note 9 Rear Telephoto Camera", 0, 0,
1511     { LIBRAW_CAMERAMAKER_Samsung, "Galaxy Note 9 Rear Camera", 0, 0,
1512       { 13292,-6142,-1268,-4095,12890,1283,-557,1930,5163 } },
1513 
1514     { LIBRAW_CAMERAMAKER_Samsung, "NX U", 0, 0,
1515       { 7557,-2522,-739,-4679,12949,1894,-840,1777,5311 } },
1516     { LIBRAW_CAMERAMAKER_Samsung, "NX3300", 0, 0,
1517       { 8060,-2933,-761,-4504,12890,1762,-630,1489,5227 } },
1518     { LIBRAW_CAMERAMAKER_Samsung, "NX3000", 0, 0,
1519       { 8060,-2933,-761,-4504,12890,1762,-630,1489,5227 } },
1520     { LIBRAW_CAMERAMAKER_Samsung, "NX30", 0, 0, // same CMs: NX30, NX300, NX300M
1521       { 7557,-2522,-739,-4679,12949,1894,-840,1777,5311 } },
1522     { LIBRAW_CAMERAMAKER_Samsung, "NX2000", 0, 0,
1523       { 7557,-2522,-739,-4679,12949,1894,-840,1777,5311 } },
1524     { LIBRAW_CAMERAMAKER_Samsung, "NX2", 0, 0xfff, // same CMs: NX20, NX200, NX210
1525       { 6933,-2268,-753,-4921,13387,1647,-803,1641,6096 } },
1526     { LIBRAW_CAMERAMAKER_Samsung, "NX1000", 0, 0,
1527       { 6933,-2268,-753,-4921,13387,1647,-803,1641,6096 } },
1528     { LIBRAW_CAMERAMAKER_Samsung, "NX1100", 0, 0,
1529       { 6933,-2268,-753,-4921,13387,1647,-803,1641,6096 } },
1530     { LIBRAW_CAMERAMAKER_Samsung, "NX11", 0, 0,
1531       { 10332,-3234,-1168,-6111,14639,1520,-1352,2647,8331 } },
1532     { LIBRAW_CAMERAMAKER_Samsung, "NX10", 0, 0, // same CMs: NX10, NX100
1533       { 10332,-3234,-1168,-6111,14639,1520,-1352,2647,8331 } },
1534     { LIBRAW_CAMERAMAKER_Samsung, "NX500", 0, 0,
1535       { 10686,-4042,-1052,-3595,13238,276,-464,1259,5931 } },
1536     { LIBRAW_CAMERAMAKER_Samsung, "NX5", 0, 0,
1537       { 10332,-3234,-1168,-6111,14639,1520,-1352,2647,8331 } },
1538     { LIBRAW_CAMERAMAKER_Samsung, "NX1", 0, 0,
1539       { 10686,-4042,-1052,-3595,13238,276,-464,1259,5931 } },
1540     { LIBRAW_CAMERAMAKER_Samsung, "NX mini", 0, 0,
1541       { 5222,-1196,-550,-6540,14649,2009,-1666,2819,5657 } },
1542 
1543     { LIBRAW_CAMERAMAKER_Samsung, "WB2000", 0, 0xfff,
1544       { 12093,-3557,-1155,-1000,9534,1733,-22,1787,4576 } },
1545     { LIBRAW_CAMERAMAKER_Samsung, "WB5000", 0, 0,
1546       {  7675, -2195,  -305, -5860, 14118,  1857, -2425,  4007,  6578}},
1547     { LIBRAW_CAMERAMAKER_Samsung, "S85", 0, 0,
1548       { 11885,-3968,-1473,-4214,12299,1916,-835,1655,5549 } }, /* DJC */
1549 
1550 // Foveon: LibRaw color data
1551     { LIBRAW_CAMERAMAKER_Sigma, "dp0 Quattro", 2047, 0,
1552       { 13801,-3390,-1016,5535,3802,877,1848,4245,3730 } },
1553     { LIBRAW_CAMERAMAKER_Sigma, "dp1 Quattro", 2047, 0,
1554       { 13801,-3390,-1016,5535,3802,877,1848,4245,3730 } },
1555     { LIBRAW_CAMERAMAKER_Sigma, "dp2 Quattro", 2047, 0,
1556       { 13801,-3390,-1016,5535,3802,877,1848,4245,3730 } },
1557     { LIBRAW_CAMERAMAKER_Sigma, "dp3 Quattro", 2047, 0,
1558       { 13801,-3390,-1016,5535,3802,877,1848,4245,3730 } },
1559     { LIBRAW_CAMERAMAKER_Sigma, "sd Quattro H", 256, 0,
1560       { 1295,108,-311,256,828,-65,-28,750,254 } }, /* temp */
1561     { LIBRAW_CAMERAMAKER_Sigma, "sd Quattro", 2047, 0,
1562       { 1295,108,-311,256,828,-65,-28,750,254 } }, /* temp */
1563     { LIBRAW_CAMERAMAKER_Sigma, "SD9", 15, 4095,
1564       { 13564,-2537,-751,-5465,15154,194,-67,116,10425 } },
1565     { LIBRAW_CAMERAMAKER_Sigma, "SD10", 15, 16383,
1566       { 6787,-1682,575,-3091,8357,160,217,-369,12314 } },
1567     { LIBRAW_CAMERAMAKER_Sigma, "SD14", 15, 16383,
1568       { 13589,-2509,-739,-5440,15104,193,-61,105,10554 } },
1569     { LIBRAW_CAMERAMAKER_Sigma, "SD15", 15, 4095,
1570       { 13556,-2537,-730,-5462,15144,195,-61,106,10577 } },
1571 // Merrills + SD1
1572     { LIBRAW_CAMERAMAKER_Sigma, "SD1", 31, 4095,
1573       { 5133,-1895,-353,4978,744,144,3837,3069,2777 } }, /* LibRaw */
1574     { LIBRAW_CAMERAMAKER_Sigma, "DP1 Merrill", 31, 4095,
1575       { 5133,-1895,-353,4978,744,144,3837,3069,2777 } }, /* LibRaw */
1576     { LIBRAW_CAMERAMAKER_Sigma, "DP2 Merrill", 31, 4095,
1577       { 5133,-1895,-353,4978,744,144,3837,3069,2777 } }, /* LibRaw */
1578     { LIBRAW_CAMERAMAKER_Sigma, "DP3 Merrill", 31, 4095,
1579       { 5133,-1895,-353,4978,744,144,3837,3069,2777 } }, /* LibRaw */
1580 // Sigma DP (non-Merrill Versions)
1581     { LIBRAW_CAMERAMAKER_Sigma, "DP1X", 0, 4095,
1582       { 13704,-2452,-857,-5413,15073,186,-89,151,9820 } },
1583     { LIBRAW_CAMERAMAKER_Sigma, "DP1", 0, 4095,
1584       { 12774,-2591,-394,-5333,14676,207,15,-21,12127 } },
1585     { LIBRAW_CAMERAMAKER_Sigma, "DP", 0, 4095,
1586       //  { 7401,-1169,-567,2059,3769,1510,664,3367,5328 } },
1587       { 13100,-3638,-847,6855,2369,580,2723,3218,3251 } }, /* LibRaw */
1588 
1589 	{ LIBRAW_CAMERAMAKER_Sinar, "", 0, 0,
1590       { 16442,-2956,-2422,-2877,12128,750,-1136,6066,4559 } }, /* DJC */
1591 
1592     { LIBRAW_CAMERAMAKER_Sony, "DSC-F828", 0, 0,
1593       { 7924,-1910,-777,-8226,15459,2998,-1517,2199,6818,-7242,11401,3481 } },
1594     { LIBRAW_CAMERAMAKER_Sony, "DSC-R1", 0, 0,
1595       { 8512,-2641,-694,-8042,15670,2526,-1821,2117,7414 } },
1596     { LIBRAW_CAMERAMAKER_Sony, "DSC-V3", 0, 0,
1597       { 7511,-2571,-692,-7894,15088,3060,-948,1111,8128 } },
1598 
1599     { LIBRAW_CAMERAMAKER_Sony, "DSC-HX9", -800, 0, // same CMs: DSC-HX95, DSC-HX99
1600       { 13076,-5686,-1481,-4027,12851,1251,-167,725,4937 } },
1601 
1602     { LIBRAW_CAMERAMAKER_Sony, "ZV-1", -800, 0,
1603       {8280,-2987,-703,-3531,11645,2133,-550,1542,5312 } },
1604 
1605     { LIBRAW_CAMERAMAKER_Sony, "ZV-E10", 0, 0,
1606       { 7657,-2847,-607,-4083,11966,2389,-684,1418,5844 } }, // a la ILCE-6100
1607 
1608     { LIBRAW_CAMERAMAKER_Sony, "DSC-RX100M7", -800, 0,
1609       {10315, -4390, -937, -4859, 12734, 2365, -734, 1537, 5997 } },
1610     { LIBRAW_CAMERAMAKER_Sony, "DSC-RX100M6", -800, 0,
1611       { 7325,-2321,-596,-3494,11674,2055,-668,1562,5031 } },
1612     { LIBRAW_CAMERAMAKER_Sony, "DSC-RX100M5A", -800, 0,
1613       { 11176,-4700,-965,-4004,12184,2032,-763,1726,5876 } },
1614     { LIBRAW_CAMERAMAKER_Sony, "DSC-RX100M", -800, 0, // same CMs: DSC-RX100M2, DSC-RX100M3, DSC-RX100M4, DSC-RX100M5
1615       { 6596,-2079,-562,-4782,13016,1933,-970,1581,5181 } },
1616     { LIBRAW_CAMERAMAKER_Sony, "DSC-RX100", 0, 0,
1617       { 8651,-2754,-1057,-3464,12207,1373,-568,1398,4434 } },
1618     { LIBRAW_CAMERAMAKER_Sony, "DSC-RX10M4", -800, 0,
1619       { 7699,-2566,-629,-2967,11270,1928,-378,1286,4807 } },
1620     { LIBRAW_CAMERAMAKER_Sony, "DSC-RX10",0, 0, // same CMs: DSC-RX10, DSC-RX10M2, DSC-RX10M3
1621       { 6679,-1825,-745,-5047,13256,1953,-1580,2422,5183 } },
1622     { LIBRAW_CAMERAMAKER_Sony, "DSC-RX1RM2", 0, 0,
1623       { 6629,-1900,-483,-4618,12349,2550,-622,1381,6514 } },
1624     { LIBRAW_CAMERAMAKER_Sony, "DSC-RX1R", 0, 0,
1625       { 6344,-1612,-462,-4863,12477,2681,-865,1786,6899 } },
1626     { LIBRAW_CAMERAMAKER_Sony, "DSC-RX1", 0, 0,
1627       { 6344,-1612,-462,-4863,12477,2681,-865,1786,6899 } },
1628 
1629     { LIBRAW_CAMERAMAKER_Sony, "DSC-RX0", -800, 0, // same CMs: DSC-RX0, DSC-RX0M2
1630       { 9396,-3507,-843,-2497,11111,1572,-343,1355,5089 } },
1631 
1632     { LIBRAW_CAMERAMAKER_Sony, "DSLR-A100", 0, 0xfeb,
1633       { 9437,-2811,-774,-8405,16215,2290,-710,596,7181 } },
1634     { LIBRAW_CAMERAMAKER_Sony, "DSLR-A290", 0, 0,
1635       { 6038,-1484,-579,-9145,16746,2512,-875,746,7218 } },
1636     { LIBRAW_CAMERAMAKER_Sony, "DSLR-A2", 0, 0, // same CMs: DSLR-A200, DSLR-A230
1637       { 9847,-3091,-928,-8485,16345,2225,-715,595,7103 } },
1638     { LIBRAW_CAMERAMAKER_Sony, "DSLR-A300", 0, 0,
1639       { 9847,-3091,-928,-8485,16345,2225,-715,595,7103 } },
1640     { LIBRAW_CAMERAMAKER_Sony, "DSLR-A330", 0, 0,
1641       { 9847,-3091,-929,-8485,16346,2225,-714,595,7103 } },
1642     { LIBRAW_CAMERAMAKER_Sony, "DSLR-A3", 0, 0, // same CMs: DSLR-A350, DSLR-A380, DSLR-A390
1643       { 6038,-1484,-579,-9145,16746,2512,-875,746,7218 } },
1644     { LIBRAW_CAMERAMAKER_Sony, "DSLR-A450", 0, 0, // close to 16596 if arw is 14-bit
1645       { 4950,-580,-103,-5228,12542,3029,-709,1435,7371 } },
1646     { LIBRAW_CAMERAMAKER_Sony, "DSLR-A580", 0, 16596,
1647       { 5932,-1492,-411,-4813,12285,2856,-741,1524,6739 } },
1648     { LIBRAW_CAMERAMAKER_Sony, "DSLR-A500", 0, 16596,
1649       { 6046,-1127,-278,-5574,13076,2786,-691,1419,7625 } },
1650     { LIBRAW_CAMERAMAKER_Sony, "DSLR-A5", 0, 16596,  // same CMs: DSLR-A550, DSLR-A560
1651       { 4950,-580,-103,-5228,12542,3029,-709,1435,7371 } },
1652     { LIBRAW_CAMERAMAKER_Sony, "DSLR-A700", 0, 0,
1653       { 5775,-805,-359,-8574,16295,2391,-1943,2341,7249 } },
1654     { LIBRAW_CAMERAMAKER_Sony, "DSLR-A850", 0, 0,
1655       { 5413,-1162,-365,-5665,13098,2866,-608,1179,8440 } },
1656     { LIBRAW_CAMERAMAKER_Sony, "DSLR-A900", 0, 0,
1657       { 5209,-1072,-397,-8845,16120,2919,-1618,1803,8654 } },
1658 
1659     { LIBRAW_CAMERAMAKER_Sony, "ILCA-68", 0, 0,
1660       { 6435,-1903,-536,-4722,12449,2550,-663,1363,6517 } },
1661     { LIBRAW_CAMERAMAKER_Sony, "ILCA-77M2", 0, 0,
1662       { 5991,-1732,-443,-4100,11989,2381,-704,1467,5992 } },
1663     { LIBRAW_CAMERAMAKER_Sony, "ILCA-99M2", 0, 0,
1664       { 6660,-1918,-471,-4613,12398,2485,-649,1433,6447 } },
1665 
1666     { LIBRAW_CAMERAMAKER_Sony, "ILCE-1", 0, 0,
1667       { 8161, -2947, -739, -4811, 12668, 2389, -437, 1229, 6524}},
1668     { LIBRAW_CAMERAMAKER_Sony, "ILCE-7RM4", 0, 0, // same CMs: ILCE-7RM4, ILCE-7RM4A
1669       { 7662, -2686,-660,-5240, 12965,2530, -796, 1508, 6167 } },
1670     { LIBRAW_CAMERAMAKER_Sony, "ILCE-7RM3", 0, 0, // same CMs: ILCE-7RM3, ILCE-7RM3A
1671       { 6640,-1847,-503,-5238,13010,2474,-993,1673,6527 } },
1672     { LIBRAW_CAMERAMAKER_Sony, "ILCE-7RM2", 0, 0,
1673       { 6629,-1900,-483,-4618,12349,2550,-622,1381,6514 } },
1674     { LIBRAW_CAMERAMAKER_Sony, "ILCE-7R", 0, 0,
1675       { 4913,-541,-202,-6130,13513,2906,-1564,2151,7183 } },
1676 
1677     { LIBRAW_CAMERAMAKER_Sony, "ILCE-7SM3", 0, 0,
1678       { 6912,-2127,-469,-4470,12175,2587,-398,1478,6492 } },
1679     { LIBRAW_CAMERAMAKER_Sony, "ILCE-7S", 0, 0, // same CMs: ILCE-7S, ILCE-7SM2
1680       { 5838,-1430,-246,-3497,11477,2297,-748,1885,5778 } },
1681 
1682     { LIBRAW_CAMERAMAKER_Sony, "ILCE-7C", 0, 0,
1683       { 7374,-2389,-551,-5435,13162,2519,-1006,1795,6552 } },
1684 
1685     { LIBRAW_CAMERAMAKER_Sony, "ILCE-7M3", 0, 0,
1686       { 7374,-2389,-551,-5435,13162,2519,-1006,1795,6552 } },
1687     { LIBRAW_CAMERAMAKER_Sony, "ILCE-7", 0, 0, // same CMs: ILCE-7, ILCE-7M2
1688       { 5271,-712,-347,-6153,13653,2763,-1601,2366,7242 } },
1689 
1690     { LIBRAW_CAMERAMAKER_Sony, "ILCE-9", 0, 0, // same CMs: ILCE-9, ILCE-9M2
1691       { 6389,-1703,-378,-4562,12265,2587,-670,1489,6550 } },
1692 
1693     { LIBRAW_CAMERAMAKER_Sony, "ILCE-6100", 0, 0,
1694       { 7657,-2847,-607,-4083,11966,2389,-684,1418,5844 } },
1695     { LIBRAW_CAMERAMAKER_Sony, "ILCE-6300", 0, 0,
1696       { 5973,-1695,-419,-3826,11797,2293,-639,1398,5789 } },
1697     { LIBRAW_CAMERAMAKER_Sony, "ILCE-6400", 0, 0,
1698       { 7657,-2847,-607,-4083,11966,2389,-684,1418,5844 } },
1699     { LIBRAW_CAMERAMAKER_Sony, "ILCE-6500", 0, 0,
1700       { 5973,-1695,-419,-3826,11797,2293,-639,1398,5789 } },
1701     { LIBRAW_CAMERAMAKER_Sony, "ILCE-6600", 0, 0,
1702       { 7657,-2847,-607,-4083,11966,2389,-684,1418,5844 } },
1703     { LIBRAW_CAMERAMAKER_Sony, "ILCE", 0, 0, // same CMs: ILCE-3000, ILCE-5000, ILCE-5100, ILCE-6000, ILCE-QX1
1704       { 5991,-1456,-455,-4764,12135,2980,-707,1425,6701 } },
1705 
1706     { LIBRAW_CAMERAMAKER_Sony, "ILME-FX3", 0, 0,
1707       { 6912, -2127, -469, -4470, 12175, 2587, -398, 1478, 6492 } },
1708 
1709     { LIBRAW_CAMERAMAKER_Sony, "NEX-5N", 0, 0,
1710       { 5991,-1456,-455,-4764,12135,2980,-707,1425,6701 } },
1711     { LIBRAW_CAMERAMAKER_Sony, "NEX-5R", 0, 0,
1712       { 6129,-1545,-418,-4930,12490,2743,-977,1693,6615 } },
1713     { LIBRAW_CAMERAMAKER_Sony, "NEX-5T", 0, 0,
1714       { 6129,-1545,-418,-4930,12490,2743,-977,1693,6615 } },
1715     { LIBRAW_CAMERAMAKER_Sony, "NEX-5", 0, 0,
1716       { 6549,-1550,-436,-4880,12435,2753,-854,1868,6976 } },
1717     { LIBRAW_CAMERAMAKER_Sony, "NEX-3N", 0, 0,
1718       { 6129,-1545,-418,-4930,12490,2743,-977,1693,6615 } },
1719     { LIBRAW_CAMERAMAKER_Sony, "NEX-3", 0, 0,
1720       { 6549,-1550,-436,-4880,12435,2753,-854,1868,6976 } },
1721     { LIBRAW_CAMERAMAKER_Sony, "NEX-6", 0, 0,
1722       { 6129,-1545,-418,-4930,12490,2743,-977,1693,6615 } },
1723     { LIBRAW_CAMERAMAKER_Sony, "NEX-7", 0, 0,
1724       { 5491,-1192,-363,-4951,12342,2948,-911,1722,7192 } },
1725     { LIBRAW_CAMERAMAKER_Sony, "NEX-VG30", 0, 0,
1726       { 6129,-1545,-418,-4930,12490,2743,-977,1693,6615 } },
1727     { LIBRAW_CAMERAMAKER_Sony, "NEX-VG900", 0, 0,
1728       { 6344,-1612,-462,-4863,12477,2681,-865,1786,6899 } },
1729     { LIBRAW_CAMERAMAKER_Sony, "NEX", 0, 0, // same CMs: NEX-C3, NEX-F3, NEX-VG20
1730       { 5991,-1456,-455,-4764,12135,2980,-707,1425,6701 } },
1731     { LIBRAW_CAMERAMAKER_Sony, "SLT-A33", 0, 0,
1732       { 6069,-1221,-366,-5221,12779,2734,-1024,2066,6834 } },
1733     { LIBRAW_CAMERAMAKER_Sony, "SLT-A35", 0, 0,
1734       { 5986,-1618,-415,-4557,11820,3120,-681,1404,6971 } },
1735     { LIBRAW_CAMERAMAKER_Sony, "SLT-A37", 0, 0,
1736       { 5991,-1456,-455,-4764,12135,2980,-707,1425,6701 } },
1737     { LIBRAW_CAMERAMAKER_Sony, "SLT-A55", 0, 0,
1738       { 5932,-1492,-411,-4813,12285,2856,-741,1524,6739 } },
1739     { LIBRAW_CAMERAMAKER_Sony, "SLT-A5", 0, 0, // same CMs: SLT-A57, SLT-A58
1740       { 5991,-1456,-455,-4764,12135,2980,-707,1425,6701 } },
1741     { LIBRAW_CAMERAMAKER_Sony, "SLT-A65", 0, 0,
1742       { 5491,-1192,-363,-4951,12342,2948,-911,1722,7192 } },
1743     { LIBRAW_CAMERAMAKER_Sony, "SLT-A77", 0, 0,
1744       { 5491,-1192,-363,-4951,12342,2948,-911,1722,7192 } },
1745     { LIBRAW_CAMERAMAKER_Sony, "SLT-A99", 0, 0,
1746       { 6344,-1612,-462,-4863,12477,2681,-865,1786,6899 } },
1747     { LIBRAW_CAMERAMAKER_Sony, "MODEL-NAME", 0, 0,
1748       { 5491,-1192,-363,-4951,12342,2948,-911,1722,7192 } },
1749 
1750     { LIBRAW_CAMERAMAKER_YI, "M1", 0, 0,
1751       { 7712,-2059,-653,-3882,11494,2726,-710,1332,5958 } },
1752   };
1753   // clang-format on
1754 
1755   double cam_xyz[4][3];
1756   //char name[130];
1757   int i, j;
1758 
1759   if (colors > 4 || colors < 1)
1760     return 1;
1761 
1762   int bl4 = (cblack[0] + cblack[1] + cblack[2] + cblack[3]) / 4, bl64 = 0;
1763   if (cblack[4] * cblack[5] > 0)
1764   {
1765     for (unsigned c = 0; c < 4096 && c < cblack[4] * cblack[5]; c++)
1766       bl64 += cblack[c + 6];
1767     bl64 /= cblack[4] * cblack[5];
1768   }
1769   int rblack = black + bl4 + bl64;
1770 
1771   for (i = 0; i < int(sizeof table / sizeof *table); i++)
1772   {
1773 	  if (table[i].m_idx == make_idx)
1774 	  {
1775 		  size_t l = strlen(table[i].prefix);
1776 		  if (!l ||  !strncasecmp(t_model, table[i].prefix, l))
1777 		  {
1778 			  if (!dng_version)
1779 			  {
1780 				  if (table[i].t_black > 0)
1781 				  {
1782 					  black = (ushort)table[i].t_black;
1783 					  memset(cblack, 0, sizeof(cblack));
1784 				  }
1785 				  else if (table[i].t_black < 0 && rblack == 0)
1786 				  {
1787 					  black = (ushort)(-table[i].t_black);
1788 					  memset(cblack, 0, sizeof(cblack));
1789 				  }
1790 				  if (table[i].t_maximum)
1791 					  maximum = (ushort)table[i].t_maximum;
1792 			  }
1793 			  if (table[i].trans[0])
1794 			  {
1795 				  for (raw_color = j = 0; j < 12; j++)
1796 					  if (internal_only)
1797 						  imgdata.color.cam_xyz[j / 3][j % 3] = table[i].trans[j] / 10000.f;
1798 					  else
1799                           ((double *)cam_xyz)[j] = imgdata.color.cam_xyz[j / 3][j % 3] = table[i].trans[j] / 10000.f;
1800 				  if (!internal_only)
1801 					  cam_xyz_coeff(rgb_cam, cam_xyz);
1802 			  }
1803 			  return 1; // CM found
1804 		  }
1805 	  }
1806   }
1807   return 0; // CM not found
1808 }
simple_coeff(int index)1809 void LibRaw::simple_coeff(int index)
1810 {
1811   static const float table[][12] = {
1812       /* index 0 -- all Foveon cameras */
1813       {1.4032, -0.2231, -0.1016, -0.5263, 1.4816, 0.017, -0.0112, 0.0183,
1814        0.9113},
1815       /* index 1 -- Kodak DC20 and DC25 */
1816       {2.25, 0.75, -1.75, -0.25, -0.25, 0.75, 0.75, -0.25, -0.25, -1.75, 0.75,
1817        2.25},
1818       /* index 2 -- Logitech Fotoman Pixtura */
1819       {1.893, -0.418, -0.476, -0.495, 1.773, -0.278, -1.017, -0.655, 2.672},
1820       /* index 3 -- Nikon E880, E900, and E990 */
1821       {-1.936280, 1.800443, -1.448486, 2.584324, 1.405365, -0.524955, -0.289090,
1822        0.408680, -1.204965, 1.082304, 2.941367, -1.818705}};
1823   int i, c;
1824 
1825   for (raw_color = i = 0; i < 3; i++)
1826     FORCC rgb_cam[i][c] = table[index][i * MIN(colors,4) + c];
1827 }
1828