From d934f2b391bba3bd2d11a2bc24b6d6c0c759be32 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 20 Oct 2026 10:00:04 +0700 Subject: [PATCH 1/3] analog M3c-4 (data): the log-domain PSP103 current tables of ss, ff, fs and sf from ngspice, each from its own run, with their held-out references psp103_idpa_ss.cir, _ff, _fs and _sf are the tt deck of M3c-2 with the .lib section changed and the three numbers of the gate scale s(Vgs) fitted to the corner's own ngspice grid (193 x 193 currents 7.8125 mV apart; vt 30 mV, v0 and a: ss 0.305 V / 0.725, ff 0.195 V / 0.650, fs 0.220 V / 0.525, sf 0.250 V / 0.775), plus four blocks the tt deck did not need: the 1000 R2 points and the 576 midpoints of the corner (the linear decks of the other corners printed 200 R2 points and no midpoints). Run on ngspice-47 with the OSDI models, twice: the numeric blocks of the two runs are identical. mos_psp103_data.t27 holds the printed arrays in the layout of the tt tables (SS_LG_N, SS_LG_P, SS_CEN_N, SS_CEN_P, SS_R2K_N, SS_R2K_P, SS_MID_N, SS_MID_P and the same for ff, fs, sf), the gate scales (SS_LOG_S ...), the pins (PIN_SS_LG, PIN_SS_CEN, PIN_SS_REF ...), the accessors lg_n, lg_p, cen_n, cen_p, mid_n, mid_p, r2k_n, r2k_p, log_s, and a test that pins every array, checks the rv words against the corner's own scale, bounds the extremes, and finds the first 200 R2 points word for word equal to the corner's 200 from the linear decks (a second ngspice run). The reader is the one of mos_table.t27, unchanged. t27b: 11 tests pass; test-report: 0 vacuous. Read with the bit-exact twin of the reader against the corner's own ngspice currents (floor 1e-9 A), the worst relative error over the 576 midpoints, the 1000 R2 points and the 1000 cell centres is 0.73 % (fs PMOS, cell centres), 0.68 % (ss PMOS), 0.61 % (ff PMOS), 0.51 % (sf NMOS, 0.62 % PMOS): under the 1 % bar in every corner and device. The tests of that bar and of the 500 fF inverter follow in the next commit. Updates #11211 Co-Authored-By: Claude Sonnet 5.5 --- specs/analog/decks/psp103_idpa_ff.cir | 172 + specs/analog/decks/psp103_idpa_fs.cir | 172 + specs/analog/decks/psp103_idpa_sf.cir | 172 + specs/analog/decks/psp103_idpa_ss.cir | 172 + specs/analog/mos_psp103_data.t27 | 4717 ++++++++++++++++++++++++- 5 files changed, 5402 insertions(+), 3 deletions(-) create mode 100644 specs/analog/decks/psp103_idpa_ff.cir create mode 100644 specs/analog/decks/psp103_idpa_fs.cir create mode 100644 specs/analog/decks/psp103_idpa_sf.cir create mode 100644 specs/analog/decks/psp103_idpa_ss.cir diff --git a/specs/analog/decks/psp103_idpa_ff.cir b/specs/analog/decks/psp103_idpa_ff.cir new file mode 100644 index 0000000000..326be71d48 --- /dev/null +++ b/specs/analog/decks/psp103_idpa_ff.cir @@ -0,0 +1,172 @@ +IHP SG13G2 PSP103 log-domain current tables, corner mos_ff +* specs/analog/decks/psp103_idpa_ff.cir -- the log-domain current tables for specs/analog/mos_psp103_data.t27 (M3c-4, #11211, epic #10486; the format of M3c-2, #10881), the weak-inversion-accurate +* read of mos_table.t27. A netlist plus a .control block that prints the numbers. +* Model: IHP-Open-PDK commit 21133f219b1a6da10d803e345761e77415ceff40, ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib (PSP 103.6, revision 200310), section +* mos_ff; the model code is libs.tech/verilog-a/psp103/psp103.va of the same commit, compiled with OpenVAF-Reloaded v24.0.2mob to psp103.osdi (and psp103_nqs.osdi). +* Temperature 27 C (TNOM 27 C). Devices: sg13_lv_nmos w=1.0u l=0.45u ng=1 m=1 and sg13_lv_pmos w=3.0u l=0.45u ng=1 m=1, exactly the devices of psp103_tab_ff.cir (the same +* netlist lines). +* Solver options: reltol 1e-6, vntol 1e-9, abstol 1e-14, as psp103_tab_ff.cir. +* Paths are NOT in this file. ngspice reads two environment variables: IHP_PDK, the IHP-Open-PDK checkout, and IHP_OSDI, the directory that holds the compiled +* psp103.osdi and psp103_nqs.osdi. +* Run: IHP_PDK= IHP_OSDI= ngspice -b psp103_idpa_ff.cir > psp103_idpa_ff.out (ngspice-47) +* THE CORNER (M3c-4, #11211). This deck is psp103_idpa_tt.cir with the .lib section mos_ff, the three numbers of the gate scale s(Vgs) below (each corner has its own: they were fitted +* to the corner's own 193 x 193 grid of ngspice currents, 7.8125 mV apart, so that the read is best between the nodes; the tests of mos_psp103.t27 judge the choice, this deck does not), and +* four more blocks at the end, r2_n, r2_p, mid_n and mid_p, the held-out currents of this corner that the tt corner's linear-table deck printed and the other corners' did not. +* THE TABLE. A node is the drain current Id, divided by the factor of weak inversion F = 1 - exp(-Vds / s(Vgs)), as log2 in 1/65536 of an octave, relative to +* IUNIT = 1 / (200 * 2^32) A = 1.164 pA (one table word of the linear tables, 298 pA, over 256). With the gate scale +* s(Vgs) = sqrt(0.030^2 + (0.65 * max(Vgs - 0.195, 0))^2) volts, rv = nint(4096 / s) (the word the reader multiplies Vds by), s_eff = 4096 / rv, +* the word of node (ix, iy), Vgs = ix * 15.625 mV (ix = 0 .. 96), Vds = iy * 31.25 mV (iy = 0 .. 48), is +* iy >= 1: nint(65536 * log2(max(Id / F(Vds; s_eff), IUNIT) / IUNIT)) +* iy = 0: nint(65536 * log2(max(s_eff * gds0, IUNIT) / IUNIT)) gds0 = the output conductance ngspice reports at Vds = 0, the limit of Id / F there. +* Index ix * 49 + iy, ix outer, 4753 rows. The PMOS is read at Vsg = 1.5 V - Vgp and Vsd = 1.5 V - Vdp, source and bulk on the 1.5 V rail, the same words. +* What it prints. Between "BEGIN name" and "END name" every row " TAB " is one number, in sweep order (the first sweep source runs fastest). +* The values are pasted into the spec in that order, none changed. +* lam_n, lam_p the 4753 words of the NMOS and of the PMOS (as above); r_n, r_p rv at Vgs = ix * 15.625 mV, 97 rows each. +* cen_n, cen_p Id in pA (nint(Id * 1e12)) at 1000 held-out points that are CENTRES of cells of this grid, the places a chord of it is worst: point k = 1..1000 is +* Vgs (Vsg) = (floor(96 frac(k a1)) + 1/2) * 15.625 mV and Vds (Vsd) = (floor(48 frac(k a2)) + 1/2) * 31.25 mV, a1 = 0.7548776662466927, a2 = 0.5698402909980532. +* r2_n, r2_p (corners other than tt, M3c-4) Id in pA (nint(Id * 1e12)) at the 1000 R2 points Vgs (Vsg) = 1.5 frac(k a1), Vds (Vsd) = 1.5 frac(k a2), k = 1..1000, the held-out set +* of the linear tables of the tt corner (the first 200 are the points of psp103_tab_ff.cir): points that are neither nodes nor cell centres of this grid. +* mid_n, mid_p (corners other than tt, M3c-4) Id in pA at the 576 cell midpoints Vgs, Vds = (i + 1/2) * 62.5 mV of the linear grid, i = 0..23 (outer index the gate): nodes of this grid. +* nmos table device: drain VDN, gate VGN, source and bulk at 0 V +.lib $IHP_PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ff +VDN dn 0 0 +VGN gn 0 0 +XMN dn gn 0 0 sg13_lv_nmos w=1.0u l=0.45u ng=1 m=1 +* pmos table device: source and bulk at the 1.5 V rail, drain VDP and gate VGP, both swept downward from 1.5 V +VSP sp 0 1.5 +VDP dp 0 1.5 +VGP gp 0 1.5 +XMP dp gp sp sp sg13_lv_pmos w=3.0u l=0.45u ng=1 m=1 +* held-out points: B sources compute the cell centre from the sweep variable k; the zero-volt sources VRDN, VRDP measure the drain current +VK k 0 1 +BRGN rgn 0 V = (floor(96*(v(k)*0.7548776662466927-floor(v(k)*0.7548776662466927)))+0.5)*0.015625 +BRDN rdn0 0 V = (floor(48*(v(k)*0.5698402909980532-floor(v(k)*0.5698402909980532)))+0.5)*0.03125 +VRDN rdn0 rdn 0 +XRN rdn rgn 0 0 sg13_lv_nmos w=1.0u l=0.45u ng=1 m=1 +BRGP rgp 0 V = 1.5-(floor(96*(v(k)*0.7548776662466927-floor(v(k)*0.7548776662466927)))+0.5)*0.015625 +BRDP rdp0 0 V = 1.5-(floor(48*(v(k)*0.5698402909980532-floor(v(k)*0.5698402909980532)))+0.5)*0.03125 +VRDP rdp rdp0 0 +VRSP rsp 0 1.5 +XRP rdp rgp rsp rsp sg13_lv_pmos w=3.0u l=0.45u ng=1 m=1 +* R2 points: the held-out set of the linear tables, 1000 points per device; the same construction, in volts, with Vgs (Vsg) = 1.5 frac(k a1), Vds (Vsd) = 1.5 frac(k a2) +BQGN qgn 0 V = 1.5*(v(k)*0.7548776662466927-floor(v(k)*0.7548776662466927)) +BQDN qdn0 0 V = 1.5*(v(k)*0.5698402909980532-floor(v(k)*0.5698402909980532)) +VQDN qdn0 qdn 0 +XQN qdn qgn 0 0 sg13_lv_nmos w=1.0u l=0.45u ng=1 m=1 +BQGP qgp 0 V = 1.5-1.5*(v(k)*0.7548776662466927-floor(v(k)*0.7548776662466927)) +BQDP qdp0 0 V = 1.5-1.5*(v(k)*0.5698402909980532-floor(v(k)*0.5698402909980532)) +VQDP qdp qdp0 0 +VQSP qsp 0 1.5 +XQP qdp qgp qsp qsp sg13_lv_pmos w=3.0u l=0.45u ng=1 m=1 +.temp 27 +.options reltol=1e-6 vntol=1e-9 abstol=1e-14 +.control +pre_osdi $IHP_OSDI/psp103.osdi +pre_osdi $IHP_OSDI/psp103_nqs.osdi +set numdgt=10 +set noprintscale +save all @n.xmn.nsg13_lv_nmos[gds] @n.xmp.nsg13_lv_pmos[gds] +* the output conductance at Vds = 0 at the 97 gate nodes, and the gate scale and its word there (the same for both devices); plots dc1 (nmos) and dc2 (pmos) +alter VDN = 0 +dc VGN 0 1.5 0.015625 +let gzn = @n.xmn.nsg13_lv_nmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.195 + abs(vgk - 0.195)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let an = gzn * sek +let zn = (an + 1.1641532182693481e-12 + abs(an - 1.1641532182693481e-12)) / 2 +let l0n = nint(65536 / ln(2) * ln(zn / 1.1641532182693481e-12)) +alter VDP = 1.5 +dc VGP 1.5 0 -0.015625 +let gzp = @n.xmp.nsg13_lv_pmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.195 + abs(vgk - 0.195)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let ap = gzp * sek +let zp = (ap + 1.1641532182693481e-12 + abs(ap - 1.1641532182693481e-12)) / 2 +let l0p = nint(65536 / ln(2) * ln(zp / 1.1641532182693481e-12)) +echo BEGIN r_n +print rk +echo END r_n +echo BEGIN r_p +print rk +echo END r_p +* the NMOS grid +alter VDN = 0 +dc VDN 0 1.5 0.03125 VGN 0 1.5 0.015625 +let vgn = v(gn) +let vdn = v(dn) +let ovn = (vgn - 0.195 + abs(vgn - 0.195)) / 2 +let sn = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovn * ovn) +let rn = nint(4096 / sn) +let fn = 1 - exp(0 - vdn * rn / 4096) +let idn = 0 - i(VDN) +let qn = (idn + abs(idn)) / 2 +let jn = qn / (fn + 1e-30) +let mn = (jn + 1.1641532182693481e-12 + abs(jn - 1.1641532182693481e-12)) / 2 +let lamn = nint(65536 / ln(2) * ln(mn / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamn[k*49] = dc1.l0n[k] + let k = k + 1 +end +echo BEGIN lam_n +print lamn +echo END lam_n +* the PMOS grid +alter VDP = 1.5 +dc VDP 1.5 0 -0.03125 VGP 1.5 0 -0.015625 +let vgp = 1.5 - v(gp) +let vdp = 1.5 - v(dp) +let ovp = (vgp - 0.195 + abs(vgp - 0.195)) / 2 +let sp = sqrt(0.03 * 0.03 + 0.65 * 0.65 * ovp * ovp) +let rp = nint(4096 / sp) +let fp = 1 - exp(0 - vdp * rp / 4096) +let idp = i(VDP) +let qp = (idp + abs(idp)) / 2 +let jp = qp / (fp + 1e-30) +let mp = (jp + 1.1641532182693481e-12 + abs(jp - 1.1641532182693481e-12)) / 2 +let lamp = nint(65536 / ln(2) * ln(mp / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamp[k*49] = dc2.l0p[k] + let k = k + 1 +end +echo BEGIN lam_p +print lamp +echo END lam_p +echo BEGIN cen_n +dc VK 1 1000 1 +let u = nint(i(VRDN) * 1e12) +print u +echo END cen_n +echo BEGIN cen_p +let u = nint(i(VRDP) * 1e12) +print u +echo END cen_p +echo BEGIN r2_n +let u = nint(i(VQDN) * 1e12) +print u +echo END r2_n +echo BEGIN r2_p +let u = nint(i(VQDP) * 1e12) +print u +echo END r2_p +echo BEGIN mid_n +dc VDN 0.03125 1.46875 0.0625 VGN 0.03125 1.46875 0.0625 +let u = nint(-i(VDN) * 1e12) +print u +echo END mid_n +echo BEGIN mid_p +dc VDP 1.46875 0.03125 -0.0625 VGP 1.46875 0.03125 -0.0625 +let u = nint(i(VDP) * 1e12) +print u +echo END mid_p +.endc +.end diff --git a/specs/analog/decks/psp103_idpa_fs.cir b/specs/analog/decks/psp103_idpa_fs.cir new file mode 100644 index 0000000000..11c8ace709 --- /dev/null +++ b/specs/analog/decks/psp103_idpa_fs.cir @@ -0,0 +1,172 @@ +IHP SG13G2 PSP103 log-domain current tables, corner mos_fs +* specs/analog/decks/psp103_idpa_fs.cir -- the log-domain current tables for specs/analog/mos_psp103_data.t27 (M3c-4, #11211, epic #10486; the format of M3c-2, #10881), the weak-inversion-accurate +* read of mos_table.t27. A netlist plus a .control block that prints the numbers. +* Model: IHP-Open-PDK commit 21133f219b1a6da10d803e345761e77415ceff40, ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib (PSP 103.6, revision 200310), section +* mos_fs; the model code is libs.tech/verilog-a/psp103/psp103.va of the same commit, compiled with OpenVAF-Reloaded v24.0.2mob to psp103.osdi (and psp103_nqs.osdi). +* Temperature 27 C (TNOM 27 C). Devices: sg13_lv_nmos w=1.0u l=0.45u ng=1 m=1 and sg13_lv_pmos w=3.0u l=0.45u ng=1 m=1, exactly the devices of psp103_tab_fs.cir (the same +* netlist lines). +* Solver options: reltol 1e-6, vntol 1e-9, abstol 1e-14, as psp103_tab_fs.cir. +* Paths are NOT in this file. ngspice reads two environment variables: IHP_PDK, the IHP-Open-PDK checkout, and IHP_OSDI, the directory that holds the compiled +* psp103.osdi and psp103_nqs.osdi. +* Run: IHP_PDK= IHP_OSDI= ngspice -b psp103_idpa_fs.cir > psp103_idpa_fs.out (ngspice-47) +* THE CORNER (M3c-4, #11211). This deck is psp103_idpa_tt.cir with the .lib section mos_fs, the three numbers of the gate scale s(Vgs) below (each corner has its own: they were fitted +* to the corner's own 193 x 193 grid of ngspice currents, 7.8125 mV apart, so that the read is best between the nodes; the tests of mos_psp103.t27 judge the choice, this deck does not), and +* four more blocks at the end, r2_n, r2_p, mid_n and mid_p, the held-out currents of this corner that the tt corner's linear-table deck printed and the other corners' did not. +* THE TABLE. A node is the drain current Id, divided by the factor of weak inversion F = 1 - exp(-Vds / s(Vgs)), as log2 in 1/65536 of an octave, relative to +* IUNIT = 1 / (200 * 2^32) A = 1.164 pA (one table word of the linear tables, 298 pA, over 256). With the gate scale +* s(Vgs) = sqrt(0.030^2 + (0.525 * max(Vgs - 0.22, 0))^2) volts, rv = nint(4096 / s) (the word the reader multiplies Vds by), s_eff = 4096 / rv, +* the word of node (ix, iy), Vgs = ix * 15.625 mV (ix = 0 .. 96), Vds = iy * 31.25 mV (iy = 0 .. 48), is +* iy >= 1: nint(65536 * log2(max(Id / F(Vds; s_eff), IUNIT) / IUNIT)) +* iy = 0: nint(65536 * log2(max(s_eff * gds0, IUNIT) / IUNIT)) gds0 = the output conductance ngspice reports at Vds = 0, the limit of Id / F there. +* Index ix * 49 + iy, ix outer, 4753 rows. The PMOS is read at Vsg = 1.5 V - Vgp and Vsd = 1.5 V - Vdp, source and bulk on the 1.5 V rail, the same words. +* What it prints. Between "BEGIN name" and "END name" every row " TAB " is one number, in sweep order (the first sweep source runs fastest). +* The values are pasted into the spec in that order, none changed. +* lam_n, lam_p the 4753 words of the NMOS and of the PMOS (as above); r_n, r_p rv at Vgs = ix * 15.625 mV, 97 rows each. +* cen_n, cen_p Id in pA (nint(Id * 1e12)) at 1000 held-out points that are CENTRES of cells of this grid, the places a chord of it is worst: point k = 1..1000 is +* Vgs (Vsg) = (floor(96 frac(k a1)) + 1/2) * 15.625 mV and Vds (Vsd) = (floor(48 frac(k a2)) + 1/2) * 31.25 mV, a1 = 0.7548776662466927, a2 = 0.5698402909980532. +* r2_n, r2_p (corners other than tt, M3c-4) Id in pA (nint(Id * 1e12)) at the 1000 R2 points Vgs (Vsg) = 1.5 frac(k a1), Vds (Vsd) = 1.5 frac(k a2), k = 1..1000, the held-out set +* of the linear tables of the tt corner (the first 200 are the points of psp103_tab_fs.cir): points that are neither nodes nor cell centres of this grid. +* mid_n, mid_p (corners other than tt, M3c-4) Id in pA at the 576 cell midpoints Vgs, Vds = (i + 1/2) * 62.5 mV of the linear grid, i = 0..23 (outer index the gate): nodes of this grid. +* nmos table device: drain VDN, gate VGN, source and bulk at 0 V +.lib $IHP_PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_fs +VDN dn 0 0 +VGN gn 0 0 +XMN dn gn 0 0 sg13_lv_nmos w=1.0u l=0.45u ng=1 m=1 +* pmos table device: source and bulk at the 1.5 V rail, drain VDP and gate VGP, both swept downward from 1.5 V +VSP sp 0 1.5 +VDP dp 0 1.5 +VGP gp 0 1.5 +XMP dp gp sp sp sg13_lv_pmos w=3.0u l=0.45u ng=1 m=1 +* held-out points: B sources compute the cell centre from the sweep variable k; the zero-volt sources VRDN, VRDP measure the drain current +VK k 0 1 +BRGN rgn 0 V = (floor(96*(v(k)*0.7548776662466927-floor(v(k)*0.7548776662466927)))+0.5)*0.015625 +BRDN rdn0 0 V = (floor(48*(v(k)*0.5698402909980532-floor(v(k)*0.5698402909980532)))+0.5)*0.03125 +VRDN rdn0 rdn 0 +XRN rdn rgn 0 0 sg13_lv_nmos w=1.0u l=0.45u ng=1 m=1 +BRGP rgp 0 V = 1.5-(floor(96*(v(k)*0.7548776662466927-floor(v(k)*0.7548776662466927)))+0.5)*0.015625 +BRDP rdp0 0 V = 1.5-(floor(48*(v(k)*0.5698402909980532-floor(v(k)*0.5698402909980532)))+0.5)*0.03125 +VRDP rdp rdp0 0 +VRSP rsp 0 1.5 +XRP rdp rgp rsp rsp sg13_lv_pmos w=3.0u l=0.45u ng=1 m=1 +* R2 points: the held-out set of the linear tables, 1000 points per device; the same construction, in volts, with Vgs (Vsg) = 1.5 frac(k a1), Vds (Vsd) = 1.5 frac(k a2) +BQGN qgn 0 V = 1.5*(v(k)*0.7548776662466927-floor(v(k)*0.7548776662466927)) +BQDN qdn0 0 V = 1.5*(v(k)*0.5698402909980532-floor(v(k)*0.5698402909980532)) +VQDN qdn0 qdn 0 +XQN qdn qgn 0 0 sg13_lv_nmos w=1.0u l=0.45u ng=1 m=1 +BQGP qgp 0 V = 1.5-1.5*(v(k)*0.7548776662466927-floor(v(k)*0.7548776662466927)) +BQDP qdp0 0 V = 1.5-1.5*(v(k)*0.5698402909980532-floor(v(k)*0.5698402909980532)) +VQDP qdp qdp0 0 +VQSP qsp 0 1.5 +XQP qdp qgp qsp qsp sg13_lv_pmos w=3.0u l=0.45u ng=1 m=1 +.temp 27 +.options reltol=1e-6 vntol=1e-9 abstol=1e-14 +.control +pre_osdi $IHP_OSDI/psp103.osdi +pre_osdi $IHP_OSDI/psp103_nqs.osdi +set numdgt=10 +set noprintscale +save all @n.xmn.nsg13_lv_nmos[gds] @n.xmp.nsg13_lv_pmos[gds] +* the output conductance at Vds = 0 at the 97 gate nodes, and the gate scale and its word there (the same for both devices); plots dc1 (nmos) and dc2 (pmos) +alter VDN = 0 +dc VGN 0 1.5 0.015625 +let gzn = @n.xmn.nsg13_lv_nmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.22 + abs(vgk - 0.22)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.525 * 0.525 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let an = gzn * sek +let zn = (an + 1.1641532182693481e-12 + abs(an - 1.1641532182693481e-12)) / 2 +let l0n = nint(65536 / ln(2) * ln(zn / 1.1641532182693481e-12)) +alter VDP = 1.5 +dc VGP 1.5 0 -0.015625 +let gzp = @n.xmp.nsg13_lv_pmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.22 + abs(vgk - 0.22)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.525 * 0.525 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let ap = gzp * sek +let zp = (ap + 1.1641532182693481e-12 + abs(ap - 1.1641532182693481e-12)) / 2 +let l0p = nint(65536 / ln(2) * ln(zp / 1.1641532182693481e-12)) +echo BEGIN r_n +print rk +echo END r_n +echo BEGIN r_p +print rk +echo END r_p +* the NMOS grid +alter VDN = 0 +dc VDN 0 1.5 0.03125 VGN 0 1.5 0.015625 +let vgn = v(gn) +let vdn = v(dn) +let ovn = (vgn - 0.22 + abs(vgn - 0.22)) / 2 +let sn = sqrt(0.03 * 0.03 + 0.525 * 0.525 * ovn * ovn) +let rn = nint(4096 / sn) +let fn = 1 - exp(0 - vdn * rn / 4096) +let idn = 0 - i(VDN) +let qn = (idn + abs(idn)) / 2 +let jn = qn / (fn + 1e-30) +let mn = (jn + 1.1641532182693481e-12 + abs(jn - 1.1641532182693481e-12)) / 2 +let lamn = nint(65536 / ln(2) * ln(mn / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamn[k*49] = dc1.l0n[k] + let k = k + 1 +end +echo BEGIN lam_n +print lamn +echo END lam_n +* the PMOS grid +alter VDP = 1.5 +dc VDP 1.5 0 -0.03125 VGP 1.5 0 -0.015625 +let vgp = 1.5 - v(gp) +let vdp = 1.5 - v(dp) +let ovp = (vgp - 0.22 + abs(vgp - 0.22)) / 2 +let sp = sqrt(0.03 * 0.03 + 0.525 * 0.525 * ovp * ovp) +let rp = nint(4096 / sp) +let fp = 1 - exp(0 - vdp * rp / 4096) +let idp = i(VDP) +let qp = (idp + abs(idp)) / 2 +let jp = qp / (fp + 1e-30) +let mp = (jp + 1.1641532182693481e-12 + abs(jp - 1.1641532182693481e-12)) / 2 +let lamp = nint(65536 / ln(2) * ln(mp / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamp[k*49] = dc2.l0p[k] + let k = k + 1 +end +echo BEGIN lam_p +print lamp +echo END lam_p +echo BEGIN cen_n +dc VK 1 1000 1 +let u = nint(i(VRDN) * 1e12) +print u +echo END cen_n +echo BEGIN cen_p +let u = nint(i(VRDP) * 1e12) +print u +echo END cen_p +echo BEGIN r2_n +let u = nint(i(VQDN) * 1e12) +print u +echo END r2_n +echo BEGIN r2_p +let u = nint(i(VQDP) * 1e12) +print u +echo END r2_p +echo BEGIN mid_n +dc VDN 0.03125 1.46875 0.0625 VGN 0.03125 1.46875 0.0625 +let u = nint(-i(VDN) * 1e12) +print u +echo END mid_n +echo BEGIN mid_p +dc VDP 1.46875 0.03125 -0.0625 VGP 1.46875 0.03125 -0.0625 +let u = nint(i(VDP) * 1e12) +print u +echo END mid_p +.endc +.end diff --git a/specs/analog/decks/psp103_idpa_sf.cir b/specs/analog/decks/psp103_idpa_sf.cir new file mode 100644 index 0000000000..db8ff3f1e8 --- /dev/null +++ b/specs/analog/decks/psp103_idpa_sf.cir @@ -0,0 +1,172 @@ +IHP SG13G2 PSP103 log-domain current tables, corner mos_sf +* specs/analog/decks/psp103_idpa_sf.cir -- the log-domain current tables for specs/analog/mos_psp103_data.t27 (M3c-4, #11211, epic #10486; the format of M3c-2, #10881), the weak-inversion-accurate +* read of mos_table.t27. A netlist plus a .control block that prints the numbers. +* Model: IHP-Open-PDK commit 21133f219b1a6da10d803e345761e77415ceff40, ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib (PSP 103.6, revision 200310), section +* mos_sf; the model code is libs.tech/verilog-a/psp103/psp103.va of the same commit, compiled with OpenVAF-Reloaded v24.0.2mob to psp103.osdi (and psp103_nqs.osdi). +* Temperature 27 C (TNOM 27 C). Devices: sg13_lv_nmos w=1.0u l=0.45u ng=1 m=1 and sg13_lv_pmos w=3.0u l=0.45u ng=1 m=1, exactly the devices of psp103_tab_sf.cir (the same +* netlist lines). +* Solver options: reltol 1e-6, vntol 1e-9, abstol 1e-14, as psp103_tab_sf.cir. +* Paths are NOT in this file. ngspice reads two environment variables: IHP_PDK, the IHP-Open-PDK checkout, and IHP_OSDI, the directory that holds the compiled +* psp103.osdi and psp103_nqs.osdi. +* Run: IHP_PDK= IHP_OSDI= ngspice -b psp103_idpa_sf.cir > psp103_idpa_sf.out (ngspice-47) +* THE CORNER (M3c-4, #11211). This deck is psp103_idpa_tt.cir with the .lib section mos_sf, the three numbers of the gate scale s(Vgs) below (each corner has its own: they were fitted +* to the corner's own 193 x 193 grid of ngspice currents, 7.8125 mV apart, so that the read is best between the nodes; the tests of mos_psp103.t27 judge the choice, this deck does not), and +* four more blocks at the end, r2_n, r2_p, mid_n and mid_p, the held-out currents of this corner that the tt corner's linear-table deck printed and the other corners' did not. +* THE TABLE. A node is the drain current Id, divided by the factor of weak inversion F = 1 - exp(-Vds / s(Vgs)), as log2 in 1/65536 of an octave, relative to +* IUNIT = 1 / (200 * 2^32) A = 1.164 pA (one table word of the linear tables, 298 pA, over 256). With the gate scale +* s(Vgs) = sqrt(0.030^2 + (0.775 * max(Vgs - 0.25, 0))^2) volts, rv = nint(4096 / s) (the word the reader multiplies Vds by), s_eff = 4096 / rv, +* the word of node (ix, iy), Vgs = ix * 15.625 mV (ix = 0 .. 96), Vds = iy * 31.25 mV (iy = 0 .. 48), is +* iy >= 1: nint(65536 * log2(max(Id / F(Vds; s_eff), IUNIT) / IUNIT)) +* iy = 0: nint(65536 * log2(max(s_eff * gds0, IUNIT) / IUNIT)) gds0 = the output conductance ngspice reports at Vds = 0, the limit of Id / F there. +* Index ix * 49 + iy, ix outer, 4753 rows. The PMOS is read at Vsg = 1.5 V - Vgp and Vsd = 1.5 V - Vdp, source and bulk on the 1.5 V rail, the same words. +* What it prints. Between "BEGIN name" and "END name" every row " TAB " is one number, in sweep order (the first sweep source runs fastest). +* The values are pasted into the spec in that order, none changed. +* lam_n, lam_p the 4753 words of the NMOS and of the PMOS (as above); r_n, r_p rv at Vgs = ix * 15.625 mV, 97 rows each. +* cen_n, cen_p Id in pA (nint(Id * 1e12)) at 1000 held-out points that are CENTRES of cells of this grid, the places a chord of it is worst: point k = 1..1000 is +* Vgs (Vsg) = (floor(96 frac(k a1)) + 1/2) * 15.625 mV and Vds (Vsd) = (floor(48 frac(k a2)) + 1/2) * 31.25 mV, a1 = 0.7548776662466927, a2 = 0.5698402909980532. +* r2_n, r2_p (corners other than tt, M3c-4) Id in pA (nint(Id * 1e12)) at the 1000 R2 points Vgs (Vsg) = 1.5 frac(k a1), Vds (Vsd) = 1.5 frac(k a2), k = 1..1000, the held-out set +* of the linear tables of the tt corner (the first 200 are the points of psp103_tab_sf.cir): points that are neither nodes nor cell centres of this grid. +* mid_n, mid_p (corners other than tt, M3c-4) Id in pA at the 576 cell midpoints Vgs, Vds = (i + 1/2) * 62.5 mV of the linear grid, i = 0..23 (outer index the gate): nodes of this grid. +* nmos table device: drain VDN, gate VGN, source and bulk at 0 V +.lib $IHP_PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_sf +VDN dn 0 0 +VGN gn 0 0 +XMN dn gn 0 0 sg13_lv_nmos w=1.0u l=0.45u ng=1 m=1 +* pmos table device: source and bulk at the 1.5 V rail, drain VDP and gate VGP, both swept downward from 1.5 V +VSP sp 0 1.5 +VDP dp 0 1.5 +VGP gp 0 1.5 +XMP dp gp sp sp sg13_lv_pmos w=3.0u l=0.45u ng=1 m=1 +* held-out points: B sources compute the cell centre from the sweep variable k; the zero-volt sources VRDN, VRDP measure the drain current +VK k 0 1 +BRGN rgn 0 V = (floor(96*(v(k)*0.7548776662466927-floor(v(k)*0.7548776662466927)))+0.5)*0.015625 +BRDN rdn0 0 V = (floor(48*(v(k)*0.5698402909980532-floor(v(k)*0.5698402909980532)))+0.5)*0.03125 +VRDN rdn0 rdn 0 +XRN rdn rgn 0 0 sg13_lv_nmos w=1.0u l=0.45u ng=1 m=1 +BRGP rgp 0 V = 1.5-(floor(96*(v(k)*0.7548776662466927-floor(v(k)*0.7548776662466927)))+0.5)*0.015625 +BRDP rdp0 0 V = 1.5-(floor(48*(v(k)*0.5698402909980532-floor(v(k)*0.5698402909980532)))+0.5)*0.03125 +VRDP rdp rdp0 0 +VRSP rsp 0 1.5 +XRP rdp rgp rsp rsp sg13_lv_pmos w=3.0u l=0.45u ng=1 m=1 +* R2 points: the held-out set of the linear tables, 1000 points per device; the same construction, in volts, with Vgs (Vsg) = 1.5 frac(k a1), Vds (Vsd) = 1.5 frac(k a2) +BQGN qgn 0 V = 1.5*(v(k)*0.7548776662466927-floor(v(k)*0.7548776662466927)) +BQDN qdn0 0 V = 1.5*(v(k)*0.5698402909980532-floor(v(k)*0.5698402909980532)) +VQDN qdn0 qdn 0 +XQN qdn qgn 0 0 sg13_lv_nmos w=1.0u l=0.45u ng=1 m=1 +BQGP qgp 0 V = 1.5-1.5*(v(k)*0.7548776662466927-floor(v(k)*0.7548776662466927)) +BQDP qdp0 0 V = 1.5-1.5*(v(k)*0.5698402909980532-floor(v(k)*0.5698402909980532)) +VQDP qdp qdp0 0 +VQSP qsp 0 1.5 +XQP qdp qgp qsp qsp sg13_lv_pmos w=3.0u l=0.45u ng=1 m=1 +.temp 27 +.options reltol=1e-6 vntol=1e-9 abstol=1e-14 +.control +pre_osdi $IHP_OSDI/psp103.osdi +pre_osdi $IHP_OSDI/psp103_nqs.osdi +set numdgt=10 +set noprintscale +save all @n.xmn.nsg13_lv_nmos[gds] @n.xmp.nsg13_lv_pmos[gds] +* the output conductance at Vds = 0 at the 97 gate nodes, and the gate scale and its word there (the same for both devices); plots dc1 (nmos) and dc2 (pmos) +alter VDN = 0 +dc VGN 0 1.5 0.015625 +let gzn = @n.xmn.nsg13_lv_nmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.25 + abs(vgk - 0.25)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.775 * 0.775 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let an = gzn * sek +let zn = (an + 1.1641532182693481e-12 + abs(an - 1.1641532182693481e-12)) / 2 +let l0n = nint(65536 / ln(2) * ln(zn / 1.1641532182693481e-12)) +alter VDP = 1.5 +dc VGP 1.5 0 -0.015625 +let gzp = @n.xmp.nsg13_lv_pmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.25 + abs(vgk - 0.25)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.775 * 0.775 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let ap = gzp * sek +let zp = (ap + 1.1641532182693481e-12 + abs(ap - 1.1641532182693481e-12)) / 2 +let l0p = nint(65536 / ln(2) * ln(zp / 1.1641532182693481e-12)) +echo BEGIN r_n +print rk +echo END r_n +echo BEGIN r_p +print rk +echo END r_p +* the NMOS grid +alter VDN = 0 +dc VDN 0 1.5 0.03125 VGN 0 1.5 0.015625 +let vgn = v(gn) +let vdn = v(dn) +let ovn = (vgn - 0.25 + abs(vgn - 0.25)) / 2 +let sn = sqrt(0.03 * 0.03 + 0.775 * 0.775 * ovn * ovn) +let rn = nint(4096 / sn) +let fn = 1 - exp(0 - vdn * rn / 4096) +let idn = 0 - i(VDN) +let qn = (idn + abs(idn)) / 2 +let jn = qn / (fn + 1e-30) +let mn = (jn + 1.1641532182693481e-12 + abs(jn - 1.1641532182693481e-12)) / 2 +let lamn = nint(65536 / ln(2) * ln(mn / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamn[k*49] = dc1.l0n[k] + let k = k + 1 +end +echo BEGIN lam_n +print lamn +echo END lam_n +* the PMOS grid +alter VDP = 1.5 +dc VDP 1.5 0 -0.03125 VGP 1.5 0 -0.015625 +let vgp = 1.5 - v(gp) +let vdp = 1.5 - v(dp) +let ovp = (vgp - 0.25 + abs(vgp - 0.25)) / 2 +let sp = sqrt(0.03 * 0.03 + 0.775 * 0.775 * ovp * ovp) +let rp = nint(4096 / sp) +let fp = 1 - exp(0 - vdp * rp / 4096) +let idp = i(VDP) +let qp = (idp + abs(idp)) / 2 +let jp = qp / (fp + 1e-30) +let mp = (jp + 1.1641532182693481e-12 + abs(jp - 1.1641532182693481e-12)) / 2 +let lamp = nint(65536 / ln(2) * ln(mp / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamp[k*49] = dc2.l0p[k] + let k = k + 1 +end +echo BEGIN lam_p +print lamp +echo END lam_p +echo BEGIN cen_n +dc VK 1 1000 1 +let u = nint(i(VRDN) * 1e12) +print u +echo END cen_n +echo BEGIN cen_p +let u = nint(i(VRDP) * 1e12) +print u +echo END cen_p +echo BEGIN r2_n +let u = nint(i(VQDN) * 1e12) +print u +echo END r2_n +echo BEGIN r2_p +let u = nint(i(VQDP) * 1e12) +print u +echo END r2_p +echo BEGIN mid_n +dc VDN 0.03125 1.46875 0.0625 VGN 0.03125 1.46875 0.0625 +let u = nint(-i(VDN) * 1e12) +print u +echo END mid_n +echo BEGIN mid_p +dc VDP 1.46875 0.03125 -0.0625 VGP 1.46875 0.03125 -0.0625 +let u = nint(i(VDP) * 1e12) +print u +echo END mid_p +.endc +.end diff --git a/specs/analog/decks/psp103_idpa_ss.cir b/specs/analog/decks/psp103_idpa_ss.cir new file mode 100644 index 0000000000..b1ce8b3204 --- /dev/null +++ b/specs/analog/decks/psp103_idpa_ss.cir @@ -0,0 +1,172 @@ +IHP SG13G2 PSP103 log-domain current tables, corner mos_ss +* specs/analog/decks/psp103_idpa_ss.cir -- the log-domain current tables for specs/analog/mos_psp103_data.t27 (M3c-4, #11211, epic #10486; the format of M3c-2, #10881), the weak-inversion-accurate +* read of mos_table.t27. A netlist plus a .control block that prints the numbers. +* Model: IHP-Open-PDK commit 21133f219b1a6da10d803e345761e77415ceff40, ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib (PSP 103.6, revision 200310), section +* mos_ss; the model code is libs.tech/verilog-a/psp103/psp103.va of the same commit, compiled with OpenVAF-Reloaded v24.0.2mob to psp103.osdi (and psp103_nqs.osdi). +* Temperature 27 C (TNOM 27 C). Devices: sg13_lv_nmos w=1.0u l=0.45u ng=1 m=1 and sg13_lv_pmos w=3.0u l=0.45u ng=1 m=1, exactly the devices of psp103_tab_ss.cir (the same +* netlist lines). +* Solver options: reltol 1e-6, vntol 1e-9, abstol 1e-14, as psp103_tab_ss.cir. +* Paths are NOT in this file. ngspice reads two environment variables: IHP_PDK, the IHP-Open-PDK checkout, and IHP_OSDI, the directory that holds the compiled +* psp103.osdi and psp103_nqs.osdi. +* Run: IHP_PDK= IHP_OSDI= ngspice -b psp103_idpa_ss.cir > psp103_idpa_ss.out (ngspice-47) +* THE CORNER (M3c-4, #11211). This deck is psp103_idpa_tt.cir with the .lib section mos_ss, the three numbers of the gate scale s(Vgs) below (each corner has its own: they were fitted +* to the corner's own 193 x 193 grid of ngspice currents, 7.8125 mV apart, so that the read is best between the nodes; the tests of mos_psp103.t27 judge the choice, this deck does not), and +* four more blocks at the end, r2_n, r2_p, mid_n and mid_p, the held-out currents of this corner that the tt corner's linear-table deck printed and the other corners' did not. +* THE TABLE. A node is the drain current Id, divided by the factor of weak inversion F = 1 - exp(-Vds / s(Vgs)), as log2 in 1/65536 of an octave, relative to +* IUNIT = 1 / (200 * 2^32) A = 1.164 pA (one table word of the linear tables, 298 pA, over 256). With the gate scale +* s(Vgs) = sqrt(0.030^2 + (0.725 * max(Vgs - 0.305, 0))^2) volts, rv = nint(4096 / s) (the word the reader multiplies Vds by), s_eff = 4096 / rv, +* the word of node (ix, iy), Vgs = ix * 15.625 mV (ix = 0 .. 96), Vds = iy * 31.25 mV (iy = 0 .. 48), is +* iy >= 1: nint(65536 * log2(max(Id / F(Vds; s_eff), IUNIT) / IUNIT)) +* iy = 0: nint(65536 * log2(max(s_eff * gds0, IUNIT) / IUNIT)) gds0 = the output conductance ngspice reports at Vds = 0, the limit of Id / F there. +* Index ix * 49 + iy, ix outer, 4753 rows. The PMOS is read at Vsg = 1.5 V - Vgp and Vsd = 1.5 V - Vdp, source and bulk on the 1.5 V rail, the same words. +* What it prints. Between "BEGIN name" and "END name" every row " TAB " is one number, in sweep order (the first sweep source runs fastest). +* The values are pasted into the spec in that order, none changed. +* lam_n, lam_p the 4753 words of the NMOS and of the PMOS (as above); r_n, r_p rv at Vgs = ix * 15.625 mV, 97 rows each. +* cen_n, cen_p Id in pA (nint(Id * 1e12)) at 1000 held-out points that are CENTRES of cells of this grid, the places a chord of it is worst: point k = 1..1000 is +* Vgs (Vsg) = (floor(96 frac(k a1)) + 1/2) * 15.625 mV and Vds (Vsd) = (floor(48 frac(k a2)) + 1/2) * 31.25 mV, a1 = 0.7548776662466927, a2 = 0.5698402909980532. +* r2_n, r2_p (corners other than tt, M3c-4) Id in pA (nint(Id * 1e12)) at the 1000 R2 points Vgs (Vsg) = 1.5 frac(k a1), Vds (Vsd) = 1.5 frac(k a2), k = 1..1000, the held-out set +* of the linear tables of the tt corner (the first 200 are the points of psp103_tab_ss.cir): points that are neither nodes nor cell centres of this grid. +* mid_n, mid_p (corners other than tt, M3c-4) Id in pA at the 576 cell midpoints Vgs, Vds = (i + 1/2) * 62.5 mV of the linear grid, i = 0..23 (outer index the gate): nodes of this grid. +* nmos table device: drain VDN, gate VGN, source and bulk at 0 V +.lib $IHP_PDK/ihp-sg13g2/libs.tech/ngspice/models/cornerMOSlv.lib mos_ss +VDN dn 0 0 +VGN gn 0 0 +XMN dn gn 0 0 sg13_lv_nmos w=1.0u l=0.45u ng=1 m=1 +* pmos table device: source and bulk at the 1.5 V rail, drain VDP and gate VGP, both swept downward from 1.5 V +VSP sp 0 1.5 +VDP dp 0 1.5 +VGP gp 0 1.5 +XMP dp gp sp sp sg13_lv_pmos w=3.0u l=0.45u ng=1 m=1 +* held-out points: B sources compute the cell centre from the sweep variable k; the zero-volt sources VRDN, VRDP measure the drain current +VK k 0 1 +BRGN rgn 0 V = (floor(96*(v(k)*0.7548776662466927-floor(v(k)*0.7548776662466927)))+0.5)*0.015625 +BRDN rdn0 0 V = (floor(48*(v(k)*0.5698402909980532-floor(v(k)*0.5698402909980532)))+0.5)*0.03125 +VRDN rdn0 rdn 0 +XRN rdn rgn 0 0 sg13_lv_nmos w=1.0u l=0.45u ng=1 m=1 +BRGP rgp 0 V = 1.5-(floor(96*(v(k)*0.7548776662466927-floor(v(k)*0.7548776662466927)))+0.5)*0.015625 +BRDP rdp0 0 V = 1.5-(floor(48*(v(k)*0.5698402909980532-floor(v(k)*0.5698402909980532)))+0.5)*0.03125 +VRDP rdp rdp0 0 +VRSP rsp 0 1.5 +XRP rdp rgp rsp rsp sg13_lv_pmos w=3.0u l=0.45u ng=1 m=1 +* R2 points: the held-out set of the linear tables, 1000 points per device; the same construction, in volts, with Vgs (Vsg) = 1.5 frac(k a1), Vds (Vsd) = 1.5 frac(k a2) +BQGN qgn 0 V = 1.5*(v(k)*0.7548776662466927-floor(v(k)*0.7548776662466927)) +BQDN qdn0 0 V = 1.5*(v(k)*0.5698402909980532-floor(v(k)*0.5698402909980532)) +VQDN qdn0 qdn 0 +XQN qdn qgn 0 0 sg13_lv_nmos w=1.0u l=0.45u ng=1 m=1 +BQGP qgp 0 V = 1.5-1.5*(v(k)*0.7548776662466927-floor(v(k)*0.7548776662466927)) +BQDP qdp0 0 V = 1.5-1.5*(v(k)*0.5698402909980532-floor(v(k)*0.5698402909980532)) +VQDP qdp qdp0 0 +VQSP qsp 0 1.5 +XQP qdp qgp qsp qsp sg13_lv_pmos w=3.0u l=0.45u ng=1 m=1 +.temp 27 +.options reltol=1e-6 vntol=1e-9 abstol=1e-14 +.control +pre_osdi $IHP_OSDI/psp103.osdi +pre_osdi $IHP_OSDI/psp103_nqs.osdi +set numdgt=10 +set noprintscale +save all @n.xmn.nsg13_lv_nmos[gds] @n.xmp.nsg13_lv_pmos[gds] +* the output conductance at Vds = 0 at the 97 gate nodes, and the gate scale and its word there (the same for both devices); plots dc1 (nmos) and dc2 (pmos) +alter VDN = 0 +dc VGN 0 1.5 0.015625 +let gzn = @n.xmn.nsg13_lv_nmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.305 + abs(vgk - 0.305)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.725 * 0.725 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let an = gzn * sek +let zn = (an + 1.1641532182693481e-12 + abs(an - 1.1641532182693481e-12)) / 2 +let l0n = nint(65536 / ln(2) * ln(zn / 1.1641532182693481e-12)) +alter VDP = 1.5 +dc VGP 1.5 0 -0.015625 +let gzp = @n.xmp.nsg13_lv_pmos[gds] +let kk = vector(97) +let vgk = kk * 0.015625 +let ovk = (vgk - 0.305 + abs(vgk - 0.305)) / 2 +let sk = sqrt(0.03 * 0.03 + 0.725 * 0.725 * ovk * ovk) +let rk = nint(4096 / sk) +let sek = 4096 / rk +let ap = gzp * sek +let zp = (ap + 1.1641532182693481e-12 + abs(ap - 1.1641532182693481e-12)) / 2 +let l0p = nint(65536 / ln(2) * ln(zp / 1.1641532182693481e-12)) +echo BEGIN r_n +print rk +echo END r_n +echo BEGIN r_p +print rk +echo END r_p +* the NMOS grid +alter VDN = 0 +dc VDN 0 1.5 0.03125 VGN 0 1.5 0.015625 +let vgn = v(gn) +let vdn = v(dn) +let ovn = (vgn - 0.305 + abs(vgn - 0.305)) / 2 +let sn = sqrt(0.03 * 0.03 + 0.725 * 0.725 * ovn * ovn) +let rn = nint(4096 / sn) +let fn = 1 - exp(0 - vdn * rn / 4096) +let idn = 0 - i(VDN) +let qn = (idn + abs(idn)) / 2 +let jn = qn / (fn + 1e-30) +let mn = (jn + 1.1641532182693481e-12 + abs(jn - 1.1641532182693481e-12)) / 2 +let lamn = nint(65536 / ln(2) * ln(mn / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamn[k*49] = dc1.l0n[k] + let k = k + 1 +end +echo BEGIN lam_n +print lamn +echo END lam_n +* the PMOS grid +alter VDP = 1.5 +dc VDP 1.5 0 -0.03125 VGP 1.5 0 -0.015625 +let vgp = 1.5 - v(gp) +let vdp = 1.5 - v(dp) +let ovp = (vgp - 0.305 + abs(vgp - 0.305)) / 2 +let sp = sqrt(0.03 * 0.03 + 0.725 * 0.725 * ovp * ovp) +let rp = nint(4096 / sp) +let fp = 1 - exp(0 - vdp * rp / 4096) +let idp = i(VDP) +let qp = (idp + abs(idp)) / 2 +let jp = qp / (fp + 1e-30) +let mp = (jp + 1.1641532182693481e-12 + abs(jp - 1.1641532182693481e-12)) / 2 +let lamp = nint(65536 / ln(2) * ln(mp / 1.1641532182693481e-12)) +let k = 0 +while k < 97 + let lamp[k*49] = dc2.l0p[k] + let k = k + 1 +end +echo BEGIN lam_p +print lamp +echo END lam_p +echo BEGIN cen_n +dc VK 1 1000 1 +let u = nint(i(VRDN) * 1e12) +print u +echo END cen_n +echo BEGIN cen_p +let u = nint(i(VRDP) * 1e12) +print u +echo END cen_p +echo BEGIN r2_n +let u = nint(i(VQDN) * 1e12) +print u +echo END r2_n +echo BEGIN r2_p +let u = nint(i(VQDP) * 1e12) +print u +echo END r2_p +echo BEGIN mid_n +dc VDN 0.03125 1.46875 0.0625 VGN 0.03125 1.46875 0.0625 +let u = nint(-i(VDN) * 1e12) +print u +echo END mid_n +echo BEGIN mid_p +dc VDP 1.46875 0.03125 -0.0625 VGP 1.46875 0.03125 -0.0625 +let u = nint(i(VDP) * 1e12) +print u +echo END mid_p +.endc +.end diff --git a/specs/analog/mos_psp103_data.t27 b/specs/analog/mos_psp103_data.t27 index 84c1c64cca..585e5e35cf 100644 --- a/specs/analog/mos_psp103_data.t27 +++ b/specs/analog/mos_psp103_data.t27 @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 ; specs/analog/mos_psp103_data.t27 -- the IHP SG13G2 PSP103 current tables, per corner, from ngspice: data and nothing else -; M3b of the analog emulation epic (#10486, issue #10516); M3c (#10777, sub-issue #10880) adds the charge tables, THE CHARGE TABLES below, for tt and ss; M3c-3 (#10882) adds them for ff, fs and sf; M3c-2 (#10881) adds the log-domain current tables of tt, THE LOG-DOMAIN CURRENT TABLES below. M3a (specs/analog/mos_table.t27) reads a 25 x 25 table by exact-integer +; M3b of the analog emulation epic (#10486, issue #10516); M3c (#10777, sub-issue #10880) adds the charge tables, THE CHARGE TABLES below, for tt and ss; M3c-3 (#10882) adds them for ff, fs and sf; M3c-2 (#10881) adds the log-domain current tables of tt, THE LOG-DOMAIN CURRENT TABLES below; M3c-4 (#11211) adds them for ss, ff, fs and sf, THE OTHER FOUR CORNERS below. M3a (specs/analog/mos_table.t27) reads a 25 x 25 table by exact-integer ; bilinear interpolation; this file holds the tables it reads when the device is the foundry's, Id(Vgs, Vds) of sg13_lv_nmos ; (W 1.0 um, L 0.45 um) and sg13_lv_pmos (W 3.0 um, L 0.45 um) for the five corners mos_tt, mos_ff, mos_ss, mos_fs and mos_sf, and the ; numbers the tests judge them by (held-out currents, the inverter's DC transfer, the inverter's transient). The functions are in @@ -22,6 +22,8 @@ ; psp103_inv_be_500f_ss.cir, _ff, _fs, _sf (M3c-3) psp103_inv_be_500f.cir (tt) for the other four corners: the 500 fF waveform of ; ngspice backward Euler in that corner, the reference the charge tables of the corner are judged by ; psp103_idpa_tt.cir (M3c-2, #10881) the log-domain current tables of the tt corner, TT_LG_N and TT_LG_P, and 1000 held-out currents at cell centres of their grid +; psp103_idpa_ss.cir, _ff, _fs, _sf (M3c-4, #11211) the same deck for the other four corners (the .lib section and the three numbers of the gate scale differ), which also prints the corner's +; 1000 R2 points (FF_R2K_N, ...) and 576 cell midpoints (FF_MID_N, ...): the references the log tables of that corner are judged by ; Each is run as `IHP_PDK= IHP_OSDI= ngspice -b `; no deck holds a path. ngspice rounds each current ; to a table unit itself (nint in the deck) and prints it between "BEGIN name" and "END name"; the rows were wrapped onto lines ; below in print order, none changed or reordered. The pins (order-sensitive folds, as M3a pins its run) fail on any changed number. @@ -37,7 +39,7 @@ ; THE HELD-OUT POINTS are never nodes of the grid. The tt deck prints the current in pA (nint(Id * 1e12)) at the 576 cell midpoints ; Vgs, Vds = (i + 1/2) * 62.5 mV, where a chord is worst, and at 1000 points of the R2 low-discrepancy sequence: point k = 1..1000 is ; Vgs (Vsg) = 1.5 frac(k * 0.7548776662466927) and Vds (Vsd) = 1.5 frac(k * 0.5698402909980532), 1/plastic number and its square; the -; other corners print the first 200 of those points. Each pair of devices has its own set of currents, the same coordinates. +; other corners print the first 200 of those points (the log-domain decks of M3c-4 print all 1000 R2 points and the 576 midpoints for every corner, FF_R2K_N and FF_MID_N and so on; the first 200 R2 points of them are the 200 above, word for word). Each pair of devices has its own set of currents, the same coordinates. ; - ; THE CHARGE TABLES (M3c, issue #10777; M3c-3, issue #10882). Five more decks, specs/analog/decks/psp103_q_tt.cir, _ss, _ff, _fs and _sf (corners ; mos_tt, mos_ss, mos_ff, mos_fs, mos_sf; the five differ in the title and the .lib section only), print the DRAIN and GATE charge of each @@ -62,7 +64,7 @@ ; 5 ps on 25 fF is dt / C = 200 V/A again, so the current tables are the same words and the charge tables (Q / 500 fF) are scaled by 500 fF / 25 fF = 20. ; The node stays between 0.59 and 1.08 V, inside the tables' range. ; - -; THE LOG-DOMAIN CURRENT TABLES (M3c-2, issue #10881; tt only). TT_LG_N and TT_LG_P are a different table of the same two devices (sg13_lv_nmos W 1.0 um, sg13_lv_pmos +; THE LOG-DOMAIN CURRENT TABLES (M3c-2, issue #10881; tt here, the other four corners in the paragraph after this one). TT_LG_N and TT_LG_P are a different table of the same two devices (sg13_lv_nmos W 1.0 um, sg13_lv_pmos ; W 3.0 um, L 0.45 um, IHP-Open-PDK 21133f219b1a6da10d803e345761e77415ceff40, mos_tt, 27 C), made to be read in the log domain by the integer exp of mos_table.t27: the linear ; tables above cannot give 1 % in weak inversion (a word is 298 pA and a chord over a 62.5 mV cell is 41 % above an exponential at the middle; the tests of mos_psp103.t27). ; A node is not Id but Id / F, as log2 in 1/65536 of an octave (16 fraction bits, an integer part under 2^5, so a word is under 2^21 and the reader's u64 interpolation @@ -78,6 +80,18 @@ ; linear tables, are NODES of this grid (a read there tests the rounding and nothing else), and the 1000 R2 points are off the nodes but not at the worst place of this grid, so ; TT_CEN_N and TT_CEN_P add 1000 currents in pA at CENTRES of its cells (R2 picks the cell), where a chord of THIS grid is worst. The pins fail on any changed number. ; - +; THE OTHER FOUR CORNERS (M3c-4, issue #11211). SS_LG_N, SS_LG_P and the same for ff, fs and sf: the tables of the tt corner in the same layout, the same grid (97 x 49 nodes, +; 15.625 mV along Vgs, 31.25 mV along Vds), the same words and the same reader, each from its OWN ngspice run of its own corner (decks psp103_idpa_ss.cir, _ff, _fs and _sf: the tt deck +; with the .lib section changed). What differs is the gate scale s(Vgs) = sqrt(vt^2 + (a max(Vgs - v0, 0))^2) that makes Id / F flat along Vds, because a corner moves the threshold and +; the slope factor, so the Vgs at which the channel turns from a diffusion into a resistor moves with it: the tt scale (v0 0.23 V, a 0.65) misses the ff NMOS by 1.2 % on its own grid. The +; three numbers are fitted to the corner's own ngspice grid (193 x 193 currents 7.8125 mV apart, a scratch run outside the repository), one set for both devices of a corner as for tt, +; vt kept at 30 mV and v0 and a to the round numbers that make the worst place between the nodes smallest (the error is flat over a wide range of them, 0.6 .. 0.8 % at every choice +; near the best): vt, v0 (uV) and a (1/1000) are SS_LOG_S = [30000, 305000, 725], FF_LOG_S = [30000, 195000, 650], FS_LOG_S = [30000, 220000, 525], SF_LOG_S = [30000, 250000, 775] +; (TT_LOG_S for tt). The rv words (the last 97 of a table) follow them, the same for N and P in a corner. Beside the tables each corner has its references: FF_CEN_N and so on (1000 +; currents in pA at cell centres of the log grid, as for tt), FF_R2K_N (the 1000 R2 points) and FF_MID_N (the 576 midpoints of the 62.5 mV cells, nodes of the log grid); the first 200 +; of the R2 points are the corner's FF_R2_N of the linear decks, word for word, from a second ngspice run. The pins are PIN_FF_LG (the two tables), PIN_FF_CEN and PIN_FF_REF (the R2 +; points then the midpoints). The accessors lg_n(c), lg_p(c), cen_n(c), cen_p(c), mid_n(c), mid_p(c), r2k_n(c), r2k_p(c) and log_s(c) return the arrays of corner c (tt: the arrays above and TT_R2_N). +; - ; WHAT A PASS SAYS. The numbers in this file are the numbers the decks printed, in order (the pins), the five corners are in the order ; the foundry names them (ff above tt above ss in drive current for both devices; fs a fast NMOS with a slow PMOS, sf the reverse), and ; the units are the ones the header states. @@ -147,6 +161,17 @@ pub const LOG_S_V0_UV : u32 = 230000; pub const LOG_S_A_MILLI : u32 = 650; pub const LOG_RV_NUM : u32 = 4096; pub const LOG_CEN_COUNT : u32 = 1000; +; --- the gate scale of the other four corners (M3c-4, #11211): vt and v0 in uV, a in 1/1000, s(Vgs) = sqrt(vt^2 + (a max(Vgs - v0, 0))^2), the same for both devices of a corner ---- +/// Corner mos_tt: [vt, v0, a] = LOG_S_VT_UV, LOG_S_V0_UV, LOG_S_A_MILLI (a test says so), deck psp103_idpa_tt.cir. +pub const TT_LOG_S : [3]u32 = [30000, 230000, 650]; +/// Corner mos_ss: [vt, v0, a], the three numbers of deck psp103_idpa_ss.cir. +pub const SS_LOG_S : [3]u32 = [30000, 305000, 725]; +/// Corner mos_ff: [vt, v0, a] of deck psp103_idpa_ff.cir. +pub const FF_LOG_S : [3]u32 = [30000, 195000, 650]; +/// Corner mos_fs: [vt, v0, a] of deck psp103_idpa_fs.cir. +pub const FS_LOG_S : [3]u32 = [30000, 220000, 525]; +/// Corner mos_sf: [vt, v0, a] of deck psp103_idpa_sf.cir. +pub const SF_LOG_S : [3]u32 = [30000, 250000, 775]; pub const OP_FF_AF : [6]u32 = [111, 1458, 3621, 659, 631, 302]; pub const OP_FS_AF : [6]u32 = [95, 1427, 3551, 650, 623, 315]; @@ -178,6 +203,20 @@ pub const PIN_SF_Q : u64 = 0x2029F1EF4D983675; pub const PIN_TT_LG : u64 = 0x414B9D5DB65A4C34; pub const PIN_TT_CEN : u64 = 0xBE8EC42434AE9194; +/// M3c-4 (#11211): per corner, the two log tables (N then P, tag word first), the 1000 + 1000 currents at cell centres (N then P), and the references the corner is judged by: +/// r2k_n, r2k_p (the 1000 R2 points), mid_n, mid_p (the 576 midpoints), folded in that order. +pub const PIN_SS_LG : u64 = 0xCABAAF29CAC57B53; +pub const PIN_SS_CEN : u64 = 0xE94B2AF53BDDAE4F; +pub const PIN_SS_REF : u64 = 0x9D0BFFCB70EA3BBB; +pub const PIN_FF_LG : u64 = 0xBE826AFAFCB52452; +pub const PIN_FF_CEN : u64 = 0x781C1DA95D0A399B; +pub const PIN_FF_REF : u64 = 0x2017FE516F49D007; +pub const PIN_FS_LG : u64 = 0x52F7C751691D79F2; +pub const PIN_FS_CEN : u64 = 0xB6CCA59D1DD48186; +pub const PIN_FS_REF : u64 = 0xFFBE8B5BF00D084E; +pub const PIN_SF_LG : u64 = 0x77D8DD7D5C400ABE; +pub const PIN_SF_CEN : u64 = 0x827E9B430BD81180; +pub const PIN_SF_REF : u64 = 0x463A78ECB2AB9255; ; --- the numbers -------------------------------------------------------------------------------- ; --- corner mos_tt --------------------------------------------------------------------------- @@ -3188,6 +3227,4374 @@ pub const TT_CEN_P : [1000]u32 = [ 1084, 200555884, 51415089, 11063444, 2676, 222536257 ]; +; --- corner mos_ff, the log-domain current tables (M3c-4, #11211) --------------------------------- +/// NMOS log-domain current table, corner mos_ff, IHP-Open-PDK 21133f21, L 0.45 um, 27 C: the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (Vgs = ix * 15.625 mV, Vds = iy * 31.25 mV), then the 97 words rv = nint(4096 / s(Vgs)) at Vgs = ix * 15.625 mV (deck psp103_idpa_ff.cir, blocks lam_n and r_n). +pub const FF_LG_N : [4851]u32 = [ + 4294967295, 566941, 565300, 565436, 567103, 570121, 573925, 578021, 582146, 586181, 590078, 593817, 597396, 600818, + 604088, 607214, 610203, 613064, 615804, 618431, 620953, 623374, 625703, 627945, 630105, 632188, 634198, 636141, + 638020, 639839, 641601, 643310, 644968, 646579, 648144, 649666, 651148, 652592, 654000, 655373, 656714, 658024, + 659304, 660558, 661785, 662989, 664171, 665332, 666474, 667601, 611612, 609984, 610143, 611840, 614894, 618736, + 622870, 627033, 631104, 635036, 638807, 642418, 645868, 649165, 652316, 655329, 658212, 660973, 663619, 666158, + 668596, 670940, 673195, 675368, 677462, 679484, 681436, 683323, 685150, 686918, 688632, 690295, 691909, 693476, + 695000, 696483, 697926, 699331, 700702, 702038, 703343, 704617, 705862, 707080, 708273, 709441, 710586, 711710, + 712815, 656334, 654728, 654913, 656641, 659730, 663610, 667783, 671983, 676091, 680057, 683862, 687503, 690983, + 694307, 697484, 700520, 703426, 706207, 708873, 711430, 713885, 716245, 718515, 720702, 722809, 724842, 726806, + 728704, 730539, 732316, 734038, 735708, 737328, 738901, 740429, 741915, 743362, 744770, 746141, 747479, 748783, + 750056, 751300, 752515, 753703, 754866, 756004, 757120, 758215, 701096, 699522, 699735, 701494, 704619, 708536, + 712747, 716985, 721129, 725128, 728966, 732638, 736146, 739498, 742700, 745760, 748687, 751490, 754175, 756750, + 759223, 761599, 763885, 766085, 768206, 770252, 772227, 774136, 775982, 777768, 779499, 781177, 782805, 784385, + 785920, 787412, 788863, 790276, 791652, 792993, 794300, 795575, 796820, 798036, 799225, 800387, 801524, 802637, + 803728, 745876, 744351, 744595, 746387, 749546, 753500, 757748, 762022, 766200, 770234, 774103, 777804, 781340, + 784718, 787944, 791028, 793977, 796799, 799504, 802097, 804587, 806979, 809279, 811494, 813628, 815686, 817674, + 819593, 821450, 823247, 824987, 826673, 828309, 829897, 831440, 832938, 834396, 835815, 837196, 838542, 839854, + 841133, 842382, 843601, 844792, 845956, 847094, 848209, 849299, 790644, 789192, 789476, 791300, 794492, 798480, + 802763, 807071, 811283, 815348, 819247, 822976, 826538, 829941, 833190, 836296, 839265, 842107, 844829, 847440, + 849945, 852353, 854667, 856896, 859043, 861113, 863112, 865043, 866910, 868716, 870465, 872161, 873805, 875401, + 876951, 878457, 879921, 881346, 882733, 884084, 885401, 886686, 887939, 889162, 890357, 891524, 892666, 893782, + 894875, 835349, 834011, 834345, 836203, 839426, 843446, 847760, 852100, 856341, 860434, 864360, 868115, 871701, + 875126, 878397, 881522, 884510, 887369, 890108, 892734, 895254, 897675, 900003, 902244, 904403, 906484, 908493, + 910434, 912311, 914126, 915884, 917588, 919240, 920843, 922400, 923913, 925384, 926815, 928208, 929564, 930887, + 932176, 933434, 934661, 935860, 937031, 938176, 939296, 940392, 879918, 878757, 879158, 881050, 884301, 888347, + 892689, 897054, 901321, 905438, 909386, 913162, 916768, 920212, 923500, 926641, 929645, 932519, 935272, 937911, + 940444, 942876, 945215, 947466, 949635, 951726, 953745, 955694, 957579, 959402, 961167, 962878, 964537, 966147, + 967710, 969228, 970705, 972141, 973539, 974901, 976228, 977521, 978783, 980015, 981217, 982392, 983541, 984664, + 985763, 924232, 923345, 923842, 925771, 929044, 933109, 937469, 941853, 946137, 950271, 954235, 958026, 961646, + 965103, 968403, 971556, 974571, 977455, 980218, 982866, 985407, 987848, 990195, 992454, 994630, 996728, 998752, + 1000708, 1002598, 1004427, 1006198, 1007914, 1009578, 1011192, 1012760, 1014282, 1015763, 1017203, 1018605, 1019970, 1021301, + 1022598, 1023863, 1025098, 1026303, 1027481, 1028632, 1029757, 1030859, 968114, 967652, 968287, 970257, 973544, 977617, + 981984, 986374, 990664, 994803, 998773, 1002568, 1006193, 1009654, 1012959, 1016116, 1019135, 1022023, 1024789, 1027441, + 1029985, 1032429, 1034779, 1037041, 1039219, 1041320, 1043347, 1045305, 1047198, 1049029, 1050802, 1052520, 1054185, 1055802, + 1057371, 1058896, 1060378, 1061820, 1063223, 1064590, 1065922, 1067220, 1068487, 1069723, 1070929, 1072108, 1073260, 1074387, + 1075489, 1011306, 1011490, 1012330, 1014349, 1017637, 1021701, 1026057, 1030435, 1034714, 1038842, 1042801, 1046587, 1050203, + 1053656, 1056953, 1060103, 1063114, 1065996, 1068756, 1071403, 1073942, 1076381, 1078727, 1080984, 1083159, 1085256, 1087279, + 1089234, 1091124, 1092952, 1094723, 1096438, 1098101, 1099715, 1101282, 1102805, 1104285, 1105725, 1107127, 1108492, 1109822, + 1111119, 1112384, 1113618, 1114823, 1116001, 1117152, 1118277, 1119377, 1053449, 1054588, 1055736, 1057817, 1061091, 1065122, + 1069441, 1073783, 1078025, 1082119, 1086045, 1089800, 1093387, 1096813, 1100085, 1103211, 1106201, 1109062, 1111803, 1114431, + 1116954, 1119377, 1121707, 1123951, 1126112, 1128196, 1130208, 1132151, 1134030, 1135849, 1137609, 1139315, 1140970, 1142575, + 1144134, 1145649, 1147122, 1148555, 1149950, 1151308, 1152632, 1153923, 1155182, 1156410, 1157610, 1158782, 1159928, 1161048, + 1162144, 1094085, 1096583, 1098188, 1100356, 1103598, 1107566, 1111814, 1116084, 1120258, 1124285, 1128149, 1131845, 1135377, + 1138751, 1141974, 1145055, 1148002, 1150823, 1153527, 1156120, 1158609, 1161001, 1163302, 1165518, 1167653, 1169712, 1171700, + 1173621, 1175479, 1177277, 1179018, 1180705, 1182342, 1183931, 1185474, 1186973, 1188431, 1189850, 1191231, 1192576, 1193887, + 1195166, 1196413, 1197630, 1198819, 1199981, 1201116, 1202226, 1203313, 1134137, 1137849, 1139726, 1141806, 1144884, 1148698, + 1152811, 1156959, 1161019, 1164940, 1168704, 1172307, 1175751, 1179042, 1182188, 1185196, 1188075, 1190833, 1193476, 1196013, + 1198449, 1200791, 1203044, 1205215, 1207307, 1209326, 1211276, 1213160, 1214983, 1216748, 1218458, 1220115, 1221723, 1223284, + 1224800, 1226274, 1227708, 1229103, 1230462, 1231785, 1233075, 1234334, 1235562, 1236760, 1237931, 1239075, 1240193, 1241287, + 1242357, 1179884, 1181951, 1182178, 1182947, 1185144, 1188407, 1192168, 1196069, 1199936, 1203694, 1207313, 1210781, 1214101, + 1217276, 1220313, 1223219, 1226002, 1228669, 1231228, 1233684, 1236044, 1238314, 1240500, 1242607, 1244638, 1246599, 1248494, + 1250326, 1252099, 1253816, 1255480, 1257094, 1258660, 1260181, 1261659, 1263096, 1264494, 1265856, 1267181, 1268473, 1269733, + 1270962, 1272161, 1273332, 1274477, 1275595, 1276689, 1277758, 1278805, 1227813, 1227162, 1224864, 1223550, 1224261, 1226552, + 1229687, 1233168, 1236732, 1240251, 1243667, 1246958, 1250116, 1253142, 1256039, 1258815, 1261475, 1264026, 1266476, 1268829, + 1271092, 1273270, 1275368, 1277391, 1279344, 1281230, 1283053, 1284817, 1286524, 1288179, 1289783, 1291340, 1292852, 1294320, + 1295748, 1297136, 1298488, 1299804, 1301086, 1302337, 1303556, 1304746, 1305908, 1307043, 1308151, 1309236, 1310296, 1311334, + 1312350, 1273841, 1271037, 1266515, 1263058, 1262022, 1263047, 1265304, 1268173, 1271295, 1274478, 1277625, 1280688, 1283646, + 1286490, 1289221, 1291842, 1294357, 1296772, 1299093, 1301324, 1303472, 1305541, 1307535, 1309460, 1311318, 1313115, 1314852, + 1316534, 1318164, 1319744, 1321276, 1322764, 1324210, 1325615, 1326981, 1328311, 1329606, 1330868, 1332097, 1333297, 1334467, + 1335609, 1336725, 1337816, 1338881, 1339924, 1340944, 1341942, 1342920, 1316139, 1312112, 1306115, 1300879, 1298143, 1297791, + 1299011, 1301113, 1303664, 1306411, 1309213, 1311993, 1314709, 1317341, 1319882, 1322329, 1324683, 1326947, 1329126, 1331223, + 1333244, 1335192, 1337072, 1338888, 1340642, 1342339, 1343982, 1345573, 1347115, 1348611, 1350064, 1351475, 1352846, 1354180, + 1355477, 1356741, 1357972, 1359172, 1360342, 1361484, 1362598, 1363687, 1364750, 1365790, 1366807, 1367801, 1368775, 1369728, + 1370662, 1354311, 1349804, 1343075, 1336579, 1332370, 1330682, 1330815, 1332067, 1333957, 1336186, 1338575, 1341018, 1343453, + 1345844, 1348173, 1350429, 1352609, 1354713, 1356742, 1358699, 1360587, 1362410, 1364171, 1365872, 1367518, 1369111, 1370654, + 1372150, 1373601, 1375009, 1376377, 1377707, 1379000, 1380258, 1381483, 1382676, 1383839, 1384973, 1386080, 1387160, 1388215, + 1389245, 1390253, 1391238, 1392202, 1393145, 1394069, 1394974, 1395861, 1388569, 1384055, 1377166, 1369926, 1364554, 1361664, + 1360744, 1361128, 1362315, 1363978, 1365907, 1367972, 1370092, 1372215, 1374311, 1376363, 1378359, 1380296, 1382171, 1383986, + 1385740, 1387436, 1389076, 1390664, 1392201, 1393690, 1395134, 1396534, 1397893, 1399213, 1400496, 1401744, 1402958, 1404140, + 1405291, 1406413, 1407507, 1408574, 1409616, 1410634, 1411628, 1412600, 1413550, 1414479, 1415389, 1416280, 1417153, 1418008, + 1418846, 1419333, 1415069, 1408399, 1400862, 1394654, 1390742, 1388854, 1388400, 1388884, 1389963, 1391408, 1393071, 1394851, + 1396687, 1398535, 1400370, 1402175, 1403939, 1405658, 1407328, 1408948, 1410519, 1412042, 1413518, 1414949, 1416337, 1417684, + 1418992, 1420262, 1421496, 1422696, 1423864, 1425001, 1426109, 1427188, 1428240, 1429267, 1430269, 1431248, 1432204, 1433138, + 1434052, 1434946, 1435820, 1436677, 1437516, 1438337, 1439143, 1439933, 1447051, 1443157, 1436926, 1429437, 1422707, 1417971, + 1415227, 1413994, 1413802, 1414306, 1415264, 1416513, 1417943, 1419478, 1421068, 1422678, 1424284, 1425872, 1427432, 1428957, + 1430445, 1431893, 1433301, 1434669, 1435998, 1437289, 1438543, 1439762, 1440948, 1442101, 1443222, 1444315, 1445379, 1446415, + 1447426, 1448413, 1449375, 1450315, 1451233, 1452130, 1453007, 1453865, 1454705, 1455527, 1456332, 1457121, 1457894, 1458652, + 1459396, 1472141, 1468658, 1462971, 1455772, 1448797, 1443441, 1439964, 1438026, 1437203, 1437155, 1437636, 1438476, 1439553, + 1440784, 1442109, 1443489, 1444893, 1446302, 1447701, 1449081, 1450437, 1451764, 1453059, 1454323, 1455554, 1456752, 1457919, + 1459054, 1460159, 1461235, 1462284, 1463305, 1464300, 1465271, 1466218, 1467142, 1468044, 1468926, 1469787, 1470629, 1471453, + 1472259, 1473048, 1473820, 1474577, 1475319, 1476046, 1476759, 1477459, 1494963, 1491888, 1486776, 1480021, 1473034, 1467251, + 1463171, 1460611, 1459209, 1458643, 1458669, 1459111, 1459841, 1460769, 1461831, 1462979, 1464178, 1465406, 1466644, 1467879, + 1469104, 1470311, 1471497, 1472658, 1473794, 1474904, 1475986, 1477042, 1478072, 1479076, 1480056, 1481011, 1481942, 1482851, + 1483739, 1484606, 1485452, 1486279, 1487088, 1487879, 1488653, 1489411, 1490152, 1490879, 1491591, 1492288, 1492973, 1493644, + 1494303, 1515824, 1513135, 1508586, 1502357, 1495540, 1489510, 1484955, 1481858, 1479935, 1478891, 1478488, 1478549, 1478944, + 1479576, 1480377, 1481295, 1482292, 1483338, 1484415, 1485506, 1486599, 1487688, 1488765, 1489827, 1490871, 1491894, 1492896, + 1493877, 1494835, 1495771, 1496686, 1497579, 1498451, 1499303, 1500135, 1500949, 1501744, 1502521, 1503282, 1504025, 1504753, + 1505466, 1506165, 1506849, 1507519, 1508177, 1508822, 1509454, 1510076, 1534986, 1532650, 1528630, 1522958, 1516441, 1510324, + 1505419, 1501870, 1499485, 1498004, 1497202, 1496904, 1496978, 1497325, 1497873, 1498565, 1499360, 1500228, 1501144, 1502091, + 1503055, 1504025, 1504996, 1505959, 1506913, 1507852, 1508777, 1509685, 1510574, 1511446, 1512299, 1513134, 1513951, 1514749, + 1515530, 1516294, 1517041, 1517773, 1518488, 1519189, 1519875, 1520547, 1521205, 1521850, 1522483, 1523103, 1523712, 1524309, + 1524896, 1552664, 1550648, 1547112, 1541993, 1535862, 1529794, 1524658, 1520742, 1517953, 1516078, 1514909, 1514275, 1514045, + 1514119, 1514421, 1514894, 1515493, 1516184, 1516942, 1517747, 1518582, 1519436, 1520300, 1521167, 1522031, 1522889, 1523737, + 1524574, 1525398, 1526208, 1527002, 1527782, 1528546, 1529294, 1530027, 1530745, 1531448, 1532136, 1532810, 1533471, 1534118, + 1534752, 1535374, 1535983, 1536581, 1537167, 1537743, 1538308, 1538863, 1569035, 1567306, 1564207, 1559618, 1553921, 1548012, + 1542754, 1538555, 1535422, 1533195, 1531690, 1530744, 1530229, 1530044, 1530112, 1530373, 1530781, 1531300, 1531903, 1532567, + 1533275, 1534014, 1534773, 1535544, 1536321, 1537098, 1537872, 1538640, 1539399, 1540149, 1540887, 1541613, 1542327, 1543027, + 1543715, 1544389, 1545050, 1545699, 1546334, 1546958, 1547569, 1548168, 1548756, 1549332, 1549898, 1550453, 1550998, 1551534, + 1552060, 1584258, 1582787, 1580078, 1575982, 1570741, 1565070, 1559790, 1555388, 1551968, 1549432, 1547622, 1546389, 1545607, + 1545177, 1545022, 1545080, 1545304, 1545656, 1546107, 1546633, 1547217, 1547842, 1548497, 1549174, 1549864, 1550561, 1551262, + 1551962, 1552658, 1553349, 1554032, 1554707, 1555372, 1556026, 1556670, 1557303, 1557925, 1558536, 1559135, 1559724, 1560301, + 1560868, 1561424, 1561970, 1562506, 1563033, 1563550, 1564058, 1564557, 1598454, 1597212, 1594853, 1591211, 1586424, 1581050, + 1575832, 1571303, 1567655, 1564852, 1562769, 1561272, 1560242, 1559583, 1559217, 1559081, 1559128, 1559319, 1559623, 1560015, + 1560476, 1560989, 1561543, 1562126, 1562730, 1563349, 1563977, 1564610, 1565244, 1565877, 1566507, 1567131, 1567749, 1568359, + 1568961, 1569555, 1570139, 1570713, 1571278, 1571834, 1572379, 1572916, 1573442, 1573960, 1574469, 1574968, 1575459, 1575942, + 1576416, 1611743, 1610706, 1608657, 1605428, 1601079, 1596037, 1590951, 1586367, 1582546, 1579516, 1577191, 1575454, 1574196, + 1573322, 1572756, 1572436, 1572314, 1572349, 1572511, 1572772, 1573114, 1573518, 1573971, 1574462, 1574982, 1575523, 1576079, + 1576646, 1577219, 1577795, 1578372, 1578947, 1579518, 1580085, 1580646, 1581201, 1581749, 1582288, 1582820, 1583344, 1583860, + 1584367, 1584866, 1585357, 1585840, 1586314, 1586781, 1587240, 1587691, 1624210, 1623357, 1621585, 1618729, 1614797, 1610104, + 1605203, 1600628, 1596689, 1593475, 1590938, 1588985, 1587516, 1586442, 1585689, 1585195, 1584911, 1584798, 1584822, 1584957, + 1585182, 1585479, 1585834, 1586235, 1586671, 1587136, 1587621, 1588122, 1588635, 1589155, 1589679, 1590205, 1590731, 1591256, + 1591777, 1592294, 1592806, 1593312, 1593812, 1594306, 1594792, 1595272, 1595744, 1596210, 1596668, 1597118, 1597562, 1597999, + 1598429, 1635945, 1635257, 1633731, 1631211, 1627667, 1623328, 1618652, 1614140, 1610135, 1606776, 1604058, 1601912, 1600250, + 1598991, 1598062, 1597404, 1596967, 1596711, 1596603, 1596616, 1596728, 1596921, 1597180, 1597492, 1597846, 1598235, 1598651, + 1599087, 1599540, 1600004, 1600476, 1600954, 1601435, 1601918, 1602399, 1602879, 1603356, 1603830, 1604299, 1604763, 1605221, + 1605674, 1606121, 1606561, 1606996, 1607424, 1607846, 1608262, 1608672, 1647012, 1646472, 1645166, 1642947, 1639763, 1635772, + 1631347, 1626945, 1622921, 1619457, 1616588, 1614272, 1612437, 1611007, 1609914, 1609101, 1608518, 1608126, 1607892, 1607788, + 1607791, 1607883, 1608048, 1608273, 1608547, 1608861, 1609208, 1609581, 1609974, 1610383, 1610804, 1611234, 1611671, 1612111, + 1612554, 1612998, 1613440, 1613881, 1614319, 1614754, 1615185, 1615612, 1616034, 1616451, 1616863, 1617269, 1617670, 1618066, + 1618456, 1657468, 1657061, 1655953, 1654005, 1651152, 1647497, 1643339, 1639083, 1635083, 1631553, 1628564, 1626101, 1624110, + 1622523, 1621279, 1620320, 1619600, 1619079, 1618724, 1618507, 1618405, 1618399, 1618473, 1618614, 1618809, 1619051, 1619330, + 1619639, 1619974, 1620328, 1620699, 1621082, 1621474, 1621873, 1622277, 1622684, 1623093, 1623502, 1623910, 1624317, 1624721, + 1625122, 1625519, 1625913, 1626303, 1626688, 1627069, 1627445, 1627817, 1667380, 1667093, 1666161, 1664457, 1661905, 1658570, + 1654685, 1650603, 1646664, 1643102, 1640022, 1637436, 1635306, 1633577, 1632192, 1631097, 1630248, 1629604, 1629134, 1628808, + 1628605, 1628504, 1628490, 1628548, 1628667, 1628837, 1629049, 1629296, 1629573, 1629873, 1630194, 1630529, 1630878, 1631236, + 1631602, 1631973, 1632348, 1632725, 1633103, 1633481, 1633859, 1634234, 1634608, 1634979, 1635347, 1635712, 1636073, 1636431, + 1636784, 1676783, 1676605, 1675831, 1674346, 1672070, 1669035, 1665424, 1661536, 1657690, 1654130, 1650987, 1648299, 1646049, + 1644192, 1642677, 1641457, 1640486, 1639726, 1639146, 1638717, 1638416, 1638224, 1638124, 1638102, 1638146, 1638246, 1638393, + 1638579, 1638799, 1639046, 1639317, 1639606, 1639911, 1640228, 1640556, 1640891, 1641232, 1641578, 1641926, 1642277, 1642628, + 1642978, 1643328, 1643677, 1644024, 1644368, 1644710, 1645049, 1645385, 1685718, 1685639, 1685008, 1683720, 1681695, 1678942, + 1675599, 1671917, 1668190, 1664661, 1661483, 1658717, 1656364, 1654393, 1652761, 1651423, 1650338, 1649470, 1648785, 1648257, + 1647863, 1647584, 1647401, 1647301, 1647273, 1647304, 1647387, 1647514, 1647677, 1647872, 1648094, 1648337, 1648599, 1648876, + 1649166, 1649465, 1649773, 1650087, 1650406, 1650729, 1651053, 1651379, 1651706, 1652032, 1652358, 1652682, 1653005, 1653326, + 1653644, 1694234, 1694245, 1693743, 1692633, 1690835, 1688342, 1685258, 1681790, 1678201, 1674729, 1671541, 1668718, 1666279, + 1664208, 1662470, 1661024, 1659833, 1658861, 1658078, 1657456, 1656973, 1656608, 1656346, 1656171, 1656071, 1656036, 1656057, + 1656125, 1656233, 1656376, 1656549, 1656747, 1656966, 1657203, 1657455, 1657720, 1657994, 1658277, 1658566, 1658861, 1659159, + 1659461, 1659764, 1660068, 1660373, 1660677, 1660981, 1661284, 1661585, 1702349, 1702441, 1702056, 1701107, 1699516, 1697266, + 1694429, 1691177, 1687741, 1684349, 1681174, 1678315, 1675809, 1673652, 1671818, 1670274, 1668985, 1667917, 1667040, 1666329, + 1665760, 1665315, 1664975, 1664728, 1664560, 1664460, 1664420, 1664430, 1664485, 1664577, 1664702, 1664856, 1665032, 1665230, + 1665445, 1665674, 1665915, 1666167, 1666427, 1666694, 1666967, 1667243, 1667523, 1667805, 1668089, 1668374, 1668659, 1668944, + 1669228, 1710103, 1710270, 1709991, 1709187, 1707784, 1705757, 1703154, 1700116, 1696843, 1693550, 1690409, 1687534, 1684977, + 1682748, 1680830, 1679197, 1677817, 1676658, 1675694, 1674898, 1674248, 1673724, 1673311, 1672994, 1672759, 1672597, 1672497, + 1672451, 1672453, 1672496, 1672574, 1672683, 1672818, 1672976, 1673154, 1673348, 1673557, 1673778, 1674009, 1674248, 1674494, + 1674747, 1675003, 1675263, 1675526, 1675791, 1676057, 1676324, 1676591, 1717515, 1717750, 1717568, 1716896, 1715665, 1713842, + 1711461, 1708632, 1705529, 1702348, 1699261, 1696388, 1693797, 1691510, 1689520, 1687806, 1686342, 1685100, 1684053, 1683177, + 1682450, 1681852, 1681368, 1680983, 1680685, 1680461, 1680304, 1680204, 1680154, 1680148, 1680180, 1680245, 1680339, 1680458, + 1680600, 1680759, 1680936, 1681126, 1681327, 1681539, 1681760, 1681988, 1682221, 1682459, 1682701, 1682947, 1683194, 1683443, + 1683693, 1724617, 1724914, 1724819, 1724267, 1723192, 1721559, 1719385, 1716758, 1713828, 1710770, 1707751, 1704899, 1702289, + 1699957, 1697905, 1696120, 1694580, 1693261, 1692137, 1691185, 1690384, 1689716, 1689164, 1688714, 1688353, 1688071, 1687857, + 1687704, 1687603, 1687549, 1687536, 1687559, 1687612, 1687693, 1687798, 1687924, 1688068, 1688227, 1688400, 1688585, 1688780, + 1688983, 1689193, 1689409, 1689631, 1689856, 1690085, 1690316, 1690549, 1731422, 1731776, 1731761, 1731319, 1730386, 1728926, + 1726946, 1724515, 1721757, 1718830, 1715894, 1713077, 1710463, 1708099, 1705997, 1704150, 1702542, 1701151, 1699955, 1698932, + 1698062, 1697326, 1696709, 1696197, 1695777, 1695437, 1695169, 1694964, 1694815, 1694714, 1694657, 1694637, 1694651, 1694695, + 1694764, 1694856, 1694968, 1695097, 1695241, 1695398, 1695567, 1695746, 1695933, 1696128, 1696328, 1696534, 1696744, 1696957, + 1697174, 1737958, 1738363, 1738422, 1738079, 1737276, 1735976, 1734176, 1731930, 1729342, 1726553, 1723710, 1720941, 1718338, + 1715954, 1713812, 1711912, 1710243, 1708788, 1707525, 1706435, 1705499, 1704700, 1704021, 1703448, 1702970, 1702576, 1702255, + 1702000, 1701803, 1701657, 1701556, 1701495, 1701470, 1701476, 1701510, 1701569, 1701649, 1701748, 1701864, 1701994, 1702137, + 1702292, 1702456, 1702628, 1702808, 1702994, 1703185, 1703381, 1703580, 1744230, 1744684, 1744810, 1744558, 1743875, 1742721, + 1741090, 1739020, 1736599, 1733950, 1731208, 1728500, 1725919, 1723528, 1721357, 1719413, 1717691, 1716177, 1714854, 1713702, + 1712704, 1711844, 1711106, 1710476, 1709943, 1709496, 1709124, 1708821, 1708577, 1708386, 1708243, 1708142, 1708079, 1708048, + 1708048, 1708073, 1708122, 1708191, 1708279, 1708383, 1708500, 1708631, 1708772, 1708923, 1709082, 1709248, 1709421, 1709598, + 1709781, 1750270, 1750767, 1750954, 1750786, 1750211, 1749192, 1747717, 1745814, 1743555, 1741046, 1738412, 1735774, 1733227, + 1730840, 1728650, 1726671, 1724903, 1723337, 1721957, 1720748, 1719692, 1718774, 1717980, 1717296, 1716709, 1716211, 1715790, + 1715439, 1715150, 1714916, 1714732, 1714592, 1714491, 1714424, 1714390, 1714383, 1714401, 1714440, 1714500, 1714577, 1714670, + 1714776, 1714894, 1715023, 1715161, 1715308, 1715462, 1715622, 1715788, 1756083, 1756621, 1756864, 1756772, 1756297, 1755403, + 1754073, 1752327, 1750223, 1747854, 1745332, 1742772, 1740270, 1737897, 1735697, 1733692, 1731886, 1730273, 1728843, 1727580, + 1726470, 1725498, 1724651, 1723914, 1723277, 1722730, 1722262, 1721865, 1721532, 1721256, 1721031, 1720853, 1720715, 1720613, + 1720545, 1720506, 1720493, 1720504, 1720536, 1720587, 1720654, 1720737, 1720832, 1720939, 1721057, 1721184, 1721319, 1721462, + 1721610, 1761678, 1762253, 1762549, 1762527, 1762144, 1761364, 1760169, 1758570, 1756616, 1754385, 1751979, 1749504, 1747055, + 1744706, 1742506, 1740482, 1738645, 1736993, 1735517, 1734206, 1733046, 1732024, 1731126, 1730340, 1729654, 1729059, 1728546, + 1728105, 1727730, 1727413, 1727149, 1726933, 1726759, 1726624, 1726522, 1726452, 1726409, 1726392, 1726396, 1726421, 1726463, + 1726522, 1726595, 1726681, 1726778, 1726886, 1727002, 1727127, 1727258, 1767078, 1767687, 1768031, 1768073, 1767775, 1767100, + 1766030, 1764570, 1762759, 1760663, 1758373, 1755987, 1753599, 1751282, 1749091, 1747057, 1745196, 1743510, 1741994, 1740638, + 1739432, 1738362, 1737417, 1736584, 1735852, 1735212, 1734655, 1734171, 1733755, 1733399, 1733097, 1732844, 1732635, 1732466, + 1732332, 1732231, 1732159, 1732113, 1732090, 1732089, 1732107, 1732142, 1732193, 1732257, 1732334, 1732422, 1732520, 1732627, + 1732741, 1772283, 1772924, 1773312, 1773414, 1773194, 1772617, 1771663, 1770333, 1768657, 1766693, 1764519, 1762227, 1759906, + 1757630, 1755455, 1753419, 1751540, 1749827, 1748276, 1746881, 1745632, 1744519, 1743529, 1742651, 1741876, 1741192, 1740593, + 1740069, 1739613, 1739218, 1738879, 1738591, 1738348, 1738146, 1737981, 1737849, 1737748, 1737674, 1737625, 1737599, 1737593, + 1737604, 1737633, 1737676, 1737732, 1737801, 1737880, 1737969, 1738067, 1777319, 1777989, 1778418, 1778574, 1778425, 1777938, + 1777092, 1775884, 1774337, 1772499, 1770440, 1768245, 1765995, 1763766, 1761615, 1759583, 1757694, 1755958, 1754377, 1752947, + 1751660, 1750506, 1749474, 1748554, 1747737, 1747012, 1746372, 1745809, 1745314, 1744883, 1744508, 1744184, 1743908, 1743674, + 1743478, 1743317, 1743187, 1743086, 1743011, 1742959, 1742929, 1742918, 1742924, 1742946, 1742982, 1743032, 1743092, 1743164, + 1743245, 1782176, 1782874, 1783340, 1783548, 1783465, 1783061, 1782315, 1781221, 1779796, 1778081, 1776136, 1774038, 1771864, + 1769688, 1767568, 1765548, 1763654, 1761903, 1760297, 1758836, 1757514, 1756323, 1755252, 1754293, 1753436, 1752673, 1751994, + 1751392, 1750861, 1750394, 1749984, 1749628, 1749319, 1749053, 1748827, 1748637, 1748479, 1748352, 1748251, 1748174, 1748120, + 1748087, 1748071, 1748072, 1748089, 1748119, 1748162, 1748215, 1748280, 1786881, 1787604, 1788105, 1788360, 1788338, 1788011, + 1787358, 1786370, 1785061, 1783463, 1781629, 1779628, 1777534, 1775415, 1773331, 1771329, 1769437, 1767675, 1766050, 1764562, + 1763209, 1761983, 1760877, 1759881, 1758986, 1758186, 1757470, 1756832, 1756266, 1755763, 1755320, 1754931, 1754590, 1754294, + 1754039, 1753820, 1753635, 1753481, 1753355, 1753254, 1753177, 1753120, 1753083, 1753064, 1753061, 1753072, 1753096, 1753133, + 1753180, 1791435, 1792181, 1792714, 1793012, 1793047, 1792791, 1792224, 1791337, 1790136, 1788650, 1786924, 1785021, 1783007, + 1780950, 1778908, 1776929, 1775045, 1773278, 1771637, 1770128, 1768747, 1767491, 1766351, 1765320, 1764391, 1763555, 1762804, + 1762131, 1761531, 1760995, 1760519, 1760098, 1759727, 1759401, 1759117, 1758871, 1758659, 1758479, 1758328, 1758203, 1758103, + 1758024, 1757966, 1757926, 1757903, 1757895, 1757902, 1757921, 1757951, 1795847, 1796614, 1797177, 1797515, 1797602, 1797412, + 1796925, 1796131, 1795033, 1793654, 1792033, 1790226, 1788295, 1786302, 1784307, 1782356, 1780485, 1778717, 1777067, 1775539, + 1774135, 1772851, 1771681, 1770618, 1769656, 1768786, 1768002, 1767296, 1766663, 1766095, 1765588, 1765136, 1764735, 1764380, + 1764068, 1763794, 1763556, 1763351, 1763176, 1763027, 1762904, 1762804, 1762725, 1762665, 1762622, 1762596, 1762584, 1762586, + 1762600, 1800116, 1800903, 1801493, 1801868, 1802004, 1801876, 1801464, 1800757, 1799756, 1798479, 1796960, 1795248, 1793399, + 1791474, 1789529, 1787612, 1785759, 1783996, 1782340, 1780798, 1779374, 1778066, 1776868, 1775776, 1774783, 1773882, 1773067, + 1772329, 1771664, 1771066, 1770529, 1770047, 1769617, 1769234, 1768895, 1768595, 1768332, 1768102, 1767902, 1767731, 1767586, + 1767464, 1767364, 1767284, 1767222, 1767177, 1767148, 1767133, 1767131, 1804261, 1805066, 1805683, 1806092, 1806273, 1806202, + 1805860, 1805234, 1804324, 1803144, 1801723, 1800103, 1798337, 1796482, 1794590, 1792710, 1790879, 1789125, 1787468, 1785917, + 1784476, 1783146, 1781924, 1780805, 1779784, 1778853, 1778007, 1777240, 1776545, 1775917, 1775350, 1774840, 1774382, 1773972, + 1773606, 1773281, 1772992, 1772738, 1772515, 1772321, 1772154, 1772011, 1771891, 1771791, 1771710, 1771647, 1771600, 1771568, + 1771550, 1808284, 1809106, 1809746, 1810187, 1810410, 1810392, 1810114, 1809565, 1808741, 1807653, 1806325, 1804796, 1803113, + 1801327, 1799491, 1797652, 1795848, 1794108, 1792453, 1790896, 1789442, 1788095, 1786851, 1785707, 1784659, 1783701, 1782827, + 1782031, 1781307, 1780651, 1780056, 1779519, 1779034, 1778597, 1778205, 1777854, 1777542, 1777264, 1777018, 1776802, 1776613, + 1776449, 1776309, 1776190, 1776090, 1776009, 1775945, 1775896, 1775861, 1812183, 1813020, 1813682, 1814154, 1814415, 1814447, + 1814230, 1813752, 1813009, 1812008, 1810771, 1809330, 1807728, 1806014, 1804236, 1802441, 1800667, 1798945, 1797297, 1795738, + 1794275, 1792912, 1791649, 1790484, 1789412, 1788428, 1787527, 1786704, 1785954, 1785270, 1784649, 1784084, 1783573, 1783111, + 1782694, 1782319, 1781983, 1781682, 1781413, 1781175, 1780966, 1780782, 1780621, 1780483, 1780366, 1780267, 1780185, 1780120, + 1780069, 1815969, 1816821, 1817503, 1818002, 1818300, 1818378, 1818218, 1817807, 1817140, 1816223, 1815072, 1813716, 1812194, + 1810551, 1808833, 1807085, 1805345, 1803644, 1802007, 1800448, 1798980, 1797605, 1796326, 1795141, 1794047, 1793040, 1792114, + 1791266, 1790490, 1789780, 1789133, 1788543, 1788007, 1787520, 1787079, 1786680, 1786320, 1785997, 1785707, 1785448, 1785217, + 1785013, 1784834, 1784677, 1784541, 1784425, 1784326, 1784244, 1784178, 1819652, 1820517, 1821219, 1821744, 1822075, 1822196, + 1822089, 1821741, 1821145, 1820306, 1819238, 1817964, 1816521, 1814949, 1813292, 1811593, 1809889, 1808213, 1806589, 1805036, + 1803564, 1802181, 1800888, 1799686, 1798572, 1797543, 1796594, 1795722, 1794921, 1794187, 1793515, 1792901, 1792340, 1791829, + 1791365, 1790943, 1790561, 1790215, 1789904, 1789624, 1789373, 1789150, 1788951, 1788776, 1788622, 1788488, 1788373, 1788275, + 1788192, 1823233, 1824110, 1824830, 1825378, 1825742, 1825903, 1825845, 1825555, 1825027, 1824262, 1823272, 1822079, 1820712, + 1819211, 1817615, 1815966, 1814301, 1812653, 1811046, 1809501, 1808029, 1806640, 1805336, 1804119, 1802987, 1801938, 1800969, + 1800074, 1799250, 1798492, 1797797, 1797159, 1796575, 1796041, 1795554, 1795110, 1794706, 1794339, 1794007, 1793706, 1793436, + 1793193, 1792976, 1792782, 1792611, 1792460, 1792328, 1792214, 1792116, 1826723, 1827611, 1828347, 1828917, 1829310, 1829508, + 1829496, 1829262, 1828797, 1828102, 1827187, 1826070, 1824778, 1823346, 1821812, 1820215, 1818591, 1816973, 1815386, 1813851, + 1812383, 1810990, 1809678, 1808448, 1807301, 1806234, 1805244, 1804328, 1803483, 1802703, 1801985, 1801324, 1800718, 1800162, + 1799652, 1799186, 1798761, 1798373, 1798021, 1797700, 1797410, 1797149, 1796913, 1796702, 1796513, 1796345, 1796197, 1796067, + 1795954, 1830110, 1831008, 1831759, 1832351, 1832771, 1833004, 1833035, 1832853, 1832448, 1831820, 1830976, 1829933, 1828713, + 1827350, 1825878, 1824333, 1822752, 1821167, 1819603, 1818083, 1816620, 1815227, 1813909, 1812669, 1811508, 1810425, 1809417, + 1808482, 1807616, 1806815, 1806076, 1805394, 1804766, 1804189, 1803658, 1803171, 1802725, 1802317, 1801945, 1801605, 1801296, + 1801016, 1800763, 1800534, 1800328, 1800144, 1799980, 1799834, 1799706, 1833405, 1834313, 1835078, 1835689, 1836135, 1836401, + 1836473, 1836339, 1835991, 1835426, 1834650, 1833677, 1832529, 1831232, 1829822, 1828331, 1826795, 1825244, 1823706, 1822202, + 1820748, 1819357, 1818035, 1816787, 1815615, 1814518, 1813494, 1812541, 1811656, 1810836, 1810076, 1809374, 1808726, 1808127, + 1807576, 1807069, 1806604, 1806176, 1805784, 1805426, 1805099, 1804801, 1804529, 1804284, 1804061, 1803861, 1803681, 1803520, + 1803377, 1836620, 1837537, 1838315, 1838944, 1839414, 1839710, 1839820, 1839732, 1839437, 1838932, 1838221, 1837315, 1836235, + 1835004, 1833654, 1832218, 1830727, 1829213, 1827702, 1826217, 1824774, 1823387, 1822065, 1820811, 1819629, 1818520, 1817481, + 1816512, 1815610, 1814771, 1813992, 1813270, 1812602, 1811984, 1811413, 1810887, 1810401, 1809955, 1809544, 1809168, 1808822, + 1808506, 1808218, 1807955, 1807717, 1807500, 1807305, 1807129, 1806971, 1839755, 1840680, 1841470, 1842116, 1842608, 1842933, + 1843079, 1843033, 1842788, 1842339, 1841690, 1840849, 1839835, 1838668, 1837378, 1835996, 1834551, 1833075, 1831593, 1830129, + 1828700, 1827320, 1825998, 1824741, 1823552, 1822431, 1821380, 1820396, 1819477, 1818621, 1817824, 1817084, 1816397, 1815760, + 1815170, 1814625, 1814121, 1813656, 1813227, 1812832, 1812469, 1812136, 1811831, 1811552, 1811297, 1811065, 1810854, 1810663, + 1810491, 1842798, 1843731, 1844532, 1845194, 1845707, 1846059, 1846239, 1846234, 1846036, 1845641, 1845050, 1844272, 1843321, + 1842217, 1840987, 1839658, 1838261, 1836824, 1835374, 1833933, 1832520, 1831149, 1829831, 1828572, 1827378, 1826249, 1825186, + 1824189, 1823255, 1822383, 1821569, 1820812, 1820107, 1819452, 1818844, 1818281, 1817759, 1817276, 1816829, 1816417, 1816038, + 1815688, 1815366, 1815071, 1814801, 1814553, 1814328, 1814122, 1813936, 1845773, 1846713, 1847525, 1848201, 1848734, 1849111, + 1849322, 1849355, 1849202, 1848857, 1848323, 1847604, 1846714, 1845671, 1844499, 1843224, 1841874, 1840477, 1839060, 1837644, + 1836249, 1834889, 1833576, 1832318, 1831120, 1829984, 1828911, 1827902, 1826955, 1826068, 1825238, 1824464, 1823743, 1823070, + 1822445, 1821864, 1821325, 1820825, 1820361, 1819933, 1819536, 1819170, 1818832, 1818521, 1818235, 1817973, 1817733, 1817513, + 1817313, 1848681, 1849627, 1850448, 1851138, 1851689, 1852090, 1852330, 1852399, 1852287, 1851991, 1851509, 1850847, 1850016, + 1849032, 1847916, 1846694, 1845392, 1844037, 1842653, 1841264, 1839888, 1838541, 1837236, 1835980, 1834779, 1833638, 1832557, + 1831538, 1830578, 1829677, 1828833, 1828044, 1827306, 1826617, 1825975, 1825377, 1824821, 1824304, 1823824, 1823379, 1822966, + 1822584, 1822231, 1821904, 1821603, 1821326, 1821071, 1820838, 1820624, 1851508, 1852459, 1853290, 1853993, 1854561, 1854985, + 1855253, 1855355, 1855283, 1855032, 1854601, 1853993, 1853219, 1852292, 1851232, 1850063, 1848809, 1847495, 1846146, 1844785, + 1843431, 1842100, 1840803, 1839552, 1838351, 1837206, 1836119, 1835090, 1834120, 1833207, 1832349, 1831545, 1830792, 1830088, + 1829430, 1828817, 1828244, 1827711, 1827215, 1826754, 1826326, 1825928, 1825560, 1825218, 1824903, 1824611, 1824342, 1824095, + 1823867, 1854268, 1855224, 1856063, 1856778, 1857362, 1857807, 1858101, 1858235, 1858201, 1857993, 1857610, 1857054, 1856334, + 1855463, 1854458, 1853340, 1852133, 1850862, 1849549, 1848218, 1846886, 1845572, 1844287, 1843041, 1841842, 1840695, 1839603, + 1838567, 1837587, 1836663, 1835793, 1834975, 1834208, 1833489, 1832816, 1832187, 1831600, 1831051, 1830540, 1830063, 1829620, + 1829207, 1828824, 1828468, 1828138, 1827832, 1827549, 1827288, 1827048, 1856973, 1857934, 1858781, 1859506, 1860106, 1860569, + 1860888, 1861052, 1861053, 1860886, 1860548, 1860042, 1859374, 1858556, 1857604, 1856537, 1855377, 1854148, 1852872, 1851570, + 1850263, 1848967, 1847694, 1846456, 1845261, 1844113, 1843017, 1841975, 1840986, 1840052, 1839170, 1838340, 1837560, 1836827, + 1836140, 1835496, 1834893, 1834330, 1833804, 1833312, 1832854, 1832426, 1832028, 1831658, 1831314, 1830994, 1830698, 1830424, + 1830170, 1859611, 1860575, 1861429, 1862165, 1862779, 1863261, 1863602, 1863795, 1863829, 1863701, 1863407, 1862948, 1862330, + 1861563, 1860662, 1859645, 1858532, 1857345, 1856106, 1854836, 1853555, 1852278, 1851020, 1849791, 1848600, 1847454, 1846356, + 1845308, 1844313, 1843369, 1842477, 1841636, 1840843, 1840097, 1839396, 1838739, 1838122, 1837544, 1837003, 1836497, 1836024, + 1835583, 1835171, 1834787, 1834429, 1834096, 1833786, 1833499, 1833232, 1862179, 1863148, 1864008, 1864755, 1865381, 1865881, + 1866244, 1866464, 1866530, 1866438, 1866185, 1865772, 1865202, 1864485, 1863635, 1862666, 1861600, 1860455, 1859254, 1858017, + 1856762, 1855506, 1854264, 1853046, 1851862, 1850718, 1849619, 1848568, 1847567, 1846616, 1845715, 1844862, 1844058, 1843300, + 1842587, 1841916, 1841286, 1840694, 1840139, 1839620, 1839133, 1838678, 1838252, 1837855, 1837484, 1837137, 1836815, 1836515, + 1836236, 1864709, 1865680, 1866547, 1867301, 1867940, 1868456, 1868840, 1869084, 1869180, 1869123, 1868909, 1868538, 1868014, + 1867345, 1866543, 1865622, 1864601, 1863498, 1862334, 1861130, 1859902, 1858669, 1857443, 1856237, 1855061, 1853921, 1852822, + 1851769, 1850763, 1849805, 1848895, 1848034, 1847219, 1846449, 1845723, 1845040, 1844396, 1843792, 1843223, 1842690, 1842190, + 1841721, 1841282, 1840871, 1840487, 1840128, 1839793, 1839480, 1839189, 1867169, 1868144, 1869016, 1869779, 1870429, 1870960, + 1871363, 1871631, 1871756, 1871732, 1871555, 1871225, 1870746, 1870123, 1869368, 1868494, 1867517, 1866456, 1865330, 1864159, + 1862960, 1861750, 1860542, 1859350, 1858183, 1857048, 1855952, 1854898, 1853888, 1852925, 1852008, 1851137, 1850312, 1849532, + 1848795, 1848100, 1847444, 1846827, 1846246, 1845700, 1845187, 1844705, 1844253, 1843830, 1843433, 1843061, 1842714, 1842389, + 1842085, 1869575, 1870552, 1871429, 1872200, 1872861, 1873407, 1873828, 1874119, 1874270, 1874277, 1874136, 1873846, 1873409, + 1872831, 1872121, 1871292, 1870359, 1869340, 1868252, 1867115, 1865945, 1864758, 1863570, 1862393, 1861236, 1860108, 1859015, + 1857961, 1856949, 1855982, 1855059, 1854181, 1853347, 1852557, 1851809, 1851103, 1850435, 1849806, 1849213, 1848655, 1848129, + 1847635, 1847171, 1846735, 1846325, 1845942, 1845582, 1845245, 1844930, 1871926, 1872905, 1873787, 1874566, 1875237, 1875796, + 1876235, 1876547, 1876724, 1876761, 1876653, 1876401, 1876004, 1875469, 1874803, 1874019, 1873129, 1872151, 1871101, 1869997, + 1868857, 1867696, 1866528, 1865367, 1864222, 1863102, 1862013, 1860961, 1859948, 1858977, 1858049, 1857164, 1856322, 1855523, + 1854766, 1854049, 1853371, 1852730, 1852125, 1851555, 1851018, 1850511, 1850035, 1849587, 1849166, 1848770, 1848399, 1848051, + 1847724, 1874238, 1875219, 1876105, 1876890, 1877571, 1878142, 1878597, 1878929, 1879130, 1879195, 1879120, 1878903, 1878545, + 1878051, 1877428, 1876686, 1875838, 1874900, 1873888, 1872818, 1871708, 1870572, 1869426, 1868281, 1867149, 1866038, 1864955, + 1863905, 1862892, 1861918, 1860986, 1860095, 1859246, 1858439, 1857672, 1856945, 1856257, 1855605, 1854989, 1854408, 1853859, + 1853341, 1852853, 1852393, 1851960, 1851553, 1851170, 1850810, 1850472, 1876495, 1877478, 1878367, 1879159, 1879848, 1880431, + 1880902, 1881252, 1881476, 1881568, 1881524, 1881341, 1881020, 1880566, 1879984, 1879284, 1878477, 1877579, 1876604, 1875568, + 1874488, 1873379, 1872255, 1871128, 1870010, 1868909, 1867833, 1866786, 1865774, 1864799, 1863864, 1862968, 1862113, 1861298, + 1860523, 1859787, 1859089, 1858427, 1857800, 1857208, 1856648, 1856119, 1855619, 1855148, 1854704, 1854285, 1853891, 1853520, + 1853172, 1878696, 1879680, 1880574, 1881371, 1882069, 1882664, 1883149, 1883517, 1883763, 1883881, 1883865, 1883715, 1883431, + 1883015, 1882472, 1881813, 1881047, 1880188, 1879250, 1878248, 1877199, 1876117, 1875015, 1873908, 1872804, 1871715, 1870646, + 1869605, 1868595, 1867620, 1866682, 1865783, 1864922, 1864101, 1863318, 1862574, 1861866, 1861195, 1860559, 1859956, 1859385, + 1858845, 1858335, 1857853, 1857398, 1856969, 1856564, 1856182, 1855823, 1880858, 1881843, 1882740, 1883543, 1884249, 1884854, + 1885352, 1885738, 1886004, 1886146, 1886159, 1886040, 1885789, 1885410, 1884906, 1884286, 1883559, 1882738, 1881837, 1880869, + 1879851, 1878796, 1877718, 1876630, 1875543, 1874465, 1873406, 1872370, 1871363, 1870389, 1869450, 1868547, 1867682, 1866855, + 1866065, 1865313, 1864597, 1863917, 1863271, 1862658, 1862077, 1861527, 1861006, 1860514, 1860048, 1859608, 1859193, 1858801, + 1858431, 1882981, 1883967, 1884866, 1885673, 1886387, 1887002, 1887513, 1887915, 1888201, 1888365, 1888404, 1888315, 1888097, + 1887753, 1887286, 1886704, 1886015, 1885232, 1884366, 1883433, 1882445, 1881418, 1880364, 1879296, 1878225, 1877161, 1876111, + 1875082, 1874079, 1873107, 1872167, 1871262, 1870393, 1869561, 1868765, 1868005, 1867282, 1866593, 1865938, 1865316, 1864725, + 1864165, 1863634, 1863131, 1862656, 1862205, 1861780, 1861377, 1860997, 1885047, 1886033, 1886936, 1887748, 1888468, 1889093, + 1889616, 1890033, 1890338, 1890525, 1890589, 1890528, 1890342, 1890032, 1889601, 1889056, 1888405, 1887658, 1886828, 1885928, + 1884972, 1883972, 1882943, 1881896, 1880843, 1879793, 1878754, 1877733, 1876735, 1875765, 1874826, 1873920, 1873048, 1872212, + 1871410, 1870645, 1869914, 1869217, 1868553, 1867922, 1867323, 1866753, 1866213, 1865701, 1865215, 1864755, 1864319, 1863907, + 1863517, 1887090, 1888077, 1888982, 1889797, 1890524, 1891157, 1891692, 1892123, 1892445, 1892652, 1892741, 1892707, 1892551, + 1892273, 1891877, 1891367, 1890752, 1890041, 1889246, 1888379, 1887453, 1886482, 1885477, 1884452, 1883416, 1882381, 1881353, + 1880341, 1879349, 1878383, 1877445, 1876538, 1875664, 1874823, 1874017, 1873245, 1872508, 1871803, 1871132, 1870493, 1869884, + 1869305, 1868756, 1868234, 1867738, 1867269, 1866823, 1866401, 1866002, 1889076, 1890063, 1890970, 1891790, 1892523, 1893164, + 1893710, 1894155, 1894494, 1894721, 1894833, 1894825, 1894698, 1894452, 1894088, 1893613, 1893034, 1892358, 1891598, 1890763, + 1889868, 1888925, 1887946, 1886943, 1885926, 1884906, 1883891, 1882888, 1881903, 1880941, 1880006, 1879099, 1878223, 1877380, + 1876570, 1875793, 1875050, 1874339, 1873660, 1873013, 1872396, 1871809, 1871250, 1870719, 1870215, 1869736, 1869281, 1868850, + 1868441, 1891040, 1892027, 1892936, 1893759, 1894497, 1895146, 1895702, 1896160, 1896514, 1896760, 1896893, 1896911, 1896811, + 1896594, 1896263, 1895821, 1895275, 1894634, 1893907, 1893105, 1892240, 1891325, 1890371, 1889390, 1888393, 1887389, 1886387, + 1885394, 1884417, 1883460, 1882527, 1881621, 1880745, 1879900, 1879086, 1878304, 1877555, 1876838, 1876152, 1875498, 1874873, + 1874278, 1873710, 1873171, 1872657, 1872169, 1871706, 1871265, 1870847, 1892946, 1893933, 1894843, 1895670, 1896413, 1897070, + 1897636, 1898106, 1898476, 1898740, 1898894, 1898935, 1898862, 1898674, 1898374, 1897965, 1897453, 1896845, 1896151, 1895381, + 1894547, 1893660, 1892732, 1891774, 1890796, 1889809, 1888821, 1887840, 1886871, 1885920, 1884991, 1884087, 1883211, 1882365, + 1881548, 1880763, 1880009, 1879286, 1878595, 1877933, 1877301, 1876698, 1876123, 1875575, 1875053, 1874557, 1874084, 1873635, + 1873209, 1894830, 1895816, 1896727, 1897557, 1898305, 1898968, 1899543, 1900025, 1900409, 1900690, 1900864, 1900928, 1900880, + 1900720, 1900450, 1900072, 1899592, 1899017, 1898355, 1897617, 1896813, 1895953, 1895051, 1894116, 1893159, 1892189, 1891215, + 1890245, 1889286, 1888341, 1887417, 1886516, 1885640, 1884793, 1883975, 1883186, 1882428, 1881700, 1881002, 1880334, 1879695, + 1879085, 1878502, 1877946, 1877416, 1876911, 1876431, 1875973, 1875538, 1896672, 1897658, 1898571, 1899403, 1900155, 1900825, + 1901409, 1901902, 1902300, 1902597, 1902790, 1902876, 1902852, 1902719, 1902477, 1902129, 1901680, 1901137, 1900507, 1899800, + 1899025, 1898194, 1897317, 1896406, 1895469, 1894517, 1893559, 1892601, 1891651, 1890715, 1889796, 1888898, 1888024, 1887176, + 1886356, 1885565, 1884803, 1884071, 1883368, 1882694, 1882049, 1881432, 1880842, 1880278, 1879740, 1879228, 1878739, 1878273, + 1877829, 1898493, 1899478, 1900391, 1901226, 1901982, 1902658, 1903250, 1903753, 1904163, 1904476, 1904687, 1904793, 1904792, + 1904684, 1904470, 1904151, 1903733, 1903220, 1902621, 1901944, 1901199, 1900395, 1899544, 1898655, 1897740, 1896806, 1895863, + 1894918, 1893979, 1893050, 1892137, 1891243, 1890371, 1889524, 1888703, 1887910, 1887145, 1886408, 1885700, 1885021, 1884370, + 1883746, 1883149, 1882578, 1882033, 1881512, 1881015, 1880541, 1880090, 1900273, 1901256, 1902171, 1903007, 1903767, 1904449, + 1905048, 1905561, 1905984, 1906311, 1906539, 1906665, 1906687, 1906604, 1906416, 1906125, 1905736, 1905254, 1904685, 1904038, + 1903321, 1902545, 1901719, 1900854, 1899960, 1899045, 1898118, 1897187, 1896258, 1895338, 1894432, 1893542, 1892673, 1891827, + 1891006, 1890212, 1889444, 1888704, 1887992, 1887307, 1886650, 1886020, 1885417, 1884839, 1884287, 1883759, 1883255, 1882773, + 1882314, 1902011, 1902994, 1903909, 1904748, 1905511, 1906198, 1906805, 1907327, 1907762, 1908103, 1908348, 1908493, 1908536, + 1908477, 1908314, 1908051, 1907691, 1907238, 1906699, 1906081, 1905393, 1904644, 1903844, 1903002, 1902129, 1901233, 1900323, + 1899406, 1898490, 1897579, 1896680, 1895796, 1894930, 1894087, 1893266, 1892471, 1891701, 1890958, 1890242, 1889553, 1888891, + 1888256, 1887646, 1887062, 1886503, 1885968, 1885457, 1884968, 1884501, 1903728, 1904709, 1905624, 1906465, 1907232, 1907923, + 1908537, 1909068, 1909513, 1909868, 1910129, 1910292, 1910356, 1910319, 1910181, 1909944, 1909611, 1909187, 1908676, 1908087, + 1907427, 1906705, 1905930, 1905113, 1904261, 1903384, 1902491, 1901589, 1900684, 1899784, 1898892, 1898014, 1897153, 1896311, + 1895492, 1894696, 1893925, 1893180, 1892460, 1891767, 1891101, 1890460, 1889845, 1889254, 1888689, 1888147, 1887629, 1887133, + 1886659, 1905402, 1906382, 1907298, 1908140, 1908910, 1909606, 1910226, 1910766, 1911222, 1911590, 1911866, 1912047, 1912130, + 1912115, 1912001, 1911790, 1911484, 1911087, 1910605, 1910043, 1909411, 1908716, 1907967, 1907173, 1906343, 1905486, 1904610, + 1903723, 1902831, 1901941, 1901058, 1900187, 1899330, 1898492, 1897674, 1896879, 1896107, 1895360, 1894638, 1893942, 1893271, + 1892625, 1892005, 1891409, 1890837, 1890289, 1889765, 1889262, 1888781, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 134466, 121403, 103870, 87766, 74691, 64418, 56343, + 49917, 44724, 40460, 36909, 33912, 31352, 29142, 27218, 25527, 24032, 22699, 21505, 20428, 19453, + 18567, 17756, 17013, 16330, 15698, 15114, 14571, 14066, 13594, 13153, 12739, 12351, 11985, 11640, + 11315, 11007, 10716, 10439, 10177, 9927, 9689, 9462, 9246, 9039, 8841, 8652, 8471, 8297, + 8130, 7969, 7815, 7667, 7524, 7386, 7254, 7126, 7002, 6883, 6768, 6656, 6548, 6444, + 6342, 6244, 6149, 6057, 5967, 5880, 5796, 5714, 5634, 5557, 5481, 5408, 5336, 5267, + 5199, 5133, 5068, 5005, 4944, 4884, 4826 +]; +/// PMOS log-domain current table, corner mos_ff, IHP-Open-PDK 21133f21, L 0.45 um, 27 C: the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (Vgs = ix * 15.625 mV, Vds = iy * 31.25 mV), then the 97 words rv = nint(4096 / s(Vgs)) at Vgs = ix * 15.625 mV (deck psp103_idpa_ff.cir, blocks lam_p and r_p). +pub const FF_LG_P : [4851]u32 = [ + 4294967295, 372528, 369615, 367029, 365473, 364960, 365062, 365413, 365842, 366287, 366740, 367174, 367609, 368047, + 368491, 368941, 369401, 369870, 370352, 370845, 371352, 371873, 372409, 372961, 373528, 374113, 374714, 375333, + 375971, 376627, 377303, 378000, 378720, 379484, 380264, 381082, 381950, 382882, 383897, 385021, 386289, 387746, + 389445, 391453, 393847, 396717, 400159, 404274, 409160, 414907, 416674, 413530, 410857, 409225, 408652, 408686, + 408964, 409316, 409679, 410037, 410393, 410734, 411074, 411413, 411755, 412100, 412450, 412806, 413168, 413538, + 413916, 414303, 414699, 415105, 415522, 415949, 416388, 416838, 417300, 417776, 418264, 418768, 419298, 419839, + 420404, 420998, 421631, 422313, 423061, 423896, 424844, 425942, 427232, 428767, 430610, 432833, 435518, 438750, + 442620, 460931, 457710, 454967, 453266, 452650, 452643, 452876, 453180, 453493, 453798, 454093, 454379, 454661, + 454936, 455209, 455483, 455758, 456035, 456314, 456598, 456885, 457177, 457474, 457777, 458086, 458401, 458723, + 459052, 459388, 459733, 460085, 460447, 460818, 461208, 461606, 462022, 462459, 462926, 463430, 463984, 464605, + 465314, 466137, 467107, 468267, 469663, 471354, 473402, 475881, 505288, 502057, 499270, 497517, 496864, 496832, + 497038, 497313, 497595, 497868, 498128, 498378, 498621, 498859, 499091, 499320, 499549, 499777, 500005, 500235, + 500465, 500698, 500934, 501171, 501413, 501657, 501905, 502157, 502413, 502674, 502940, 503211, 503487, 503771, + 504066, 504368, 504682, 505013, 505365, 505745, 506163, 506630, 507164, 507783, 508513, 509385, 510435, 511705, + 513246, 549734, 546521, 543710, 541923, 541241, 541191, 541381, 541638, 541902, 542155, 542395, 542623, 542842, + 543055, 543262, 543465, 543666, 543864, 544061, 544257, 544453, 544650, 544847, 545045, 545244, 545444, 545646, + 545850, 546057, 546265, 546476, 546690, 546907, 547128, 547356, 547587, 547825, 548071, 548330, 548604, 548898, + 549221, 549581, 549989, 550461, 551014, 551671, 552459, 553410, 594258, 591077, 588252, 586446, 585744, 585679, + 585860, 586107, 586360, 586602, 586829, 587045, 587250, 587448, 587639, 587826, 588009, 588190, 588368, 588545, + 588719, 588893, 589067, 589240, 589413, 589587, 589761, 589935, 590111, 590287, 590465, 590643, 590824, 591006, + 591190, 591379, 591570, 591766, 591967, 592178, 592399, 592636, 592893, 593177, 593497, 593863, 594288, 594788, + 595384, 638849, 635707, 632876, 631062, 630347, 630272, 630446, 630688, 630935, 631170, 631390, 631598, 631795, + 631984, 632167, 632344, 632517, 632687, 632853, 633018, 633180, 633341, 633501, 633659, 633817, 633974, 634131, + 634287, 634444, 634601, 634757, 634915, 635072, 635231, 635390, 635551, 635714, 635879, 636047, 636220, 636398, + 636584, 636782, 636994, 637226, 637483, 637774, 638107, 638494, 683491, 680397, 677566, 675750, 675029, 674948, + 675118, 675357, 675601, 675833, 676049, 676253, 676446, 676631, 676808, 676980, 677147, 677311, 677471, 677628, + 677783, 677936, 678087, 678237, 678385, 678533, 678680, 678825, 678971, 679115, 679260, 679404, 679548, 679693, + 679837, 679982, 680127, 680273, 680422, 680572, 680725, 680882, 681045, 681216, 681397, 681593, 681806, 682044, + 682312, 728163, 725130, 722308, 720494, 719772, 719688, 719856, 720095, 720338, 720569, 720784, 720986, 721178, + 721360, 721535, 721704, 721869, 722029, 722185, 722339, 722490, 722638, 722785, 722930, 723073, 723215, 723356, + 723495, 723634, 723772, 723909, 724046, 724183, 724318, 724454, 724589, 724725, 724860, 724996, 725134, 725272, + 725412, 725556, 725703, 725856, 726016, 726186, 726369, 726570, 772833, 769883, 767081, 765273, 764555, 764472, + 764641, 764880, 765125, 765357, 765573, 765776, 765967, 766149, 766324, 766492, 766656, 766815, 766970, 767122, + 767271, 767418, 767562, 767705, 767846, 767985, 768122, 768259, 768394, 768529, 768662, 768794, 768926, 769057, + 769188, 769318, 769448, 769578, 769707, 769837, 769967, 770098, 770230, 770364, 770501, 770642, 770788, 770941, + 771103, 817453, 814624, 811856, 810062, 809350, 809273, 809445, 809688, 809936, 810171, 810390, 810595, 810788, + 810972, 811148, 811317, 811482, 811641, 811797, 811949, 812099, 812245, 812389, 812531, 812671, 812810, 812946, + 813082, 813216, 813349, 813480, 813611, 813741, 813870, 813998, 814126, 814253, 814379, 814506, 814631, 814757, + 814883, 815009, 815136, 815265, 815395, 815528, 815664, 815805, 861948, 859300, 856590, 854818, 854119, 854051, + 854231, 854480, 854735, 854975, 855199, 855409, 855606, 855793, 855972, 856145, 856312, 856474, 856632, 856786, + 856937, 857085, 857231, 857374, 857515, 857655, 857792, 857928, 858062, 858195, 858327, 858458, 858588, 858717, + 858844, 858971, 859098, 859223, 859348, 859473, 859597, 859721, 859844, 859968, 860092, 860217, 860344, 860471, + 860602, 906202, 903832, 901215, 899478, 898800, 898748, 898941, 899202, 899467, 899717, 899949, 900166, 900370, + 900564, 900749, 900927, 901099, 901265, 901427, 901586, 901740, 901892, 902041, 902187, 902331, 902473, 902613, + 902751, 902887, 903022, 903156, 903289, 903420, 903550, 903679, 903807, 903934, 904061, 904187, 904312, 904436, + 904560, 904683, 904807, 904930, 905053, 905177, 905301, 905426, 951481, 948919, 946060, 944158, 943398, 943316, + 943507, 943776, 944052, 944315, 944560, 944788, 945003, 945207, 945401, 945588, 945767, 945942, 946111, 946276, + 946437, 946594, 946748, 946900, 947049, 947195, 947340, 947482, 947623, 947762, 947900, 948036, 948170, 948304, + 948436, 948567, 948697, 948826, 948954, 949082, 949208, 949334, 949459, 949584, 949709, 949833, 949956, 950080, + 950205, 1004306, 998436, 993229, 989895, 988360, 987901, 987924, 988130, 988390, 988657, 988914, 989157, 989388, + 989606, 989814, 990014, 990206, 990392, 990572, 990747, 990918, 991084, 991247, 991407, 991564, 991718, 991870, + 992020, 992167, 992312, 992456, 992598, 992738, 992877, 993015, 993151, 993286, 993420, 993552, 993684, 993815, + 993945, 994074, 994202, 994330, 994457, 994584, 994710, 994836, 1061182, 1050846, 1042233, 1036624, 1033723, 1032507, + 1032141, 1032161, 1032344, 1032586, 1032845, 1033102, 1033351, 1033589, 1033816, 1034035, 1034245, 1034447, 1034643, 1034834, + 1035018, 1035199, 1035375, 1035547, 1035715, 1035881, 1036043, 1036203, 1036361, 1036515, 1036668, 1036819, 1036968, 1037115, + 1037261, 1037404, 1037547, 1037688, 1037828, 1037966, 1038104, 1038240, 1038375, 1038510, 1038643, 1038776, 1038908, 1039039, + 1039169, 1117745, 1103676, 1091825, 1083787, 1079252, 1077016, 1076049, 1075734, 1075742, 1075904, 1076134, 1076390, 1076652, + 1076910, 1077161, 1077403, 1077637, 1077862, 1078080, 1078291, 1078495, 1078694, 1078888, 1079077, 1079262, 1079443, 1079621, + 1079795, 1079966, 1080134, 1080300, 1080463, 1080624, 1080782, 1080939, 1081094, 1081247, 1081398, 1081547, 1081696, 1081842, + 1081987, 1082131, 1082274, 1082416, 1082556, 1082696, 1082834, 1082972, 1171611, 1155171, 1140800, 1130595, 1124440, 1121085, + 1119384, 1118608, 1118340, 1118346, 1118497, 1118721, 1118979, 1119249, 1119520, 1119787, 1120047, 1120300, 1120544, 1120781, + 1121011, 1121234, 1121451, 1121662, 1121868, 1122069, 1122266, 1122458, 1122647, 1122832, 1123014, 1123193, 1123369, 1123543, + 1123714, 1123882, 1124048, 1124212, 1124375, 1124535, 1124693, 1124850, 1125005, 1125159, 1125311, 1125461, 1125611, 1125759, + 1125906, 1221685, 1204225, 1188193, 1176251, 1168646, 1164202, 1161723, 1160413, 1159790, 1159571, 1159587, 1159736, 1159959, + 1160221, 1160501, 1160786, 1161070, 1161349, 1161622, 1161887, 1162145, 1162395, 1162638, 1162875, 1163105, 1163329, 1163548, + 1163763, 1163972, 1164177, 1164378, 1164576, 1164770, 1164960, 1165148, 1165332, 1165514, 1165693, 1165869, 1166044, 1166216, + 1166386, 1166553, 1166719, 1166884, 1167046, 1167207, 1167366, 1167524, 1267515, 1250145, 1233283, 1220073, 1211251, 1205814, + 1202577, 1200708, 1199685, 1199188, 1199017, 1199047, 1199199, 1199424, 1199690, 1199978, 1200274, 1200573, 1200868, 1201159, + 1201443, 1201719, 1201989, 1202251, 1202506, 1202755, 1202997, 1203234, 1203465, 1203691, 1203912, 1204129, 1204341, 1204549, + 1204754, 1204955, 1205152, 1205347, 1205538, 1205727, 1205913, 1206096, 1206277, 1206456, 1206632, 1206806, 1206979, 1207149, + 1207317, 1309027, 1292536, 1275581, 1261560, 1251762, 1245455, 1241510, 1239087, 1237643, 1236833, 1236435, 1236305, 1236349, + 1236504, 1236729, 1236995, 1237285, 1237588, 1237895, 1238201, 1238504, 1238801, 1239092, 1239376, 1239653, 1239923, 1240186, + 1240443, 1240694, 1240939, 1241178, 1241412, 1241642, 1241866, 1242086, 1242302, 1242514, 1242723, 1242928, 1243129, 1243328, + 1243523, 1243716, 1243906, 1244093, 1244278, 1244460, 1244640, 1244818, 1346398, 1331253, 1314805, 1300402, 1289862, 1282807, + 1278215, 1275261, 1273393, 1272249, 1271595, 1271272, 1271173, 1271225, 1271378, 1271596, 1271857, 1272143, 1272444, 1272752, + 1273061, 1273368, 1273671, 1273969, 1274261, 1274547, 1274826, 1275098, 1275364, 1275623, 1275877, 1276125, 1276368, 1276605, + 1276838, 1277066, 1277289, 1277509, 1277724, 1277936, 1278144, 1278349, 1278551, 1278749, 1278945, 1279137, 1279328, 1279515, + 1279700, 1379967, 1366369, 1350864, 1336467, 1325409, 1317725, 1312550, 1309094, 1306807, 1305322, 1304392, 1303850, 1303580, + 1303500, 1303552, 1303696, 1303903, 1304151, 1304426, 1304717, 1305017, 1305320, 1305624, 1305926, 1306223, 1306515, 1306802, + 1307083, 1307358, 1307627, 1307889, 1308146, 1308398, 1308644, 1308884, 1309120, 1309351, 1309578, 1309801, 1310019, 1310233, + 1310444, 1310652, 1310855, 1311056, 1311254, 1311449, 1311641, 1311830, 1410140, 1398104, 1383811, 1369760, 1358400, 1350202, + 1344506, 1340582, 1337891, 1336064, 1334849, 1334072, 1333609, 1333374, 1333302, 1333348, 1333477, 1333666, 1333895, 1334152, + 1334427, 1334712, 1335004, 1335297, 1335589, 1335880, 1336166, 1336448, 1336724, 1336996, 1337262, 1337522, 1337777, 1338027, + 1338271, 1338511, 1338745, 1338975, 1339201, 1339422, 1339640, 1339853, 1340063, 1340269, 1340472, 1340672, 1340868, 1341062, + 1341252, 1437336, 1426771, 1413812, 1400378, 1388927, 1380331, 1374179, 1369824, 1366747, 1364584, 1363082, 1362060, 1361392, + 1360985, 1360771, 1360700, 1360733, 1360844, 1361010, 1361217, 1361451, 1361705, 1361971, 1362245, 1362522, 1362800, 1363078, + 1363353, 1363624, 1363892, 1364155, 1364414, 1364667, 1364916, 1365160, 1365399, 1365633, 1365863, 1366089, 1366310, 1366527, + 1366740, 1366949, 1367155, 1367357, 1367556, 1367752, 1367945, 1368135, 1461950, 1452712, 1441097, 1428479, 1417135, 1408261, + 1401719, 1396970, 1393532, 1391045, 1389258, 1387990, 1387110, 1386521, 1386152, 1385950, 1385873, 1385891, 1385980, 1386122, + 1386304, 1386513, 1386743, 1386986, 1387239, 1387496, 1387757, 1388018, 1388278, 1388536, 1388791, 1389043, 1389290, 1389534, + 1389773, 1390008, 1390239, 1390466, 1390688, 1390906, 1391120, 1391331, 1391537, 1391741, 1391940, 1392136, 1392330, 1392520, + 1392707, 1484327, 1476260, 1465926, 1454245, 1443190, 1434160, 1427297, 1422198, 1418423, 1415629, 1413566, 1412054, 1410959, + 1410183, 1409652, 1409310, 1409113, 1409028, 1409029, 1409095, 1409213, 1409368, 1409551, 1409755, 1409975, 1410204, 1410441, + 1410681, 1410924, 1411167, 1411409, 1411649, 1411886, 1412121, 1412353, 1412581, 1412805, 1413025, 1413242, 1413455, 1413664, + 1413870, 1414072, 1414271, 1414466, 1414658, 1414847, 1415033, 1415216, 1504761, 1497714, 1488561, 1477869, 1467256, 1458194, + 1451086, 1445680, 1441597, 1438515, 1436189, 1434439, 1433133, 1432169, 1431473, 1430986, 1430662, 1430466, 1430371, 1430354, + 1430399, 1430492, 1430621, 1430779, 1430958, 1431152, 1431359, 1431573, 1431793, 1432016, 1432240, 1432465, 1432689, 1432912, + 1433132, 1433350, 1433565, 1433778, 1433987, 1434193, 1434395, 1434594, 1434791, 1434983, 1435173, 1435360, 1435543, 1435724, + 1435902, 1523513, 1517349, 1509257, 1499554, 1489500, 1480528, 1473252, 1467587, 1463227, 1459877, 1457301, 1455324, 1453811, + 1452663, 1451801, 1451166, 1450712, 1450401, 1450204, 1450098, 1450065, 1450089, 1450158, 1450263, 1450396, 1450550, 1450721, + 1450904, 1451096, 1451295, 1451498, 1451704, 1451911, 1452119, 1452326, 1452532, 1452736, 1452938, 1453137, 1453334, 1453529, + 1453720, 1453909, 1454095, 1454278, 1454459, 1454636, 1454811, 1454983, 1540785, 1535385, 1528238, 1519485, 1510068, 1501299, + 1493939, 1488066, 1483462, 1479866, 1477057, 1474863, 1473152, 1471823, 1470799, 1470018, 1469432, 1469004, 1468703, 1468504, + 1468388, 1468339, 1468343, 1468390, 1468472, 1468582, 1468713, 1468861, 1469022, 1469193, 1469372, 1469555, 1469743, 1469933, + 1470123, 1470315, 1470506, 1470695, 1470884, 1471071, 1471256, 1471439, 1471619, 1471797, 1471973, 1472146, 1472317, 1472485, + 1472651, 1556769, 1552031, 1545715, 1537850, 1529113, 1520645, 1513281, 1507254, 1502441, 1498623, 1495598, 1493200, 1491299, + 1489797, 1488614, 1487688, 1486972, 1486426, 1486019, 1485725, 1485523, 1485398, 1485334, 1485321, 1485348, 1485409, 1485497, + 1485606, 1485733, 1485873, 1486024, 1486183, 1486348, 1486517, 1486690, 1486865, 1487041, 1487217, 1487393, 1487568, 1487742, + 1487915, 1488086, 1488256, 1488423, 1488589, 1488752, 1488914, 1489073, 1571608, 1567444, 1561859, 1554810, 1546765, 1538675, + 1531390, 1525266, 1520280, 1516266, 1513042, 1510454, 1508374, 1506705, 1505368, 1504302, 1503458, 1502795, 1502282, 1501892, + 1501604, 1501400, 1501266, 1501189, 1501160, 1501169, 1501211, 1501279, 1501368, 1501475, 1501595, 1501727, 1501868, 1502015, + 1502168, 1502324, 1502483, 1502644, 1502806, 1502969, 1503131, 1503293, 1503454, 1503614, 1503773, 1503930, 1504085, 1504239, + 1504391, 1585439, 1581775, 1576831, 1570522, 1563156, 1555501, 1548369, 1542205, 1537086, 1532901, 1529498, 1526733, 1524485, + 1522657, 1521173, 1519971, 1519001, 1518224, 1517606, 1517120, 1516745, 1516462, 1516256, 1516114, 1516025, 1515981, 1515975, + 1515999, 1516049, 1516120, 1516208, 1516310, 1516424, 1516548, 1516678, 1516815, 1516956, 1517101, 1517247, 1517396, 1517546, + 1517696, 1517846, 1517995, 1518144, 1518292, 1518439, 1518585, 1518730, 1598364, 1595138, 1590758, 1585113, 1578399, 1571215, + 1564300, 1558156, 1552944, 1548617, 1545054, 1542127, 1539721, 1537744, 1536120, 1534787, 1533696, 1532806, 1532085, 1531505, + 1531043, 1530680, 1530402, 1530194, 1530045, 1529946, 1529890, 1529869, 1529877, 1529911, 1529965, 1530036, 1530122, 1530220, + 1530327, 1530443, 1530564, 1530691, 1530821, 1530955, 1531090, 1531227, 1531366, 1531504, 1531643, 1531782, 1531920, 1532057, + 1532194, 1610475, 1607634, 1603749, 1598701, 1592600, 1585904, 1579261, 1573191, 1567929, 1563490, 1559788, 1556714, 1554163, + 1552046, 1550288, 1548830, 1547622, 1546624, 1545803, 1545129, 1544582, 1544141, 1543790, 1543515, 1543306, 1543151, 1543044, + 1542976, 1542942, 1542937, 1542955, 1542995, 1543051, 1543121, 1543204, 1543297, 1543397, 1543505, 1543618, 1543735, 1543856, + 1543980, 1544105, 1544232, 1544360, 1544488, 1544617, 1544746, 1544874, 1621867, 1619364, 1615915, 1611400, 1605867, 1599660, + 1593329, 1587384, 1582114, 1577593, 1573774, 1570569, 1567884, 1565635, 1563752, 1562175, 1560855, 1559752, 1558832, 1558068, + 1557437, 1556917, 1556494, 1556154, 1555883, 1555672, 1555513, 1555398, 1555320, 1555275, 1555257, 1555262, 1555288, 1555330, + 1555387, 1555455, 1555534, 1555622, 1555716, 1555817, 1555922, 1556031, 1556143, 1556257, 1556373, 1556491, 1556610, 1556729, + 1556848, 1632595, 1630392, 1627330, 1623290, 1618282, 1612553, 1606562, 1600787, 1595551, 1590979, 1587065, 1583746, 1580940, + 1578570, 1576569, 1574879, 1573452, 1572248, 1571234, 1570382, 1569668, 1569072, 1568578, 1568171, 1567840, 1567573, 1567362, + 1567199, 1567077, 1566991, 1566935, 1566906, 1566900, 1566913, 1566942, 1566986, 1567042, 1567109, 1567184, 1567266, 1567354, + 1567448, 1567546, 1567647, 1567751, 1567858, 1567966, 1568075, 1568185, 1642722, 1640786, 1638066, 1634452, 1629922, 1624654, + 1619019, 1613451, 1608288, 1603698, 1599714, 1596297, 1593384, 1590903, 1588792, 1586996, 1585467, 1584167, 1583062, 1582124, + 1581330, 1580659, 1580095, 1579624, 1579232, 1578909, 1578646, 1578435, 1578268, 1578141, 1578047, 1577983, 1577944, 1577927, + 1577929, 1577947, 1577979, 1578024, 1578079, 1578142, 1578213, 1578291, 1578374, 1578462, 1578553, 1578647, 1578744, 1578843, + 1578943, 1652314, 1650615, 1648199, 1644964, 1640871, 1636040, 1630766, 1625434, 1620379, 1615801, 1611770, 1608275, 1605266, + 1602685, 1600472, 1598576, 1596950, 1595558, 1594365, 1593345, 1592473, 1591730, 1591097, 1590562, 1590110, 1589732, 1589417, + 1589157, 1588946, 1588777, 1588645, 1588545, 1588473, 1588425, 1588398, 1588390, 1588398, 1588420, 1588453, 1588498, 1588551, + 1588612, 1588679, 1588752, 1588830, 1588912, 1588997, 1589085, 1589175, 1661401, 1659915, 1657771, 1654875, 1651178, 1646757, + 1641843, 1636769, 1631854, 1627319, 1623266, 1619710, 1616621, 1613950, 1611644, 1609654, 1607939, 1606459, 1605183, 1604083, + 1603136, 1602322, 1601623, 1601025, 1600515, 1600081, 1599715, 1599408, 1599152, 1598942, 1598771, 1598634, 1598529, 1598450, + 1598394, 1598359, 1598342, 1598340, 1598352, 1598376, 1598411, 1598454, 1598506, 1598564, 1598627, 1598696, 1598769, 1598846, + 1598926, 1670038, 1668741, 1666840, 1664249, 1660911, 1656873, 1652310, 1647505, 1642756, 1638293, 1634242, 1630645, 1627489, + 1624739, 1622348, 1620273, 1618472, 1616909, 1615554, 1614378, 1613358, 1612476, 1611712, 1611053, 1610485, 1609998, 1609581, + 1609226, 1608926, 1608674, 1608464, 1608291, 1608152, 1608041, 1607956, 1607894, 1607851, 1607826, 1607816, 1607819, 1607834, + 1607860, 1607894, 1607937, 1607986, 1608041, 1608102, 1608167, 1608235, 1678252, 1677126, 1675444, 1673126, 1670114, 1666429, + 1662206, 1657678, 1653116, 1648749, 1644724, 1641105, 1637898, 1635080, 1632614, 1630460, 1628580, 1626940, 1625508, 1624260, + 1623171, 1622222, 1621395, 1620677, 1620053, 1619513, 1619046, 1618644, 1618300, 1618007, 1617758, 1617549, 1617376, 1617234, + 1617119, 1617029, 1616960, 1616910, 1616878, 1616860, 1616856, 1616863, 1616880, 1616906, 1616941, 1616982, 1617029, 1617082, + 1617139, 1686085, 1685114, 1683627, 1681555, 1678838, 1675480, 1671580, 1667330, 1662969, 1658722, 1654745, 1651122, 1647879, + 1645006, 1642473, 1640248, 1638295, 1636581, 1635078, 1633760, 1632605, 1631592, 1630705, 1629928, 1629249, 1628657, 1628142, + 1627694, 1627306, 1626972, 1626685, 1626440, 1626232, 1626058, 1625914, 1625795, 1625700, 1625626, 1625571, 1625531, 1625507, + 1625495, 1625495, 1625505, 1625524, 1625550, 1625584, 1625624, 1625669, 1693558, 1692726, 1691417, 1689566, 1687116, 1684059, + 1680466, 1676490, 1672342, 1668232, 1664324, 1660717, 1657454, 1654537, 1651948, 1649658, 1647638, 1645857, 1644287, 1642903, + 1641684, 1640609, 1639664, 1638831, 1638099, 1637457, 1636893, 1636400, 1635969, 1635595, 1635269, 1634989, 1634747, 1634541, + 1634367, 1634220, 1634099, 1634000, 1633921, 1633860, 1633815, 1633784, 1633766, 1633759, 1633762, 1633774, 1633794, 1633821, + 1633854, 1700705, 1700000, 1698850, 1697199, 1694992, 1692211, 1688906, 1685198, 1681268, 1677310, 1673489, 1669916, 1666647, + 1663699, 1661063, 1658717, 1656636, 1654792, 1653159, 1651713, 1650433, 1649300, 1648298, 1647411, 1646628, 1645936, 1645325, + 1644788, 1644315, 1643900, 1643538, 1643221, 1642946, 1642709, 1642504, 1642330, 1642182, 1642058, 1641955, 1641872, 1641806, + 1641756, 1641719, 1641695, 1641682, 1641679, 1641684, 1641697, 1641718, 1707540, 1706949, 1705944, 1704474, 1702487, 1699961, + 1696925, 1693476, 1689766, 1685973, 1682255, 1678732, 1675473, 1672506, 1669834, 1667441, 1665305, 1663404, 1661712, 1660208, + 1658871, 1657682, 1656625, 1655687, 1654853, 1654114, 1653458, 1652877, 1652363, 1651909, 1651509, 1651157, 1650849, 1650580, + 1650346, 1650143, 1649969, 1649820, 1649694, 1649589, 1649502, 1649432, 1649376, 1649335, 1649305, 1649286, 1649277, 1649277, + 1649284, 1714097, 1713609, 1712736, 1711430, 1709643, 1707349, 1704564, 1701363, 1697873, 1694251, 1690650, 1687192, 1683957, + 1680985, 1678285, 1675852, 1673669, 1671716, 1669970, 1668411, 1667019, 1665777, 1664669, 1663680, 1662799, 1662012, 1661312, + 1660689, 1660134, 1659642, 1659205, 1658819, 1658478, 1658177, 1657914, 1657683, 1657482, 1657308, 1657158, 1657031, 1656923, + 1656833, 1656759, 1656699, 1656653, 1656618, 1656594, 1656580, 1656574, 1720387, 1719995, 1719241, 1718084, 1716479, 1714397, + 1711846, 1708880, 1705606, 1702161, 1698688, 1695310, 1692112, 1689145, 1686430, 1683965, 1681742, 1679742, 1677946, 1676337, + 1674894, 1673602, 1672444, 1671407, 1670479, 1669648, 1668904, 1668240, 1667646, 1667116, 1666643, 1666223, 1665849, 1665517, + 1665224, 1664966, 1664738, 1664539, 1664366, 1664216, 1664087, 1663977, 1663884, 1663806, 1663743, 1663692, 1663653, 1663624, + 1663605, 1726424, 1726118, 1725472, 1724451, 1723013, 1721126, 1718792, 1716049, 1712986, 1709720, 1706383, 1703096, 1699950, + 1697001, 1694279, 1691792, 1689534, 1687494, 1685654, 1683998, 1682508, 1681168, 1679963, 1678880, 1677907, 1677033, 1676248, + 1675544, 1674911, 1674345, 1673837, 1673383, 1672977, 1672615, 1672293, 1672007, 1671753, 1671530, 1671333, 1671160, 1671010, + 1670879, 1670767, 1670672, 1670591, 1670525, 1670470, 1670427, 1670394, 1732233, 1732006, 1731460, 1730563, 1729275, 1727568, + 1725434, 1722902, 1720041, 1716954, 1713761, 1710575, 1707490, 1704570, 1701852, 1699351, 1697067, 1694992, 1693112, 1691413, + 1689878, 1688494, 1687245, 1686118, 1685102, 1684187, 1683361, 1682618, 1681948, 1681345, 1680803, 1680316, 1679879, 1679487, + 1679136, 1678823, 1678543, 1678295, 1678074, 1677879, 1677708, 1677557, 1677426, 1677312, 1677215, 1677131, 1677062, 1677004, + 1676957, 1737819, 1737664, 1737209, 1736425, 1735276, 1733733, 1731785, 1729451, 1726785, 1723876, 1720828, 1717752, 1714740, + 1711860, 1709155, 1706649, 1704345, 1702242, 1700327, 1698590, 1697015, 1695588, 1694297, 1693130, 1692073, 1691117, 1690253, + 1689472, 1688766, 1688129, 1687553, 1687034, 1686566, 1686145, 1685766, 1685425, 1685120, 1684847, 1684603, 1684386, 1684193, + 1684022, 1683872, 1683740, 1683625, 1683526, 1683440, 1683367, 1683307, 1743209, 1743121, 1742749, 1742068, 1741045, 1739652, + 1737876, 1735726, 1733247, 1730511, 1727613, 1724652, 1721721, 1718890, 1716209, 1713704, 1711389, 1709262, 1707318, 1705546, + 1703934, 1702469, 1701139, 1699931, 1698836, 1697842, 1696940, 1696123, 1695382, 1694710, 1694102, 1693551, 1693053, 1692602, + 1692196, 1691829, 1691498, 1691200, 1690933, 1690694, 1690480, 1690289, 1690120, 1689970, 1689837, 1689721, 1689620, 1689532, + 1689457, 1748398, 1748370, 1748074, 1747488, 1746582, 1745327, 1743710, 1741734, 1739432, 1736865, 1734116, 1731276, 1728433, + 1725661, 1723012, 1720518, 1718198, 1716055, 1714086, 1712284, 1710639, 1709139, 1707772, 1706528, 1705395, 1704365, 1703428, + 1702576, 1701801, 1701096, 1700456, 1699875, 1699347, 1698868, 1698434, 1698041, 1697685, 1697364, 1697074, 1696813, 1696578, + 1696367, 1696178, 1696010, 1695860, 1695728, 1695611, 1695508, 1695419, 1753414, 1753442, 1753216, 1752716, 1751916, 1750789, + 1749318, 1747504, 1745370, 1742966, 1740364, 1737648, 1734900, 1732194, 1729585, 1727110, 1724791, 1722638, 1720650, 1718822, + 1717147, 1715615, 1714214, 1712935, 1711768, 1710703, 1709731, 1708845, 1708037, 1707301, 1706630, 1706019, 1705462, 1704955, + 1704494, 1704075, 1703695, 1703350, 1703037, 1702754, 1702499, 1702268, 1702060, 1701874, 1701707, 1701558, 1701425, 1701307, + 1701203, 1758260, 1758338, 1758176, 1757756, 1757054, 1756044, 1754708, 1753045, 1751069, 1748823, 1746366, 1743775, 1741127, + 1738494, 1735932, 1733484, 1731174, 1729016, 1727014, 1725165, 1723464, 1721902, 1720470, 1719159, 1717959, 1716861, 1715857, + 1714938, 1714099, 1713332, 1712631, 1711990, 1711406, 1710872, 1710385, 1709941, 1709536, 1709167, 1708832, 1708528, 1708251, + 1708001, 1707775, 1707570, 1707386, 1707220, 1707071, 1706939, 1706820, 1762946, 1763071, 1762968, 1762621, 1762008, 1761106, + 1759896, 1758373, 1756547, 1754451, 1752136, 1749671, 1747126, 1744571, 1742064, 1739648, 1737354, 1735198, 1733186, 1731321, + 1729598, 1728010, 1726550, 1725209, 1723978, 1722849, 1721814, 1720865, 1719995, 1719198, 1718468, 1717799, 1717187, 1716627, + 1716114, 1715645, 1715216, 1714825, 1714468, 1714142, 1713845, 1713575, 1713330, 1713107, 1712906, 1712724, 1712559, 1712411, + 1712279, 1767474, 1767643, 1767594, 1767315, 1766784, 1765981, 1764888, 1763495, 1761810, 1759857, 1757682, 1755341, 1752902, + 1750430, 1747984, 1745608, 1743336, 1741187, 1739172, 1737295, 1735554, 1733943, 1732458, 1731090, 1729830, 1728672, 1727607, + 1726629, 1725730, 1724905, 1724147, 1723451, 1722812, 1722226, 1721688, 1721195, 1720743, 1720329, 1719950, 1719604, 1719287, + 1718998, 1718734, 1718493, 1718275, 1718076, 1717896, 1717733, 1717586, 1771865, 1772074, 1772075, 1771857, 1771403, 1770691, + 1769705, 1768434, 1766881, 1765065, 1763023, 1760806, 1758474, 1756089, 1753708, 1751378, 1749133, 1746997, 1744984, 1743099, + 1741343, 1739714, 1738206, 1736813, 1735527, 1734341, 1733249, 1732243, 1731316, 1730463, 1729678, 1728956, 1728291, 1727680, + 1727118, 1726601, 1726126, 1725690, 1725290, 1724923, 1724586, 1724278, 1723995, 1723737, 1723502, 1723287, 1723091, 1722913, + 1722751, 1776121, 1776366, 1776413, 1776253, 1775868, 1775241, 1774354, 1773196, 1771767, 1770080, 1768167, 1766071, 1763847, + 1761552, 1759241, 1756961, 1754750, 1752632, 1750625, 1748737, 1746971, 1745326, 1743799, 1742383, 1741073, 1739862, 1738744, + 1737711, 1736758, 1735879, 1735068, 1734320, 1733630, 1732994, 1732409, 1731869, 1731372, 1730914, 1730492, 1730105, 1729749, + 1729421, 1729121, 1728845, 1728593, 1728362, 1728150, 1727957, 1727781, 1780241, 1780520, 1780610, 1780503, 1780183, 1779635, + 1778840, 1777787, 1776474, 1774910, 1773121, 1771143, 1769026, 1766823, 1764586, 1762362, 1760189, 1758095, 1756099, 1754212, + 1752440, 1750783, 1749239, 1747804, 1746472, 1745238, 1744095, 1743037, 1742059, 1741155, 1740319, 1739547, 1738833, 1738174, + 1737565, 1737003, 1736484, 1736005, 1735563, 1735155, 1734780, 1734434, 1734116, 1733823, 1733554, 1733306, 1733080, 1732872, + 1732682, 1784239, 1784549, 1784678, 1784620, 1784360, 1783884, 1783174, 1782220, 1781016, 1779568, 1777897, 1776035, 1774024, + 1771913, 1769753, 1767588, 1765458, 1763393, 1761413, 1759532, 1757758, 1756092, 1754534, 1753082, 1751731, 1750475, 1749310, + 1748229, 1747228, 1746300, 1745440, 1744644, 1743907, 1743225, 1742594, 1742010, 1741470, 1740970, 1740508, 1740081, 1739687, + 1739323, 1738987, 1738677, 1738391, 1738128, 1737886, 1737663, 1737459, 1788125, 1788463, 1788629, 1788616, 1788412, 1788002, + 1787372, 1786508, 1785406, 1784068, 1782510, 1780759, 1778852, 1776834, 1774753, 1772651, 1770569, 1768536, 1766577, 1764706, + 1762932, 1761261, 1759693, 1758226, 1756858, 1755583, 1754397, 1753295, 1752271, 1751320, 1750438, 1749619, 1748860, 1748156, + 1747503, 1746897, 1746336, 1745816, 1745335, 1744889, 1744476, 1744094, 1743741, 1743414, 1743112, 1742833, 1742576, 1742339, + 1742120, 1791900, 1792265, 1792464, 1792493, 1792340, 1791992, 1791435, 1790657, 1789649, 1788415, 1786964, 1785320, 1783516, + 1781591, 1779590, 1777554, 1775522, 1773527, 1771592, 1769734, 1767966, 1766293, 1764717, 1763239, 1761856, 1760564, 1759359, + 1758236, 1757191, 1756219, 1755315, 1754475, 1753694, 1752969, 1752295, 1751669, 1751088, 1750548, 1750048, 1749583, 1749152, + 1748752, 1748382, 1748038, 1747720, 1747426, 1747154, 1746902, 1746669, 1795576, 1795966, 1796196, 1796263, 1796157, 1795867, + 1795378, 1794678, 1793760, 1792622, 1791274, 1789733, 1788028, 1786195, 1784274, 1782306, 1780329, 1778374, 1776467, 1774627, + 1772868, 1771196, 1769616, 1768128, 1766732, 1765425, 1764202, 1763061, 1761997, 1761005, 1760080, 1759219, 1758418, 1757672, + 1756978, 1756332, 1755731, 1755172, 1754653, 1754170, 1753721, 1753304, 1752916, 1752556, 1752223, 1751913, 1751626, 1751360, + 1751113, 1799143, 1799555, 1799814, 1799917, 1799856, 1799619, 1799193, 1798567, 1797732, 1796686, 1795434, 1793993, 1792385, + 1790643, 1788803, 1786905, 1784984, 1783073, 1781199, 1779380, 1777633, 1775966, 1774384, 1772890, 1771484, 1770163, 1768926, + 1767768, 1766686, 1765675, 1764731, 1763851, 1763030, 1762264, 1761551, 1760885, 1760266, 1759688, 1759151, 1758650, 1758183, + 1757749, 1757345, 1756970, 1756620, 1756296, 1755994, 1755713, 1755453, 1802612, 1803045, 1803331, 1803467, 1803447, 1803259, + 1802893, 1802335, 1801578, 1800619, 1799459, 1798112, 1796598, 1794945, 1793187, 1791360, 1789498, 1787634, 1785795, 1784001, + 1782269, 1780610, 1779030, 1777532, 1776119, 1774787, 1773537, 1772364, 1771265, 1770237, 1769275, 1768376, 1767536, 1766752, + 1766020, 1765336, 1764698, 1764103, 1763547, 1763029, 1762546, 1762095, 1761675, 1761284, 1760919, 1760579, 1760263, 1759969, + 1759695, 1805996, 1806449, 1806759, 1806926, 1806943, 1806802, 1806490, 1805996, 1805312, 1804433, 1803361, 1802104, 1800681, + 1799115, 1797437, 1795681, 1793881, 1792066, 1790265, 1788499, 1786786, 1785138, 1783562, 1782063, 1780644, 1779304, 1778041, + 1776855, 1775741, 1774697, 1773718, 1772802, 1771944, 1771142, 1770392, 1769690, 1769035, 1768422, 1767849, 1767314, 1766814, + 1766347, 1765911, 1765504, 1765125, 1764770, 1764440, 1764132, 1763845, 1809296, 1809766, 1810099, 1810294, 1810346, 1810248, + 1809987, 1809553, 1808937, 1808134, 1807144, 1805973, 1804636, 1803156, 1801558, 1799873, 1798134, 1796371, 1794611, 1792876, + 1791185, 1789550, 1787981, 1786484, 1785061, 1783714, 1782442, 1781244, 1780117, 1779057, 1778063, 1777131, 1776256, 1775437, + 1774669, 1773951, 1773278, 1772648, 1772058, 1771507, 1770991, 1770508, 1770057, 1769635, 1769240, 1768872, 1768527, 1768205, + 1767905, 1812498, 1812985, 1813339, 1813561, 1813647, 1813588, 1813375, 1812997, 1812445, 1811713, 1810801, 1809713, 1808460, + 1807062, 1805542, 1803930, 1802254, 1800545, 1798828, 1797127, 1795460, 1793842, 1792283, 1790790, 1789367, 1788015, 1786736, + 1785528, 1784388, 1783316, 1782307, 1781359, 1780469, 1779634, 1778850, 1778115, 1777426, 1776780, 1776175, 1775607, 1775075, + 1774577, 1774111, 1773674, 1773265, 1772883, 1772525, 1772190, 1771876, 1815629, 1816131, 1816505, 1816752, 1816868, 1816846, + 1816677, 1816351, 1815859, 1815195, 1814356, 1813345, 1812173, 1810855, 1809412, 1807871, 1806259, 1804604, 1802932, 1801267, + 1799627, 1798029, 1796482, 1794995, 1793574, 1792220, 1790935, 1789718, 1788568, 1787484, 1786462, 1785500, 1784595, 1783745, + 1782945, 1782195, 1781490, 1780828, 1780207, 1779624, 1779077, 1778564, 1778083, 1777632, 1777209, 1776812, 1776441, 1776093, + 1775766, 1818690, 1819205, 1819597, 1819867, 1820011, 1820023, 1819896, 1819618, 1819182, 1818581, 1817811, 1816875, 1815779, + 1814538, 1813170, 1811699, 1810150, 1808551, 1806926, 1805299, 1803689, 1802112, 1800580, 1799102, 1797684, 1796330, 1795041, + 1793817, 1792659, 1791563, 1790530, 1789555, 1788636, 1787771, 1786957, 1786191, 1785471, 1784794, 1784158, 1783560, 1782998, + 1782471, 1781975, 1781510, 1781073, 1780663, 1780278, 1779917, 1779578, 1821666, 1822195, 1822604, 1822894, 1823065, 1823110, + 1823021, 1822789, 1822405, 1821863, 1821159, 1820293, 1819271, 1818105, 1816810, 1815408, 1813923, 1812380, 1810804, 1809217, + 1807639, 1806086, 1804571, 1803105, 1801693, 1800340, 1799049, 1797821, 1796655, 1795551, 1794506, 1793519, 1792588, 1791709, + 1790882, 1790102, 1789367, 1788676, 1788025, 1787413, 1786837, 1786296, 1785786, 1785307, 1784857, 1784433, 1784036, 1783662, + 1783311, 1824572, 1825113, 1825537, 1825848, 1826043, 1826118, 1826065, 1825876, 1825541, 1825055, 1824413, 1823614, 1822662, + 1821567, 1820344, 1819010, 1817588, 1816102, 1814576, 1813030, 1811486, 1809959, 1808464, 1807011, 1805607, 1804258, 1802967, + 1801736, 1800564, 1799452, 1798398, 1797401, 1796458, 1795567, 1794726, 1793933, 1793185, 1792480, 1791815, 1791189, 1790599, + 1790044, 1789521, 1789029, 1788565, 1788129, 1787719, 1787332, 1786969, 1827421, 1827973, 1828412, 1828741, 1828959, 1829061, + 1829042, 1828892, 1828604, 1828170, 1827585, 1826850, 1825965, 1824939, 1823783, 1822516, 1821157, 1819728, 1818251, 1816749, + 1815240, 1813741, 1812268, 1810830, 1809436, 1808093, 1806803, 1805570, 1804394, 1803275, 1802213, 1801206, 1800252, 1799350, + 1798497, 1797691, 1796930, 1796212, 1795534, 1794894, 1794291, 1793722, 1793186, 1792681, 1792204, 1791755, 1791333, 1790934, + 1790559, 1830201, 1830762, 1831215, 1831561, 1831800, 1831929, 1831940, 1831828, 1831582, 1831198, 1830668, 1829992, 1829171, + 1828211, 1827123, 1825920, 1824623, 1823251, 1821825, 1820366, 1818894, 1817426, 1815976, 1814555, 1813174, 1811837, 1810551, + 1809318, 1808140, 1807016, 1805947, 1804931, 1803968, 1803055, 1802191, 1801373, 1800600, 1799869, 1799178, 1798526, 1797910, + 1797328, 1796779, 1796261, 1795772, 1795311, 1794876, 1794466, 1794079, 1832909, 1833481, 1833946, 1834308, 1834567, 1834720, + 1834761, 1834684, 1834479, 1834141, 1833663, 1833044, 1832284, 1831387, 1830363, 1829224, 1827988, 1826672, 1825297, 1823884, + 1822450, 1821014, 1819589, 1818188, 1816820, 1815494, 1814213, 1812981, 1811802, 1810675, 1809600, 1808577, 1807605, 1806683, + 1805808, 1804979, 1804195, 1803452, 1802749, 1802085, 1801457, 1800863, 1800301, 1799771, 1799270, 1798797, 1798350, 1797928, + 1797530, 1835577, 1836157, 1836633, 1837009, 1837287, 1837463, 1837531, 1837486, 1837319, 1837024, 1836595, 1836029, 1835326, + 1834490, 1833528, 1832450, 1831273, 1830013, 1828689, 1827321, 1825927, 1824523, 1823125, 1821745, 1820393, 1819077, 1817803, + 1816575, 1815395, 1814265, 1813186, 1812157, 1811178, 1810247, 1809362, 1808523, 1807727, 1806973, 1806259, 1805583, 1804942, + 1804337, 1803763, 1803221, 1802708, 1802223, 1801765, 1801332, 1800922, 1838175, 1838762, 1839249, 1839639, 1839934, 1840131, + 1840225, 1840210, 1840079, 1839825, 1839442, 1838927, 1838279, 1837501, 1836598, 1835580, 1834461, 1833257, 1831984, 1830662, + 1829308, 1827938, 1826569, 1825211, 1823877, 1822574, 1821308, 1820085, 1818907, 1817776, 1816694, 1815660, 1814674, 1813735, + 1812842, 1811994, 1811188, 1810424, 1809698, 1809011, 1808359, 1807742, 1807157, 1806604, 1806080, 1805583, 1805114, 1804669, + 1804249, 1840716, 1841311, 1841808, 1842211, 1842521, 1842738, 1842857, 1842870, 1842772, 1842557, 1842217, 1841751, 1841155, + 1840432, 1839587, 1838627, 1837564, 1836414, 1835193, 1833917, 1832604, 1831270, 1829930, 1828596, 1827281, 1825992, 1824737, + 1823520, 1822345, 1821215, 1820131, 1819093, 1818102, 1817156, 1816256, 1815398, 1814583, 1813809, 1813074, 1812375, 1811713, + 1811085, 1810489, 1809925, 1809389, 1808882, 1808402, 1807946, 1807515, 1843202, 1843803, 1844309, 1844724, 1845050, 1845286, + 1845426, 1845467, 1845401, 1845221, 1844923, 1844502, 1843956, 1843286, 1842495, 1841591, 1840584, 1839488, 1838317, 1837087, + 1835815, 1834518, 1833209, 1831901, 1830606, 1829333, 1828090, 1826881, 1825711, 1824582, 1823498, 1822457, 1821462, 1820510, + 1819603, 1818738, 1817914, 1817131, 1816386, 1815678, 1815005, 1814366, 1813760, 1813185, 1812639, 1812121, 1811630, 1811165, + 1810723, 1845648, 1846254, 1846769, 1847195, 1847534, 1847787, 1847949, 1848014, 1847977, 1847832, 1847572, 1847194, 1846695, + 1846075, 1845337, 1844487, 1843534, 1842489, 1841368, 1840184, 1838954, 1837694, 1836416, 1835135, 1833862, 1832606, 1831376, + 1830176, 1829012, 1827886, 1826802, 1825760, 1824761, 1823805, 1822891, 1822019, 1821188, 1820396, 1819642, 1818924, 1818242, + 1817593, 1816977, 1816391, 1815835, 1815307, 1814805, 1814329, 1813878, 1848037, 1848650, 1849172, 1849608, 1849961, 1850230, + 1850411, 1850500, 1850491, 1850377, 1850154, 1849817, 1849362, 1848790, 1848103, 1847304, 1846403, 1845410, 1844338, 1843200, + 1842012, 1840789, 1839544, 1838291, 1837041, 1835804, 1834588, 1833398, 1832242, 1831121, 1830038, 1828996, 1827995, 1827035, + 1826116, 1825238, 1824399, 1823599, 1822836, 1822110, 1821418, 1820760, 1820134, 1819539, 1818973, 1818435, 1817923, 1817437, + 1816976, 1850371, 1850989, 1851518, 1851964, 1852329, 1852613, 1852813, 1852924, 1852941, 1852858, 1852669, 1852371, 1851959, + 1851433, 1850794, 1850045, 1849195, 1848252, 1847228, 1846136, 1844990, 1843805, 1842594, 1841370, 1840144, 1838927, 1837726, + 1836549, 1835401, 1834286, 1833206, 1832165, 1831162, 1830200, 1829277, 1828393, 1827548, 1826741, 1825971, 1825236, 1824536, + 1823869, 1823234, 1822629, 1822054, 1821506, 1820985, 1820490, 1820019, 1852665, 1853287, 1853823, 1854277, 1854654, 1854952, + 1855170, 1855302, 1855343, 1855288, 1855132, 1854870, 1854498, 1854016, 1853423, 1852723, 1851921, 1851027, 1850050, 1849004, + 1847900, 1846753, 1845576, 1844381, 1843181, 1841984, 1840801, 1839637, 1838498, 1837390, 1836315, 1835275, 1834272, 1833308, + 1832382, 1831493, 1830643, 1829830, 1829052, 1828310, 1827602, 1826926, 1826282, 1825669, 1825084, 1824527, 1823997, 1823492, + 1823012, 1854919, 1855545, 1856087, 1856549, 1856936, 1857248, 1857481, 1857633, 1857697, 1857669, 1857543, 1857316, 1856982, + 1856541, 1855992, 1855338, 1854584, 1853737, 1852807, 1851804, 1850742, 1849633, 1848491, 1847327, 1846152, 1844978, 1843812, + 1842662, 1841535, 1840434, 1839364, 1838327, 1837326, 1836360, 1835431, 1834539, 1833684, 1832865, 1832081, 1831332, 1830616, + 1829932, 1829280, 1828658, 1828065, 1827499, 1826960, 1826446, 1825957, 1857116, 1857746, 1858294, 1858764, 1859161, 1859485, + 1859734, 1859904, 1859990, 1859987, 1859891, 1859696, 1859399, 1858997, 1858491, 1857882, 1857173, 1856372, 1855487, 1854529, + 1853508, 1852438, 1851330, 1850197, 1849050, 1847899, 1846752, 1845618, 1844503, 1843411, 1842348, 1841315, 1840315, 1839350, + 1838419, 1837525, 1836666, 1835841, 1835052, 1834296, 1833573, 1832883, 1832223, 1831592, 1830991, 1830417, 1829869, 1829347, + 1828849, 1859290, 1859923, 1860476, 1860953, 1861359, 1861694, 1861957, 1862144, 1862251, 1862272, 1862202, 1862038, 1861775, + 1861411, 1860945, 1860378, 1859713, 1858957, 1858116, 1857200, 1856221, 1855188, 1854116, 1853014, 1851894, 1850766, 1849640, + 1848522, 1847420, 1846339, 1845282, 1844254, 1843257, 1842292, 1841361, 1840464, 1839602, 1838773, 1837979, 1837217, 1836488, + 1835790, 1835122, 1834484, 1833875, 1833293, 1832737, 1832206, 1831700, 1861407, 1862043, 1862601, 1863085, 1863499, 1863845, + 1864122, 1864325, 1864451, 1864494, 1864451, 1864316, 1864086, 1863758, 1863330, 1862804, 1862182, 1861469, 1860671, 1859798, + 1858859, 1857865, 1856827, 1855757, 1854666, 1853563, 1852457, 1851357, 1850269, 1849199, 1848151, 1847129, 1846136, 1845173, + 1844243, 1843344, 1842479, 1841647, 1840848, 1840081, 1839346, 1838642, 1837968, 1837323, 1836706, 1836116, 1835552, 1835014, + 1834499, 1863501, 1864140, 1864702, 1865191, 1865614, 1865970, 1866259, 1866477, 1866620, 1866685, 1866666, 1866558, 1866359, + 1866065, 1865674, 1865187, 1864605, 1863934, 1863178, 1862346, 1861446, 1860490, 1859487, 1858449, 1857386, 1856308, 1855225, + 1854143, 1853070, 1852012, 1850973, 1849958, 1848969, 1848009, 1847079, 1846181, 1845314, 1844479, 1843675, 1842904, 1842163, + 1841453, 1840772, 1840120, 1839496, 1838899, 1838328, 1837781, 1837259, 1865538, 1866179, 1866745, 1867240, 1867670, 1868036, + 1868337, 1868569, 1868730, 1868815, 1868819, 1868738, 1868568, 1868306, 1867951, 1867501, 1866959, 1866328, 1865613, 1864821, + 1863961, 1863042, 1862075, 1861069, 1860036, 1858984, 1857923, 1856860, 1855803, 1854758, 1853730, 1852723, 1851740, 1850784, + 1849856, 1848958, 1848090, 1847253, 1846446, 1845671, 1844925, 1844210, 1843524, 1842865, 1842235, 1841631, 1841052, 1840499, + 1839969, 1867552, 1868195, 1868764, 1869265, 1869701, 1870076, 1870388, 1870634, 1870810, 1870914, 1870939, 1870883, 1870741, + 1870510, 1870188, 1869774, 1869270, 1868678, 1868002, 1867250, 1866428, 1865546, 1864614, 1863640, 1862636, 1861610, 1860572, + 1859529, 1858490, 1857459, 1856442, 1855443, 1854467, 1853515, 1852589, 1851692, 1850824, 1849985, 1849176, 1848397, 1847648, + 1846927, 1846235, 1845571, 1844934, 1844324, 1843739, 1843178, 1842641, 1869525, 1870170, 1870743, 1871248, 1871691, 1872074, + 1872396, 1872655, 1872846, 1872968, 1873014, 1872981, 1872865, 1872663, 1872373, 1871994, 1871526, 1870971, 1870334, 1869620, + 1868836, 1867991, 1867093, 1866152, 1865177, 1864178, 1863164, 1862142, 1861119, 1860103, 1859098, 1858110, 1857140, 1856194, + 1855272, 1854376, 1853508, 1852669, 1851858, 1851076, 1850323, 1849598, 1848902, 1848232, 1847590, 1846973, 1846381, 1845814, + 1845271, 1871477, 1872123, 1872698, 1873207, 1873656, 1874047, 1874378, 1874648, 1874854, 1874992, 1875057, 1875047, 1874956, + 1874782, 1874522, 1874175, 1873742, 1873223, 1872623, 1871946, 1871199, 1870389, 1869525, 1868616, 1867671, 1866699, 1865709, + 1864708, 1863704, 1862703, 1861711, 1860732, 1859771, 1858830, 1857912, 1857019, 1856153, 1855313, 1854501, 1853716, 1852960, + 1852232, 1851530, 1850856, 1850208, 1849585, 1848987, 1848414, 1847864, 1873387, 1874035, 1874613, 1875126, 1875580, 1875978, + 1876318, 1876599, 1876819, 1876972, 1877056, 1877066, 1876999, 1876851, 1876620, 1876305, 1875905, 1875421, 1874857, 1874216, + 1873505, 1872731, 1871901, 1871023, 1870108, 1869163, 1868197, 1867218, 1866233, 1865248, 1864270, 1863302, 1862350, 1861416, + 1860503, 1859613, 1858748, 1857909, 1857096, 1856310, 1855551, 1854819, 1854114, 1853435, 1852782, 1852154, 1851551, 1850971, + 1850415, 1875257, 1875905, 1876486, 1877003, 1877462, 1877867, 1878216, 1878507, 1878739, 1878908, 1879009, 1879039, 1878995, + 1878872, 1878669, 1878384, 1878016, 1877566, 1877036, 1876431, 1875755, 1875015, 1874219, 1873374, 1872488, 1871571, 1870629, + 1869673, 1868707, 1867739, 1866775, 1865820, 1864877, 1863951, 1863044, 1862158, 1861296, 1860458, 1859645, 1858858, 1858097, + 1857363, 1856654, 1855971, 1855313, 1854680, 1854072, 1853487, 1852925, 1877104, 1877754, 1878336, 1878856, 1879320, 1879731, + 1880088, 1880389, 1880633, 1880815, 1880933, 1880982, 1880959, 1880860, 1880684, 1880427, 1880090, 1879672, 1879176, 1878605, + 1877963, 1877257, 1876493, 1875680, 1874824, 1873934, 1873018, 1872083, 1871138, 1870188, 1869238, 1868296, 1867363, 1866445, + 1865545, 1864664, 1863804, 1862968, 1862156, 1861368, 1860606, 1859869, 1859157, 1858471, 1857809, 1857172, 1856558, 1855968, + 1855400, 1878910, 1879560, 1880145, 1880668, 1881137, 1881553, 1881918, 1882229, 1882484, 1882679, 1882813, 1882880, 1882877, + 1882801, 1882650, 1882421, 1882113, 1881726, 1881263, 1880725, 1880117, 1879444, 1878713, 1877930, 1877104, 1876241, 1875351, + 1874440, 1873515, 1872582, 1871649, 1870720, 1869799, 1868890, 1867996, 1867121, 1866265, 1865431, 1864620, 1863833, 1863070, + 1862331, 1861617, 1860928, 1860262, 1859621, 1859003, 1858407, 1857835, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 134466, 121403, 103870, 87766, 74691, 64418, 56343, + 49917, 44724, 40460, 36909, 33912, 31352, 29142, 27218, 25527, 24032, 22699, 21505, 20428, 19453, + 18567, 17756, 17013, 16330, 15698, 15114, 14571, 14066, 13594, 13153, 12739, 12351, 11985, 11640, + 11315, 11007, 10716, 10439, 10177, 9927, 9689, 9462, 9246, 9039, 8841, 8652, 8471, 8297, + 8130, 7969, 7815, 7667, 7524, 7386, 7254, 7126, 7002, 6883, 6768, 6656, 6548, 6444, + 6342, 6244, 6149, 6057, 5967, 5880, 5796, 5714, 5634, 5557, 5481, 5408, 5336, 5267, + 5199, 5133, 5068, 5005, 4944, 4884, 4826 +]; +/// NMOS drain current in pA at 1000 centres of the log grid's cells, corner mos_ff, point k = 1 .. 1000 at Vgs = (floor(96 frac(k a1)) + 1/2) * 15.625 mV, Vds = (floor(48 frac(k a2)) + 1/2) * 31.25 mV (deck psp103_idpa_ff.cir, block cen_n). +pub const FF_CEN_N : [1000]u32 = [ + 248285485, 61627957, 11553547, 1442, 277313741, 100781888, 16712871, 5271, 121614012, 119383495, 16354321, 17397, 264276131, 137000147, + 23925950, 18110, 306764321, 119020870, 28867439, 78110, 337564981, 151546604, 23830722, 255037, 212561392, 173816426, 37403838, 700711, + 333077773, 69803382, 48351173, 524243, 376894555, 170553578, 59930796, 1452865, 99734390, 203342256, 55002385, 3093271, 313086535, 226817381, + 72392043, 2551009, 404666334, 157578975, 87117070, 5591964, 440986079, 234265276, 27713178, 9527967, 773, 267102840, 92306716, 14246663, + 3059, 49614835, 111619135, 13650754, 10152, 233612508, 129585995, 18233051, 7899, 294540902, 94853753, 25363838, 43483, 326066580, + 142660337, 8753135, 151844, 165104804, 164850909, 32814652, 452484, 309124759, 8239783, 43751596, 302118, 362862666, 155400902, 54735980, + 966958, 11491236, 192747429, 46147812, 2270438, 260803760, 217639274, 66018079, 4274121, 386926919, 107319920, 75640225, 4302627, 427186062, + 217497515, 90008866, 7712739, 126084417, 255774798, 82571008, 11993647, 1720, 281754334, 104417601, 10695224, 5887, 198578451, 121910019, + 15376703, 18772, 279248877, 57503526, 22222230, 23554, 314247119, 132246958, 29707139, 88257, 92578466, 155854166, 28697088, 279964, + 277397743, 169808474, 39097977, 162658, 349637608, 129459080, 49732938, 628381, 384256118, 181560054, 27171078, 1607185, 195760272, 207829302, + 59669553, 3291788, 355194164, 44477467, 69840803, 3129955, 412384183, 200219273, 83641241, 6105299, 58738346, 243941956, 68411813, 10032622, + 953, 271146100, 96723741, 4039012, 3453, 147768665, 114325444, 12903156, 11037, 260964645, 20652874, 19152958, 12388, 303171621, + 119923172, 26200660, 51483, 10756462, 146770942, 23950257, 106600, 245492684, 161207945, 34630541, 40966, 332746859, 90701996, 45143479, + 378486, 371647921, 170872295, 55948098, 1091759, 139050460, 197909671, 49287260, 2440853, 322553959, 221000463, 63870431, 2159904, 398459516, + 171467843, 77431890, 4778002, 435356174, 231226098, 50586949, 8195745, 242704223, 253594132, 88911192, 10711280, 1976, 84049751, 106823305, + 10482435, 6457, 242436278, 124105480, 16301955, 6660, 290408089, 102441507, 23042055, 28785, 319861175, 132241441, 15650208, 62310, + 193170701, 152646550, 30342411, 194327, 312471464, 52371742, 40535702, 215501, 359840852, 156664046, 50965278, 724103, 55373736, 187799185, + 43208251, 1749326, 279343906, 211469986, 58035486, 1068127, 380496038, 130204685, 71669256, 3571438, 422168939, 219022769, 16160147, 6564215, + 186164454, 242851866, 80621364, 8908267, 1120, 9875495, 99860643, 8263437, 3758, 212365935, 116635946, 13811843, 1580, 276555817, + 81873810, 19969319, 9764, 309345501, 123023723, 26963583, 36626, 127933116, 144107115, 26523981, 116546, 286414005, 163806096, 36125387, + 121834, 345971384, 137135206, 42556808, 449973, 370000964, 178343242, 32584058, 1206404, 237933069, 201911986, 52315163, 2599433, 359009160, + 75337708, 65790452, 2561551, 408230851, 202416830, 79019750, 4204749, 102850453, 231807209, 72291027, 7236873, 329153633, 257764319, 92511004, + 5808160, 2212, 170332759, 109274187, 11398017, 6990, 260744502, 42495091, 17114800, 5421, 297708022, 113023095, 23786175, 20860, + 51873760, 136142945, 22509155, 68847, 259929366, 155405388, 31912448, 61194, 323513359, 107332121, 38189694, 266513, 359006258, 167488691, + 11259717, 811970, 172747055, 192295455, 47115355, 1881144, 331791493, 26383268, 60071611, 1744064, 395162677, 175181312, 73021527, 3137917, + 11809781, 221452517, 58178786, 5763487, 287034956, 247481951, 85157804, 1194543, 1273, 114750703, 102410892, 9202903, 2535, 245083293, + 112674128, 14478686, 2835, 285613777, 102956594, 20705344, 11709, 314207193, 127611264, 17729232, 40844, 216067641, 147064670, 28140731, + 125834, 306420141, 75532220, 34029098, 150478, 346706725, 155388125, 43608041, 515685, 96317481, 183298335, 41423997, 1312377, 304629983, + 205237954, 54508880, 829267, 378939032, 143939287, 67455062, 2254274, 416681815, 209336285, 32919143, 4483324, 221164747, 237071261, 78361581, + 7597291, 383753894, 64800978, 89914049, 7225744, 1504, 221082712, 105578753, 12184850, 1403, 272785688, 86563810, 17842258, 6461, + 303172337, 118951580, 10358198, 23609, 158933663, 139252606, 21712160, 74928, 289635660, 22701785, 30076673, 84778, 333830824, 140250218, + 39250717, 313873, 11140917, 173484365, 34538362, 893026, 260414959, 188804402, 49440659, 197488, 360190376, 111161502, 61804909, 1545516, + 404802810, 195666743, 74486681, 3438980, 143908624, 226460598, 70550476, 6098616, 350457486, 251286152, 83076566, 5594638, 427912375, 187328105, + 98942037, 9983428, 2734, 260630059, 59306535, 15196849, 3622, 291917091, 109938853, 21377245, 13499, 106267730, 131032494, 18329086, + 44756, 264219485, 149602765, 26528053, 44101, 320057829, 123547536, 35102059, 183415, 352857244, 163351706, 21354893, 384550, 203299283, + 179606705, 44184147, 1003952, 341929220, 56833183, 56326733, 1034115, 390999985, 178649345, 68931842, 2521984, 57550518, 216528044, 60739512, + 4791204, 306004389, 241238631, 76316238, 3493649, 408107923, 152813324, 92119659, 7999371, 1631, 245011545, 18468910, 12879025, 1924, + 280338690, 101298493, 16243807, 7626, 30574264, 122826628, 15033734, 26149, 229471404, 141882218, 22999381, 10437, 307012655, 93062733, + 31163977, 106639, 340981593, 146522389, 3578112, 232768, 133735413, 170993466, 39010474, 658553, 314395494, 191766210, 51308983, 631892, + 376073787, 160438265, 63324924, 1777196, 411876968, 205257120, 41611074, 3713418, 249111777, 231109802, 70108145, 6408691, 384039667, 96227462, + 85425209, 6347452, 441221050, 225531226, 100785417, 10665169, 995, 262086304, 89272762, 13791596, 4368, 288924366, 114586190, 11556104, + 15148, 182191746, 133845028, 19680874, 48406, 290053654, 48814543, 27609051, 36347, 328684085, 136423720, 36068892, 136689, 74530447, + 161746817, 33634130, 422715, 277699439, 182781818, 46185262, 346091, 359351535, 128499290, 57898025, 1224459, 391234220, 193065365, 21689639, + 2765325, 179754019, 221608804, 63378440, 5074967, 360419462, 28019619, 78853107, 4794487, 425477854, 198856814, 94037864, 7269392, 460, + 249757988, 70185598, 11644260, 2403, 278117264, 106940111, 1933164, 8698, 137447129, 125873515, 16569908, 28510, 269064221, 143815094, + 24098871, 19010, 317157270, 122287389, 32135816, 80197, 346482514, 152356687, 27800026, 259321, 228929412, 174333176, 41225450, 708871, + 343264482, 82930863, 48593664, 782443, 378278761, 181220413, 60137740, 1987730, 120349303, 211249170, 56136729, 3965785, 323087981, 234896629, + 72797668, 3421900, 407771272, 167064716, 87432820, 5681884, 450416506, 236268193, 47267234, 9615466, 1295, 267974599, 98356634, 14333952, + 5055, 68326280, 117952314, 13876024, 16674, 241031371, 129953301, 20803590, 9364, 303577366, 101119032, 28416348, 44862, 334954873, + 143591340, 14414882, 154754, 183165612, 165410426, 36410991, 458238, 314203493, 24611766, 43996695, 469539, 364556158, 164335217, 54946472, + 1370473, 34131025, 200588139, 48370888, 2988332, 274251649, 225632389, 66464419, 589430, 390835569, 120590085, 80969759, 4385933, 436679697, + 220519392, 6004397, 7796669, 681, 256782198, 88724821, 12160879, 2849, 282417798, 110595257, 11079156, 5985, 212121459, 122296016, + 17723646, 18992, 288497777, 67645386, 25065349, 24450, 323115442, 133509164, 33017072, 92124, 112588749, 156469855, 29069185, 283946, + 284987066, 177175497, 39352662, 263424, 351649510, 140053212, 49947663, 922838, 385300931, 189376963, 32645371, 2180126, 228586724, 215731703, + 60185564, 3323538, 366614994, 60973839, 74986086, 3207237, 421994530, 204516820, 89197837, 6185220, 81965932, 245155827, 75465226, 10112306, + 1584, 272576092, 97304356, 6616556, 3515, 163733762, 114734052, 15036272, 11178, 270714078, 33329298, 21777901, 12951, 312021494, + 121996046, 29296933, 52753, 31868775, 147465646, 24592741, 171448, 255456756, 168451870, 34897474, 125711, 335452015, 103649342, 45358825, + 577337, 372853885, 178712205, 4412080, 1531676, 158071071, 198638741, 53811136, 2468051, 335447676, 9107470, 68818098, 2231645, 408201944, + 178591545, 82804756, 4851931, 444720902, 232787043, 59027054, 8271781, 259388273, 261961452, 89606143, 12559720, 2017, 102140549, 107684419, + 12389612, 6548, 252856002, 124445919, 18707809, 7005, 299283696, 106511037, 23170879, 29619, 320679221, 139079749, 18051357, 101347, + 206770230, 159762586, 30900193, 306916, 316347555, 66881514, 40756466, 340707, 361198263, 164840477, 51158622, 739266, 77241785, 188634616, + 47688645, 1771967, 294309202, 212018706, 62779668, 1490967, 390576332, 141066156, 76860239, 3640115, 431569867, 220996248, 25743840, 6636238, + 205069058, 251157725, 81589276, 10567472, 1146, 29526000, 100318210, 9946471, 3817, 224397250, 116991488, 16007751, 3059, 285533910, + 88393925, 20097067, 16283, 310228684, 129756915, 2742121, 60017, 144913943, 151090698, 26821425, 186960, 292227017, 8085120, 36352689, + 198038, 347637375, 141577343, 46569087, 461318, 379086927, 179283674, 37941250, 1224631, 254624134, 202505412, 56850856, 2624849, 369713859, + 89828434, 70787064, 2623975, 411349537, 205454260, 79268176, 5268478, 124260864, 240061975, 73771613, 8704958, 340338876, 266132231, 93013708, + 7454466, 2250, 184651666, 109647774, 13374562, 7075, 265546846, 54180714, 17241403, 9083, 298716316, 119746157, 23903939, 34387, + 71564136, 142994496, 22874817, 111662, 267746124, 162550463, 32147850, 66220, 332882649, 121932313, 41990248, 274680, 368072932, 168681800, + 18579508, 825924, 191740829, 192946439, 51449880, 1902223, 343593200, 43056663, 60378395, 1798768, 397025493, 185114491, 73527101, 4026405, + 35113127, 229662692, 61669271, 7045448, 300707684, 255778314, 85729561, 3519484, 1298, 131432980, 102796352, 9341332, 4156, 248475039, + 6743208, 14604048, 4778, 286802674, 109831544, 20821409, 19397, 10550679, 134324125, 18632831, 66723, 227341327, 147512777, 28379284, + 127326, 316122773, 86182404, 37614500, 156124, 355772673 +]; +/// PMOS drain current in pA at 1000 centres of the log grid's cells, corner mos_ff, point k = 1 .. 1000 at Vgs = (floor(96 frac(k a1)) + 1/2) * 15.625 mV, Vds = (floor(48 frac(k a2)) + 1/2) * 31.25 mV (deck psp103_idpa_ff.cir, block cen_p). +pub const FF_CEN_P : [1000]u32 = [ + 168391803, 39719111, 3184698, 114, 185603817, 60452387, 5080081, 297, 87275722, 70455343, 6637501, 773, 186175796, 80308372, + 9767616, 1853, 212421422, 77592905, 11663049, 4931, 231088451, 95525289, 12431194, 12975, 152904381, 107842950, 18413906, 34027, + 237934634, 48964303, 23719739, 51443, 266688607, 113501749, 29522971, 132553, 73529143, 132036677, 31504176, 326568, 227762003, 145675595, + 40098646, 603925, 294428677, 110013380, 47853767, 1323447, 317432222, 159506612, 18570293, 2456030, 71, 178756860, 55644173, 4085176, + 186, 36056424, 65883253, 5405786, 482, 165035438, 75680648, 6955777, 954, 204147942, 63085481, 9985540, 3050, 223423346, + 90032891, 5062702, 8030, 119146725, 102332573, 16072115, 21121, 221069539, 5880610, 21204008, 31878, 257168611, 104002552, 26683021, + 83358, 8578079, 125521434, 26928573, 210911, 189574665, 139628450, 36557939, 499811, 281375105, 75749636, 40859990, 944975, 307780917, + 148814880, 48473015, 1849056, 93514953, 171518428, 50273983, 3223056, 116, 187020017, 61527045, 4207818, 301, 140235498, 71072829, + 5711155, 787, 194127358, 39230479, 8474241, 1885, 215622842, 83927897, 11787340, 4969, 67426953, 96864736, 13922964, 13079, + 198511407, 103623596, 18780065, 19337, 247917448, 87767801, 23985116, 52135, 269929168, 118712855, 16836352, 134074, 142643283, 133450845, + 33076991, 330207, 257573790, 31873169, 37490457, 651683, 297438091, 137467692, 44794874, 1355907, 43905747, 164028759, 42659469, 2495035, + 73, 180101444, 57093492, 1721803, 189, 105032366, 66565862, 4629198, 490, 182025179, 14361147, 7086214, 1164, 208092597, + 76807486, 10105530, 3080, 7939687, 91408874, 11669637, 5039, 175704414, 98306003, 16492733, 5378, 236389163, 62544566, 21471023, + 32381, 261370892, 112011729, 26907918, 84298, 101787917, 127274752, 26985917, 213190, 233684237, 140553562, 34173860, 434410, 287415542, + 118615834, 41245817, 970566, 311694760, 156031891, 32427063, 1881608, 178057955, 167560495, 52650222, 2545824, 119, 60398072, 62155320, + 3656151, 306, 169417010, 71583253, 5840687, 715, 199794527, 66703719, 8587155, 1906, 217684250, 81777885, 8203121, 3121, + 138640394, 93065889, 14335891, 8204, 222373180, 36630631, 19060003, 20035, 253113693, 103465510, 24212515, 52712, 40916285, 121052841, + 23744661, 135473, 202180914, 134486094, 30973614, 230163, 274739024, 90978845, 37887329, 672739, 302512913, 148114207, 10814348, 1382329, + 136930495, 160715504, 48026359, 1927533, 75, 7203541, 57955609, 2805120, 192, 149018156, 67112088, 4753327, 197, 190814815, + 54215209, 7194598, 736, 210469749, 76385657, 10212071, 1936, 92458298, 87894865, 12372587, 5080, 204107352, 98948436, 16791884, + 12377, 243791922, 91606224, 19424153, 32755, 257363729, 115058333, 18705143, 85153, 172194035, 128464133, 27876837, 215340, 259376456, + 53376398, 34600955, 453387, 292847603, 137644432, 41574487, 696675, 76275542, 153754823, 43339476, 1418771, 241111218, 168838782, 53725400, + 1999599, 122, 120195308, 62748878, 3783739, 315, 180523984, 28824835, 5944655, 457, 202854154, 70627857, 8686464, 1200, + 37934366, 82941131, 10435593, 3147, 185284916, 93761987, 14665355, 7241, 227631176, 72880182, 17164162, 20294, 249647054, 108514717, + 6981075, 53232, 125493982, 122471631, 24986096, 136790, 239682143, 18924908, 31443864, 297427, 283510643, 119490763, 38168020, 471038, + 8865296, 147029062, 35906227, 1015464, 209916624, 162208056, 49544211, 483117, 77, 81714059, 58586030, 2945885, 129, 170015054, + 63520126, 4834913, 282, 195012767, 64721904, 7288374, 744, 212116922, 77882384, 8374298, 1953, 154329428, 88662377, 12727018, + 5123, 216111391, 52011309, 15050268, 12546, 241401256, 101288405, 19604783, 33080, 70585117, 116706523, 22006056, 85953, 219834721, + 129372461, 28413208, 123619, 272231923, 99189944, 34948871, 310647, 296919358, 139519329, 21305182, 706238, 161934307, 155568358, 45569740, + 1437741, 281385032, 46581146, 50810591, 2232644, 83, 154046268, 59312080, 3876031, 166, 186751263, 55507625, 6032741, 462, + 204816516, 72810490, 5293904, 1212, 114084428, 83767717, 9376269, 3174, 204466343, 15985341, 13082298, 7758, 232832298, 92281092, + 17344069, 20503, 8270136, 110719202, 18668739, 53716, 187869826, 118278578, 25585697, 33693, 259062408, 77295501, 31812234, 200634, + 288424598, 131075468, 38463069, 478959, 105985193, 148877275, 41272224, 1029735, 255922420, 163322237, 46905938, 1652818, 312320773, 131234044, + 55294675, 3035358, 142, 178673915, 39237298, 4917197, 287, 197449333, 67604932, 7371738, 752, 76638199, 78838563, 7810001, + 1971, 186945713, 89283630, 11292727, 4746, 223701674, 82032122, 15230066, 12688, 243815061, 104610206, 12395192, 20810, 146952525, + 112564149, 22797084, 54403, 245899942, 40178270, 28810026, 127900, 278940142, 120509111, 35245280, 315991, 42832845, 142426230, 36131791, + 716507, 223010106, 156839477, 43090927, 1074856, 297946169, 107576990, 51325020, 2322243, 91, 168614652, 12634811, 3950083, 178, + 189948901, 62493730, 5030746, 467, 22344760, 73973106, 6339351, 1223, 162750335, 84419228, 9614938, 1304, 214779978, 62995829, + 13262901, 7857, 235859452, 93671468, 2203050, 12884, 97287190, 107068133, 20093065, 33801, 226155435, 119049489, 26002928, 80122, + 268684992, 108855238, 32118740, 204190, 291522596, 135456506, 25500580, 485888, 181481728, 150374054, 39489518, 1042806, 280253532, 68486432, + 47471816, 1740868, 320242000, 155920431, 55698309, 3103483, 110, 176884113, 55828748, 4041296, 291, 192927097, 69144572, 4927237, + 760, 129731523, 79554914, 8078801, 1991, 203465252, 33813322, 11469501, 3021, 227695478, 87511849, 15386576, 7972, 54634678, + 101440381, 17374123, 20982, 199732531, 113412184, 23270266, 47279, 257127726, 88259875, 29130018, 130194, 276157702, 127976485, 13848478, + 320561, 131411239, 144139193, 35785278, 725843, 262634841, 20247060, 43731917, 1259166, 309087907, 138237959, 51749431, 1817394, 57, + 169054391, 45115996, 3192680, 181, 185870575, 64533219, 973752, 473, 98354089, 74779974, 6679461, 1236, 189269145, 84878166, + 9794863, 1861, 219808952, 79287832, 13417225, 4939, 237883013, 95793065, 14569081, 12992, 164796979, 107979398, 20664323, 34072, + 245683243, 57870010, 23767280, 81845, 267334899, 120488116, 29561982, 207123, 88467541, 137661407, 31915060, 492157, 235029743, 151475708, + 40199442, 871614, 296444203, 116294012, 47923205, 1329445, 324955032, 160519129, 31179354, 2462899, 113, 179058080, 59627513, 4093509, + 295, 49458795, 70086597, 5452769, 769, 170031181, 75766216, 8265055, 1090, 210891860, 66765508, 11594844, 3055, 230160183, + 90363871, 8260883, 8041, 132153408, 102485430, 18172767, 21149, 224493674, 17505830, 21252224, 50997, 258032262, 110132389, 26722506, + 131725, 25384006, 131070361, 27834829, 324651, 199263043, 145341411, 36676563, 162329, 284023427, 84796478, 44219497, 949802, 315306647, + 150519713, 4106788, 1854833, 70, 171893623, 54252262, 3237419, 184, 187220526, 65609106, 4289872, 302, 149917731, 71164096, + 6878085, 791, 200975554, 45789840, 9941717, 1889, 222307316, 84438185, 13553083, 4983, 81872695, 97041035, 14023409, 13097, + 203787770, 108706207, 18831345, 31359, 249011680, 94939486, 24025283, 83017, 270350800, 124210558, 19824573, 209707, 166135016, 139074189, + 33227886, 330793, 266374856, 43491841, 40714045, 655860, 305006304, 140048265, 48302771, 1360644, 61154292, 164525610, 47059997, 2501078, + 115, 180547737, 57262056, 2791792, 190, 116339309, 66664555, 5659101, 492, 189174443, 22999155, 8410966, 1167, 214727656, + 77771653, 11727010, 3084, 23430490, 91621202, 11852768, 8107, 182678903, 103282954, 16548652, 16263, 238000802, 71346375, 21511028, + 51810, 261893307, 117485375, 2852615, 133332, 115437205, 127500921, 29785041, 213556, 243484862, 6577533, 37257058, 438819, 295042161, + 123175623, 44618460, 974212, 319149561, 156746826, 37701399, 1886604, 190150290, 173673234, 52873213, 3271324, 119, 73267599, 62368405, + 4548605, 307, 176983656, 71660689, 7024431, 720, 206406804, 68878667, 8604533, 1909, 217963432, 86425705, 9114969, 5018, + 148180452, 97934960, 14458838, 13200, 224866284, 46644752, 19101187, 32159, 253735101, 109097170, 24247570, 52802, 56960726, 121331414, + 26451324, 135698, 213345879, 134635421, 33914429, 283344, 282573468, 98216517, 41124679, 675573, 309951259, 149096975, 17022131, 1386332, + 150583646, 166753396, 48378190, 2535171, 75, 21477899, 58072606, 3563875, 193, 157637687, 67193850, 5801062, 371, 197455732, + 58043927, 7211101, 1182, 210782283, 80939023, 1564971, 3112, 104454239, 92654072, 12443348, 8172, 208042620, 5757140, 16834795, + 19920, 244626993, 94128996, 21730825, 32811, 264392899, 115392337, 21745514, 85289, 184458435, 128630772, 30673931, 215689, 267627939, + 63359152, 37698713, 455589, 294421683, 139338032, 41625008, 993721, 91890078, 159723995, 43929673, 1914598, 249355036, 174955270, 53861360, + 2656811, 122, 130330904, 62836174, 4695922, 318, 183152386, 36612123, 5960266, 733, 203235811, 75132831, 8701966, 1927, + 52138614, 87590289, 10533040, 5059, 190675135, 98641484, 14710868, 7518, 234719642, 81861708, 19324663, 20331, 256625934, 108989996, + 11435210, 53314, 139268384, 122662362, 27641588, 137003, 248680527, 30731116, 31510859, 299281, 284520315, 126407384, 38270778, 690328, + 26262957, 152934628, 37580569, 1408579, 219885707, 168244575, 49711739, 1401896, 78, 93489072, 58677251, 2963027, 199, 172027824, + 4691234, 4849629, 453, 195502050, 69257217, 7302907, 1194, 7765431, 82419506, 8618819, 3138, 162183933, 88774224, 12773998, + 5131, 223393152, 58974133, 17063889, 12572, 248339264 +]; +/// NMOS drain current in pA at the first 1000 held-out R2 points of corner mos_ff, the points of the tt corner's TT_R2_N (deck psp103_idpa_ff.cir, block r2_n; the first 200 are FF_R2_N). +pub const FF_R2K_N : [1000]u32 = [ + 247834537, 64019832, 11345863, 1718, 276301757, 102163756, 16223017, 5972, 115769829, 120485182, 15695052, 18354, 262335880, 137511704, + 22620738, 18165, 310939735, 118122911, 30111070, 72458, 340172565, 150501853, 23572594, 227109, 217355116, 171410460, 37897482, 604265, + 332553521, 70090615, 48517511, 623999, 376701144, 174222305, 59402080, 1625322, 89839556, 205309216, 54403619, 3258932, 311263625, 228234628, + 70521337, 2616658, 402774613, 154731883, 84559700, 5602719, 444262525, 233930045, 32689810, 9278097, 906, 265055617, 93466570, 13715477, + 3321, 48185562, 112495484, 12808831, 10467, 234082813, 129473981, 19342072, 8384, 297030942, 95158208, 26401681, 39508, 328426455, + 140648950, 8192154, 131950, 158362991, 162263299, 33186521, 373749, 309167114, 13771345, 43525483, 360381, 362752664, 156163536, 54050851, + 1081240, 6912635, 194521527, 43962416, 2376779, 262601040, 218188598, 64092067, 4329762, 382179511, 106900414, 77990038, 4201691, 430307448, + 217829351, 91700896, 7440205, 135695558, 253564274, 83695700, 11441124, 1828, 278775250, 104579396, 9950617, 5935, 196231071, 121559429, + 16305558, 17658, 281682114, 61059468, 22932689, 21019, 316432033, 130195383, 30216836, 74970, 89537547, 153134801, 28606443, 224214, + 279192382, 172641639, 38751115, 194670, 347744971, 130666372, 48917394, 683147, 382013118, 183281211, 25289509, 1669316, 202998896, 208115142, + 57755449, 3270644, 357228135, 48388191, 71593471, 3024577, 415511889, 197507504, 85051860, 5828333, 51961678, 241680316, 70373426, 9396883, + 993, 267992457, 96700310, 4667877, 3345, 146979447, 113766816, 13511599, 10138, 263798198, 15710999, 19705321, 10899, 304076896, + 118172685, 26551278, 41787, 12927831, 143989700, 23743550, 131278, 239941938, 163714187, 34194787, 7811, 331037836, 94220793, 44005086, + 408334, 369339486, 171118229, 54224851, 1123178, 133392549, 197979971, 51369183, 2393901, 325749470, 219798237, 65368847, 2065676, 399465751, + 169749075, 78584698, 4437838, 436552913, 229123784, 48623207, 7579038, 249137400, 257113024, 88770514, 11482635, 1873, 86829501, 106092595, + 10959367, 5797, 241429690, 122273150, 16720371, 5504, 291170274, 102067987, 23125917, 22874, 320040466, 134759557, 15735636, 75415, + 189611832, 154853453, 29854111, 218269, 311509767, 46231566, 39316971, 230590, 356185789, 156916077, 49152218, 720982, 55660388, 187724624, + 44242536, 1689277, 285322054, 210008704, 59311276, 1149844, 381487711, 131324070, 72302417, 3263167, 423253418, 215320988, 15530308, 5983110, + 179139112, 246085143, 80526032, 9460933, 1039, 17775422, 98528987, 8634951, 3300, 211677716, 114616963, 13978223, 1023, 277367040, + 77481080, 19941601, 12286, 308453387, 125291581, 26613413, 42660, 128317384, 146048805, 25718049, 128445, 287306544, 164702709, 34855566, + 123356, 342319173, 138208637, 44303838, 440656, 373681276, 177239949, 33293239, 1143955, 234187533, 200228031, 53407487, 2389465, 360453740, + 81264011, 66207496, 2297665, 409353254, 199059276, 78951895, 4603735, 100719953, 234822582, 71003817, 7662492, 331917083, 259512377, 91059988, + 6218456, 1869, 171593114, 107099826, 11478940, 5589, 262009765, 41359590, 16998782, 6460, 296626010, 115182486, 23226881, 23804, + 57770454, 137281803, 21724095, 74350, 255812315, 156019611, 30622655, 60272, 327337006, 111053088, 39682869, 256555, 361464149, 166297215, + 13053534, 741094, 172158114, 190435869, 47618212, 1689648, 334614652, 21141629, 60301368, 1533227, 394580787, 177970324, 72756421, 3434491, + 15769279, 223169811, 57064923, 6082275, 280196636, 248941751, 83650684, 349716, 1053, 119958129, 99721430, 9222410, 3205, 243834438, + 115168036, 14297445, 3319, 284441416, 103247393, 20080689, 13103, 311417894, 128518637, 17278989, 42489, 214345083, 147425163, 26618949, + 124087, 310519495, 72413213, 35292297, 142595, 348911119, 154357408, 44464425, 459030, 100603698, 180599029, 41781674, 1147665, 301606436, + 201768477, 54583694, 954921, 378485496, 148527472, 66756456, 2467575, 415595857, 210819784, 33582686, 4714411, 217758110, 238287960, 76210407, + 7701365, 382921778, 57924965, 92479302, 7207955, 1832, 220598738, 107764800, 11837098, 1624, 271695784, 86410115, 17174735, 7106, + 300165118, 119690612, 8527981, 24022, 161543060, 138914172, 22842994, 72211, 290586492, 22679670, 31134742, 75885, 335873477, 140080966, + 39899158, 272424, 21524522, 170659235, 34971184, 747033, 258994405, 192251408, 49050841, 201379, 360305277, 107811008, 60955278, 1693247, + 402374677, 197116085, 73019256, 3552004, 145627419, 227499363, 68433362, 6136847, 348602545, 250911763, 85367046, 5418644, 430373137, 189146182, + 100514958, 9616838, 3079, 258008491, 60002960, 14508522, 3787, 288754090, 110633977, 20143226, 13446, 98131140, 130477357, 19285437, + 41569, 265434569, 148356632, 27212343, 38839, 322100515, 120528477, 35566194, 155501, 353199875, 160503291, 23186770, 466218, 205351882, + 182758749, 43691439, 1137689, 338769884, 55723480, 55355636, 1098971, 388539737, 180628381, 67093885, 2586829, 65641261, 216487712, 59081312, + 4780934, 305048194, 240610290, 78370469, 3276512, 410926948, 146727015, 93420053, 7635486, 1772, 242630849, 22048413, 12081035, 1977, + 277111804, 100878759, 17270810, 7448, 26098372, 122097860, 15873470, 23724, 232233519, 140015241, 23526650, 11819, 307147375, 91505580, + 31468146, 85679, 341114814, 149880950, 1480522, 279915, 141027397, 173271474, 38467084, 741804, 311917977, 193502220, 49959353, 668291, + 373797301, 158592979, 61373175, 1808785, 407472433, 205088293, 44229342, 3626405, 250822811, 230271783, 71456426, 6155132, 387937445, 92842579, + 86480586, 5891847, 441974591, 224093945, 101025294, 9890699, 1010, 265116447, 88948906, 14636421, 4077, 291647156, 113743464, 11696259, + 13436, 188426468, 131778538, 20078448, 40130, 290199186, 50773963, 27607351, 45666, 328697364, 138164940, 35715509, 162487, 67746439, + 163757637, 33185996, 464717, 277206108, 184228907, 44766737, 367050, 357649842, 127258633, 55860657, 1205010, 394777931, 192961523, 19008405, + 2664868, 185970059, 219864672, 64530176, 4811581, 359582716, 29178167, 79695071, 4384537, 426314646, 199825479, 94037769, 7935385, 375, + 252549305, 71116264, 12238468, 2199, 280577277, 105345174, 1992124, 7552, 133223771, 123642495, 16866993, 23061, 269787457, 140750523, + 23985750, 23582, 315790706, 123728134, 31667638, 91632, 344637983, 154159259, 26552602, 280920, 232275209, 175007124, 39775286, 727895, + 339240071, 84275469, 50559665, 758748, 381647016, 179347536, 61613870, 1886257, 111899139, 209337597, 57226750, 3665841, 323571377, 232169937, + 73058440, 3085892, 409043270, 166472801, 87218648, 6212449, 449264504, 238987436, 42793842, 10074803, 1166, 269360506, 96725463, 14698544, + 4210, 67919482, 115599182, 13884352, 13173, 243532828, 132653561, 20604840, 11674, 302123699, 103096730, 27857762, 50358, 332929056, + 144358555, 13643604, 164808, 176144415, 165826110, 34975462, 456592, 317127290, 30412870, 45473025, 448522, 367888371, 162544752, 56170635, + 1277983, 30555119, 198600209, 47912878, 2709459, 277737055, 222107100, 66558324, 980996, 389280804, 121685608, 80570102, 4718839, 435468323, + 223570322, 3260207, 8142628, 605, 257922591, 87324402, 12328127, 2324, 282959134, 107633384, 11036772, 7482, 208435285, 124678630, + 17465661, 22151, 287201567, 72061288, 24287661, 26993, 320991433, 134078735, 31763009, 94351, 109705943, 156668233, 30329181, 277048, + 289118644, 176195098, 40602755, 248346, 353182982, 139352413, 50943477, 823766, 386709533, 187477255, 31845219, 1932569, 220987117, 212021823, + 60163381, 3676595, 365632536, 65754076, 74093310, 3451292, 420906846, 204580716, 87690210, 6438446, 75904082, 246136389, 75272911, 10189330, + 1268, 272178616, 99714609, 6878821, 4224, 162214962, 116824784, 14568780, 12735, 270095011, 29442370, 20958752, 14101, 308725679, + 122577524, 27997347, 52918, 34926382, 147502925, 25595945, 163629, 252524159, 167225049, 35949626, 97421, 336978244, 105957423, 45935831, + 502712, 374120579, 175589454, 5035959, 1323027, 153852512, 201883590, 53773042, 2726687, 336081502, 704431, 67787662, 2405890, 405219527, + 179087870, 81142205, 4958011, 441417076, 233765995, 56160897, 8278764, 267236721, 261309934, 91773429, 12363604, 2369, 104752083, 109089100, + 11913870, 7290, 249112461, 125365329, 17872022, 7179, 295965981, 107857339, 24471461, 29130, 324449429, 138272619, 18911920, 94615, + 205175231, 158322299, 31512099, 269594, 318304130, 60832412, 41150868, 289686, 361092844, 162045893, 51164558, 865169, 78053797, 191641447, + 46935361, 1953470, 298209942, 213846217, 61649342, 1521632, 387810232, 143657088, 74777234, 3696244, 428230247, 220337394, 25972379, 6592318, + 199764716, 250306834, 83614484, 10248520, 1318, 37799840, 101464979, 9493916, 4155, 221579094, 117644174, 15028039, 3023, 282417599, + 85888785, 21186362, 15735, 312896025, 128854193, 4742945, 53792, 146638013, 149477401, 27282374, 159898, 295521932, 5457291, 36591272, + 157775, 347422336, 144808155, 46220550, 538761, 378277027, 181202834, 37455221, 1345297, 249981233, 204043281, 55667779, 2721393, 367691147, + 96552778, 68597924, 2647099, 414492478, 204851761, 81491612, 5125047, 123377407, 239093829, 74553275, 8358747, 345049753, 263619434, 93938893, + 7169623, 2357, 184406633, 110060693, 12427012, 7015, 267526167, 52801181, 18142712, 8325, 301122358, 118937380, 24563212, 30144, + 78303013, 140674185, 23221713, 93084, 266193779, 159447280, 32259040, 81108, 332760901, 120225010, 41502479, 319283, 366116726, 170380206, + 19948259, 887077, 190739300, 194233463, 49813424, 1953583, 343293057, 38821976, 62605984, 1803325, 399963941, 185292446, 75212087, 3871034, + 39960509, 227537909, 62195264, 6689589, 296143880, 253046380, 86482187, 2732305, 1329, 135765777, 102614863, 10068928, 4027, 250223769, + 8555434, 15340721, 4304, 289025599, 107627330, 21316922, 16661, 2249694, 131883595, 19005723, 53421, 227542444, 150804386, 28155190, + 154358, 316490896, 84671814, 37013436, 180336, 353646996 +]; +/// PMOS drain current in pA at the first 1000 held-out R2 points of corner mos_ff, the points of the tt corner's TT_R2_P (deck psp103_idpa_ff.cir, block r2_p; the first 200 are FF_R2_P). +pub const FF_R2K_P : [1000]u32 = [ + 168111640, 41317402, 3109386, 135, 184718963, 61537958, 4855173, 333, 83122482, 71217851, 6253226, 817, 184548057, 80591085, + 9066771, 1848, 215540590, 77039878, 12337951, 4622, 233221582, 94675950, 12525578, 11459, 156353504, 106180281, 18717442, 28330, + 237688958, 49085792, 23778961, 64344, 266464282, 116022680, 29211489, 155654, 66313106, 133562818, 30989069, 359212, 226312263, 146658011, + 38914369, 626272, 292617914, 108133159, 46157067, 1316263, 320333537, 159175533, 21844619, 2359813, 82, 177342958, 56512378, 3843407, + 202, 35007672, 66431826, 4986052, 496, 165072094, 75654804, 7541442, 998, 206286634, 63190296, 10522035, 2786, 225250668, + 88729473, 4778882, 6910, 114416480, 100476958, 16266716, 17103, 221117613, 9820619, 21097917, 38961, 256866608, 104818198, 26254188, + 95824, 5162533, 126803936, 25732832, 227592, 190747165, 140164035, 35292499, 509615, 277641137, 75458973, 42355049, 918574, 310410200, + 148813318, 49611506, 1743438, 100565708, 169882275, 51018878, 2977028, 123, 184647282, 61739824, 3822241, 302, 138838630, 70837796, + 6174412, 744, 196073288, 41501294, 8868079, 1679, 217188841, 82504639, 12058224, 4167, 65257315, 94843243, 13928944, 10318, + 199744190, 105738608, 18574344, 23176, 246554403, 88707600, 23455844, 58434, 268049766, 119834257, 15669699, 141524, 147715030, 133717039, + 31766790, 328870, 259344372, 34632322, 38693830, 620415, 299915730, 135626675, 45714205, 1250721, 38891383, 162239747, 43754908, 2249954, + 75, 177504148, 57121317, 2024566, 185, 104598900, 66139639, 4962280, 452, 184104125, 10945603, 7374695, 1011, 208958957, + 75463655, 10272517, 2513, 9539117, 89259497, 11590593, 6223, 171776830, 100130083, 16206805, 1058, 235034878, 64932487, 20817515, + 35414, 259313715, 112362742, 25858057, 86876, 97641590, 127297917, 28275565, 207279, 236190818, 139783493, 35172041, 404643, 288519499, + 117354852, 41961694, 869752, 312721939, 154227506, 31330076, 1654452, 182725105, 170369178, 52530032, 2842588, 113, 62404792, 61558427, + 3899702, 276, 168982639, 70345161, 6039846, 602, 200426015, 66111578, 8648298, 1517, 217689945, 83686997, 8204312, 3754, + 136100059, 94615253, 13991653, 9289, 221460358, 32444520, 18339879, 21370, 250312891, 103695702, 23095531, 52888, 41156112, 120872494, + 24568932, 128392, 206613449, 133462429, 31785836, 230648, 275678169, 91620755, 38355365, 586131, 303311444, 145459061, 10402714, 1180736, + 131846120, 163211343, 47840616, 2138254, 70, 12949513, 57089683, 2976374, 170, 148665917, 65707687, 4860700, 128, 191341903, + 51339980, 7184074, 915, 209906580, 78040795, 10010981, 2266, 92694732, 89188821, 11920262, 5604, 204472077, 99623589, 16023113, + 12827, 240871959, 92238189, 20493980, 32033, 260264152, 114375219, 19256760, 78607, 169616029, 127207085, 28526333, 188398, 260519549, + 57411589, 34896102, 383387, 293528200, 135117009, 41508835, 816614, 74707397, 155976513, 42617510, 1563919, 243063079, 170277950, 52724086, + 2136529, 105, 121100854, 61196619, 3833413, 257, 181233327, 28158933, 5877712, 552, 202039198, 72104868, 8415535, 1369, + 42181325, 83840880, 9967900, 3382, 182233563, 94184635, 13866693, 7200, 230684627, 75187290, 18054311, 19340, 251856491, 107668024, + 8086598, 47778, 125128685, 121006924, 25372233, 116282, 241745327, 15175302, 31584015, 244074, 283156823, 121582938, 37946401, 547410, + 11827804, 148564043, 35192093, 1109521, 204851419, 163346838, 48441954, 147358, 65, 85338495, 56811803, 2952774, 158, 169197503, + 65188705, 4726313, 333, 194008709, 65244911, 6979357, 827, 210061065, 78552587, 7993392, 2043, 152964386, 88849376, 11869004, + 5049, 219205945, 49928042, 15777088, 11653, 243292729, 100427996, 20142399, 28915, 73699240, 114843555, 22259625, 71026, 217708720, + 126826460, 28417944, 150638, 271838927, 102354032, 34534476, 356477, 295803265, 140772558, 21639410, 762540, 159391803, 156431879, 44196976, + 1473605, 280509234, 41708826, 52551693, 2211425, 98, 153647502, 60729801, 3726049, 191, 185673260, 55623845, 5700163, 500, + 202504189, 73285631, 4386279, 1235, 115789258, 83615543, 10026471, 3048, 205484151, 15962700, 13662460, 7006, 234465059, 91844514, + 17736897, 17456, 15952135, 108683297, 18880203, 43110, 186858322, 120747660, 25394431, 36150, 258975697, 75162653, 31274379, 226461, + 286543573, 132170956, 37491081, 507964, 107161686, 149502498, 39853595, 1038776, 254795032, 163074329, 48412313, 1596719, 314458003, 132360072, + 56403422, 2871925, 157, 176764418, 39728170, 4574900, 303, 194917211, 67952097, 6766127, 747, 70940302, 78478380, 8331030, + 1842, 187999110, 88359333, 11710057, 4177, 225187450, 80018760, 15494317, 10524, 244200289, 102459524, 13296987, 26072, 148392879, + 114742315, 22505278, 64109, 243596929, 39440119, 28166948, 141048, 276906729, 121814875, 34119060, 328906, 48761719, 142504133, 34879642, + 709125, 222480293, 156323565, 44385038, 1005575, 300210933, 103370956, 52210442, 2157455, 96, 166754147, 15049991, 3599580, 183, + 187253449, 62312467, 5513647, 453, 19103081, 73428673, 6758319, 1115, 164780118, 83198663, 9918822, 1465, 215126961, 61850347, + 13414921, 6339, 235967908, 96025769, 916917, 15736, 102466221, 108800547, 19730103, 38865, 224269418, 120275738, 25212300, 86411, + 266662808, 107825574, 30901072, 207995, 288011621, 135332310, 27106124, 469258, 182833915, 149614636, 40451049, 969509, 283219893, 66088581, + 48150934, 1574198, 320958935, 154611774, 55914310, 2769054, 110, 179431757, 55602471, 4414044, 274, 195043025, 68448398, 5107882, + 676, 134121578, 78149070, 8286685, 1664, 203677310, 35063923, 11498560, 3815, 227584536, 89019633, 15188116, 9489, 49706386, + 102904709, 17001708, 23490, 199246481, 114364362, 22409382, 50214, 255421633, 87484704, 27838594, 129189, 279146330, 127769930, 12262375, + 302028, 135947641, 142930108, 36563911, 657238, 262148029, 21065070, 44223663, 1111009, 309724830, 138532698, 51771755, 2076713, 47, + 171302630, 45547940, 3463160, 167, 187684073, 63499674, 1012204, 410, 95438085, 73208686, 6809827, 1008, 189764422, 82666664, + 9744604, 2291, 218938078, 80479678, 13140967, 5719, 236421316, 97021656, 13914015, 14175, 167041121, 108539425, 19755042, 35017, + 242519993, 58774470, 24932765, 79216, 270044471, 119331406, 30486356, 190068, 82389467, 136239909, 32574510, 432002, 235445297, 149333061, + 40425113, 750169, 297282926, 116138487, 47768342, 1514108, 324071984, 162573984, 28351751, 2655667, 101, 180302754, 58491074, 4248024, + 249, 49177999, 68373277, 5480414, 612, 171689017, 77678082, 8151842, 1335, 209830478, 68139018, 11256830, 3447, 228450372, + 91083591, 7782478, 8549, 127089396, 102795839, 17241728, 21154, 226874847, 21583921, 22184253, 48120, 260560584, 108914324, 27462279, + 117642, 22744925, 129489054, 27807179, 276400, 201809144, 142807281, 36747331, 274943, 282933658, 85656597, 43905057, 1070547, 314243138, + 152651917, 2232248, 1984757, 61, 172852226, 53152753, 3321566, 152, 187566627, 63634313, 4273348, 372, 147369099, 72808157, + 6718322, 918, 199897879, 48686486, 9535077, 2077, 220401492, 84934152, 12849990, 5155, 79747985, 97124388, 14850007, 12764, + 206907017, 108076380, 19593054, 28898, 250448368, 94337969, 24596552, 71992, 271468381, 122568813, 19442140, 173116, 160704340, 136331152, + 33172378, 396569, 265610452, 46879530, 40182139, 732767, 303903126, 140351290, 47311347, 1441774, 56650493, 165249152, 46541169, 2537153, + 93, 180401996, 58974603, 2850172, 227, 115251021, 68056708, 5441066, 557, 188461340, 20384354, 7974558, 1251, 212207014, + 78161008, 10996314, 3109, 25682887, 91508194, 12507418, 7698, 180790324, 102423325, 17158097, 12735, 239280983, 72734574, 21890346, + 43730, 262766162, 115243537, 3253540, 106785, 112409165, 129887918, 29653563, 252273, 243858223, 510206, 36598611, 484740, 292760900, + 123623977, 43496638, 1015819, 316348450, 157335421, 35845057, 1887782, 195996074, 173250377, 54356705, 3177633, 139, 75069206, 63422238, + 4315438, 339, 174302871, 72299781, 6573516, 750, 203750177, 69605544, 9304610, 1875, 220818252, 85914688, 9632340, 4644, + 147161105, 96864213, 14876419, 11491, 226320062, 42484978, 19344474, 26430, 253829509, 106960079, 24223969, 65208, 57545063, 123448064, + 26022861, 157300, 216070477, 136043185, 33151362, 301500, 280338535, 99988522, 39827330, 693506, 306995127, 148791104, 17237157, 1364567, + 146854396, 166084433, 49684940, 2416514, 85, 27434077, 58901011, 3333094, 208, 155528897, 67607303, 5329457, 368, 194819311, + 56570737, 7773626, 1132, 213032423, 80274771, 2693263, 2802, 105722252, 91394479, 12741042, 6932, 210352823, 3885894, 16959282, + 15900, 244505381, 96417940, 21554437, 39568, 263604141, 116956178, 21383066, 96724, 181046570, 129753245, 29833083, 229750, 265862233, + 67975481, 36304452, 459117, 297307687, 138942192, 43030522, 956340, 91299675, 158857198, 44648992, 1788954, 252927051, 173114598, 54485165, + 2464806, 128, 129988003, 63040563, 4238964, 315, 185014376, 35703186, 6401512, 683, 205175675, 74420203, 9061097, 1692, + 56995639, 86005569, 10733484, 4183, 189646042, 96412753, 14734478, 9351, 234528903, 81098290, 19046404, 23917, 255210157, 110298750, + 12158591, 58947, 138474761, 123520976, 26626728, 142665, 248151086, 27745876, 32928337, 295423, 287096358, 126416579, 39404520, 649435, + 29879471, 151482983, 38052927, 1285816, 216616698, 166159342, 50158350, 1085844, 79, 96363059, 58599636, 3297386, 193, 173569677, + 5942299, 5185705, 412, 197179010, 67874036, 7558524, 1022, 1658903, 80681392, 8771809, 2525, 162328011, 91030161, 12668793, + 6244, 223430658, 58102106, 16700569, 14420, 246678639 +]; +/// NMOS drain current in pA at the 576 cell midpoints of the 62.5 mV grid, corner mos_ff, Vgs = (i + 1/2) * 62.5 mV at index i * 24 + j, Vds = (j + 1/2) * 62.5 mV (deck psp103_idpa_ff.cir, block mid_n). +pub const FF_MID_N : [576]u32 = [ + 766, 1155, 1294, 1420, 1548, 1675, 1800, 1922, 2041, 2157, 2270, 2379, 2486, 2589, + 2690, 2789, 2884, 2978, 3069, 3158, 3246, 3331, 3415, 3497, 5104, 7717, 8667, 9544, + 10429, 11313, 12184, 13036, 13868, 14678, 15465, 16231, 16975, 17699, 18404, 19090, 19759, 20411, + 21047, 21668, 22275, 22869, 23449, 24018, 33353, 50788, 57103, 62931, 68824, 74705, 80505, 86186, + 91729, 97127, 102379, 107486, 112454, 117286, 121991, 126572, 131036, 135389, 139636, 143782, 147833, 151793, + 155667, 159459, 188857, 296382, 331537, 362503, 393459, 424170, 454345, 483824, 512533, 540450, 567578, 593937, + 619556, 644465, 668698, 692287, 715265, 737661, 759507, 780829, 801654, 822008, 841915, 861401, 716598, 1237344, + 1378515, 1480866, 1578862, 1674278, 1766923, 1856662, 1943489, 2027482, 2108758, 2187451, 2263701, 2337648, 2409423, 2479153, + 2546953, 2612934, 2677197, 2739837, 2800944, 2860603, 2918895, 2975899, 1722993, 3418539, 3907147, 4151462, 4360159, 4556469, + 4743666, 4922757, 5094405, 5259185, 5417621, 5570191, 5717333, 5859440, 5996868, 6129940, 6258948, 6384155, 6505802, 6624110, + 6739281, 6851505, 6960963, 7067828, 3078290, 6858686, 8310270, 8880661, 9264215, 9599276, 9909912, 10202449, 10479753, 10743686, + 10995673, 11236886, 11468311, 11690799, 11905091, 12111834, 12311599, 12504896, 12692177, 12873853, 13050295, 13221848, 13388832, 13551555, + 4634313, 11168215, 14457589, 15826453, 16545471, 17086241, 17560264, 17995672, 18402459, 18785726, 19148787, 19494097, 19823598, 20138882, + 20441290, 20731964, 21011891, 21281932, 21542845, 21795302, 22039910, 22277218, 22507736, 22731947, 6285109, 15950533, 21826612, 24748930, + 26179733, 27077672, 27787304, 28409626, 28977679, 29505424, 30000473, 30467799, 30911028, 31332973, 31735909, 32121719, 32491994, 32848094, + 33191199, 33522340, 33842434, 34152304, 34452703, 34744335, 7959069, 20923684, 29847097, 35082861, 37841889, 39412645, 40504773, 41391329, + 42168906, 42875492, 43529141, 44140180, 44715417, 45259774, 45777031, 46270208, 46741782, 47193828, 47628110, 48046151, 48449279, 48838674, + 49215400, 49580439, 9608589, 25901434, 38088471, 46181845, 50959279, 53704605, 55453282, 56747136, 57815599, 58753127, 59602286, 60385156, + 61114903, 61800297, 62447670, 63061850, 63646663, 64205226, 64740132, 65253576, 65747445, 66223387, 66682869, 67127221, 11202770, 30763111, + 46266256, 57514561, 64879142, 69389929, 72209434, 74152971, 75650780, 76903127, 78003017, 78996963, 79910835, 80760632, 81557164, 82308251, + 83019833, 83696596, 84342336, 84960195, 85552826, 86122505, 86671223, 87200757, 12722364, 35432385, 54201380, 68712330, 79030227, 85844279, + 90230146, 93170873, 95314340, 97014182, 98449523, 99711924, 100851088, 101896284, 102866224, 103773757, 104628224, 105436721, 106204831, 106937061, + 107637130, 108308173, 108952880, 109573609, 14156225, 39863186, 61784941, 79540913, 92989814, 102502118, 108934611, 113287164, 116371720, 118712934, + 120609607, 122224485, 123647440, 124930570, 126106058, 127195111, 128212538, 129169185, 130073318, 130931433, 131748770, 132529649, 133277705, 133996070, + 15498815, 44030218, 68954411, 89860428, 106477297, 118921450, 127788731, 133970359, 138344821, 141581329, 144113524, 146199331, 147988166, 149567885, + 150992232, 152295775, 153501930, 154627319, 155684238, 156682097, 157628306, 158528844, 159388644, 160211870, 16748442, 47922418, 75678123, 99593710, + 119321521, 134792822, 146358247, 154729643, 160752702, 165180356, 168568325, 171281874, 173547367, 175502949, 177234168, 178795734, 180224080, 181544498, + 182775245, 183929963, 185019156, 186051126, 187032588, 187969097, 17906010, 51538400, 81945039, 108704673, 131427931, 149918883, 164324100, 175155072, + 183151672, 189078355, 193575280, 197109151, 199992773, 202427396, 204541389, 206417744, 208111564, 209660652, 211091843, 212424814, 213674429, 214852214, + 215967323, 217027194, 18974139, 54883255, 87757855, 117184030, 142753243, 164186447, 181472438, 194933453, 205164418, 212878317, 218749309, 223322101, + 226993460, 230035077, 232627714, 234891095, 236905489, 238725908, 240391084, 241929071, 243360746, 244702052, 245965450, 247160900, 19956537, 57966294, + 93128273, 125039870, 153287719, 177541474, 197674020, 213845037, 226493790, 236238491, 243737472, 249578722, 254228172, 258027156, 261214499, 263953900, + 266357341, 268502257, 270443183, 272219402, 273859879, 275386479, 276816077, 278161977, 20857565, 60799453, 98073739, 132291374, 163043192, 189969855, + 212862592, 231749789, 246923035, 258883371, 268233351, 275566525, 281394101, 286117547, 290033747, 293354774, 296229875, 298764033, 301031795, 303086923, + 304968917, 306707392, 308324994, 309839388, 21681925, 63396178, 102615156, 138964576, 172045056, 201483632, 227016427, 248570379, 266307264, 280605461, + 291985412, 301012500, 308215237, 314038665, 318831498, 322854528, 326297700, 329297847, 331953584, 334336565, 336499542, 338481973, 340313882, 342018514, + 22434444, 65770635, 106775300, 145089471, 180326908, 212111461, 240144066, 264276074, 284560928, 301260260, 314799206, 325689314, 334449243, 341547009, + 347371535, 352228164, 356348012, 359902461, 363017560, 365786095, 368276859, 370541428, 372618997, 374539802, 23119930, 67937172, 110577717, 150698035, + 187926945, 221892101, 252273889, 278869261, 301644701, 320757437, 336534584, 349417448, 359892000, 368427903, 375439098, 381267207, 386181666, 390388898, + 394044520, 397265117, 400138127, 402729538, 405089631, 407257169, 23743073, 69909948, 114045965, 155822883, 194885547, 230870013, 263446700, 292374950, + 317553626, 339050658, 357099651, 372063747, 384379468, 394498805, 402844165, 409782174, 415614604, 420580926, 424866791, 428614280, 431931605, 434901281, + 437586570, 440036379 +]; +/// PMOS drain current in pA at the 576 cell midpoints of the 62.5 mV grid, corner mos_ff, Vgs = (i + 1/2) * 62.5 mV at index i * 24 + j, Vds = (j + 1/2) * 62.5 mV (deck psp103_idpa_ff.cir, block mid_p). +pub const FF_MID_P : [576]u32 = [ + 95, 134, 139, 140, 141, 142, 143, 144, 145, 146, 147, 147, 148, 149, + 151, 152, 153, 154, 156, 157, 160, 163, 167, 174, 627, 881, 909, 918, + 923, 927, 931, 935, 938, 941, 944, 948, 951, 954, 957, 960, 964, 967, + 970, 974, 977, 982, 987, 993, 4158, 5853, 6038, 6094, 6129, 6157, 6181, 6204, + 6225, 6246, 6265, 6284, 6303, 6321, 6339, 6356, 6374, 6391, 6408, 6425, 6443, 6460, + 6477, 6496, 27114, 38467, 39768, 40195, 40472, 40695, 40890, 41067, 41232, 41387, 41535, 41677, + 41814, 41948, 42078, 42205, 42330, 42452, 42573, 42693, 42810, 42927, 43043, 43158, 153666, 227012, + 236977, 241016, 243832, 246113, 248077, 249826, 251417, 252889, 254265, 255563, 256797, 257978, 259112, 260207, + 261266, 262296, 263299, 264278, 265235, 266173, 267094, 268000, 584029, 967903, 1033721, 1061621, 1081299, 1097103, + 1110510, 1122257, 1132778, 1142354, 1151178, 1159388, 1167089, 1174358, 1181259, 1187841, 1194143, 1200199, 1206037, 1211678, + 1217144, 1222451, 1227614, 1232645, 1401585, 2711348, 3022249, 3131819, 3201914, 3256131, 3301084, 3339795, 3373979, 3404715, + 3432736, 3458557, 3482562, 3505038, 3526211, 3546258, 3565324, 3583526, 3600962, 3617713, 3633849, 3649429, 3664504, 3679120, + 2491549, 5464784, 6513162, 6854777, 7032473, 7158506, 7258896, 7343273, 7416506, 7481479, 7540069, 7593568, 7642910, 7688789, + 7731738, 7772174, 7810431, 7846780, 7881443, 7914606, 7946425, 7977034, 8006546, 8035059, 3726288, 8886815, 11378030, 12327919, + 12744643, 12998451, 13186145, 13337869, 13466399, 13578507, 13678302, 13768493, 13850969, 13927108, 13997942, 14064269, 14126718, 14185793, + 14241904, 14295393, 14346542, 14395592, 14442747, 14488183, 5017128, 12638048, 17165524, 19329963, 20290613, 20796996, 21130368, 21382625, + 21588286, 21763313, 21916446, 22053056, 22176710, 22289916, 22394504, 22491857, 22583048, 22668922, 22750161, 22827323, 22900868, 22971184, + 23038598, 23103389, 6307295, 16486573, 23395837, 27379737, 29386403, 30408580, 31011226, 31427049, 31746439, 32008167, 32231434, 32427054, + 32601747, 32759996, 32904957, 33038941, 33163696, 33280578, 33390658, 33494803, 33593719, 33687994, 33778121, 33864515, 7562185, 20288815, + 29720869, 35941414, 39551094, 41509304, 42617635, 43321163, 43822749, 44212328, 44532615, 44806061, 45045682, 45259664, 45453493, 45631037, + 45795129, 45947909, 46091037, 46225827, 46353336, 46474431, 46589831, 46700137, 8762051, 23960490, 35925514, 44590885, 50248022, 53631571, + 55604826, 56812947, 57621361, 58212447, 58675840, 59057753, 59383811, 59669323, 59924063, 60154627, 60365674, 60560617, 60742032, 60911916, + 61071844, 61223085, 61366678, 61503480, 9896820, 27455593, 41887828, 53052039, 61023434, 66263755, 69526180, 71551780, 72868110, 73784998, + 74469474, 75010670, 75457769, 75839386, 76173149, 76470514, 76739287, 76985005, 77211730, 77422527, 77619768, 77805324, 77980698, 78147115, + 10962553, 30752370, 47544883, 61166483, 71560805, 78955741, 83905403, 87116795, 89217451, 90647486, 91675945, 92457571, 93080659, 93596795, + 94037314, 94422113, 94764375, 95073196, 95355067, 95614768, 95855912, 96081291, 96293107, 96493125, 11959073, 33844125, 52869893, 68854152, + 81669038, 91374011, 98314394, 103070137, 106276878, 108466813, 110014148, 111156694, 112038878, 112747806, 113336900, 113839891, 114278817, 114668589, + 115019630, 115339449, 115633606, 115906312, 116160828, 116399724, 12888431, 36733247, 57857753, 76083243, 91248390, 103304327, 112421054, 119014051, + 123646759, 126879775, 129167981, 130834826, 132093344, 133079002, 133877396, 134543249, 135112329, 135608644, 136048770, 136444470, 136804305, 137134658, + 137440388, 137725264, 13753908, 39427375, 62516026, 82850463, 100258419, 114627863, 125999531, 134629546, 140962345, 145523168, 148803270, 151195332, + 152982829, 154358568, 155450052, 156341092, 157087237, 157725923, 158282916, 158776364, 159219336, 159621459, 159989965, 160330395, 14559397, 41936972, + 66859330, 89168744, 108694620, 125292401, 138916031, 149689158, 157924041, 164064956, 168590729, 171931985, 174431166, 176339602, 177833200, 179032275, + 180018639, 180848239, 181559828, 182180702, 182730449, 183223392, 183670203, 184078977, 15309015, 44273796, 70905879, 95059744, 116573085, 135288318, + 151105866, 164049801, 174309972, 182227640, 188229291, 192746619, 196158496, 198766425, 200795393, 202406932, 203714792, 204798623, 205714413, 206501902, + 207189679, 207798624, 208344233, 208838189, 16006867, 46449967, 74675353, 100549318, 123920945, 144631413, 162551453, 177635911, 189973260, 199799467, + 207464098, 213366774, 217894941, 221383697, 224100820, 226249355, 227978418, 229395720, 230578641, 231582903, 232448935, 233206388, 233877278, 234478175, + 16656912, 48477407, 78187617, 105664820, 130770575, 153351577, 173264951, 190420864, 204830283, 216634211, 226095995, 233559551, 239394082, 243947097, + 247516712, 250342608, 252609293, 254455032, 255981949, 257265084, 258359644, 259306484, 260136094, 260871468, 17262889, 50367522, 81461973, 110433508, + 137156144, 161485666, 183275951, 202410844, 218845842, 232643283, 243982609, 253139469, 260443682, 266233710, 270821739, 274474546, 277408154, 279791216, + 281752414, 283388687, 284772701, 285958948, 286988473, 287892407, 17828285, 52131030, 84516741, 114881648, 143111621, 169073163, 192623268, 213632470, + 232019060, 247784313, 261033166, 271970092, 280872091, 288050382, 293814097, 298444473, 302181606, 305221390, 307718774, 309793906, 311538903, 313024047, + 314302955, 315416666 +]; + +; --- corner mos_ss, the log-domain current tables (M3c-4, #11211) --------------------------------- +/// NMOS log-domain current table, corner mos_ss, IHP-Open-PDK 21133f21, L 0.45 um, 27 C: the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (Vgs = ix * 15.625 mV, Vds = iy * 31.25 mV), then the 97 words rv = nint(4096 / s(Vgs)) at Vgs = ix * 15.625 mV (deck psp103_idpa_ss.cir, blocks lam_n and r_n). +pub const SS_LG_N : [4851]u32 = [ + 4294967295, 226159, 223718, 223382, 225004, 228224, 232318, 236721, 241134, 245466, 249645, 253650, 257476, 261129, + 264615, 267943, 271124, 274165, 277077, 279867, 282544, 285115, 287587, 289967, 292260, 294473, 296610, 298677, + 300677, 302615, 304494, 306319, 308093, 309819, 311500, 313138, 314737, 316300, 317828, 319324, 320791, 322231, + 323648, 325046, 326429, 327803, 329174, 330554, 331953, 333421, 271803, 269229, 268848, 270429, 273617, 277687, + 282070, 286471, 290794, 294966, 298964, 302785, 306433, 309914, 313237, 316412, 319447, 322353, 325136, 327805, + 330367, 332830, 335199, 337482, 339682, 341806, 343857, 345841, 347762, 349623, 351428, 353180, 354882, 356538, + 358149, 359719, 361249, 362743, 364202, 365629, 367025, 368395, 369739, 371061, 372365, 373656, 374938, 376220, + 377526, 317522, 314870, 314469, 316038, 319220, 323291, 327678, 332087, 336419, 340601, 344610, 348441, 352097, + 355587, 358918, 362081, 365122, 368033, 370820, 373493, 376058, 378523, 380893, 383175, 385375, 387497, 389559, + 391539, 393454, 395308, 397106, 398849, 400541, 402185, 403784, 405339, 406854, 408331, 409771, 411176, 412550, + 413893, 415208, 416498, 417764, 419009, 420238, 421455, 422665, 363313, 360616, 360212, 361786, 364980, 369067, + 373471, 377924, 382270, 386458, 390487, 394336, 397997, 401501, 404846, 408041, 411095, 414017, 416815, 419498, + 422072, 424544, 426922, 429210, 431415, 433541, 435594, 437577, 439494, 441350, 443148, 444891, 446581, 448223, + 449819, 451370, 452879, 454349, 455782, 457179, 458542, 459879, 461180, 462453, 463700, 464922, 466123, 467306, + 468473, 409174, 406453, 406056, 407645, 410861, 414974, 419415, 423888, 428261, 432476, 436530, 440395, 444088, + 447613, 450978, 454192, 457263, 460202, 463015, 465711, 468298, 470782, 473171, 475469, 477683, 479818, 481877, + 483867, 485791, 487652, 489454, 491201, 492895, 494539, 496136, 497688, 499198, 500667, 502098, 503492, 504852, + 506179, 507475, 508741, 509980, 511193, 512381, 513551, 514697, 455102, 452370, 451986, 453598, 456842, 460986, + 465460, 469966, 474371, 478622, 482700, 486593, 490312, 493861, 497249, 500484, 503575, 506532, 509362, 512075, + 514677, 517175, 519577, 521888, 524113, 526258, 528328, 530327, 532259, 534128, 535937, 537691, 539391, 541040, + 542642, 544198, 545711, 547184, 548617, 550013, 551374, 552702, 553997, 555262, 556498, 557707, 558891, 560050, + 561187, 501092, 498360, 497993, 499630, 502906, 507086, 511595, 516137, 520577, 524861, 528970, 532892, 536639, + 540214, 543626, 546883, 549996, 552972, 555822, 558552, 561170, 563684, 566100, 568424, 570662, 572819, 574900, + 576910, 578852, 580730, 582548, 584309, 586017, 587674, 589282, 590844, 592363, 593841, 595279, 596679, 598044, + 599374, 600672, 601939, 603177, 604386, 605569, 606727, 607861, 547142, 544416, 544069, 545734, 549044, 553260, + 557807, 562386, 566862, 571179, 575318, 579274, 583049, 586651, 590087, 593368, 596503, 599500, 602368, 605116, + 607751, 610281, 612712, 615050, 617302, 619472, 621565, 623585, 625538, 627426, 629254, 631025, 632741, 634405, + 636021, 637591, 639116, 640600, 642044, 643450, 644820, 646155, 647457, 648728, 649969, 651182, 652367, 653526, + 654661, 593245, 590531, 590206, 591901, 595246, 599500, 604085, 608701, 613213, 617566, 621737, 625723, 629527, + 633155, 636617, 639922, 643078, 646096, 648984, 651750, 654402, 656948, 659395, 661747, 664012, 666195, 668300, + 670333, 672296, 674195, 676033, 677813, 679538, 681211, 682835, 684412, 685945, 687435, 688886, 690298, 691674, + 693014, 694322, 695598, 696843, 698060, 699249, 700412, 701549, 639392, 636698, 636398, 638123, 641503, 645795, + 650418, 655072, 659620, 664007, 668211, 672227, 676059, 679715, 683201, 686529, 689707, 692746, 695653, 698437, + 701107, 703669, 706130, 708497, 710776, 712972, 715089, 717133, 719108, 721017, 722865, 724654, 726388, 728070, + 729702, 731287, 732828, 734325, 735783, 737201, 738583, 739930, 741243, 742525, 743775, 744997, 746190, 747357, + 748498, 685570, 682908, 682634, 684391, 687806, 692134, 696796, 701486, 706070, 710490, 714725, 718772, 722632, + 726313, 729824, 733175, 736375, 739433, 742359, 745161, 747847, 750425, 752901, 755283, 757575, 759783, 761912, + 763968, 765953, 767873, 769730, 771529, 773272, 774963, 776603, 778196, 779744, 781249, 782713, 784138, 785526, + 786879, 788198, 789485, 790741, 791968, 793166, 794337, 795483, 731759, 729144, 728902, 730690, 734139, 738504, + 743201, 747927, 752545, 756997, 761263, 765338, 769225, 772932, 776466, 779839, 783059, 786137, 789081, 791900, + 794602, 797195, 799686, 802080, 804385, 806606, 808747, 810813, 812809, 814738, 816605, 818413, 820165, 821864, + 823512, 825112, 826668, 828180, 829650, 831082, 832477, 833835, 835160, 836452, 837714, 838945, 840148, 841325, + 842475, 777927, 775386, 775182, 777001, 780482, 784881, 789612, 794371, 799021, 803504, 807798, 811900, 815812, + 819541, 823098, 826491, 829730, 832826, 835787, 838622, 841339, 843946, 846450, 848857, 851174, 853406, 855558, + 857634, 859640, 861579, 863455, 865271, 867031, 868737, 870393, 872000, 873562, 875081, 876558, 877996, 879396, + 880761, 882091, 883388, 884655, 885891, 887099, 888280, 889434, 824023, 821597, 821442, 823293, 826803, 831232, + 835993, 840782, 845460, 849969, 854289, 858414, 862348, 866098, 869674, 873085, 876342, 879453, 882429, 885278, + 888009, 890628, 893144, 895563, 897890, 900132, 902293, 904379, 906393, 908340, 910224, 912048, 913815, 915528, + 917190, 918805, 920373, 921897, 923380, 924823, 926229, 927598, 928933, 930235, 931506, 932747, 933959, 935144, + 936302, 869967, 867723, 867634, 869516, 873052, 877504, 882290, 887102, 891802, 896333, 900672, 904816, 908768, + 912535, 916126, 919551, 922821, 925945, 928933, 931793, 934534, 937164, 939689, 942116, 944452, 946702, 948871, + 950964, 952985, 954939, 956829, 958659, 960432, 962151, 963819, 965438, 967011, 968540, 970027, 971475, 972885, + 974258, 975597, 976903, 978178, 979422, 980638, 981826, 982987, 915631, 913674, 913679, 915594, 919147, 923615, + 928415, 933241, 937954, 942497, 946849, 951004, 954965, 958742, 962342, 965776, 969054, 972186, 975181, 978048, + 980795, 983431, 985961, 988394, 990735, 992990, 995164, 997261, 999287, 1001245, 1003139, 1004972, 1006749, 1008471, + 1010142, 1011765, 1013341, 1014873, 1016363, 1017814, 1019226, 1020602, 1021944, 1023252, 1024529, 1025776, 1026994, 1028184, + 1029347, 960823, 959316, 959458, 961409, 964968, 969436, 974236, 979061, 983773, 988315, 992665, 996819, 1000780, + 1004556, 1008156, 1011589, 1014867, 1017998, 1020992, 1023859, 1026607, 1029242, 1031773, 1034206, 1036547, 1038802, 1040976, + 1043073, 1045099, 1047057, 1048951, 1050785, 1052562, 1054284, 1055956, 1057578, 1059155, 1060687, 1062178, 1063629, 1065041, + 1066418, 1067759, 1069068, 1070345, 1071592, 1072810, 1074001, 1075164, 1005257, 1004441, 1004791, 1006780, 1010330, 1014777, + 1019554, 1024355, 1029045, 1033566, 1037896, 1042031, 1045974, 1049734, 1053318, 1056737, 1060002, 1063121, 1066104, 1068960, + 1071697, 1074324, 1076846, 1079271, 1081604, 1083852, 1086019, 1088110, 1090129, 1092082, 1093971, 1095799, 1097571, 1099289, + 1100956, 1102574, 1104147, 1105675, 1107162, 1108609, 1110018, 1111392, 1112730, 1114036, 1115310, 1116554, 1117770, 1118957, + 1120119, 1048533, 1048750, 1049416, 1051455, 1054972, 1059369, 1064090, 1068836, 1073473, 1077943, 1082225, 1086315, 1090217, + 1093937, 1097485, 1100871, 1104103, 1107193, 1110149, 1112979, 1115692, 1118296, 1120797, 1123202, 1125516, 1127746, 1129896, + 1131971, 1133976, 1135914, 1137789, 1139604, 1141364, 1143070, 1144726, 1146333, 1147895, 1149414, 1150891, 1152329, 1153730, + 1155094, 1156425, 1157723, 1158990, 1160227, 1161435, 1162616, 1163771, 1090145, 1091840, 1092981, 1095090, 1098550, 1102855, + 1107479, 1112128, 1116670, 1121051, 1125248, 1129259, 1133087, 1136738, 1140221, 1143547, 1146723, 1149760, 1152667, 1155451, + 1158121, 1160684, 1163146, 1165515, 1167795, 1169993, 1172112, 1174158, 1176135, 1178047, 1179897, 1181689, 1183426, 1185110, + 1186745, 1188333, 1189876, 1191376, 1192836, 1194257, 1195642, 1196991, 1198306, 1199590, 1200843, 1202066, 1203261, 1204430, + 1205572, 1131052, 1134086, 1135509, 1137498, 1140754, 1144867, 1149317, 1153808, 1158203, 1162445, 1166513, 1170403, 1174117, + 1177663, 1181047, 1184280, 1187370, 1190326, 1193156, 1195869, 1198472, 1200971, 1203374, 1205687, 1207914, 1210061, 1212132, + 1214133, 1216067, 1217938, 1219749, 1221503, 1223204, 1224855, 1226457, 1228013, 1229526, 1230998, 1232430, 1233825, 1235183, + 1236508, 1237800, 1239060, 1240291, 1241493, 1242667, 1243816, 1244939, 1178987, 1179928, 1179323, 1179716, 1181898, 1185335, + 1189347, 1193527, 1197679, 1201715, 1205599, 1209320, 1212878, 1216278, 1219527, 1222632, 1225603, 1228447, 1231172, 1233786, + 1236296, 1238708, 1241028, 1243262, 1245415, 1247491, 1249496, 1251433, 1253306, 1255119, 1256875, 1258577, 1260228, 1261830, + 1263386, 1264898, 1266368, 1267799, 1269192, 1270549, 1271871, 1273160, 1274418, 1275646, 1276845, 1278016, 1279161, 1280281, + 1281376, 1229379, 1227161, 1223608, 1221540, 1221942, 1224193, 1227429, 1231081, 1234849, 1238584, 1242216, 1245716, 1249075, + 1252291, 1255369, 1258315, 1261137, 1263841, 1266434, 1268924, 1271316, 1273617, 1275832, 1277967, 1280025, 1282012, 1283931, + 1285787, 1287583, 1289322, 1291007, 1292641, 1294227, 1295767, 1297264, 1298719, 1300134, 1301512, 1302854, 1304161, 1305436, + 1306680, 1307894, 1309079, 1310236, 1311368, 1312474, 1313556, 1314615, 1277228, 1272725, 1266746, 1262262, 1260646, 1261398, + 1263567, 1266462, 1269675, 1272987, 1276281, 1279498, 1282610, 1285606, 1288483, 1291244, 1293892, 1296434, 1298875, 1301221, + 1303478, 1305650, 1307743, 1309761, 1311709, 1313591, 1315410, 1317171, 1318875, 1320527, 1322129, 1323683, 1325192, 1326658, + 1328084, 1329471, 1330821, 1332135, 1333416, 1334665, 1335883, 1337072, 1338233, 1339366, 1340474, 1341558, 1342617, 1343654, + 1344670, 1320675, 1315014, 1307545, 1301150, 1297644, 1296825, 1297779, 1299752, 1302266, 1305036, 1307900, 1310766, 1313581, + 1316318, 1318966, 1321519, 1323977, 1326341, 1328616, 1330806, 1332915, 1334948, 1336908, 1338801, 1340629, 1342397, 1344107, + 1345763, 1347368, 1348923, 1350433, 1351899, 1353324, 1354709, 1356056, 1357367, 1358644, 1359888, 1361101, 1362285, 1363440, + 1364567, 1365668, 1366745, 1367797, 1368826, 1369834, 1370820, 1371785, 1359519, 1353514, 1345393, 1337711, 1332627, 1330334, + 1330058, 1331045, 1332774, 1334920, 1337280, 1339733, 1342203, 1344646, 1347037, 1349362, 1351614, 1353791, 1355892, 1357919, + 1359876, 1361765, 1363589, 1365352, 1367057, 1368707, 1370305, 1371853, 1373354, 1374811, 1376226, 1377600, 1378937, 1380237, + 1381502, 1382734, 1383935, 1385106, 1386248, 1387362, 1388450, 1389513, 1390552, 1391567, 1392560, 1393532, 1394484, 1395416, + 1396329, 1394152, 1388278, 1380111, 1371721, 1365428, 1361848, 1360417, 1360429, 1361351, 1362834, 1364647, 1366646, 1368735, + 1370854, 1372965, 1375045, 1377079, 1379059, 1380980, 1382842, 1384645, 1386390, 1388078, 1389713, 1391295, 1392829, 1394315, + 1395757, 1397156, 1398515, 1399835, 1401118, 1402367, 1403582, 1404766, 1405920, 1407044, 1408141, 1409212, 1410257, 1411278, + 1412275, 1413251, 1414205, 1415139, 1416053, 1416948, 1417825, 1418685, 1425112, 1419607, 1411771, 1403148, 1396016, 1391368, + 1388903, 1387999, 1388137, 1388956, 1390210, 1391735, 1393423, 1395199, 1397014, 1398835, 1400641, 1402417, 1404155, 1405850, + 1407498, 1409100, 1410655, 1412164, 1413627, 1415048, 1416427, 1417766, 1419066, 1420331, 1421560, 1422756, 1423920, 1425054, + 1426159, 1427237, 1428287, 1429313, 1430314, 1431292, 1432248, 1433183, 1434097, 1434991, 1435867, 1436724, 1437564, 1438387, + 1439195, 1452925, 1447888, 1440587, 1432082, 1424449, 1418959, 1415597, 1413862, 1413266, 1413446, 1414150, 1415202, 1416483, + 1417907, 1419417, 1420972, 1422543, 1424111, 1425662, 1427188, 1428683, 1430143, 1431566, 1432952, 1434301, 1435613, 1436889, + 1438131, 1439338, 1440513, 1441656, 1442769, 1443854, 1444911, 1445942, 1446948, 1447929, 1448887, 1449823, 1450737, 1451632, + 1452506, 1453362, 1454199, 1455019, 1455823, 1456611, 1457383, 1458140, 1478049, 1473500, 1466819, 1458673, 1450828, 1444718, + 1440604, 1438131, 1436861, 1436443, 1436622, 1437215, 1438095, 1439170, 1440374, 1441659, 1442993, 1444350, 1445712, 1447069, + 1448410, 1449729, 1451024, 1452290, 1453528, 1454736, 1455913, 1457061, 1458180, 1459271, 1460333, 1461370, 1462380, 1463365, + 1464327, 1465265, 1466182, 1467077, 1467952, 1468807, 1469644, 1470463, 1471264, 1472048, 1472817, 1473570, 1474309, 1475033, + 1475743, 1500879, 1496800, 1490753, 1483107, 1475288, 1468761, 1464037, 1460922, 1459046, 1458077, 1457763, 1457919, 1458413, + 1459146, 1460048, 1461067, 1462164, 1463310, 1464484, 1465671, 1466858, 1468039, 1469206, 1470355, 1471484, 1472591, 1473674, + 1474733, 1475768, 1476778, 1477765, 1478729, 1479670, 1480588, 1481485, 1482362, 1483218, 1484056, 1484874, 1485675, 1486458, + 1487225, 1487976, 1488712, 1489433, 1490139, 1490832, 1491512, 1492179, 1521736, 1518092, 1512653, 1505578, 1497963, 1491207, + 1486008, 1482347, 1479932, 1478462, 1477692, 1477437, 1477563, 1477969, 1478579, 1479337, 1480200, 1481138, 1482125, 1483143, + 1484179, 1485221, 1486262, 1487296, 1488318, 1489326, 1490318, 1491291, 1492246, 1493180, 1494095, 1494990, 1495866, 1496722, + 1497559, 1498378, 1499179, 1499962, 1500729, 1501479, 1502214, 1502933, 1503638, 1504329, 1505006, 1505670, 1506321, 1506960, + 1507587, 1540885, 1537637, 1532762, 1526278, 1518993, 1512167, 1506625, 1502509, 1499622, 1497700, 1496511, 1495876, 1495656, + 1495750, 1496079, 1496585, 1497222, 1497956, 1498759, 1499611, 1500496, 1501402, 1502318, 1503238, 1504156, 1505068, 1505970, + 1506860, 1507736, 1508598, 1509444, 1510273, 1511087, 1511884, 1512665, 1513430, 1514179, 1514913, 1515631, 1516335, 1517025, + 1517700, 1518363, 1519012, 1519649, 1520273, 1520886, 1521488, 1522079, 1558557, 1555664, 1551300, 1545394, 1538517, 1531757, + 1525990, 1521508, 1518213, 1515887, 1514317, 1513329, 1512787, 1512586, 1512649, 1512913, 1513331, 1513867, 1514490, 1515180, + 1515917, 1516688, 1517481, 1518289, 1519103, 1519920, 1520734, 1521542, 1522343, 1523134, 1523913, 1524680, 1525435, 1526176, + 1526903, 1527617, 1528318, 1529005, 1529678, 1530339, 1530986, 1531621, 1532244, 1532856, 1533455, 1534044, 1534622, 1535189, + 1535747, 1574930, 1572355, 1568449, 1563091, 1556665, 1550074, 1544194, 1539431, 1535790, 1533106, 1531191, 1529879, 1529036, + 1528560, 1528371, 1528404, 1528613, 1528957, 1529406, 1529937, 1530529, 1531168, 1531841, 1532537, 1533250, 1533973, 1534701, + 1535429, 1536155, 1536877, 1537592, 1538298, 1538995, 1539682, 1540359, 1541024, 1541678, 1542321, 1542952, 1543571, 1544180, + 1544777, 1545364, 1545940, 1546505, 1547061, 1547606, 1548142, 1548669, 1590158, 1587867, 1584370, 1579519, 1573558, 1567216, + 1561318, 1556354, 1552427, 1549431, 1547205, 1545597, 1544477, 1543744, 1543316, 1543132, 1543140, 1543300, 1543582, 1543958, + 1544410, 1544919, 1545473, 1546061, 1546674, 1547305, 1547947, 1548597, 1549250, 1549903, 1550554, 1551201, 1551843, 1552477, + 1553104, 1553723, 1554332, 1554933, 1555523, 1556105, 1556676, 1557238, 1557790, 1558333, 1558866, 1559390, 1559906, 1560413, + 1560911, 1604375, 1602337, 1599205, 1594817, 1589316, 1583273, 1577440, 1572351, 1568195, 1564929, 1562426, 1560548, 1559172, + 1558200, 1557550, 1557159, 1556976, 1556961, 1557081, 1557309, 1557623, 1558007, 1558445, 1558927, 1559441, 1559981, 1560539, + 1561111, 1561692, 1562279, 1562867, 1563456, 1564043, 1564626, 1565205, 1565778, 1566344, 1566904, 1567455, 1567999, 1568536, + 1569063, 1569583, 1570094, 1570598, 1571093, 1571580, 1572059, 1572531, 1617685, 1615873, 1613066, 1609098, 1604040, 1598329, + 1592626, 1587481, 1583152, 1579659, 1576911, 1574789, 1573178, 1571983, 1571125, 1570540, 1570177, 1569994, 1569959, 1570044, + 1570227, 1570488, 1570814, 1571191, 1571609, 1572059, 1572535, 1573030, 1573540, 1574060, 1574587, 1575119, 1575652, 1576185, + 1576716, 1577244, 1577769, 1578288, 1578802, 1579311, 1579812, 1580308, 1580796, 1581278, 1581752, 1582220, 1582680, 1583134, + 1583580, 1630190, 1628581, 1626062, 1622473, 1617832, 1612468, 1606947, 1601806, 1597356, 1593676, 1590714, 1588372, 1586546, + 1585145, 1584092, 1583325, 1582791, 1582450, 1582267, 1582214, 1582269, 1582412, 1582628, 1582903, 1583227, 1583590, 1583985, + 1584405, 1584844, 1585299, 1585765, 1586240, 1586719, 1587203, 1587687, 1588172, 1588655, 1589135, 1589612, 1590086, 1590554, + 1591018, 1591476, 1591929, 1592376, 1592817, 1593252, 1593680, 1594103, 1641966, 1640540, 1638279, 1635031, 1630778, 1625762, + 1620459, 1615376, 1610854, 1607026, 1603881, 1601342, 1599320, 1597729, 1596495, 1595556, 1594861, 1594369, 1594045, 1593861, + 1593793, 1593822, 1593931, 1594108, 1594339, 1594617, 1594932, 1595278, 1595648, 1596039, 1596445, 1596863, 1597290, 1597724, + 1598163, 1598604, 1599046, 1599488, 1599929, 1600368, 1600804, 1601236, 1601665, 1602090, 1602510, 1602925, 1603335, 1603741, + 1604141, 1653082, 1651821, 1649790, 1646849, 1642954, 1638281, 1633220, 1628237, 1623689, 1619751, 1616451, 1613740, 1611540, + 1609775, 1608372, 1607273, 1606426, 1605791, 1605332, 1605022, 1604837, 1604756, 1604762, 1604843, 1604985, 1605179, 1605416, + 1605688, 1605991, 1606318, 1606664, 1607027, 1607403, 1607788, 1608181, 1608579, 1608981, 1609385, 1609790, 1610195, 1610598, + 1611001, 1611401, 1611798, 1612191, 1612582, 1612968, 1613350, 1613729, 1663596, 1662484, 1660661, 1657994, 1654429, 1650086, + 1645282, 1640433, 1635900, 1631888, 1628462, 1625600, 1623241, 1621315, 1619756, 1618507, 1617518, 1616747, 1616161, 1615731, + 1615433, 1615246, 1615153, 1615141, 1615196, 1615308, 1615469, 1615671, 1615906, 1616171, 1616459, 1616767, 1617091, 1617428, + 1617775, 1618131, 1618493, 1618859, 1619229, 1619600, 1619972, 1620345, 1620716, 1621086, 1621454, 1621820, 1622182, 1622542, + 1622899, 1673569, 1672592, 1670955, 1668536, 1665272, 1661241, 1656699, 1652012, 1647527, 1643474, 1639950, 1636959, 1634458, + 1632386, 1630683, 1629293, 1628170, 1627272, 1626565, 1626020, 1625614, 1625325, 1625137, 1625034, 1625005, 1625038, 1625124, + 1625256, 1625426, 1625629, 1625860, 1626114, 1626387, 1626676, 1626979, 1627292, 1627614, 1627943, 1628277, 1628615, 1628956, + 1629298, 1629642, 1629985, 1630327, 1630669, 1631008, 1631346, 1631682, 1683044, 1682189, 1680720, 1678525, 1675535, 1671798, + 1667517, 1663010, 1658603, 1654540, 1650944, 1647846, 1645219, 1643015, 1641179, 1639659, 1638409, 1637391, 1636569, 1635915, + 1635405, 1635019, 1634738, 1634549, 1634438, 1634394, 1634408, 1634471, 1634577, 1634720, 1634894, 1635094, 1635317, 1635560, + 1635818, 1636089, 1636372, 1636664, 1636963, 1637268, 1637577, 1637890, 1638205, 1638521, 1638839, 1639156, 1639473, 1639789, + 1640104, 1692053, 1691311, 1689994, 1688001, 1685261, 1681799, 1677775, 1673459, 1669155, 1665109, 1661467, 1658282, 1655547, + 1653224, 1651266, 1649626, 1648258, 1647126, 1646196, 1645438, 1644830, 1644350, 1643981, 1643708, 1643518, 1643399, 1643343, + 1643340, 1643383, 1643467, 1643585, 1643733, 1643907, 1644102, 1644317, 1644547, 1644791, 1645045, 1645310, 1645582, 1645860, + 1646143, 1646430, 1646720, 1647012, 1647306, 1647600, 1647895, 1648189, 1700644, 1700004, 1698825, 1697015, 1694503, 1691297, + 1687520, 1683402, 1679220, 1675216, 1671551, 1668299, 1665471, 1663042, 1660973, 1659221, 1657744, 1656505, 1655471, 1654615, + 1653913, 1653343, 1652889, 1652536, 1652269, 1652078, 1651953, 1651885, 1651868, 1651893, 1651957, 1652054, 1652179, 1652328, + 1652499, 1652688, 1652893, 1653111, 1653341, 1653580, 1653827, 1654081, 1654341, 1654604, 1654871, 1655141, 1655413, 1655686, + 1655959, 1708848, 1708302, 1707248, 1705604, 1703299, 1700329, 1696789, 1692872, 1688825, 1684883, 1681216, 1677916, 1675012, + 1672490, 1670321, 1668465, 1666886, 1665546, 1664415, 1663466, 1662673, 1662018, 1661483, 1661051, 1660711, 1660450, 1660258, + 1660127, 1660050, 1660019, 1660030, 1660075, 1660152, 1660257, 1660385, 1660533, 1660700, 1660882, 1661077, 1661284, 1661500, + 1661725, 1661956, 1662194, 1662436, 1662682, 1662931, 1663182, 1663435, 1716689, 1716229, 1715291, 1713797, 1711681, 1708931, + 1705615, 1701897, 1697995, 1694132, 1690483, 1687154, 1684188, 1681587, 1679327, 1677377, 1675702, 1674268, 1673045, 1672007, + 1671130, 1670393, 1669779, 1669272, 1668861, 1668532, 1668276, 1668084, 1667948, 1667862, 1667820, 1667816, 1667846, 1667906, + 1667992, 1668100, 1668229, 1668375, 1668536, 1668711, 1668896, 1669092, 1669296, 1669507, 1669724, 1669947, 1670173, 1670403, + 1670636, 1724195, 1723815, 1722981, 1721624, 1719681, 1717133, 1714030, 1710507, 1706757, 1702987, 1699373, 1696031, 1693018, + 1690349, 1688010, 1685974, 1684210, 1682688, 1681379, 1680257, 1679298, 1678483, 1677794, 1677216, 1676735, 1676341, 1676022, + 1675771, 1675579, 1675439, 1675346, 1675294, 1675278, 1675293, 1675338, 1675407, 1675498, 1675608, 1675735, 1675878, 1676033, + 1676200, 1676376, 1676561, 1676754, 1676952, 1677156, 1677365, 1677577, 1731386, 1731078, 1730341, 1729109, 1727325, 1724963, + 1722061, 1718727, 1715131, 1711466, 1707902, 1704562, 1701518, 1698793, 1696383, 1694270, 1692425, 1690821, 1689431, 1688229, + 1687193, 1686303, 1685542, 1684895, 1684349, 1683891, 1683513, 1683204, 1682957, 1682765, 1682621, 1682522, 1682460, 1682433, + 1682436, 1682466, 1682521, 1682596, 1682690, 1682800, 1682925, 1683063, 1683213, 1683372, 1683539, 1683714, 1683896, 1684083, + 1684275, 1738289, 1738049, 1737400, 1736284, 1734644, 1732455, 1729739, 1726588, 1723148, 1719594, 1716092, 1712770, 1709706, + 1706937, 1704467, 1702284, 1700365, 1698685, 1697218, 1695941, 1694832, 1693871, 1693041, 1692328, 1691718, 1691199, 1690762, + 1690397, 1690097, 1689854, 1689662, 1689515, 1689410, 1689340, 1689303, 1689295, 1689313, 1689353, 1689414, 1689493, 1689588, + 1689698, 1689820, 1689953, 1690096, 1690248, 1690407, 1690573, 1690744, 1744913, 1744736, 1744168, 1743158, 1741652, 1739621, + 1737081, 1734105, 1730819, 1727383, 1723954, 1720661, 1717591, 1714789, 1712268, 1710024, 1708038, 1706287, 1704749, 1703402, + 1702223, 1701194, 1700299, 1699522, 1698851, 1698274, 1697780, 1697361, 1697009, 1696717, 1696477, 1696286, 1696137, 1696026, + 1695950, 1695904, 1695886, 1695892, 1695920, 1695968, 1696034, 1696115, 1696210, 1696318, 1696436, 1696564, 1696701, 1696846, + 1696997, 1751288, 1751168, 1750676, 1749763, 1748379, 1746494, 1744118, 1741309, 1738175, 1734860, 1731512, 1728259, 1725194, + 1722369, 1719807, 1717509, 1715462, 1713647, 1712042, 1710628, 1709383, 1708290, 1707332, 1706495, 1705765, 1705131, 1704583, + 1704112, 1703709, 1703368, 1703083, 1702847, 1702656, 1702505, 1702390, 1702307, 1702253, 1702226, 1702222, 1702239, 1702275, + 1702328, 1702397, 1702479, 1702573, 1702678, 1702792, 1702916, 1703047, 1757430, 1757364, 1756941, 1756117, 1754845, 1753096, + 1750872, 1748221, 1745235, 1742043, 1738782, 1735579, 1732528, 1729691, 1727096, 1724752, 1722650, 1720775, 1719109, 1717632, + 1716325, 1715170, 1714152, 1713257, 1712470, 1711782, 1711181, 1710659, 1710207, 1709820, 1709489, 1709210, 1708978, 1708787, + 1708634, 1708515, 1708426, 1708366, 1708330, 1708317, 1708324, 1708349, 1708391, 1708447, 1708517, 1708599, 1708691, 1708794, + 1708904, 1763338, 1763322, 1762964, 1762222, 1761055, 1759431, 1757350, 1754848, 1752006, 1748937, 1745769, 1742623, 1739597, + 1736757, 1734138, 1731755, 1729605, 1727677, 1725953, 1724418, 1723052, 1721840, 1720765, 1719813, 1718973, 1718231, 1717580, + 1717009, 1716511, 1716077, 1715703, 1715382, 1715109, 1714880, 1714690, 1714535, 1714413, 1714319, 1714252, 1714209, 1714188, + 1714185, 1714201, 1714232, 1714278, 1714337, 1714408, 1714489, 1714579, 1769038, 1769068, 1768770, 1768105, 1767033, 1765526, + 1763578, 1761218, 1758514, 1755566, 1752494, 1749412, 1746419, 1743584, 1740950, 1738535, 1736343, 1734366, 1732591, 1731001, + 1729580, 1728312, 1727183, 1726178, 1725285, 1724494, 1723793, 1723175, 1722631, 1722154, 1721737, 1721375, 1721063, 1720796, + 1720569, 1720380, 1720224, 1720098, 1720001, 1719928, 1719878, 1719849, 1719838, 1719845, 1719867, 1719903, 1719951, 1720012, + 1720082, 1774537, 1774612, 1774369, 1773774, 1772792, 1771392, 1769568, 1767342, 1764770, 1761943, 1758969, 1755957, 1753003, + 1750182, 1747539, 1745100, 1742873, 1740852, 1739028, 1737388, 1735915, 1734596, 1733414, 1732359, 1731416, 1730576, 1729829, + 1729165, 1728576, 1728056, 1727598, 1727197, 1726846, 1726542, 1726280, 1726057, 1725868, 1725711, 1725583, 1725481, 1725403, + 1725347, 1725311, 1725293, 1725291, 1725305, 1725332, 1725371, 1725422, 1779856, 1779970, 1779779, 1779250, 1778350, 1777050, + 1775342, 1773241, 1770796, 1768087, 1765211, 1762272, 1759365, 1756564, 1753920, 1751463, 1749205, 1747146, 1745279, 1743591, + 1742070, 1740701, 1739471, 1738367, 1737377, 1736490, 1735697, 1734988, 1734357, 1733796, 1733297, 1732857, 1732469, 1732129, + 1731832, 1731575, 1731354, 1731166, 1731009, 1730878, 1730773, 1730690, 1730629, 1730586, 1730561, 1730552, 1730557, 1730576, + 1730607, 1784992, 1785144, 1785001, 1784534, 1783710, 1782503, 1780903, 1778920, 1776597, 1774002, 1771225, 1768363, 1765507, + 1762733, 1760094, 1757626, 1755343, 1753251, 1751345, 1749614, 1748048, 1746633, 1745356, 1744205, 1743170, 1742238, 1741401, + 1740650, 1739978, 1739376, 1738839, 1738361, 1737937, 1737561, 1737231, 1736941, 1736689, 1736470, 1736283, 1736125, 1735992, + 1735884, 1735797, 1735731, 1735683, 1735651, 1735635, 1735633, 1735644, 1789955, 1790143, 1790045, 1789634, 1788882, 1787762, + 1786263, 1784392, 1782185, 1779701, 1777022, 1774239, 1771439, 1768697, 1766070, 1763596, 1761295, 1759175, 1757233, 1755464, + 1753855, 1752397, 1751076, 1749882, 1748802, 1747828, 1746949, 1746157, 1745445, 1744804, 1744230, 1743715, 1743255, 1742846, + 1742482, 1742161, 1741878, 1741630, 1741414, 1741228, 1741069, 1740935, 1740824, 1740733, 1740662, 1740609, 1740572, 1740550, + 1740541, 1794764, 1794985, 1794929, 1794572, 1793886, 1792847, 1791442, 1789676, 1787579, 1785203, 1782621, 1779917, 1777176, + 1774472, 1771862, 1769388, 1767074, 1764929, 1762957, 1761152, 1759505, 1758006, 1756643, 1755407, 1754286, 1753271, 1752351, + 1751520, 1750769, 1750091, 1749479, 1748929, 1748435, 1747992, 1747597, 1747244, 1746930, 1746653, 1746410, 1746196, 1746011, + 1745852, 1745716, 1745603, 1745509, 1745434, 1745376, 1745333, 1745305, 1799420, 1799672, 1799655, 1799348, 1798724, 1797761, + 1796444, 1794777, 1792784, 1790511, 1788025, 1785402, 1782723, 1780060, 1777473, 1775004, 1772681, 1770518, 1768519, 1766681, + 1764998, 1763462, 1762060, 1760785, 1759624, 1758569, 1757611, 1756741, 1755953, 1755238, 1754592, 1754007, 1753480, 1753005, + 1752577, 1752194, 1751851, 1751546, 1751274, 1751035, 1750824, 1750640, 1750480, 1750343, 1750227, 1750131, 1750052, 1749989, + 1749942, 1803932, 1804213, 1804234, 1803973, 1803407, 1802514, 1801280, 1799706, 1797812, 1795640, 1793246, 1790704, 1788089, + 1785472, 1782911, 1780452, 1778125, 1775947, 1773925, 1772059, 1770344, 1768772, 1767334, 1766021, 1764823, 1763730, 1762735, + 1761829, 1761004, 1760255, 1759574, 1758956, 1758396, 1757889, 1757431, 1757018, 1756646, 1756313, 1756015, 1755749, 1755513, + 1755304, 1755121, 1754962, 1754824, 1754706, 1754607, 1754524, 1754458, 1808300, 1808608, 1808664, 1808447, 1807935, 1807108, + 1805952, 1804467, 1802667, 1800590, 1798288, 1795827, 1793278, 1790708, 1788178, 1785734, 1783408, 1781219, 1779179, 1777288, + 1775543, 1773939, 1772467, 1771119, 1769885, 1768757, 1767726, 1766784, 1765925, 1765142, 1764428, 1763778, 1763186, 1762649, + 1762161, 1761719, 1761320, 1760959, 1760634, 1760343, 1760082, 1759850, 1759644, 1759462, 1759302, 1759164, 1759044, 1758943, + 1758857, 1812545, 1812879, 1812967, 1812791, 1812331, 1811566, 1810482, 1809079, 1807370, 1805384, 1803170, 1800789, 1798306, + 1795787, 1793291, 1790865, 1788544, 1786349, 1784293, 1782380, 1780609, 1778975, 1777471, 1776090, 1774822, 1773660, 1772595, + 1771619, 1770727, 1769911, 1769165, 1768483, 1767861, 1767293, 1766777, 1766307, 1765880, 1765492, 1765142, 1764825, 1764540, + 1764284, 1764055, 1763852, 1763671, 1763512, 1763372, 1763251, 1763147, 1816668, 1817026, 1817145, 1817007, 1816594, 1815887, + 1814872, 1813547, 1811923, 1810025, 1807897, 1805593, 1803177, 1800711, 1798252, 1795848, 1793536, 1791338, 1789270, 1787339, + 1785544, 1783883, 1782350, 1780937, 1779637, 1778442, 1777344, 1776337, 1775412, 1774564, 1773787, 1773075, 1772423, 1771826, + 1771281, 1770784, 1770330, 1769916, 1769541, 1769200, 1768891, 1768612, 1768360, 1768135, 1767933, 1767753, 1767594, 1767454, + 1767332, 1820668, 1821048, 1821196, 1821095, 1820727, 1820074, 1819124, 1817873, 1816329, 1814515, 1812470, 1810244, 1807895, + 1805483, 1803063, 1800685, 1798384, 1796188, 1794112, 1792165, 1790350, 1788664, 1787103, 1785661, 1784331, 1783105, 1781977, + 1780938, 1779982, 1779104, 1778297, 1777555, 1776874, 1776250, 1775677, 1775153, 1774673, 1774234, 1773834, 1773469, 1773137, + 1772835, 1772562, 1772315, 1772092, 1771893, 1771714, 1771556, 1771415, 1824556, 1824958, 1825133, 1825066, 1824740, 1824139, + 1823250, 1822068, 1820600, 1818867, 1816902, 1814751, 1812469, 1810112, 1807735, 1805384, 1803099, 1800907, 1798826, 1796867, + 1795034, 1793326, 1791740, 1790271, 1788912, 1787657, 1786499, 1785430, 1784445, 1783537, 1782701, 1781931, 1781222, 1780570, + 1779971, 1779420, 1778915, 1778451, 1778027, 1777638, 1777283, 1776960, 1776665, 1776397, 1776154, 1775935, 1775738, 1775560, + 1775402, 1828345, 1828767, 1828967, 1828932, 1828646, 1828093, 1827261, 1826145, 1824749, 1823092, 1821204, 1819127, 1816911, + 1814610, 1812276, 1809956, 1807690, 1805505, 1803422, 1801453, 1799604, 1797877, 1796268, 1794773, 1793388, 1792105, 1790918, + 1789821, 1788807, 1787871, 1787007, 1786209, 1785473, 1784794, 1784169, 1783593, 1783062, 1782575, 1782126, 1781715, 1781337, + 1780992, 1780676, 1780387, 1780125, 1779886, 1779669, 1779474, 1779298, 1832022, 1832463, 1832687, 1832682, 1832434, 1831926, + 1831148, 1830094, 1828768, 1827184, 1825371, 1823366, 1821215, 1818970, 1816682, 1814395, 1812149, 1809975, 1807893, 1805918, + 1804056, 1802311, 1800681, 1799164, 1797753, 1796444, 1795231, 1794106, 1793066, 1792102, 1791211, 1790386, 1789624, 1788920, + 1788269, 1787668, 1787114, 1786602, 1786131, 1785697, 1785297, 1784930, 1784594, 1784285, 1784003, 1783745, 1783510, 1783297, + 1783103, 1835599, 1836058, 1836305, 1836329, 1836115, 1835651, 1834925, 1833930, 1832669, 1831155, 1829413, 1827478, 1825392, + 1823204, 1820961, 1818710, 1816487, 1814326, 1812248, 1810269, 1808397, 1806637, 1804989, 1803450, 1802016, 1800683, 1799444, + 1798294, 1797227, 1796237, 1795320, 1794470, 1793682, 1792953, 1792277, 1791652, 1791074, 1790540, 1790046, 1789590, 1789169, + 1788781, 1788424, 1788096, 1787795, 1787518, 1787265, 1787034, 1786823, 1839089, 1839564, 1839833, 1839883, 1839704, 1839280, + 1838602, 1837662, 1836463, 1835017, 1833344, 1831476, 1829454, 1827321, 1825126, 1822911, 1820714, 1818568, 1816497, 1814516, + 1812637, 1810864, 1809199, 1807640, 1806185, 1804828, 1803565, 1802390, 1801298, 1800283, 1799341, 1798466, 1797654, 1796900, + 1796201, 1795552, 1794951, 1794394, 1793878, 1793400, 1792959, 1792550, 1792173, 1791826, 1791505, 1791210, 1790939, 1790691, + 1790463, 1842478, 1842969, 1843258, 1843335, 1843187, 1842802, 1842169, 1841283, 1840143, 1838761, 1837154, 1835352, 1833392, + 1831316, 1829168, 1826991, 1824822, 1822694, 1820632, 1818652, 1816768, 1814984, 1813305, 1811729, 1810253, 1808875, 1807590, + 1806391, 1805275, 1804237, 1803270, 1802371, 1801535, 1800758, 1800036, 1799364, 1798741, 1798162, 1797625, 1797126, 1796664, + 1796236, 1795839, 1795473, 1795134, 1794821, 1794532, 1794266, 1794022, 1845779, 1846286, 1846594, 1846695, 1846577, 1846229, + 1845640, 1844804, 1843721, 1842399, 1840856, 1839118, 1837219, 1835199, 1833099, 1830961, 1828822, 1826714, 1824662, 1822686, + 1820799, 1819007, 1817315, 1815723, 1814230, 1812832, 1811525, 1810304, 1809166, 1808104, 1807114, 1806192, 1805333, 1804533, + 1803789, 1803095, 1802450, 1801850, 1801292, 1800773, 1800291, 1799843, 1799428, 1799042, 1798685, 1798354, 1798049, 1797766, + 1797505, 1849007, 1849527, 1849854, 1849977, 1849888, 1849574, 1849026, 1848237, 1847208, 1845945, 1844463, 1842787, 1840947, + 1838982, 1836930, 1834831, 1832723, 1830637, 1828598, 1826628, 1824739, 1822941, 1821239, 1819633, 1818122, 1816705, 1815378, + 1814137, 1812977, 1811893, 1810881, 1809936, 1809055, 1808233, 1807467, 1806752, 1806086, 1805465, 1804886, 1804347, 1803845, + 1803378, 1802944, 1802540, 1802165, 1801817, 1801494, 1801195, 1800918, 1852146, 1852680, 1853024, 1853169, 1853107, 1852826, + 1852317, 1851574, 1850596, 1849388, 1847965, 1846349, 1844568, 1842656, 1840653, 1838595, 1836518, 1834456, 1832433, 1830470, + 1828582, 1826780, 1825069, 1823450, 1821925, 1820491, 1819145, 1817884, 1816703, 1815598, 1814565, 1813599, 1812697, 1811854, + 1811066, 1810330, 1809643, 1809002, 1808404, 1807845, 1807324, 1806839, 1806386, 1805965, 1805572, 1805207, 1804867, 1804552, + 1804259, 1855211, 1855758, 1856117, 1856284, 1856247, 1855997, 1855525, 1854825, 1853896, 1852742, 1851376, 1849817, 1848092, + 1846234, 1844279, 1842262, 1840219, 1838181, 1836175, 1834221, 1832337, 1830532, 1828814, 1827185, 1825646, 1824196, 1822833, + 1821553, 1820353, 1819228, 1818174, 1817188, 1816265, 1815401, 1814593, 1813837, 1813130, 1812469, 1811851, 1811274, 1810734, + 1810231, 1809760, 1809321, 1808911, 1808529, 1808173, 1807842, 1807534, 1858202, 1858760, 1859135, 1859321, 1859309, 1859089, + 1858652, 1857993, 1857110, 1856007, 1854695, 1853192, 1851523, 1849717, 1847809, 1845834, 1843825, 1841813, 1839826, 1837884, + 1836005, 1834199, 1832475, 1830837, 1829286, 1827822, 1826443, 1825145, 1823927, 1822783, 1821710, 1820703, 1819760, 1818877, + 1818049, 1817273, 1816547, 1815867, 1815230, 1814635, 1814077, 1813555, 1813067, 1812611, 1812184, 1811786, 1811414, 1811067, + 1810743, 1861118, 1861687, 1862077, 1862282, 1862293, 1862101, 1861698, 1861078, 1860240, 1859186, 1857926, 1856477, 1854861, + 1853107, 1851247, 1849313, 1847338, 1845354, 1843387, 1841458, 1839585, 1837781, 1836054, 1834408, 1832847, 1831370, 1829976, + 1828662, 1827426, 1826264, 1825172, 1824147, 1823185, 1822282, 1821435, 1820641, 1819896, 1819197, 1818542, 1817928, 1817353, + 1816813, 1816308, 1815835, 1815392, 1814978, 1814590, 1814227, 1813889, 1863974, 1864554, 1864958, 1865180, 1865212, 1865047, + 1864677, 1864094, 1863298, 1862290, 1861081, 1859684, 1858120, 1856416, 1854602, 1852710, 1850771, 1848815, 1846869, 1844954, + 1843090, 1841288, 1839559, 1837908, 1836337, 1834848, 1833440, 1832111, 1830859, 1829679, 1828570, 1827526, 1826546, 1825625, + 1824759, 1823946, 1823183, 1822466, 1821793, 1821161, 1820568, 1820012, 1819490, 1819000, 1818541, 1818111, 1817708, 1817330, + 1816976, 1866754, 1867344, 1867762, 1868001, 1868055, 1867915, 1867575, 1867028, 1866272, 1865310, 1864149, 1862802, 1861289, + 1859634, 1857866, 1856016, 1854112, 1852186, 1850262, 1848364, 1846510, 1844713, 1842983, 1841327, 1839749, 1838249, 1836829, + 1835486, 1834218, 1833023, 1831896, 1830836, 1829838, 1828899, 1828015, 1827185, 1826403, 1825669, 1824979, 1824330, 1823720, + 1823147, 1822609, 1822103, 1821628, 1821182, 1820764, 1820371, 1820003, 1869475, 1870075, 1870504, 1870759, 1870833, 1870718, + 1870407, 1869894, 1869177, 1868258, 1867143, 1865845, 1864381, 1862774, 1861052, 1859242, 1857375, 1855479, 1853579, 1851698, + 1849855, 1848063, 1846335, 1844676, 1843091, 1841583, 1840151, 1838795, 1837513, 1836302, 1835160, 1834083, 1833068, 1832112, + 1831211, 1830363, 1829565, 1828813, 1828106, 1827441, 1826814, 1826225, 1825671, 1825149, 1824659, 1824198, 1823764, 1823357, + 1822975, 1872136, 1872744, 1873186, 1873456, 1873549, 1873457, 1873174, 1872694, 1872014, 1871135, 1870065, 1868813, 1867397, + 1865838, 1864160, 1862392, 1860561, 1858695, 1856819, 1854957, 1853126, 1851342, 1849616, 1847956, 1846366, 1844850, 1843408, + 1842040, 1840744, 1839519, 1838362, 1837269, 1836237, 1835265, 1834347, 1833483, 1832668, 1831900, 1831176, 1830494, 1829852, + 1829247, 1828677, 1828140, 1827634, 1827158, 1826710, 1826289, 1825893, 1874736, 1875353, 1875806, 1876091, 1876202, 1876132, + 1875875, 1875426, 1874782, 1873943, 1872915, 1871709, 1870339, 1868825, 1867192, 1865464, 1863669, 1861835, 1859984, 1858142, + 1856325, 1854549, 1852827, 1851166, 1849573, 1848050, 1846599, 1845221, 1843913, 1842674, 1841502, 1840394, 1839347, 1838358, + 1837425, 1836545, 1835713, 1834929, 1834190, 1833492, 1832834, 1832213, 1831628, 1831076, 1830556, 1830065, 1829603, 1829167, + 1828757, 1877276, 1877901, 1878365, 1878663, 1878792, 1878743, 1878512, 1878093, 1877482, 1876681, 1875695, 1874532, 1873207, + 1871739, 1870148, 1868461, 1866703, 1864899, 1863075, 1861253, 1859451, 1857685, 1855968, 1854309, 1852713, 1851185, 1849726, + 1848338, 1847018, 1845767, 1844581, 1843459, 1842398, 1841394, 1840445, 1839549, 1838702, 1837903, 1837148, 1836435, 1835761, + 1835125, 1834525, 1833959, 1833424, 1832919, 1832443, 1831994, 1831570, 1879773, 1880404, 1880878, 1881190, 1881334, 1881306, + 1881099, 1880708, 1880130, 1879365, 1878418, 1877298, 1876016, 1874591, 1873043, 1871395, 1869673, 1867901, 1866104, 1864302, + 1862517, 1860762, 1859051, 1857394, 1855797, 1854264, 1852798, 1851401, 1850071, 1848808, 1847609, 1846474, 1845398, 1844379, + 1843416, 1842505, 1841643, 1840828, 1840058, 1839329, 1838641, 1837991, 1837376, 1836795, 1836246, 1835727, 1835237, 1834774, + 1834337, 1882190, 1882829, 1883313, 1883638, 1883799, 1883790, 1883607, 1883243, 1882697, 1881967, 1881059, 1879979, 1878740, + 1877358, 1875851, 1874243, 1872557, 1870818, 1869048, 1867269, 1865500, 1863758, 1862055, 1860401, 1858804, 1857269, 1855798, + 1854393, 1853053, 1851780, 1850569, 1849421, 1848332, 1847300, 1846322, 1845397, 1844521, 1843691, 1842906, 1842164, 1841461, + 1840796, 1840168, 1839573, 1839010, 1838478, 1837974, 1837498, 1837048, 1884581, 1885227, 1885720, 1886056, 1886232, 1886242, + 1886081, 1885743, 1885226, 1884530, 1883659, 1882618, 1881420, 1880078, 1878612, 1877043, 1875393, 1873685, 1871943, 1870186, + 1868436, 1866706, 1865012, 1863363, 1861766, 1860229, 1858753, 1857341, 1855993, 1854709, 1853488, 1852327, 1851225, 1850180, + 1849189, 1848249, 1847359, 1846515, 1845716, 1844959, 1844242, 1843564, 1842921, 1842312, 1841736, 1841190, 1840673, 1840184, + 1839722, 1886911, 1887563, 1888064, 1888412, 1888603, 1888631, 1888490, 1888178, 1887690, 1887027, 1886190, 1885188, 1884029, + 1882728, 1881302, 1879771, 1878156, 1876481, 1874766, 1873033, 1871301, 1869586, 1867901, 1866258, 1864664, 1863125, 1861646, + 1860228, 1858873, 1857579, 1856347, 1855176, 1854062, 1853004, 1851999, 1851047, 1850143, 1849285, 1848473, 1847702, 1846972, + 1846279, 1845623, 1845001, 1844411, 1843853, 1843323, 1842822, 1842346, 1889197, 1889854, 1890364, 1890723, 1890927, 1890972, + 1890852, 1890564, 1890103, 1889471, 1888669, 1887703, 1886583, 1885321, 1883934, 1882440, 1880861, 1879217, 1877531, 1875822, + 1874109, 1872409, 1870735, 1869098, 1867507, 1865969, 1864487, 1863064, 1861701, 1860400, 1859158, 1857976, 1856850, 1855780, + 1854764, 1853798, 1852881, 1852011, 1851184, 1850401, 1849657, 1848951, 1848282, 1847647, 1847044, 1846473, 1845930, 1845416, + 1844929, 1891419, 1892083, 1892601, 1892970, 1893188, 1893249, 1893150, 1892884, 1892451, 1891849, 1891080, 1890150, 1889067, + 1887843, 1886494, 1885038, 1883494, 1881882, 1880225, 1878540, 1876848, 1875163, 1873501, 1871872, 1870286, 1868748, 1867265, + 1865838, 1864470, 1863161, 1861911, 1860719, 1859583, 1858502, 1857473, 1856495, 1855566, 1854683, 1853844, 1853047, 1852291, + 1851572, 1850890, 1850243, 1849628, 1849044, 1848489, 1847963, 1847464, 1893616, 1894285, 1894810, 1895189, 1895420, 1895497, + 1895416, 1895173, 1894765, 1894191, 1893454, 1892558, 1891511, 1890324, 1889013, 1887593, 1886083, 1884503, 1882874, 1881214, + 1879542, 1877874, 1876224, 1874604, 1873022, 1871487, 1870003, 1868573, 1867200, 1865884, 1864625, 1863424, 1862278, 1861186, + 1860146, 1859156, 1858215, 1857319, 1856468, 1855659, 1854890, 1854159, 1853464, 1852804, 1852176, 1851580, 1851014, 1850476, + 1849964, 1895769, 1896442, 1896974, 1897363, 1897605, 1897697, 1897634, 1897413, 1897029, 1896483, 1895777, 1894914, 1893902, + 1892751, 1891476, 1890091, 1888615, 1887067, 1885466, 1883831, 1882180, 1880530, 1878893, 1877282, 1875706, 1874174, 1872690, + 1871257, 1869880, 1868558, 1867292, 1866082, 1864926, 1863824, 1862773, 1861772, 1860819, 1859912, 1859049, 1858227, 1857446, + 1856703, 1855996, 1855324, 1854684, 1854076, 1853498, 1852948, 1852425, 1897857, 1898536, 1899075, 1899473, 1899727, 1899834, + 1899789, 1899588, 1899228, 1898710, 1898033, 1897202, 1896224, 1895109, 1893869, 1892520, 1891078, 1889561, 1887989, 1886380, + 1884751, 1883118, 1881495, 1879895, 1878326, 1876798, 1875315, 1873882, 1872501, 1871174, 1869902, 1868684, 1867520, 1866408, + 1865347, 1864336, 1863371, 1862453, 1861578, 1860745, 1859952, 1859198, 1858479, 1857795, 1857144, 1856524, 1855935, 1855374, + 1854840, 1899920, 1900603, 1901149, 1901555, 1901821, 1901941, 1901913, 1901731, 1901395, 1900902, 1900254, 1899454, 1898509, + 1897428, 1896223, 1894908, 1893499, 1892013, 1890470, 1888886, 1887279, 1885664, 1884056, 1882467, 1880906, 1879382, 1877901, + 1876467, 1875084, 1873753, 1872475, 1871250, 1870077, 1868956, 1867886, 1866864, 1865889, 1864960, 1864074, 1863230, 1862426, + 1861659, 1860929, 1860234, 1859571, 1858940, 1858339, 1857767, 1857222, 1901957, 1902644, 1903196, 1903610, 1903886, 1904020, + 1904007, 1903845, 1903530, 1903062, 1902441, 1901671, 1900757, 1899709, 1898538, 1897256, 1895879, 1894425, 1892909, 1891351, + 1889766, 1888170, 1886577, 1884999, 1883447, 1881928, 1880449, 1879016, 1877630, 1876295, 1875012, 1873780, 1872600, 1871470, + 1870391, 1869359, 1868374, 1867434, 1866537, 1865682, 1864866, 1864089, 1863347, 1862641, 1861967, 1861325, 1860713, 1860129, + 1859573, 1903930, 1904620, 1905178, 1905601, 1905887, 1906034, 1906037, 1905893, 1905599, 1905155, 1904561, 1903821, 1902938, + 1901923, 1900784, 1899535, 1898191, 1896767, 1895281, 1893748, 1892186, 1890609, 1889032, 1887467, 1885924, 1884412, 1882937, + 1881504, 1880118, 1878780, 1877492, 1876254, 1875067, 1873930, 1872842, 1871801, 1870807, 1869857, 1868950, 1868084, 1867258, + 1866470, 1865717, 1865000, 1864316, 1863663, 1863040, 1862446, 1861880, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, + 134344, 119184, 99658, 82683, 69478, 59408, 51652, 45568, 40700, 36735, 33450, 30690, 28342, 26320, + 24563, 23023, 21662, 20452, 19368, 18392, 17509, 16707, 15974, 15302, 14685, 14115, 13587, 13097, + 12641, 12216, 11818, 11446, 11096, 10766, 10456, 10163, 9886, 9623, 9374, 9138, 8913, 8699, + 8495, 8301, 8115, 7937, 7767, 7604, 7447, 7297, 7153, 7014, 6881, 6753, 6629, 6510, + 6395, 6284, 6177, 6073, 5973, 5876, 5782, 5691, 5603, 5517, 5435, 5354, 5276, 5200, + 5127, 5055, 4985, 4918, 4852, 4787, 4725 +]; +/// PMOS log-domain current table, corner mos_ss, IHP-Open-PDK 21133f21, L 0.45 um, 27 C: the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (Vgs = ix * 15.625 mV, Vds = iy * 31.25 mV), then the 97 words rv = nint(4096 / s(Vgs)) at Vgs = ix * 15.625 mV (deck psp103_idpa_ss.cir, blocks lam_p and r_p). +pub const SS_LG_P : [4851]u32 = [ + 4294967295, 74584, 72543, 70409, 69772, 70397, 72013, 73373, 74948, 76567, 78184, 79788, 81380, 82962, + 84536, 86106, 87672, 89238, 90804, 92373, 93945, 95522, 97104, 98693, 100289, 101894, 103508, 105132, + 106767, 108416, 110082, 111771, 113494, 115266, 117115, 119080, 121220, 123618, 126643, 130032, 134159, 139249, + 145547, 153296, 162703, 173905, 186943, 201747, 218146, 235898, 119401, 116368, 113752, 112602, 112723, 113519, + 114687, 115756, 116876, 118000, 119118, 120228, 121333, 122434, 123534, 124634, 125736, 126842, 127952, 129068, + 130191, 131321, 132460, 133607, 134765, 135933, 137112, 138303, 139507, 140727, 141967, 143231, 144530, 145880, + 147306, 148845, 150551, 152664, 155029, 157901, 161456, 165899, 171461, 178370, 186832, 196994, 208920, 222573, + 237823, 164358, 160796, 157851, 156342, 156128, 156593, 157431, 158165, 158952, 159745, 160533, 161314, 162089, + 162861, 163632, 164403, 165175, 165950, 166729, 167513, 168302, 169097, 169899, 170709, 171527, 172353, 173189, + 174035, 174892, 175761, 176644, 177545, 178468, 179425, 180428, 181499, 182674, 183998, 185678, 187584, 189936, + 192887, 196620, 201339, 207258, 214576, 223453, 233981, 246171, 209438, 205593, 202441, 200693, 200253, 200505, + 201015, 201650, 202222, 202799, 203370, 203934, 204492, 205045, 205595, 206145, 206694, 207244, 207796, 208351, + 208909, 209471, 210038, 210610, 211187, 211771, 212361, 212958, 213563, 214176, 214799, 215434, 216083, 216751, + 217447, 218183, 218979, 219861, 220952, 222180, 223680, 225553, 227928, 230959, 234822, 239709, 245806, 253277, + 262243, 254628, 250633, 247356, 245455, 244863, 244978, 245353, 245854, 246288, 246727, 247160, 247585, 248002, + 248414, 248821, 249226, 249630, 250033, 250436, 250839, 251244, 251651, 252061, 252473, 252889, 253308, 253731, + 254159, 254592, 255029, 255473, 255924, 256384, 256854, 257341, 257850, 258392, 258982, 259644, 260474, 261417, + 262578, 264040, 265907, 268302, 271373, 275281, 280194, 286272, 299918, 295848, 292492, 290499, 289808, 289832, + 290123, 290487, 290887, 291240, 291585, 291922, 292250, 292572, 292889, 293203, 293513, 293822, 294129, 294436, + 294742, 295049, 295357, 295666, 295976, 296288, 296603, 296919, 297239, 297561, 297887, 298216, 298551, 298892, + 299241, 299603, 299982, 300387, 300831, 301367, 301965, 302687, 303580, 304708, 306152, 308008, 310394, 313441, + 317291, 345299, 341196, 337789, 335742, 334990, 334953, 335190, 335502, 335822, 336147, 336439, 336720, 336993, + 337259, 337520, 337775, 338027, 338277, 338524, 338770, 339014, 339258, 339501, 339744, 339988, 340232, 340477, + 340722, 340969, 341218, 341468, 341720, 341974, 342232, 342494, 342763, 343041, 343332, 343644, 343985, 344398, + 344860, 345416, 346103, 346970, 348076, 349496, 351320, 353651, 390766, 386653, 383213, 381134, 380344, 380269, + 380471, 380750, 381038, 381315, 381588, 381835, 382074, 382305, 382530, 382750, 382966, 383179, 383389, 383596, + 383802, 384006, 384209, 384412, 384613, 384815, 385016, 385217, 385419, 385621, 385823, 386026, 386231, 386437, + 386645, 386856, 387071, 387294, 387526, 387775, 388060, 388372, 388734, 389168, 389701, 390368, 391213, 392293, + 393674, 436313, 432202, 428743, 426643, 425832, 425733, 425912, 426171, 426439, 426695, 426938, 427175, 427392, + 427602, 427806, 428004, 428197, 428387, 428574, 428758, 428940, 429120, 429298, 429475, 429651, 429826, 430001, + 430174, 430348, 430521, 430694, 430867, 431040, 431214, 431388, 431564, 431742, 431923, 432109, 432303, 432509, + 432743, 432997, 433288, 433633, 434051, 434568, 435217, 436038, 481935, 477834, 474363, 472251, 471428, 471315, + 471480, 471726, 471981, 472225, 472455, 472673, 472884, 473081, 473272, 473456, 473636, 473813, 473985, 474155, + 474322, 474487, 474651, 474812, 474972, 475131, 475289, 475446, 475602, 475757, 475912, 476067, 476221, 476375, + 476529, 476684, 476839, 476995, 477154, 477317, 477485, 477668, 477861, 478073, 478314, 478595, 478929, 479335, + 479837, 527627, 523541, 520065, 517946, 517115, 516995, 517151, 517388, 517636, 517873, 518096, 518306, 518505, + 518695, 518881, 519058, 519230, 519398, 519562, 519723, 519882, 520038, 520192, 520344, 520495, 520644, 520792, + 520938, 521084, 521229, 521372, 521516, 521658, 521800, 521942, 522084, 522225, 522367, 522510, 522655, 522802, + 522953, 523115, 523284, 523469, 523674, 523907, 524180, 524505, 573383, 569316, 565839, 563717, 562882, 562758, + 562909, 563142, 563386, 563618, 563837, 564042, 564237, 564423, 564601, 564774, 564941, 565106, 565266, 565422, + 565575, 565726, 565875, 566021, 566166, 566309, 566451, 566592, 566731, 566869, 567007, 567143, 567279, 567414, + 567548, 567682, 567816, 567949, 568082, 568216, 568351, 568488, 568628, 568776, 568929, 569093, 569273, 569473, + 569701, 619194, 615152, 611678, 609556, 608720, 608594, 608743, 608973, 609215, 609445, 609661, 609865, 610057, + 610240, 610416, 610586, 610751, 610912, 611068, 611222, 611374, 611521, 611667, 611810, 611952, 612092, 612230, + 612367, 612503, 612638, 612771, 612904, 613035, 613166, 613296, 613425, 613554, 613683, 613811, 613939, 614067, + 614196, 614326, 614460, 614596, 614738, 614888, 615049, 615225, 665047, 661039, 657573, 655453, 654618, 654492, + 654641, 654871, 655111, 655341, 655557, 655759, 655950, 656133, 656308, 656476, 656640, 656799, 656955, 657107, + 657256, 657402, 657546, 657688, 657828, 657967, 658104, 658239, 658372, 658505, 658636, 658767, 658896, 659024, + 659152, 659279, 659405, 659531, 659656, 659781, 659905, 660030, 660154, 660280, 660409, 660539, 660673, 660813, + 660960, 710924, 706965, 703512, 701397, 700565, 700440, 700591, 700821, 701062, 701293, 701509, 701711, 701903, + 702085, 702260, 702429, 702593, 702752, 702907, 703058, 703207, 703353, 703496, 703638, 703777, 703915, 704050, + 704185, 704318, 704450, 704580, 704710, 704838, 704965, 705092, 705217, 705342, 705467, 705590, 705713, 705836, + 705958, 706080, 706203, 706325, 706450, 706576, 706705, 706837, 756794, 752908, 749478, 747371, 746543, 746422, + 746576, 746809, 747052, 747284, 747502, 747706, 747899, 748083, 748259, 748428, 748593, 748752, 748908, 749060, + 749209, 749356, 749499, 749641, 749780, 749918, 750054, 750189, 750321, 750453, 750583, 750713, 750841, 750968, + 751094, 751220, 751344, 751468, 751591, 751714, 751836, 751957, 752078, 752199, 752320, 752441, 752563, 752686, + 752811, 802608, 798835, 795441, 793348, 792528, 792413, 792572, 792810, 793058, 793293, 793514, 793721, 793917, + 794103, 794281, 794453, 794619, 794780, 794937, 795091, 795241, 795389, 795534, 795677, 795817, 795956, 796093, + 796228, 796362, 796494, 796625, 796755, 796884, 797012, 797138, 797264, 797389, 797513, 797637, 797759, 797882, + 798003, 798124, 798244, 798365, 798485, 798605, 798726, 798847, 848292, 844695, 841358, 839287, 838480, 838376, + 838544, 838790, 839044, 839285, 839511, 839723, 839923, 840113, 840295, 840471, 840640, 840805, 840965, 841121, + 841274, 841424, 841571, 841716, 841859, 841999, 842138, 842275, 842411, 842545, 842677, 842809, 842939, 843068, + 843196, 843323, 843449, 843575, 843699, 843823, 843946, 844068, 844190, 844311, 844432, 844552, 844672, 844792, + 844913, 893727, 890405, 887160, 885124, 884338, 884251, 884433, 884691, 884956, 885207, 885442, 885662, 885869, + 886066, 886254, 886435, 886609, 886779, 886944, 887105, 887262, 887416, 887567, 887715, 887862, 888006, 888147, + 888288, 888426, 888563, 888698, 888832, 888965, 889096, 889227, 889356, 889484, 889612, 889738, 889864, 889989, + 890113, 890237, 890360, 890482, 890604, 890725, 890846, 890967, 938728, 935837, 932739, 930760, 930006, 929945, + 930149, 930427, 930709, 930975, 931224, 931456, 931674, 931882, 932079, 932269, 932452, 932630, 932802, 932970, + 933134, 933294, 933451, 933606, 933757, 933907, 934054, 934199, 934342, 934483, 934623, 934761, 934898, 935033, + 935167, 935301, 935432, 935563, 935693, 935822, 935950, 936078, 936204, 936330, 936455, 936580, 936703, 936827, + 936950, 984553, 981669, 978390, 976265, 975442, 975363, 975575, 975871, 976174, 976462, 976731, 976981, 977217, + 977440, 977653, 977857, 978053, 978242, 978426, 978605, 978779, 978949, 979115, 979278, 979438, 979596, 979750, + 979903, 980053, 980201, 980348, 980493, 980636, 980777, 980917, 981056, 981193, 981330, 981465, 981599, 981732, + 981864, 981995, 982126, 982255, 982384, 982512, 982639, 982766, 1039082, 1032596, 1026666, 1022889, 1021166, 1020648, + 1020670, 1020897, 1021188, 1021488, 1021778, 1022052, 1022312, 1022558, 1022792, 1023016, 1023231, 1023438, 1023639, 1023833, + 1024022, 1024207, 1024387, 1024563, 1024735, 1024904, 1025071, 1025234, 1025395, 1025553, 1025710, 1025864, 1026016, 1026166, + 1026315, 1026462, 1026608, 1026752, 1026894, 1027036, 1027176, 1027315, 1027453, 1027590, 1027726, 1027861, 1027996, 1028129, + 1028262, 1097626, 1086501, 1076859, 1070511, 1067205, 1065793, 1065347, 1065348, 1065544, 1065816, 1066112, 1066407, 1066693, + 1066968, 1067230, 1067481, 1067722, 1067954, 1068178, 1068395, 1068605, 1068809, 1069008, 1069202, 1069392, 1069577, 1069760, + 1069938, 1070114, 1070286, 1070456, 1070623, 1070788, 1070951, 1071111, 1071270, 1071426, 1071581, 1071735, 1071886, 1072036, + 1072185, 1072333, 1072479, 1072624, 1072767, 1072910, 1073052, 1073192, 1154759, 1140173, 1127261, 1118311, 1113185, 1110599, + 1109439, 1109029, 1109004, 1109169, 1109423, 1109714, 1110016, 1110316, 1110609, 1110892, 1111164, 1111427, 1111680, 1111925, + 1112162, 1112392, 1112615, 1112832, 1113044, 1113251, 1113454, 1113652, 1113846, 1114037, 1114224, 1114408, 1114589, 1114767, + 1114943, 1115116, 1115287, 1115455, 1115622, 1115786, 1115949, 1116110, 1116269, 1116427, 1116583, 1116738, 1116891, 1117043, + 1117194, 1207995, 1191596, 1176393, 1165260, 1158410, 1154587, 1152583, 1151622, 1151252, 1151213, 1151355, 1151593, 1151880, + 1152187, 1152500, 1152810, 1153113, 1153408, 1153693, 1153969, 1154237, 1154496, 1154748, 1154992, 1155230, 1155462, 1155688, + 1155908, 1156124, 1156336, 1156543, 1156747, 1156946, 1157143, 1157336, 1157526, 1157713, 1157897, 1158079, 1158258, 1158435, + 1158610, 1158783, 1158954, 1159123, 1159290, 1159455, 1159619, 1159781, 1256485, 1239685, 1223214, 1210454, 1202128, 1197142, + 1194274, 1192695, 1191896, 1191569, 1191526, 1191652, 1191877, 1192156, 1192464, 1192784, 1193106, 1193425, 1193738, 1194043, + 1194340, 1194628, 1194908, 1195179, 1195444, 1195701, 1195951, 1196196, 1196434, 1196667, 1196896, 1197119, 1197338, 1197553, + 1197763, 1197971, 1198174, 1198375, 1198572, 1198766, 1198958, 1199147, 1199333, 1199517, 1199698, 1199878, 1200055, 1200230, + 1200404, 1300121, 1283919, 1267081, 1253246, 1243731, 1237716, 1234028, 1231818, 1230547, 1229875, 1229587, 1229544, 1229656, + 1229865, 1230133, 1230434, 1230753, 1231079, 1231406, 1231729, 1232047, 1232357, 1232660, 1232955, 1233242, 1233522, 1233794, + 1234060, 1234318, 1234571, 1234818, 1235059, 1235296, 1235527, 1235754, 1235976, 1236195, 1236409, 1236620, 1236828, 1237032, + 1237233, 1237432, 1237627, 1237819, 1238010, 1238197, 1238382, 1238565, 1339155, 1324143, 1307656, 1293257, 1282833, 1275936, + 1271497, 1268677, 1266921, 1265873, 1265297, 1265039, 1264993, 1265089, 1265279, 1265528, 1265815, 1266124, 1266444, 1266768, + 1267092, 1267413, 1267728, 1268038, 1268340, 1268635, 1268923, 1269204, 1269478, 1269746, 1270007, 1270262, 1270512, 1270756, + 1270995, 1271230, 1271460, 1271685, 1271907, 1272124, 1272338, 1272548, 1272755, 1272959, 1273160, 1273358, 1273553, 1273745, + 1273935, 1374021, 1360467, 1344845, 1330335, 1319267, 1311631, 1306518, 1303123, 1300889, 1299451, 1298562, 1298056, 1297817, + 1297763, 1297839, 1298004, 1298228, 1298493, 1298783, 1299087, 1299400, 1299715, 1300029, 1300341, 1300647, 1300949, 1301244, + 1301533, 1301815, 1302091, 1302361, 1302625, 1302883, 1303135, 1303382, 1303624, 1303861, 1304093, 1304321, 1304545, 1304765, + 1304981, 1305193, 1305402, 1305607, 1305810, 1306009, 1306205, 1306399, 1405212, 1393165, 1378721, 1364488, 1353027, 1344790, + 1339081, 1335153, 1332460, 1330634, 1329421, 1328646, 1328188, 1327958, 1327891, 1327943, 1328079, 1328274, 1328510, 1328774, + 1329056, 1329348, 1329647, 1329947, 1330246, 1330543, 1330836, 1331124, 1331407, 1331685, 1331957, 1332223, 1332484, 1332739, + 1332989, 1333233, 1333473, 1333708, 1333939, 1334165, 1334387, 1334605, 1334819, 1335030, 1335237, 1335440, 1335641, 1335838, + 1336033, 1433223, 1422604, 1409482, 1395834, 1384217, 1375515, 1369288, 1364873, 1361747, 1359542, 1358004, 1356953, 1356261, + 1355835, 1355606, 1355522, 1355547, 1355652, 1355814, 1356019, 1356252, 1356507, 1356774, 1357050, 1357330, 1357612, 1357893, + 1358172, 1358448, 1358719, 1358987, 1359250, 1359508, 1359761, 1360009, 1360252, 1360491, 1360725, 1360954, 1361179, 1361400, + 1361617, 1361830, 1362040, 1362246, 1362448, 1362647, 1362843, 1363036, 1458492, 1449169, 1437387, 1424543, 1412994, 1403963, + 1397297, 1392443, 1388913, 1386348, 1384492, 1383164, 1382232, 1381600, 1381194, 1380961, 1380860, 1380857, 1380930, 1381059, + 1381230, 1381431, 1381655, 1381895, 1382145, 1382401, 1382661, 1382923, 1383184, 1383443, 1383700, 1383954, 1384205, 1384451, + 1384693, 1384931, 1385165, 1385394, 1385620, 1385841, 1386058, 1386271, 1386481, 1386687, 1386890, 1387089, 1387285, 1387477, + 1387667, 1481405, 1473225, 1462723, 1450817, 1439535, 1430312, 1423288, 1418047, 1414146, 1411241, 1409080, 1407481, 1406310, + 1405468, 1404880, 1404488, 1404249, 1404128, 1404099, 1404140, 1404237, 1404374, 1404544, 1404737, 1404947, 1405169, 1405400, + 1405637, 1405877, 1406118, 1406358, 1406598, 1406836, 1407072, 1407304, 1407533, 1407759, 1407981, 1408200, 1408415, 1408626, + 1408834, 1409038, 1409239, 1409436, 1409630, 1409821, 1410009, 1410194, 1502296, 1495111, 1485786, 1474875, 1464026, 1454748, + 1447448, 1441872, 1437635, 1434414, 1431964, 1430103, 1428698, 1427647, 1426874, 1426319, 1425936, 1425689, 1425550, 1425496, + 1425508, 1425573, 1425679, 1425817, 1425980, 1426161, 1426356, 1426561, 1426773, 1426990, 1427210, 1427431, 1427652, 1427873, + 1428092, 1428309, 1428524, 1428736, 1428946, 1429152, 1429356, 1429556, 1429753, 1429947, 1430139, 1430327, 1430512, 1430694, + 1430873, 1521433, 1515109, 1506841, 1496926, 1486636, 1477434, 1469947, 1464089, 1459552, 1456041, 1453320, 1451210, 1449579, + 1448324, 1447368, 1446649, 1446120, 1445743, 1445489, 1445332, 1445255, 1445241, 1445277, 1445353, 1445462, 1445595, 1445748, + 1445916, 1446096, 1446284, 1446478, 1446676, 1446877, 1447080, 1447283, 1447485, 1447687, 1447887, 1448085, 1448281, 1448475, + 1448666, 1448855, 1449041, 1449225, 1449406, 1449584, 1449759, 1449932, 1539044, 1533466, 1526135, 1517174, 1507526, 1498521, + 1490936, 1484853, 1480055, 1476280, 1473307, 1470963, 1469116, 1467665, 1466529, 1465648, 1464973, 1464466, 1464094, 1463832, + 1463661, 1463563, 1463524, 1463534, 1463583, 1463664, 1463770, 1463897, 1464039, 1464194, 1464359, 1464531, 1464708, 1464890, + 1465073, 1465258, 1465444, 1465630, 1465815, 1465999, 1466182, 1466363, 1466542, 1466719, 1466894, 1467067, 1467237, 1467406, + 1467571, 1555325, 1550392, 1543885, 1535815, 1526853, 1518148, 1510552, 1504304, 1499283, 1495272, 1492068, 1489506, 1487454, + 1485814, 1484506, 1483467, 1482648, 1482010, 1481519, 1481151, 1480883, 1480699, 1480582, 1480522, 1480508, 1480533, 1480589, + 1480670, 1480771, 1480890, 1481022, 1481164, 1481315, 1481472, 1481634, 1481800, 1481968, 1482137, 1482307, 1482478, 1482648, + 1482817, 1482985, 1483152, 1483318, 1483482, 1483644, 1483804, 1483962, 1570429, 1566057, 1560272, 1553019, 1544754, 1536432, + 1528911, 1522559, 1517356, 1513137, 1509723, 1506958, 1504715, 1502896, 1501422, 1500230, 1499271, 1498505, 1497897, 1497422, + 1497057, 1496785, 1496588, 1496456, 1496377, 1496342, 1496344, 1496377, 1496435, 1496515, 1496611, 1496721, 1496843, 1496974, + 1497112, 1497255, 1497403, 1497555, 1497708, 1497863, 1498019, 1498176, 1498332, 1498488, 1498643, 1498797, 1498950, 1499102, + 1499252, 1584500, 1580616, 1575465, 1568950, 1561369, 1553486, 1546120, 1539725, 1534381, 1529985, 1526382, 1523430, 1521008, + 1519020, 1517388, 1516050, 1514955, 1514063, 1513341, 1512760, 1512298, 1511937, 1511660, 1511454, 1511308, 1511212, 1511159, + 1511141, 1511153, 1511191, 1511249, 1511325, 1511415, 1511517, 1511629, 1511749, 1511876, 1512007, 1512143, 1512281, 1512422, + 1512564, 1512707, 1512851, 1512995, 1513138, 1513281, 1513424, 1513565, 1597649, 1594193, 1589597, 1583745, 1576818, 1569411, + 1562265, 1555888, 1550449, 1545904, 1542135, 1539013, 1536426, 1534279, 1532498, 1531019, 1529794, 1528780, 1527946, 1527261, + 1526704, 1526254, 1525896, 1525616, 1525402, 1525244, 1525134, 1525064, 1525028, 1525022, 1525041, 1525081, 1525138, 1525210, + 1525294, 1525388, 1525492, 1525602, 1525718, 1525838, 1525962, 1526089, 1526218, 1526348, 1526480, 1526612, 1526745, 1526877, + 1527009, 1609972, 1606892, 1602785, 1597526, 1591213, 1584298, 1577427, 1571126, 1565635, 1560974, 1557061, 1553786, 1551047, + 1548752, 1546830, 1545218, 1543868, 1542738, 1541794, 1541009, 1540357, 1539821, 1539383, 1539029, 1538746, 1538525, 1538357, + 1538234, 1538150, 1538099, 1538076, 1538078, 1538101, 1538141, 1538196, 1538263, 1538342, 1538429, 1538524, 1538625, 1538732, + 1538842, 1538956, 1539072, 1539191, 1539311, 1539432, 1539554, 1539677, 1621551, 1618803, 1615127, 1610396, 1604653, 1598230, + 1591677, 1585504, 1580006, 1575262, 1571228, 1567818, 1564940, 1562509, 1560454, 1558717, 1557248, 1556005, 1554957, 1554073, + 1553330, 1552709, 1552192, 1551764, 1551414, 1551130, 1550903, 1550727, 1550593, 1550496, 1550431, 1550394, 1550381, 1550388, + 1550412, 1550452, 1550505, 1550568, 1550641, 1550722, 1550809, 1550902, 1551000, 1551102, 1551206, 1551314, 1551423, 1551534, + 1551645, 1632467, 1630012, 1626717, 1622458, 1617238, 1611296, 1605086, 1599087, 1593625, 1588829, 1584699, 1581172, 1578168, + 1575612, 1573434, 1571578, 1569996, 1568647, 1567497, 1566518, 1565687, 1564982, 1564387, 1563887, 1563469, 1563123, 1562838, + 1562608, 1562424, 1562281, 1562173, 1562096, 1562046, 1562019, 1562012, 1562022, 1562048, 1562087, 1562136, 1562196, 1562264, + 1562338, 1562419, 1562505, 1562595, 1562688, 1562785, 1562884, 1562984, 1642778, 1640585, 1637627, 1633789, 1629046, 1623566, + 1617715, 1611927, 1606540, 1601727, 1597526, 1593900, 1590785, 1588113, 1585821, 1583854, 1582165, 1580714, 1579468, 1578398, + 1577480, 1576695, 1576024, 1575453, 1574969, 1574560, 1574218, 1573933, 1573699, 1573509, 1573358, 1573241, 1573153, 1573091, + 1573052, 1573033, 1573030, 1573043, 1573069, 1573106, 1573153, 1573209, 1573272, 1573341, 1573415, 1573494, 1573578, 1573664, + 1573753, 1652532, 1650573, 1647915, 1644454, 1640145, 1635103, 1629617, 1624068, 1618793, 1613995, 1609748, 1606042, 1602831, + 1600056, 1597659, 1595589, 1593799, 1592251, 1590913, 1589756, 1588755, 1587892, 1587147, 1586507, 1585957, 1585488, 1585089, + 1584751, 1584467, 1584230, 1584035, 1583878, 1583752, 1583655, 1583583, 1583533, 1583502, 1583488, 1583489, 1583504, 1583529, + 1583565, 1583609, 1583661, 1583719, 1583784, 1583853, 1583926, 1584002, 1661788, 1660038, 1657649, 1654523, 1650608, 1645976, + 1640852, 1635564, 1630432, 1625679, 1621411, 1617645, 1614352, 1611485, 1608993, 1606826, 1604942, 1603304, 1601877, 1600636, + 1599556, 1598617, 1597801, 1597093, 1596480, 1595951, 1595495, 1595104, 1594771, 1594488, 1594249, 1594051, 1593887, 1593754, + 1593649, 1593568, 1593508, 1593467, 1593443, 1593433, 1593437, 1593452, 1593477, 1593511, 1593553, 1593601, 1593655, 1593715, + 1593779, 1670587, 1669025, 1666875, 1664051, 1660493, 1656242, 1651471, 1646455, 1641493, 1636814, 1632550, 1628743, 1625383, + 1622436, 1619858, 1617603, 1615631, 1613906, 1612397, 1611076, 1609919, 1608907, 1608022, 1607248, 1606573, 1605985, 1605474, + 1605031, 1604649, 1604320, 1604038, 1603799, 1603597, 1603428, 1603289, 1603177, 1603087, 1603019, 1602969, 1602935, 1602916, + 1602910, 1602915, 1602931, 1602955, 1602987, 1603026, 1603071, 1603122, 1678962, 1677570, 1675636, 1673082, 1669847, 1665950, + 1661518, 1656781, 1652008, 1647429, 1643193, 1639365, 1635955, 1632940, 1630284, 1627949, 1625895, 1624090, 1622502, 1621105, + 1619875, 1618793, 1617841, 1617004, 1616269, 1615624, 1615059, 1614565, 1614134, 1613759, 1613434, 1613154, 1612914, 1612710, + 1612537, 1612393, 1612274, 1612178, 1612102, 1612043, 1612001, 1611973, 1611958, 1611955, 1611961, 1611977, 1612000, 1612030, + 1612067, 1686949, 1685709, 1683969, 1681659, 1678717, 1675145, 1671037, 1666580, 1662011, 1657554, 1653368, 1649539, 1646094, + 1643023, 1640301, 1637893, 1635764, 1633884, 1632222, 1630753, 1629453, 1628304, 1627288, 1626390, 1625596, 1624895, 1624277, + 1623733, 1623255, 1622835, 1622468, 1622148, 1621870, 1621630, 1621424, 1621248, 1621099, 1620974, 1620872, 1620789, 1620723, + 1620673, 1620638, 1620614, 1620602, 1620601, 1620608, 1620623, 1620646, 1694574, 1693472, 1691908, 1689817, 1687141, 1683869, + 1680066, 1675885, 1671531, 1667214, 1663100, 1659288, 1655823, 1652710, 1649931, 1647458, 1645262, 1643312, 1641581, 1640044, + 1638678, 1637465, 1636387, 1635430, 1634580, 1633825, 1633156, 1632562, 1632038, 1631574, 1631165, 1630805, 1630490, 1630215, + 1629975, 1629767, 1629588, 1629436, 1629306, 1629198, 1629109, 1629037, 1628980, 1628937, 1628906, 1628887, 1628878, 1628877, + 1628885, 1701870, 1700894, 1699489, 1697596, 1695161, 1692163, 1688648, 1684736, 1680602, 1676440, 1672415, 1668639, 1665170, + 1662027, 1659201, 1656672, 1654414, 1652400, 1650604, 1649003, 1647575, 1646301, 1645164, 1644150, 1643245, 1642438, 1641718, + 1641078, 1640507, 1640000, 1639550, 1639152, 1638799, 1638488, 1638215, 1637976, 1637767, 1637586, 1637430, 1637297, 1637184, + 1637089, 1637011, 1636948, 1636898, 1636861, 1636835, 1636819, 1636811, 1708851, 1707989, 1706728, 1705016, 1702799, 1700054, + 1696808, 1693154, 1689243, 1685247, 1681328, 1677605, 1674147, 1670987, 1668125, 1665548, 1663236, 1661164, 1659308, 1657647, + 1656160, 1654828, 1653635, 1652566, 1651609, 1650751, 1649983, 1649296, 1648682, 1648132, 1647642, 1647205, 1646816, 1646471, + 1646165, 1645894, 1645656, 1645447, 1645264, 1645105, 1644968, 1644851, 1644752, 1644668, 1644600, 1644544, 1644501, 1644468, + 1644446, 1715551, 1714793, 1713663, 1712114, 1710096, 1707582, 1704586, 1701181, 1697489, 1693667, 1689867, 1686212, 1682780, + 1679615, 1676727, 1674111, 1671751, 1669627, 1667716, 1665999, 1664456, 1663070, 1661823, 1660702, 1659694, 1658788, 1657973, + 1657241, 1656583, 1655992, 1655463, 1654988, 1654563, 1654184, 1653845, 1653543, 1653275, 1653038, 1652829, 1652645, 1652484, + 1652344, 1652223, 1652119, 1652031, 1651957, 1651896, 1651847, 1651809, 1721990, 1721327, 1720316, 1718915, 1717078, 1714775, + 1712012, 1708842, 1705367, 1701723, 1698053, 1694478, 1691086, 1687928, 1685025, 1682378, 1679977, 1677806, 1675846, 1674077, + 1672482, 1671043, 1669745, 1668574, 1667518, 1666564, 1665704, 1664928, 1664229, 1663598, 1663029, 1662518, 1662057, 1661644, + 1661273, 1660941, 1660644, 1660379, 1660143, 1659933, 1659748, 1659585, 1659443, 1659318, 1659210, 1659118, 1659040, 1658974, + 1658920, 1728171, 1727595, 1726693, 1725427, 1723755, 1721647, 1719100, 1716152, 1712888, 1709424, 1705892, 1702411, 1699071, + 1695933, 1693025, 1690356, 1687922, 1685710, 1683705, 1681889, 1680245, 1678758, 1677412, 1676193, 1675090, 1674092, 1673188, + 1672370, 1671630, 1670960, 1670354, 1669806, 1669311, 1668865, 1668462, 1668100, 1667774, 1667481, 1667219, 1666985, 1666776, + 1666590, 1666426, 1666280, 1666153, 1666042, 1665946, 1665863, 1665793, 1734122, 1733626, 1732823, 1731680, 1730159, 1728229, + 1725882, 1723144, 1720083, 1716800, 1713412, 1710033, 1706757, 1703649, 1700746, 1698064, 1695604, 1693358, 1691313, 1689454, + 1687765, 1686232, 1684840, 1683577, 1682430, 1681388, 1680442, 1679584, 1678804, 1678096, 1677453, 1676870, 1676342, 1675863, + 1675429, 1675037, 1674682, 1674362, 1674074, 1673815, 1673582, 1673374, 1673188, 1673022, 1672875, 1672745, 1672631, 1672532, + 1672445, 1739854, 1739431, 1738719, 1737690, 1736306, 1734540, 1732377, 1729837, 1726971, 1723865, 1720625, 1717357, 1714155, + 1711088, 1708200, 1705514, 1703035, 1700760, 1698681, 1696783, 1695053, 1693478, 1692043, 1690737, 1689548, 1688465, 1687478, + 1686580, 1685762, 1685017, 1684339, 1683722, 1683160, 1682650, 1682186, 1681764, 1681381, 1681035, 1680721, 1680437, 1680180, + 1679949, 1679742, 1679556, 1679389, 1679241, 1679109, 1678992, 1678889, 1745388, 1745032, 1744404, 1743477, 1742220, 1740603, + 1738611, 1736255, 1733576, 1730644, 1727552, 1724401, 1721282, 1718266, 1715402, 1712719, 1710229, 1707932, 1705822, 1703890, + 1702123, 1700508, 1699034, 1697687, 1696458, 1695335, 1694310, 1693374, 1692519, 1691739, 1691026, 1690375, 1689781, 1689239, + 1688745, 1688295, 1687885, 1687511, 1687172, 1686863, 1686584, 1686330, 1686101, 1685895, 1685708, 1685541, 1685391, 1685257, + 1685139, 1750726, 1750432, 1749880, 1749048, 1747907, 1746427, 1744594, 1742410, 1739907, 1737145, 1734203, 1731173, 1728144, + 1725187, 1722356, 1719685, 1717191, 1714878, 1712744, 1710782, 1708981, 1707331, 1705819, 1704435, 1703167, 1702007, 1700945, + 1699973, 1699082, 1698267, 1697521, 1696838, 1696212, 1695640, 1695117, 1694638, 1694201, 1693801, 1693437, 1693104, 1692801, + 1692526, 1692276, 1692048, 1691843, 1691657, 1691489, 1691338, 1691203, 1755878, 1755640, 1755159, 1754415, 1753380, 1752027, + 1750340, 1748318, 1745983, 1743383, 1740589, 1737684, 1734751, 1731862, 1729073, 1726421, 1723930, 1721607, 1719454, 1717467, + 1715637, 1713954, 1712408, 1710988, 1709685, 1708490, 1707392, 1706385, 1705461, 1704613, 1703834, 1703119, 1702463, 1701862, + 1701310, 1700804, 1700340, 1699914, 1699525, 1699169, 1698844, 1698546, 1698275, 1698027, 1697802, 1697598, 1697412, 1697244, + 1697093, 1760865, 1760680, 1760264, 1759600, 1758662, 1757426, 1755874, 1754002, 1751825, 1749383, 1746735, 1743955, 1741123, + 1738307, 1735567, 1732942, 1730460, 1728134, 1725968, 1723960, 1722103, 1720391, 1718814, 1717362, 1716025, 1714796, 1713665, + 1712624, 1711667, 1710787, 1709977, 1709232, 1708546, 1707916, 1707336, 1706803, 1706313, 1705862, 1705449, 1705069, 1704721, + 1704402, 1704110, 1703842, 1703598, 1703375, 1703172, 1702987, 1702819, 1765689, 1765553, 1765196, 1764606, 1763758, 1762630, + 1761203, 1759471, 1757443, 1755151, 1752645, 1749992, 1747263, 1744528, 1741842, 1739252, 1736787, 1734463, 1732288, 1730264, + 1728386, 1726648, 1725042, 1723559, 1722192, 1720931, 1719768, 1718696, 1717707, 1716796, 1715956, 1715181, 1714467, 1713809, + 1713202, 1712642, 1712127, 1711652, 1711214, 1710812, 1710442, 1710101, 1709788, 1709501, 1709238, 1708996, 1708775, 1708573, + 1708389, 1770362, 1770270, 1769969, 1769446, 1768681, 1767652, 1766341, 1764739, 1762852, 1760703, 1758336, 1755808, 1753186, + 1750534, 1747910, 1745360, 1742917, 1740602, 1738424, 1736388, 1734492, 1732731, 1731100, 1729590, 1728194, 1726903, 1725710, + 1724608, 1723590, 1722649, 1721780, 1720976, 1720234, 1719549, 1718915, 1718330, 1717790, 1717291, 1716830, 1716405, 1716013, + 1715651, 1715318, 1715011, 1714729, 1714469, 1714231, 1714012, 1713812, 1774883, 1774832, 1774582, 1774123, 1773435, 1772498, + 1771294, 1769813, 1768058, 1766046, 1763813, 1761409, 1758894, 1756330, 1753773, 1751270, 1748856, 1746554, 1744378, 1742335, + 1740425, 1738646, 1736992, 1735458, 1734035, 1732716, 1731496, 1730365, 1729318, 1728349, 1727452, 1726622, 1725853, 1725141, + 1724482, 1723872, 1723307, 1722785, 1722301, 1721854, 1721441, 1721058, 1720705, 1720379, 1720078, 1719801, 1719545, 1719310, + 1719093, 1779275, 1779263, 1779060, 1778659, 1778041, 1777189, 1776085, 1774717, 1773085, 1771202, 1769098, 1766816, 1764409, + 1761935, 1759449, 1756997, 1754617, 1752334, 1750165, 1748120, 1746200, 1744405, 1742732, 1741175, 1739728, 1738384, 1737137, + 1735979, 1734905, 1733909, 1732985, 1732128, 1731334, 1730596, 1729912, 1729278, 1728690, 1728144, 1727638, 1727170, 1726735, + 1726333, 1725960, 1725615, 1725295, 1725000, 1724727, 1724475, 1724243, 1783540, 1783563, 1783404, 1783056, 1782504, 1781731, + 1780718, 1779455, 1777939, 1776179, 1774198, 1772034, 1769735, 1767353, 1764941, 1762545, 1760204, 1757945, 1755788, 1753745, + 1751819, 1750012, 1748323, 1746746, 1745277, 1743909, 1742637, 1741454, 1740355, 1739333, 1738384, 1737501, 1736681, 1735919, + 1735211, 1734553, 1733942, 1733374, 1732847, 1732356, 1731901, 1731479, 1731087, 1730723, 1730385, 1730072, 1729782, 1729514, + 1729266, 1787678, 1787733, 1787615, 1787317, 1786826, 1786125, 1785198, 1784033, 1782626, 1780981, 1779119, 1777070, 1774877, + 1772588, 1770253, 1767917, 1765620, 1763390, 1761250, 1759212, 1757285, 1755470, 1753767, 1752173, 1750684, 1749295, 1748000, + 1746794, 1745670, 1744624, 1743650, 1742744, 1741900, 1741114, 1740383, 1739702, 1739068, 1738478, 1737930, 1737419, 1736944, + 1736501, 1736090, 1735708, 1735353, 1735022, 1734716, 1734431, 1734167, 1791701, 1791787, 1791706, 1791454, 1791019, 1790385, + 1789538, 1788464, 1787158, 1785623, 1783874, 1781936, 1779847, 1777652, 1775396, 1773124, 1770874, 1768678, 1766559, 1764531, + 1762605, 1760785, 1759072, 1757464, 1755958, 1754550, 1753234, 1752006, 1750859, 1749790, 1748793, 1747863, 1746996, 1746187, + 1745434, 1744731, 1744075, 1743464, 1742895, 1742364, 1741869, 1741407, 1740977, 1740577, 1740204, 1739857, 1739534, 1739233, + 1738953, 1795621, 1795735, 1795689, 1795480, 1795097, 1794525, 1793751, 1792763, 1791552, 1790120, 1788477, 1786646, 1784660, + 1782557, 1780381, 1778175, 1775977, 1773818, 1771724, 1769710, 1767790, 1765968, 1764247, 1762628, 1761107, 1759681, 1758346, + 1757097, 1755930, 1754838, 1753819, 1752867, 1751978, 1751147, 1750371, 1749647, 1748971, 1748339, 1747749, 1747198, 1746684, + 1746203, 1745755, 1745337, 1744947, 1744583, 1744243, 1743926, 1743631, 1799428, 1799568, 1799554, 1799385, 1799050, 1798536, + 1797831, 1796921, 1795800, 1794465, 1792924, 1791197, 1789310, 1787299, 1785205, 1783067, 1780923, 1778806, 1776740, 1774745, + 1772833, 1771013, 1769288, 1767660, 1766126, 1764685, 1763333, 1762066, 1760879, 1759767, 1758727, 1757754, 1756843, 1755992, + 1755195, 1754450, 1753753, 1753101, 1752492, 1751922, 1751389, 1750890, 1750424, 1749988, 1749581, 1749200, 1748845, 1748513, + 1748203, 1803132, 1803297, 1803313, 1803181, 1802891, 1802431, 1801790, 1800954, 1799916, 1798672, 1797229, 1795600, 1793810, + 1791891, 1789878, 1787810, 1785723, 1783650, 1781617, 1779643, 1777744, 1775929, 1774203, 1772568, 1771025, 1769571, 1768204, + 1766919, 1765714, 1764584, 1763524, 1762531, 1761600, 1760728, 1759912, 1759147, 1758430, 1757759, 1757130, 1756542, 1755990, + 1755474, 1754990, 1754537, 1754113, 1753717, 1753345, 1752998, 1752673, 1806749, 1806935, 1806980, 1806882, 1806633, 1806224, + 1805642, 1804875, 1803914, 1802757, 1801405, 1799871, 1798175, 1796344, 1794412, 1792415, 1790388, 1788362, 1786364, 1784415, + 1782532, 1780725, 1779000, 1777362, 1775811, 1774346, 1772965, 1771665, 1770443, 1769295, 1768217, 1767205, 1766255, 1765364, + 1764528, 1763744, 1763008, 1762318, 1761671, 1761064, 1760495, 1759961, 1759460, 1758990, 1758550, 1758137, 1757750, 1757388, + 1757048, 1810264, 1810471, 1810542, 1810476, 1810266, 1809904, 1809377, 1808675, 1807787, 1806711, 1805446, 1804003, 1802397, + 1800653, 1798802, 1796877, 1794910, 1792934, 1790975, 1789054, 1787190, 1785394, 1783674, 1782035, 1780479, 1779005, 1777613, + 1776300, 1775063, 1773899, 1772803, 1771774, 1770806, 1769896, 1769042, 1768239, 1767485, 1766777, 1766112, 1765488, 1764901, + 1764350, 1763832, 1763347, 1762890, 1762462, 1762060, 1761683, 1761328, 1813690, 1813917, 1814013, 1813976, 1813803, 1813484, + 1813009, 1812367, 1811548, 1810548, 1809366, 1808008, 1806490, 1804831, 1803060, 1801206, 1799302, 1797378, 1795460, 1793571, + 1791729, 1789947, 1788234, 1786597, 1785038, 1783558, 1782156, 1780831, 1779580, 1778401, 1777290, 1776244, 1775259, 1774332, + 1773460, 1772640, 1771869, 1771143, 1770461, 1769819, 1769215, 1768648, 1768114, 1767612, 1767141, 1766697, 1766280, 1765888, + 1765520, 1817043, 1817288, 1817406, 1817397, 1817257, 1816979, 1816552, 1815966, 1815211, 1814282, 1813178, 1811902, 1810467, + 1808891, 1807198, 1805416, 1803575, 1801704, 1799829, 1797974, 1796156, 1794391, 1792688, 1791055, 1789495, 1788011, 1786601, + 1785266, 1784003, 1782811, 1781685, 1780623, 1779622, 1778679, 1777790, 1776953, 1776165, 1775422, 1774723, 1774065, 1773445, + 1772861, 1772311, 1771794, 1771307, 1770848, 1770416, 1770010, 1769628, 1820307, 1820569, 1820708, 1820725, 1820617, 1820377, + 1819995, 1819461, 1818767, 1817906, 1816875, 1815677, 1814322, 1812826, 1811210, 1809499, 1807721, 1805905, 1804076, 1802256, + 1800467, 1798721, 1797031, 1795404, 1793846, 1792359, 1790944, 1789601, 1788328, 1787123, 1785984, 1784908, 1783892, 1782933, + 1782028, 1781175, 1780370, 1779612, 1778897, 1778222, 1777586, 1776987, 1776422, 1775889, 1775387, 1774914, 1774468, 1774048, + 1773652, 1823498, 1823775, 1823934, 1823975, 1823897, 1823692, 1823352, 1822867, 1822229, 1821431, 1820470, 1819346, 1818069, + 1816650, 1815108, 1813468, 1811754, 1809993, 1808211, 1806430, 1804669, 1802946, 1801271, 1799653, 1798099, 1796611, 1795192, + 1793842, 1792560, 1791345, 1790194, 1789104, 1788075, 1787101, 1786182, 1785313, 1784493, 1783719, 1782988, 1782298, 1781647, + 1781033, 1780453, 1779905, 1779389, 1778901, 1778441, 1778007, 1777598, 1826615, 1826907, 1827084, 1827148, 1827097, 1826925, + 1826624, 1826186, 1825600, 1824862, 1823966, 1822913, 1821708, 1820364, 1818895, 1817324, 1815674, 1813969, 1812235, 1810495, + 1808766, 1807067, 1805409, 1803803, 1802254, 1800769, 1799348, 1797993, 1796704, 1795479, 1794317, 1793215, 1792173, 1791186, + 1790252, 1789369, 1788534, 1787745, 1786999, 1786295, 1785629, 1784999, 1784405, 1783843, 1783312, 1782811, 1782337, 1781890, + 1781467, 1829658, 1829963, 1830157, 1830242, 1830217, 1830076, 1829813, 1829417, 1828881, 1828199, 1827365, 1826379, 1825245, + 1823972, 1822574, 1821071, 1819484, 1817836, 1816152, 1814453, 1812758, 1811085, 1809447, 1807854, 1806314, 1804832, 1803411, + 1802053, 1800758, 1799525, 1798354, 1797242, 1796187, 1795187, 1794241, 1793344, 1792495, 1791692, 1790932, 1790213, 1789533, + 1788889, 1788281, 1787705, 1787160, 1786645, 1786158, 1785698, 1785262, 1832642, 1832960, 1833170, 1833275, 1833273, 1833161, + 1832932, 1832576, 1832087, 1831457, 1830681, 1829759, 1828692, 1827487, 1826158, 1824722, 1823197, 1821606, 1819972, 1818315, + 1816656, 1815011, 1813395, 1811817, 1810287, 1808811, 1807391, 1806032, 1804732, 1803493, 1802313, 1801191, 1800126, 1799114, + 1798155, 1797246, 1796384, 1795567, 1794793, 1794060, 1793366, 1792709, 1792086, 1791497, 1790939, 1790411, 1789911, 1789437, + 1788989, 1835553, 1835882, 1836107, 1836230, 1836251, 1836166, 1835969, 1835652, 1835206, 1834626, 1833905, 1833043, 1832039, + 1830901, 1829639, 1828267, 1826804, 1825270, 1823687, 1822074, 1820452, 1818837, 1817244, 1815684, 1814166, 1812697, 1811282, + 1809922, 1808620, 1807376, 1806189, 1805059, 1803983, 1802961, 1801991, 1801069, 1800194, 1799365, 1798578, 1797832, 1797125, + 1796454, 1795818, 1795216, 1794645, 1794104, 1793591, 1793105, 1792645, 1838404, 1838745, 1838983, 1839123, 1839166, 1839106, + 1838939, 1838657, 1838253, 1837719, 1837050, 1836245, 1835302, 1834227, 1833029, 1831721, 1830318, 1828841, 1827308, 1825741, + 1824157, 1822574, 1821006, 1819465, 1817961, 1816501, 1815091, 1813733, 1812430, 1811182, 1809989, 1808852, 1807768, 1806736, + 1805754, 1804821, 1803935, 1803093, 1802294, 1801535, 1800815, 1800132, 1799484, 1798869, 1798285, 1797731, 1797206, 1796708, + 1796235, 1841197, 1841548, 1841799, 1841955, 1842017, 1841981, 1841843, 1841594, 1841228, 1840738, 1840119, 1839367, 1838482, + 1837468, 1836332, 1835085, 1833741, 1832320, 1830838, 1829316, 1827772, 1826221, 1824680, 1823161, 1821673, 1820224, 1818820, + 1817465, 1816162, 1814912, 1813715, 1812571, 1811480, 1810439, 1809448, 1808504, 1807607, 1806754, 1805943, 1805172, 1804440, + 1803744, 1803084, 1802456, 1801860, 1801294, 1800757, 1800247, 1799762, 1843932, 1844292, 1844555, 1844726, 1844806, 1844793, + 1844680, 1844463, 1844133, 1843685, 1843112, 1842411, 1841581, 1840625, 1839548, 1838361, 1837076, 1835709, 1834279, 1832803, + 1831298, 1829782, 1828269, 1826772, 1825302, 1823865, 1822470, 1821120, 1819819, 1818568, 1817367, 1816219, 1815120, 1814072, + 1813072, 1812119, 1811211, 1810347, 1809525, 1808743, 1807999, 1807292, 1806619, 1805980, 1805372, 1804794, 1804245, 1803723, + 1803228, 1846607, 1846976, 1847250, 1847436, 1847533, 1847540, 1847453, 1847265, 1846969, 1846560, 1846031, 1845378, 1844601, + 1843700, 1842681, 1841551, 1840323, 1839011, 1837631, 1836201, 1834737, 1833257, 1831773, 1830301, 1828849, 1827427, 1826042, + 1824698, 1823400, 1822149, 1820947, 1819794, 1818691, 1817635, 1816628, 1815666, 1814749, 1813874, 1813042, 1812249, 1811494, + 1810775, 1810091, 1809440, 1808821, 1808232, 1807672, 1807139, 1806632, 1849240, 1849617, 1849902, 1850100, 1850214, 1850240, + 1850176, 1850016, 1849752, 1849379, 1848891, 1848284, 1847556, 1846708, 1845744, 1844670, 1843497, 1842238, 1840908, 1839524, + 1838102, 1836657, 1835204, 1833757, 1832325, 1830919, 1829545, 1828209, 1826915, 1825666, 1824463, 1823308, 1822199, 1821138, + 1820123, 1819153, 1818227, 1817344, 1816501, 1815697, 1814932, 1814202, 1813507, 1812846, 1812215, 1811615, 1811044, 1810500, + 1809982, 1851797, 1852182, 1852477, 1852688, 1852816, 1852862, 1852820, 1852686, 1852452, 1852114, 1851666, 1851103, 1850422, + 1849625, 1848713, 1847694, 1846574, 1845368, 1844088, 1842751, 1841370, 1839962, 1838542, 1837121, 1835711, 1834322, 1832962, + 1831635, 1830347, 1829101, 1827899, 1826742, 1825631, 1824565, 1823544, 1822567, 1821633, 1820741, 1819889, 1819076, 1818301, + 1817561, 1816856, 1816184, 1815543, 1814932, 1814350, 1813796, 1813267, 1854329, 1854720, 1855024, 1855247, 1855389, 1855452, + 1855431, 1855320, 1855115, 1854810, 1854398, 1853876, 1853240, 1852491, 1851630, 1850662, 1849595, 1848439, 1847208, 1845916, + 1844577, 1843207, 1841818, 1840425, 1839038, 1837668, 1836321, 1835005, 1833724, 1832483, 1831282, 1830124, 1829010, 1827941, + 1826914, 1825931, 1824990, 1824089, 1823229, 1822407, 1821622, 1820873, 1820157, 1819475, 1818824, 1818203, 1817610, 1817045, + 1816507, 1856802, 1857199, 1857512, 1857745, 1857901, 1857980, 1857978, 1857891, 1857712, 1857437, 1857061, 1856577, 1855985, + 1855281, 1854469, 1853550, 1852534, 1851429, 1850246, 1848999, 1847702, 1846369, 1845014, 1843650, 1842287, 1840936, 1839605, + 1838301, 1837029, 1835792, 1834595, 1833438, 1832322, 1831250, 1830219, 1829230, 1828282, 1827375, 1826507, 1825676, 1824882, + 1824124, 1823399, 1822707, 1822046, 1821415, 1820813, 1820238, 1819689, 1859232, 1859635, 1859956, 1860199, 1860367, 1860461, + 1860478, 1860412, 1860259, 1860013, 1859669, 1859223, 1858670, 1858011, 1857244, 1856374, 1855407, 1854350, 1853214, 1852012, + 1850757, 1849462, 1848141, 1846806, 1845469, 1844138, 1842824, 1841533, 1840270, 1839040, 1837847, 1836691, 1835576, 1834501, + 1833467, 1832473, 1831520, 1830606, 1829730, 1828892, 1828090, 1827322, 1826589, 1825887, 1825217, 1824576, 1823964, 1823380, + 1822821, 1861601, 1862011, 1862339, 1862591, 1862772, 1862880, 1862914, 1862869, 1862740, 1862522, 1862209, 1861798, 1861284, + 1860667, 1859945, 1859121, 1858201, 1857192, 1856103, 1854945, 1853732, 1852476, 1851189, 1849884, 1848573, 1847264, 1845968, + 1844691, 1843440, 1842218, 1841029, 1839877, 1838762, 1837686, 1836650, 1835653, 1834694, 1833775, 1832893, 1832047, 1831237, + 1830462, 1829720, 1829010, 1828330, 1827681, 1827060, 1826466, 1825898, 1863946, 1864361, 1864696, 1864957, 1865149, 1865271, + 1865320, 1865294, 1865187, 1864995, 1864712, 1864334, 1863857, 1863278, 1862599, 1861820, 1860945, 1859982, 1858938, 1857824, + 1856652, 1855433, 1854181, 1852907, 1851622, 1850337, 1849059, 1847798, 1846558, 1845345, 1844162, 1843014, 1841901, 1840825, + 1839786, 1838786, 1837823, 1836898, 1836010, 1835158, 1834341, 1833558, 1832807, 1832089, 1831401, 1830743, 1830113, 1829510, + 1828933, 1866249, 1866669, 1867010, 1867279, 1867481, 1867615, 1867680, 1867672, 1867586, 1867418, 1867163, 1866816, 1866373, + 1865833, 1865194, 1864458, 1863627, 1862708, 1861708, 1860637, 1859505, 1858325, 1857107, 1855864, 1854607, 1853345, 1852087, + 1850842, 1849615, 1848412, 1847237, 1846093, 1844982, 1843907, 1842868, 1841865, 1840899, 1839969, 1839076, 1838218, 1837394, + 1836603, 1835846, 1835119, 1834423, 1833756, 1833118, 1832507, 1831921, 1868491, 1868914, 1869262, 1869540, 1869751, 1869898, + 1869977, 1869986, 1869921, 1869776, 1869547, 1869230, 1868821, 1868317, 1867717, 1867022, 1866234, 1865358, 1864401, 1863373, + 1862281, 1861139, 1859957, 1858745, 1857516, 1856279, 1855042, 1853814, 1852601, 1851409, 1850243, 1849105, 1847998, 1846924, + 1845885, 1844881, 1843913, 1842980, 1842082, 1841218, 1840388, 1839591, 1838827, 1838093, 1837389, 1836715, 1836068, 1835449, + 1834855, 1870708, 1871136, 1871489, 1871774, 1871994, 1872152, 1872245, 1872270, 1872223, 1872100, 1871897, 1871608, 1871230, + 1870760, 1870197, 1869541, 1868794, 1867960, 1867045, 1866058, 1865006, 1863902, 1862754, 1861575, 1860374, 1859161, 1857946, + 1856736, 1855539, 1854359, 1853201, 1852070, 1850968, 1849897, 1848858, 1847854, 1846883, 1845947, 1845045, 1844176, 1843341, + 1842538, 1841767, 1841026, 1840315, 1839633, 1838979, 1838352, 1837750, 1872902, 1873333, 1873691, 1873982, 1874211, 1874379, + 1874484, 1874525, 1874495, 1874393, 1874213, 1873950, 1873602, 1873165, 1872637, 1872018, 1871310, 1870516, 1869642, 1868694, + 1867682, 1866614, 1865501, 1864354, 1863181, 1861994, 1860801, 1859610, 1858428, 1857261, 1856113, 1854989, 1853892, 1852824, + 1851788, 1850783, 1849811, 1848872, 1847967, 1847094, 1846253, 1845445, 1844667, 1843920, 1843202, 1842513, 1841851, 1841216, + 1840606, 1875032, 1875467, 1875830, 1876128, 1876365, 1876543, 1876661, 1876715, 1876703, 1876620, 1876463, 1876226, 1875906, + 1875500, 1875006, 1874424, 1873754, 1872999, 1872164, 1871256, 1870282, 1869251, 1868173, 1867058, 1865915, 1864754, 1863584, + 1862413, 1861247, 1860094, 1858957, 1857842, 1856751, 1855688, 1854654, 1853650, 1852678, 1851738, 1850829, 1849953, 1849108, + 1848295, 1847512, 1846758, 1846034, 1845338, 1844670, 1844027, 1843410, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, + 134344, 119184, 99658, 82683, 69478, 59408, 51652, 45568, 40700, 36735, 33450, 30690, 28342, 26320, + 24563, 23023, 21662, 20452, 19368, 18392, 17509, 16707, 15974, 15302, 14685, 14115, 13587, 13097, + 12641, 12216, 11818, 11446, 11096, 10766, 10456, 10163, 9886, 9623, 9374, 9138, 8913, 8699, + 8495, 8301, 8115, 7937, 7767, 7604, 7447, 7297, 7153, 7014, 6881, 6753, 6629, 6510, + 6395, 6284, 6177, 6073, 5973, 5876, 5782, 5691, 5603, 5517, 5435, 5354, 5276, 5200, + 5127, 5055, 4985, 4918, 4852, 4787, 4725 +]; +/// NMOS drain current in pA at 1000 centres of the log grid's cells, corner mos_ss, point k = 1 .. 1000 at Vgs = (floor(96 frac(k a1)) + 1/2) * 15.625 mV, Vds = (floor(48 frac(k a2)) + 1/2) * 31.25 mV (deck psp103_idpa_ss.cir, block cen_n). +pub const SS_CEN_N : [1000]u32 = [ + 178250860, 41009287, 2944978, 40, 198363704, 61495995, 5239535, 151, 106130815, 74642462, 5074006, 512, 201785877, 87602284, + 8893563, 528, 224347391, 80997143, 11617829, 2442, 245649766, 100276379, 10283340, 8809, 181459398, 116388803, 16810080, 28879, + 253111925, 57163227, 23615234, 21756, 279444672, 119712681, 31212445, 86392, 92862561, 140533877, 29572338, 283982, 258945170, 157765031, + 40238795, 239470, 309150807, 125417745, 50480421, 874490, 329357601, 168953365, 19838422, 2152271, 21, 190664838, 55754584, 4099761, + 86, 44555386, 68955673, 3850997, 295, 184147482, 82032799, 5959928, 227, 215734285, 67739877, 9667683, 1318, 237125408, + 93818204, 4407196, 4970, 145083852, 109642702, 14089346, 16921, 239357400, 6924212, 20674265, 11096, 269817999, 110614583, 27745923, + 48173, 10874112, 132814458, 25165224, 169120, 224385839, 150742210, 35891116, 493185, 298215299, 89517761, 42300642, 555148, 319794025, + 158666665, 52410392, 1511962, 118584908, 182351572, 49826762, 3124828, 48, 201161070, 63695354, 2726495, 169, 160309153, 76325560, + 4601125, 553, 205775740, 43647311, 7986144, 695, 228467125, 86728306, 12094382, 2776, 83964066, 102928419, 11741222, 9727, + 221199909, 112958040, 17777815, 5460, 260721383, 95995020, 24468353, 27073, 283495143, 124926789, 16316584, 98268, 175067563, 143337344, + 31681216, 308917, 277930868, 38415621, 38256422, 320809, 309844683, 148255675, 47858640, 1014140, 55976976, 173860606, 42628296, 2338676, + 26, 193162531, 58206703, 1042403, 98, 124794558, 70727857, 3501642, 321, 194675010, 16198645, 6415465, 357, 220299149, + 79152105, 10126945, 1572, 9944982, 96230966, 9385140, 3382, 201250763, 106451123, 15076448, 1362, 250029540, 71011468, 21516219, + 14434, 274434829, 117510476, 28518091, 55921, 127273968, 135912178, 24913579, 185842, 259392785, 152972986, 34172967, 173049, 300440946, + 131733601, 43469245, 662606, 324135627, 165074356, 33165252, 1669307, 217263283, 179535792, 52782764, 2593449, 56, 73663255, 65240149, + 2512764, 186, 183503914, 77814484, 5032575, 189, 211287264, 69685822, 8419891, 858, 231805548, 85248322, 6597083, 1918, + 165262297, 100008564, 12571575, 6440, 237972193, 42374489, 18624293, 7473, 265882826, 108730508, 25239290, 32018, 51682980, 128441818, + 21443797, 109279, 233016796, 145717756, 30256125, 76303, 289287737, 105016507, 39432158, 400336, 314817626, 156752315, 11421488, 1142372, + 170802584, 171534805, 47359098, 1906001, 31, 8859979, 60163344, 1707830, 107, 166187872, 72276572, 3897566, 45, 201888051, + 57956120, 6828112, 281, 223882952, 78731587, 10550430, 1102, 113678958, 93626765, 10418531, 3711, 223131887, 108218239, 15928185, + 3952, 256336802, 97795806, 19842368, 17607, 271603370, 121451453, 16947375, 63086, 204438767, 138475387, 26505453, 201481, 276677879, + 63468324, 35382770, 227787, 305202583, 146621822, 44518604, 520664, 96815800, 163429240, 42305285, 1334628, 276633719, 182199329, 54909026, + 1071131, 63, 139371402, 66859030, 2875673, 202, 191789141, 31619745, 5421649, 154, 215333253, 72078824, 8818676, 615, + 47319470, 87671105, 8310487, 2128, 207276910, 101864463, 13429443, 1894, 240149550, 80479905, 17140176, 9484, 263402304, 113809291, + 6625993, 36587, 154275529, 131235806, 23163778, 119539, 261278154, 22706495, 31506592, 121968, 296128105, 129223805, 40314145, 314026, + 11284384, 155815306, 35411700, 895797, 248115835, 174423729, 49753644, 265478, 36, 98074781, 61824388, 2030080, 72, 181950322, + 69156856, 4197075, 79, 206607995, 65766383, 7205881, 340, 226877559, 81416528, 6344308, 1234, 179533534, 95588005, 11261032, + 4019, 229421289, 58902061, 14634522, 4983, 254493693, 105827420, 20486477, 20546, 88583310, 124438594, 19739577, 69739, 245136370, + 140682494, 27806071, 40632, 285650090, 110907361, 36452034, 180851, 309666320, 147378348, 21822631, 575026, 198612218, 166606085, 45050613, + 1439317, 305706704, 56711442, 52713164, 1355496, 43, 168234328, 63942853, 3202479, 38, 197617582, 57115009, 5776359, 184, + 218608388, 75188903, 4060660, 700, 137773370, 89705747, 7752444, 2323, 218976019, 18475585, 12326283, 2668, 245357758, 96871923, + 17775622, 11367, 10428250, 117194464, 16328965, 40820, 217705250, 128011459, 24487035, 9535, 274193021, 88823304, 32598809, 99609, + 301056571, 138447985, 41279770, 360658, 133348126, 158722392, 40037544, 977240, 283885435, 176897694, 47864102, 880332, 325624311, 148268249, + 59086229, 2323101, 78, 189129826, 41821947, 4526329, 102, 210247175, 68939136, 7554893, 394, 94058105, 83598111, 6049950, + 1356, 204468716, 97308844, 10321293, 1332, 235886939, 87279380, 15260567, 6182, 258055344, 109879940, 11133391, 14193, 177117708, + 121062357, 21149422, 46633, 263033897, 47421775, 28925196, 54903, 291500597, 128314596, 37413281, 213237, 54449257, 151314977, 34726279, + 635843, 256828161, 169266888, 43147054, 492886, 313731446, 125069695, 54156672, 1609609, 47, 179168382, 13837298, 3498894, 53, + 201758497, 63140351, 5016558, 219, 27732929, 77561379, 4548726, 778, 184042755, 91473587, 8406934, 314, 226928738, 69416399, + 12941840, 3414, 249340215, 97503948, 2045657, 7990, 120722964, 114535491, 17987784, 26975, 247434400, 130007135, 25610395, 27966, + 281519487, 117613275, 33572365, 121421, 304974670, 143236840, 24745722, 403774, 217555786, 161615539, 38859471, 1053310, 299966431, 82196563, + 49371073, 1087362, 331912286, 167672091, 60328899, 2588783, 27, 187733855, 56275032, 3897665, 124, 206975758, 71584647, 3326988, + 443, 152671416, 85461451, 6690243, 1471, 216289555, 38432410, 10914084, 1091, 240452522, 90665385, 15831790, 4447, 68532082, + 107650253, 14980052, 15725, 225957933, 123175248, 22308236, 13400, 270863851, 98718766, 29912920, 69033, 289392238, 134878827, 13810972, + 243152, 162842480, 154400774, 34404272, 692463, 286122392, 24642572, 44731538, 670423, 321603706, 152464221, 55434320, 1370285, 12, + 179019617, 46503505, 2981881, 67, 198861017, 66068101, 702636, 251, 118696424, 79540110, 5171304, 850, 203977392, 92793679, + 8985530, 555, 232070259, 82366073, 13500334, 2510, 252619114, 100758394, 12270665, 8967, 194064869, 116733383, 19193167, 29248, + 260644691, 67047769, 23763998, 36879, 280182939, 126944265, 31345935, 141624, 111324491, 146697731, 30001251, 443827, 264526866, 164079114, + 40491122, 383054, 310545110, 131124737, 50689235, 898605, 336640655, 169913719, 32977590, 2184382, 36, 191193897, 60173572, 4138745, + 144, 60933063, 73707612, 3941590, 490, 187980403, 82283045, 7252133, 268, 222706476, 70923939, 11364033, 1361, 244071925, + 94342715, 7218535, 5071, 159945650, 110009730, 16265764, 17152, 241680576, 20648770, 20821418, 19010, 270675533, 116990514, 27879466, + 80094, 32178397, 138905064, 25870442, 270862, 233339165, 156985253, 36158072, 60429, 299950151, 99316820, 46097081, 573641, 327102037, + 160021226, 4449765, 1539096, 18, 182939549, 54128848, 3193680, 80, 201588575, 68300807, 2814710, 172, 170151976, 76585751, + 5712812, 560, 212803448, 50457196, 9505327, 723, 235392721, 87357217, 14012685, 2904, 101714812, 103323037, 11918283, 9874, + 225071534, 118652760, 17926323, 9461, 261698997, 103373899, 24602042, 45451, 284094835, 130951028, 18916543, 160299, 200239572, 149504223, + 31968369, 312918, 286097252, 52205761, 41878783, 334331, 317195910, 150200475, 51865358, 1036269, 77943762, 174530602, 47128439, 2368361, + 44, 194070758, 58559167, 1737645, 100, 137367604, 70999669, 4446159, 325, 201882039, 25796454, 7753809, 374, 227201408, + 80034422, 11860936, 1613, 29331032, 96660891, 9583851, 5648, 207031450, 112038031, 15226547, 4266, 251272692, 80646514, 21647759, + 24456, 275102661, 123477749, 2830521, 92445, 143495014, 136370067, 27904160, 188520, 268497758, 7938436, 37609088, 182046, 307838832, + 135464597, 47303226, 679681, 331386403, 165871503, 38507099, 1694324, 229854386, 186086589, 53172743, 3358927, 57, 89138179, 65804571, + 3286337, 189, 191016908, 78047196, 6193659, 199, 218179976, 71432072, 8488600, 884, 232308214, 90459627, 7192873, 3208, + 174809290, 105482119, 12871672, 10721, 239709729, 53889122, 18755879, 12772, 266611850, 114739990, 25361019, 32805, 71923601, 128946542, + 24252533, 111038, 243902994, 146083008, 33500307, 98284, 296814685, 112157007, 43094464, 413103, 322082885, 157695755, 17822471, 1162734, + 186506010, 178032284, 47818120, 2539111, 32, 26454780, 60457660, 2316578, 109, 174740630, 72517210, 4893930, 86, 208794283, + 61349049, 6893312, 476, 224416452, 83816810, 1319594, 1845, 127533239, 98981210, 10568462, 6185, 225871933, 6746457, 16059825, + 6793, 257184723, 99790850, 22392625, 18114, 278687626, 121997338, 19840879, 64228, 217242985, 138864712, 29551921, 203993, 284475329, + 74826080, 38862231, 236850, 306808241, 147975761, 44683809, 777294, 116260916, 169873858, 42882299, 1837972, 283142386, 188750247, 55222655, + 1531413, 64, 150062228, 67108886, 3705037, 204, 194027473, 40121686, 5482969, 261, 215922463, 77051309, 8882193, 1032, + 64871455, 92904706, 8463971, 3549, 211340996, 107360520, 13561132, 2049, 247315263, 88457221, 19498047, 9808, 270471464, 114444814, + 10881461, 37315, 170198453, 131654436, 26016801, 121183, 269663796, 36753131, 31698308, 127969, 297046887, 136270579, 40646239, 486260, + 33437582, 162205596, 36732862, 1279468, 257142711, 180917898, 50092822, 785488, 37, 111691978, 62079320, 2080964, 119, 183472534, + 5244206, 4254084, 135, 207271816, 70669726, 7265900, 571, 9688800, 86519582, 6539343, 2060, 186612969, 95889596, 11389700, + 4068, 236700462, 66135386, 16798992, 5188, 261554609 +]; +/// PMOS drain current in pA at 1000 centres of the log grid's cells, corner mos_ss, point k = 1 .. 1000 at Vgs = (floor(96 frac(k a1)) + 1/2) * 15.625 mV, Vds = (floor(48 frac(k a2)) + 1/2) * 31.25 mV (deck psp103_idpa_ss.cir, block cen_p). +pub const SS_CEN_P : [1000]u32 = [ + 130009760, 26040936, 453961, 5, 144239527, 37483983, 984979, 14, 75656639, 45004623, 1644529, 36, 152112815, 52746000, + 2950037, 82, 170088380, 53861947, 3840010, 223, 185999673, 65759715, 4825463, 598, 133589067, 75634581, 7681004, 1606, + 198269000, 39611089, 10853890, 2485, 220833578, 83204222, 14577036, 6723, 67275999, 96773996, 16601153, 18147, 200600423, 108235514, + 22059529, 43534, 251752863, 89249843, 27584741, 117896, 269301763, 122983594, 13019704, 297074, 3, 138189191, 34015914, 682525, + 9, 31654144, 41461262, 1196333, 22, 136684782, 49051054, 1725083, 42, 163007818, 45194440, 3026200, 137, 179099186, + 61387935, 2309457, 367, 105046045, 71075324, 6360309, 985, 185430712, 4831897, 9296574, 1513, 212569150, 76607838, 12716787, + 4106, 7903221, 91386122, 14151095, 11096, 169006394, 102998700, 19603967, 29842, 240960653, 62908663, 22512432, 73459, 260629875, + 115082925, 27983700, 190091, 86784523, 131940461, 30469797, 458942, 6, 145249125, 38115709, 831854, 14, 116826000, 45418215, + 1259754, 38, 154972165, 29415361, 2339444, 84, 172169984, 56796460, 3889235, 225, 60120388, 66602917, 5201912, 603, + 168405117, 71980901, 7850526, 906, 204567533, 66195243, 10995050, 2512, 223045624, 85932599, 9658022, 6781, 128589893, 97718973, + 17261973, 18291, 220951702, 26968594, 20136229, 45248, 251577091, 106867819, 25298937, 119584, 40907489, 125620663, 26283329, 300913, + 4, 139121531, 34790070, 313055, 9, 89199947, 41905693, 897400, 24, 145812435, 11050168, 1760174, 51, 165490441, + 51905425, 3069222, 139, 7144167, 62205310, 4117470, 229, 150513516, 67586799, 6539030, 254, 195218271, 48809267, 9432318, + 1534, 215345058, 80664614, 12843210, 4143, 92335012, 92499767, 13259332, 11184, 202393531, 103668548, 17851449, 27608, 242818526, + 93946749, 22749936, 74493, 263335912, 119110315, 20799086, 192487, 162632958, 127919791, 31546702, 306148, 6, 52127302, 38512244, + 617213, 15, 136362966, 45768102, 1288856, 31, 158393832, 45824218, 2375496, 85, 173596881, 54394492, 2980746, 141, + 120615947, 63296992, 5359326, 376, 184373707, 29191862, 7984982, 936, 207918103, 74599971, 11117932, 2535, 37301088, 87320948, + 11339573, 6836, 177299753, 98449968, 15698596, 14144, 232400462, 73907467, 20373945, 45936, 254995480, 112769190, 7467551, 121051, + 125780730, 121993826, 28337941, 196073, 4, 6296043, 35311704, 411191, 10, 121756793, 42272222, 920022, 9, 150989708, + 38261253, 1790162, 33, 167090890, 50257693, 3108037, 87, 81526717, 59108407, 4334557, 231, 170688556, 68044977, 6673249, + 571, 199871314, 66973146, 8164903, 1549, 210831627, 82362501, 9115130, 4177, 152331944, 93313255, 13673837, 11271, 220258914, + 44373143, 18098275, 28171, 246404437, 105149505, 22955531, 46811, 70572974, 116065719, 25275465, 123225, 215729022, 128829177, 32154217, + 261369, 6, 100206609, 38900591, 635165, 17, 142937889, 21104682, 1313055, 20, 160366691, 46071252, 2407800, 54, + 33807963, 55120999, 3405423, 142, 156257804, 63783464, 5495212, 332, 185583775, 54984242, 6846472, 947, 203760996, 77177781, + 3895960, 2557, 112340318, 88251540, 11830787, 6889, 205070187, 15926697, 15958806, 17192, 238111787, 91599825, 20545042, 28731, + 8253124, 110367237, 21403369, 76543, 189195123, 123020981, 29100410, 72226, 4, 69454029, 35714189, 425774, 8, 134855325, + 39420184, 935503, 12, 153572154, 41994456, 1816701, 33, 168264408, 51127821, 2574426, 88, 132249281, 59631702, 4467450, + 234, 176426173, 40245383, 5662009, 579, 196382723, 71781144, 8255956, 1563, 63796250, 83401272, 10042586, 4211, 189413635, + 93963059, 13954571, 6418, 228631565, 77867690, 18304187, 17583, 249180550, 104299826, 13740604, 47194, 147434187, 117262131, 26245440, + 124428, 246572962, 40014259, 29853383, 277682, 5, 123501967, 36193612, 648910, 7, 146610762, 36668582, 1334134, 21, + 161718710, 47206047, 1718005, 54, 99305180, 55671614, 2820588, 144, 167258350, 12754104, 4609290, 354, 188868889, 65693382, + 6932249, 956, 7534060, 78470633, 8303508, 2578, 164039621, 84480819, 12125929, 1769, 218012541, 61874978, 16169218, 10739, + 241392554, 97861836, 20727153, 29012, 97310862, 111533296, 23345087, 77264, 224681612, 123826267, 26996969, 177657, 267993343, 107178907, + 33144804, 435800, 12, 139866114, 27308702, 951608, 13, 155184486, 43315789, 1840750, 34, 67025981, 51740748, 2144191, + 89, 154341341, 60067794, 3697839, 215, 181091081, 59050531, 5742327, 585, 198054386, 73554202, 5951491, 970, 130046021, + 79689067, 10388468, 2608, 207424106, 32986732, 14171904, 6562, 233003369, 90448430, 18482453, 17759, 39599884, 106031045, 20328660, + 47628, 198001268, 118155118, 24260962, 105645, 256222469, 89168062, 30179308, 284985, 7, 132081337, 9280549, 660409, 8, + 148628997, 39608168, 974658, 21, 19764502, 47911839, 1578298, 55, 136392162, 56121227, 2898316, 59, 173542619, 47011789, + 4683988, 359, 190891232, 64716250, 1186328, 594, 87080044, 75100730, 8774902, 1596, 192344642, 85036807, 12344581, 3990, + 224200415, 82451749, 16347817, 10854, 243552374, 100290340, 14596269, 29273, 163010522, 112547611, 21718102, 77955, 242173154, 57916993, + 27343994, 182892, 273306605, 122880868, 33412187, 443852, 5, 136960738, 35414533, 675175, 13, 150683116, 44175129, 1124342, + 34, 110670110, 52222869, 2219302, 91, 164636875, 26229435, 3764825, 136, 183657013, 60080192, 5813333, 364, 49206156, + 70481419, 7267098, 978, 171975100, 80287216, 10621421, 2312, 214658169, 68672239, 14351711, 6638, 229168985, 94381368, 8506815, + 17921, 119243742, 107154275, 19205466, 48042, 228010990, 17390798, 24638080, 114844, 263650794, 110526922, 30454240, 187870, 2, + 130405770, 29600698, 454987, 8, 144426039, 40644478, 280851, 21, 84844927, 48437949, 1654685, 56, 154037080, 56444530, + 2959414, 83, 176680991, 54638388, 4749025, 224, 192320138, 65922141, 5901445, 599, 143944590, 75730528, 9032569, 1608, + 205262057, 46415712, 10878986, 4050, 221266452, 88608203, 14599645, 10956, 80728978, 101656398, 16751333, 29522, 206174836, 113334692, + 22118043, 70665, 253088661, 93596151, 27628983, 118199, 276548641, 123557655, 21363976, 297739, 5, 138394221, 37047582, 683939, + 14, 43250369, 44763805, 1205532, 35, 140044527, 49110426, 2274639, 48, 169133649, 47169302, 3813306, 137, 185339167, + 61576764, 3745314, 367, 116496987, 71179928, 7574358, 986, 187669921, 14381074, 9320866, 2468, 213129535, 81485219, 12738877, + 6692, 23331920, 96165248, 14419008, 18073, 176935042, 107994708, 19669094, 12133, 242728069, 69918600, 24936748, 73647, 267835242, + 116027275, 2979605, 190508, 3, 132184784, 33392300, 460842, 9, 145395899, 41287978, 842531, 14, 124876495, 45480294, + 1704722, 40, 161092430, 33846058, 3010675, 84, 178330870, 57056368, 4807136, 226, 73012782, 66719394, 5238506, 604, + 172090262, 76250085, 7874873, 1492, 205262441, 71661299, 11016633, 4093, 223342272, 90615539, 10932043, 11050, 148698935, 102608591, + 17338037, 18315, 228842350, 36594630, 22423839, 45380, 258762072, 108327774, 27873082, 119840, 57001914, 125927200, 29242289, 301522, + 5, 139440814, 34888948, 533056, 9, 98756504, 41971277, 1248399, 24, 152038271, 17493970, 2319563, 52, 171573647, + 52340610, 3865252, 139, 21019943, 62339029, 4165739, 371, 155685094, 71737437, 6563731, 769, 196224907, 55610958, 9452899, + 2499, 215701119, 85261134, 1765724, 6752, 104397159, 92650923, 15107667, 11199, 211019735, 5594292, 19999129, 27745, 249993437, + 96809385, 25186923, 74648, 270509958, 119525356, 24170071, 192865, 173132454, 133389807, 31666392, 465405, 6, 63229254, 38650303, + 883335, 15, 142787962, 45821720, 1743414, 32, 164409029, 46820349, 2381109, 85, 173796483, 58169736, 3142164, 228, + 128278739, 67327111, 5409166, 610, 185944511, 37141659, 8005064, 1525, 208331014, 79179697, 11137020, 2539, 51946068, 87498109, + 13053299, 6845, 187092104, 98557876, 17705422, 16705, 239653247, 79119886, 22674887, 46034, 262117067, 113315678, 11505890, 121281, + 137935969, 127367595, 28499386, 305027, 4, 18775671, 35385239, 605032, 10, 128884410, 42327778, 1279829, 16, 156959619, + 40313203, 1794793, 52, 167309217, 53911386, 671981, 140, 91725759, 63016088, 4360242, 374, 173283577, 4698816, 6692892, + 931, 200407461, 68264778, 9566996, 1552, 217452663, 82565079, 10780163, 4183, 163155477, 93430743, 15539019, 11285, 227732913, + 52312062, 20260304, 28236, 247464307, 106067221, 22987371, 75510, 84819596, 121344364, 25503356, 195038, 222288910, 134307279, 32235975, + 398042, 6, 108607897, 38958635, 909419, 18, 144468861, 26753650, 1316753, 32, 160623576, 49614083, 2412893, 86, + 46311070, 58906404, 3434733, 230, 160008614, 67824808, 5514526, 344, 192076129, 60317547, 8115241, 949, 210308716, 77442870, + 6347532, 2560, 124669108, 88381895, 13556937, 6898, 213031275, 25714379, 15996690, 17245, 238776520, 97157981, 20608219, 46568, + 24397473, 115552720, 22006914, 122598, 197462358, 128401214, 29194873, 213580, 4, 79431667, 35773590, 427649, 11, 136022386, + 3575101, 938347, 20, 153887309, 45450107, 1820862, 53, 6940968, 54787497, 2618246, 142, 138224868, 59709467, 4485770, + 235, 182970672, 45096258, 6799218, 580, 202859639 +]; +/// NMOS drain current in pA at the first 1000 held-out R2 points of corner mos_ss, the points of the tt corner's TT_R2_N (deck psp103_idpa_ss.cir, block r2_n; the first 200 are SS_R2_N). +pub const SS_R2K_N : [1000]u32 = [ + 177948074, 42746583, 2860423, 48, 197514781, 62605871, 5007852, 171, 101221826, 75479021, 4760185, 540, 199750787, 87981097, + 8197423, 530, 227576246, 80459960, 12327503, 2255, 247749537, 99409101, 10479827, 7730, 185062373, 114528128, 17117062, 23942, + 253113163, 57146043, 23719710, 27293, 279234401, 122376808, 30855294, 102809, 83840433, 142127176, 29018517, 312413, 257256791, 158863271, + 38920486, 250254, 307010689, 123695751, 48624133, 877258, 332107596, 168575498, 23325201, 2059599, 25, 189104577, 56682175, 3863376, + 94, 43227898, 69603400, 3484451, 304, 183313353, 81956661, 6510252, 241, 217971833, 67706712, 10237867, 1192, 238989593, + 92332391, 4195420, 4266, 139858848, 107625311, 14306719, 13507, 239445348, 11579783, 20532994, 13715, 269506096, 111829146, 27288997, + 56438, 6542120, 134209117, 24038583, 182888, 225073362, 151213777, 34539030, 504699, 294629923, 89189451, 43972189, 532771, 322344535, + 158432582, 53646499, 1421833, 127354254, 180612027, 50633862, 2895870, 51, 198772865, 63847094, 2420399, 170, 159679980, 76061001, + 5033823, 520, 207856001, 45955019, 8360200, 618, 230129534, 85159792, 12386070, 2334, 81330300, 100785693, 11712221, 7578, + 222052609, 115180846, 17562393, 6682, 259386192, 97190350, 23933342, 30258, 281672648, 126179661, 15153367, 104252, 180409124, 143581449, + 30331918, 305989, 280213157, 41694326, 39503031, 302572, 312258427, 146504679, 48876183, 934864, 49602442, 171991844, 43639501, 2097579, + 28, 190592843, 58205608, 1258139, 95, 124613617, 70297895, 3765214, 294, 196776821, 12348326, 6692054, 313, 221131983, + 77624149, 10320445, 1264, 11948971, 94001939, 9309344, 4228, 197745948, 108406046, 14810178, 271, 248633218, 73631617, 20791276, + 15838, 272456531, 117905838, 27370009, 58171, 122157704, 135956583, 26285517, 179956, 262057660, 152055907, 35220785, 160710, 301700572, + 130303974, 44287812, 582185, 325111076, 163159043, 32211001, 1459450, 222200467, 182384897, 52665348, 2906614, 53, 76143067, 64670636, + 2701105, 167, 183676742, 76430042, 5230201, 155, 211935207, 68689908, 8464134, 676, 231892457, 87258991, 6569920, 2345, + 162531878, 101714637, 12278208, 7321, 236749739, 37674007, 17865310, 8076, 263051182, 109014350, 24053222, 31872, 52021710, 128322887, + 22311729, 103374, 237289820, 144581631, 31128749, 75487, 290399625, 105407967, 39886358, 342259, 315611207, 153929205, 10995895, 969897, + 164834485, 174132167, 47182737, 2112247, 29, 15933927, 59181483, 1837910, 94, 166215343, 70751586, 3970596, 29, 202426351, + 54937149, 6814075, 356, 223234351, 80523493, 10356735, 1292, 113883473, 95106390, 9968007, 4118, 222667250, 108920793, 15157439, + 4006, 253378312, 98321975, 20949948, 17162, 274500083, 120650980, 17575534, 58319, 202210022, 137143725, 27228886, 174609, 277827482, + 67966568, 35676628, 189841, 305873496, 143837084, 44467771, 613143, 94840403, 165807899, 41563133, 1475828, 277827645, 183617794, 53830850, + 1162374, 53, 140376289, 65217950, 2908285, 161, 192372806, 31045057, 5366416, 184, 214483269, 73705098, 8520890, 705, + 52553026, 88579039, 7879648, 2307, 204205313, 102337171, 12669144, 1868, 243298342, 82565607, 18062212, 9072, 265490664, 112880879, + 7689515, 32424, 153975312, 129737118, 23520230, 100820, 262927201, 18191628, 31663057, 99571, 295803672, 131616231, 40121485, 368266, + 15054661, 157365743, 34665763, 986437, 243063694, 175593079, 48615563, 84395, 30, 102177418, 59833490, 2037185, 92, 181237926, + 71024859, 4116438, 93, 205601089, 66478321, 6888390, 381, 224708419, 82126563, 5981393, 1286, 177736100, 95851475, 10401463, + 3959, 232536899, 56643143, 15391595, 4694, 256343847, 104864243, 21030461, 17794, 92452351, 122353187, 19990217, 57316, 243679699, + 137957023, 27849542, 49705, 285237842, 114207626, 35969603, 210506, 308655658, 148714846, 22058043, 628860, 195638503, 167551574, 43523567, + 1474776, 304020915, 50859851, 54602065, 1349632, 52, 167723654, 65563867, 3058441, 45, 196523059, 57463997, 5454781, 203, + 216228139, 75735327, 3355156, 712, 139327259, 89465468, 8355177, 2234, 220506973, 18433735, 12939120, 2369, 247009738, 96146276, + 18176901, 9638, 20118100, 114976708, 16527705, 32194, 216818334, 130704265, 24239284, 10433, 273867557, 86833022, 32016701, 114885, + 299192688, 139645944, 40242022, 382482, 134684705, 159477142, 38509585, 988004, 284160875, 176611353, 49526590, 835440, 327828975, 148995110, + 60258655, 2185481, 88, 187126224, 42393894, 4214827, 107, 207687481, 69372481, 6923996, 392, 87400935, 83179929, 6531105, + 1256, 205916026, 96339741, 10705219, 1166, 237404888, 85198469, 15539371, 5144, 258379683, 107578908, 11845044, 17900, 178580708, + 123502069, 20834451, 55500, 261073997, 46634735, 28267071, 60034, 289489484, 129595029, 36138578, 222706, 61928792, 151343382, 33328057, + 632395, 257082805, 168756670, 44608340, 455480, 315933439, 120647578, 55114087, 1488821, 51, 177144480, 16466370, 3162381, 55, + 199062086, 62938789, 5504378, 214, 23738343, 76993721, 4929330, 703, 186156143, 90056722, 8689779, 352, 227375499, 68014337, + 13118356, 2698, 249447960, 100097391, 854747, 9857, 126803864, 116346463, 17634903, 31405, 245594893, 131358326, 24724574, 30134, + 279444512, 116964490, 32235869, 124758, 301524736, 143102895, 26353088, 387310, 219263039, 160907255, 39845361, 977551, 302489605, 79339531, + 50134866, 956946, 332619286, 165932117, 60513928, 2290167, 27, 190313129, 56025244, 4274817, 115, 209140646, 70902160, 3497308, + 392, 157210283, 83887621, 6892248, 1211, 216606844, 39683330, 10913744, 1385, 240383488, 92364206, 15619128, 5373, 62382551, + 109229984, 14628836, 17627, 225041718, 124284766, 21392560, 14349, 268876044, 98049084, 28537958, 67523, 292285960, 134658014, 12351213, + 228034, 168184350, 153053406, 35227105, 626349, 286280838, 25606098, 45325198, 574266, 322202528, 151883014, 55437406, 1589283, 10, + 181372573, 46764892, 3228831, 61, 200785751, 64893117, 738423, 217, 115503600, 77835092, 5311877, 683, 204398628, 90430494, + 8924761, 694, 231134402, 83812406, 13226901, 2894, 251155894, 102138608, 11662279, 9821, 195776718, 117278070, 18273808, 30232, + 257430480, 68031997, 25048676, 35379, 282869802, 125768062, 32350888, 129854, 103890677, 145179815, 30705436, 384880, 265124651, 161898236, + 40688436, 319619, 311171400, 131602199, 50531595, 1048267, 335778652, 172105572, 30096566, 2359023, 32, 192379659, 58934216, 4303299, + 120, 60609984, 71900844, 3948140, 385, 189177326, 84349023, 7149968, 336, 221611473, 72446477, 11048994, 1537, 242409042, + 95044311, 6754485, 5431, 154189810, 110337195, 15370393, 17087, 244376059, 25418273, 21771453, 17945, 273211293, 115737165, 28697082, + 71904, 28841932, 137260578, 25953280, 228086, 235740689, 154227902, 36226515, 105158, 299143053, 100502966, 45801531, 651739, 326078071, + 162204035, 2417171, 1656644, 16, 183898263, 52914149, 3264526, 65, 201995649, 66084811, 2799831, 216, 167850357, 78394131, + 5587302, 656, 211644064, 53525961, 9084034, 801, 233568484, 87881862, 13279129, 2979, 99037507, 103459286, 12682785, 9602, + 228197404, 117904234, 18709245, 8827, 263200643, 102535367, 25252585, 38841, 285203274, 129247251, 18637748, 131241, 194620172, 146575435, + 31938549, 376957, 285372416, 56278814, 41251999, 379312, 316080677, 150880152, 50769948, 1110679, 72209240, 175302082, 46300266, 2398466, + 35, 193809214, 60383624, 1755503, 120, 136139979, 72569575, 4234157, 372, 200867323, 22941462, 7329931, 409, 224600763, + 80457571, 11126238, 1618, 32175967, 96638104, 10199329, 5366, 206087010, 111087532, 15864517, 3296, 252634984, 81796431, 22020523, + 20481, 276020492, 121034094, 3227664, 73759, 139921874, 138932132, 27815428, 224196, 268416614, 616970, 36887289, 206114, 305657582, + 136136159, 46102921, 706449, 328724182, 166519477, 36552505, 1696671, 236179438, 185597237, 54786698, 3274761, 67, 91175856, 66878764, + 3087520, 210, 188436391, 78745416, 5783828, 204, 215451928, 72046721, 9183874, 869, 235261047, 89860945, 7679469, 2981, + 174112081, 104352848, 13239297, 9258, 241105180, 49136355, 19003625, 10524, 266662156, 112339860, 25363240, 40651, 72646233, 131283639, + 23804188, 129866, 245731094, 147536950, 32710933, 104083, 294578345, 113989616, 41620547, 424371, 319270181, 157401396, 18142900, 1148720, + 182438923, 177344420, 49262023, 2413596, 37, 33739949, 61324211, 2144200, 119, 172427811, 73003903, 4442077, 85, 206026220, + 60036761, 7449319, 459, 226613120, 83100664, 2269976, 1645, 129090966, 97700197, 10835245, 5214, 227737892, 4546420, 16204126, + 5260, 257059660, 102289957, 22170447, 22007, 277981666, 123604700, 19440265, 73716, 213734494, 140073073, 28725277, 217443, 282401619, + 80009492, 37327723, 240316, 309595313, 147586209, 46270630, 740666, 115587556, 169027013, 43681213, 1714194, 286317307, 186782628, 55906817, + 1398232, 67, 149231202, 67404851, 3300188, 203, 196132812, 39145395, 5919097, 238, 217878569, 76288552, 9236045, 900, + 70865952, 91127844, 8653165, 2924, 210707724, 104950054, 13623740, 2548, 247093756, 88301370, 19192447, 11698, 268994955, 115845807, + 11467084, 41179, 169139451, 132640840, 24930314, 126493, 268247174, 33217637, 33229020, 128417, 299616694, 136099067, 41843112, 453620, + 38051503, 160604945, 37322715, 1166764, 254461786, 178747404, 50624462, 598548, 38, 114537991, 61952634, 2352672, 115, 185343750, + 6631794, 4588897, 121, 209023473, 69196086, 7520350, 488, 2070670, 84630819, 6680104, 1632, 186753536, 98416474, 11263715, + 5004, 236536248, 65452510, 16431064, 6091, 259879676 +]; +/// PMOS drain current in pA at the first 1000 held-out R2 points of corner mos_ss, the points of the tt corner's TT_R2_P (deck psp103_idpa_ss.cir, block r2_p; the first 200 are SS_R2_P). +pub const SS_R2K_P : [1000]u32 = [ + 129785402, 27222679, 436415, 6, 143416098, 38357282, 911881, 15, 72073931, 45610001, 1490326, 37, 150349568, 52970665, + 2624595, 82, 172937419, 53493874, 4184638, 209, 188007802, 65029635, 5009937, 527, 136530062, 74236058, 7861984, 1331, + 198274581, 39549688, 10889296, 3143, 220590578, 85252826, 14369886, 8002, 60715296, 98121955, 16192722, 20284, 199116494, 109094202, + 21216462, 45716, 249634703, 87954383, 26332811, 116741, 272210439, 122627666, 15275772, 278372, 4, 136935900, 34709510, 614812, + 9, 30698951, 41887382, 1050183, 23, 136047167, 49033215, 1966602, 44, 165120203, 45116169, 3282956, 125, 180798277, + 60342890, 2230228, 315, 101113815, 69518456, 6468211, 794, 185505937, 8077077, 9233003, 1864, 212162096, 77643019, 12437330, + 4759, 4755714, 92496127, 13506319, 12079, 169676186, 103481489, 18714477, 30552, 237475356, 62673322, 23587615, 70713, 263225979, + 114808094, 28830175, 173323, 93298474, 130472250, 31025145, 401107, 6, 143082334, 38292136, 710395, 14, 116289505, 45232223, + 1431377, 36, 156839511, 30887323, 2516297, 75, 173590521, 55637650, 4026976, 188, 58237676, 64909216, 5215280, 474, + 169227647, 73765004, 7728377, 1092, 203371695, 67126353, 10658356, 2830, 221233165, 86850020, 8959164, 7187, 132753656, 97957884, + 16349278, 18212, 223009384, 29254375, 20992512, 42427, 253938640, 105470176, 25971390, 106015, 36276615, 123980700, 26880076, 254223, + 4, 136744149, 34817736, 390404, 9, 89098033, 41568304, 1009218, 22, 147623876, 8435354, 1878539, 45, 166345817, + 50724081, 3148308, 113, 8581879, 60401197, 4087560, 283, 147456548, 69112453, 6373565, 51, 193923331, 50646785, 9032187, + 1683, 213318760, 81065464, 12160889, 4276, 88510971, 92515576, 14106596, 10843, 204820196, 103003898, 18547288, 25226, 244143720, + 92817277, 23263762, 64070, 264347870, 117375385, 20305379, 157481, 166714080, 130468563, 31450180, 367568, 6, 53915720, 38041450, + 687973, 14, 136515926, 44788167, 1361872, 26, 158996381, 44955479, 2403426, 68, 173579556, 55980516, 2947386, 170, + 118457823, 64579668, 5165892, 426, 183262631, 26002695, 7557613, 1000, 205302382, 74840676, 10410598, 2544, 37572170, 87140632, + 11940914, 6452, 181136148, 97563255, 16250870, 13648, 233486714, 74148293, 20708040, 38421, 255735273, 110474534, 7196699, 95973, + 121216988, 124241529, 28155476, 231533, 4, 11314696, 34650657, 452899, 9, 121765189, 41169693, 956389, 6, 151415723, + 36215574, 1786032, 41, 166595710, 51618178, 3011581, 102, 81657625, 60165206, 4101405, 255, 170372797, 68610371, 6232911, + 593, 197088149, 67326596, 8812680, 1514, 213573151, 81806924, 9551482, 3840, 150430169, 92222311, 14100719, 9730, 221349140, + 47476796, 18304670, 22923, 246944117, 102857621, 22907418, 57866, 69121209, 118038798, 24824001, 142739, 217050314, 130134467, 31393211, + 285192, 6, 100990255, 37692533, 649767, 15, 143351383, 20797103, 1288108, 24, 159620610, 47244192, 2288678, 61, + 37521036, 55865789, 3173581, 153, 153585594, 64132605, 5055745, 330, 188504089, 56372302, 7365827, 901, 205912310, 76460896, + 4518835, 2286, 112132183, 86977073, 12091317, 5791, 206689519, 12762582, 16053716, 13620, 237847256, 93520258, 20386184, 34660, + 11003155, 111815891, 20912893, 86697, 184733273, 124044401, 28263140, 24303, 4, 72421409, 34357332, 427322, 9, 134272932, + 40719523, 899493, 15, 152615631, 42646290, 1691910, 37, 166381448, 51674853, 2365874, 92, 130800681, 59780606, 4023005, + 231, 179227183, 38711196, 6068228, 537, 198212031, 70977413, 8581464, 1361, 66609664, 81820300, 10209390, 3447, 187940996, + 91760200, 13954718, 8004, 228225906, 80361235, 18018234, 20677, 248029241, 105484061, 13813559, 52162, 145040805, 118023647, 25247276, + 129131, 245167222, 35898656, 31164155, 272730, 6, 123074857, 37283124, 607583, 8, 145511563, 37020061, 1213034, 22, + 159593011, 47579272, 1423512, 55, 100447394, 55554238, 3130554, 138, 168635964, 12720160, 4917472, 319, 190415282, 65014117, + 7161346, 811, 14519927, 76738759, 8407398, 2052, 163247259, 86594755, 12006441, 1943, 217692518, 60527792, 15803913, 12305, + 239613550, 98846997, 20039620, 31207, 98255012, 112058790, 22312097, 78196, 224539817, 123608033, 28112152, 169347, 270222807, 107758636, + 33991431, 397447, 13, 138175305, 27712861, 841602, 13, 152842842, 43550718, 1597852, 34, 62285913, 51452339, 2372760, + 83, 155572982, 59306491, 3910419, 188, 182422640, 57540816, 5889701, 483, 198439748, 71706992, 6239172, 1223, 131213446, + 81535219, 10206348, 3093, 205557537, 32464220, 13743245, 7308, 231022227, 91425842, 17703900, 18609, 44990371, 106126190, 19336033, + 46959, 198038772, 117691577, 25198894, 97218, 258398497, 85836905, 30845417, 252670, 7, 130331114, 11022698, 564671, 8, + 146108616, 39516905, 1138288, 20, 16935478, 47472023, 1741276, 50, 138170344, 55133126, 3043014, 66, 174050948, 45972189, + 4763981, 288, 190993887, 66670940, 499878, 729, 91550094, 76578029, 8549285, 1842, 190650739, 86084936, 11835849, 4327, + 222121955, 82028563, 15522165, 11076, 240192169, 100181361, 15585213, 28065, 164421965, 111858650, 22418932, 70443, 244707835, 55866921, + 27845681, 156922, 274067490, 121376419, 33578921, 367002, 5, 139351849, 35235356, 784265, 12, 152619778, 43607279, 1214869, + 31, 114255245, 51091045, 2310022, 76, 164945548, 27016897, 3780904, 172, 183515164, 61497115, 5702950, 435, 44787027, + 71716504, 7022914, 1098, 171245626, 81090821, 10080830, 2461, 212677985, 68209402, 13494519, 6586, 232071517, 94132333, 7709552, + 16728, 123370719, 106101869, 19759956, 42234, 227996382, 18058827, 24992283, 95694, 264233736, 110024562, 30472049, 232023, 2, + 132501812, 29673823, 522457, 8, 146066489, 39845744, 300303, 19, 82511404, 47180286, 1704653, 46, 154404406, 54642465, + 2936269, 102, 175945723, 55790213, 4601819, 260, 190949291, 66938123, 5574912, 655, 145437405, 76210278, 8476564, 1654, + 202264287, 47093041, 11620736, 3913, 223859416, 87765382, 15219692, 9957, 75329355, 100408469, 17188898, 25218, 206679078, 111430627, + 22284444, 57251, 253680809, 94007095, 27513713, 143520, 275711402, 125417914, 19567590, 337276, 5, 139558319, 36159788, 728366, + 12, 43028120, 43399930, 1218010, 28, 141103361, 50646782, 2224708, 59, 168182284, 48276467, 3642250, 155, 183717858, + 62218134, 3473823, 391, 112033316, 71441868, 7020267, 986, 190107474, 17678326, 9900215, 2322, 215474734, 80527551, 13222545, + 5922, 20926598, 94755459, 14565891, 15025, 179078747, 105774201, 19719954, 21208, 241923114, 70824559, 24704733, 87379, 266765306, + 117796629, 1620082, 211996, 3, 133073509, 32474247, 481678, 7, 145702931, 39747446, 837911, 17, 122964449, 46786936, + 1639347, 45, 160028930, 35892379, 2819885, 93, 176494462, 57501897, 4434804, 234, 71030856, 66782442, 5706866, 589, + 174888762, 75722740, 8331900, 1370, 206777342, 70987581, 11379204, 3522, 224404895, 89098364, 10841545, 8943, 144116564, 100207702, + 17293834, 22647, 228142756, 39465338, 22045568, 52612, 257552100, 108945979, 27140161, 130552, 52786596, 126573750, 28504075, 308849, + 4, 139328710, 36217351, 528983, 11, 97812916, 43063653, 1171394, 27, 151093511, 15599924, 2129186, 55, 169245045, + 52645679, 3498700, 140, 23068198, 62225868, 4524659, 352, 154718630, 71017349, 6914177, 603, 197514253, 56334745, 9689053, + 2094, 216489245, 83341563, 2011660, 5320, 101722350, 94724285, 14994655, 13489, 211055750, 435688, 19536172, 31398, 247893031, + 97357941, 24368527, 79254, 267758955, 119986691, 22883187, 193029, 178487196, 133019045, 32798049, 442742, 7, 64671044, 39477098, + 809724, 16, 140576404, 46329539, 1563091, 33, 161910909, 47183021, 2698622, 84, 176432495, 57760341, 3408522, 210, + 127698032, 66431424, 5644681, 530, 187214255, 33861596, 8151072, 1245, 208487715, 77250083, 11120942, 3165, 52461158, 89311847, + 12789740, 8028, 188950585, 99790355, 17175731, 18163, 237480774, 80488333, 21748443, 47663, 259161741, 113163160, 11766786, 118365, + 134808294, 126761519, 29462641, 282002, 4, 23916221, 36026546, 540618, 10, 126956711, 42650975, 1112605, 16, 154384540, + 39511224, 2028866, 50, 169424482, 53361844, 1147307, 126, 92904107, 61963820, 4519926, 317, 175004528, 3166224, 6763757, + 739, 200316768, 70174981, 9459323, 1884, 216675018, 83948083, 10508238, 4777, 160161055, 94403394, 14962149, 12106, 225779449, + 55960045, 19280464, 28490, 250408086, 105765990, 24000503, 71651, 84368900, 120534973, 26132217, 175300, 225383642, 132656048, 32709775, + 347208, 7, 107948973, 39113131, 766425, 18, 146455330, 26110154, 1482175, 30, 162431362, 48975052, 2575225, 76, + 50600991, 57611776, 3534330, 190, 159396080, 65968250, 5525037, 430, 191828707, 60380766, 7949400, 1121, 209001308, 78588543, + 6596260, 2843, 123826443, 89112833, 12890849, 7204, 211874591, 23255374, 16964784, 16954, 241386414, 96990959, 21414844, 43020, + 27766314, 114301315, 22458402, 107070, 194923037, 126527683, 29521802, 160821, 4, 81474573, 35716760, 510795, 11, 137686191, + 4514231, 1049324, 18, 155419321, 44443312, 1926646, 46, 1485394, 53369694, 2675936, 114, 138343356, 61561245, 4432130, + 286, 182749537, 44714719, 6589584, 667, 201297686 +]; +/// NMOS drain current in pA at the 576 cell midpoints of the 62.5 mV grid, corner mos_ss, Vgs = (i + 1/2) * 62.5 mV at index i * 24 + j, Vds = (j + 1/2) * 62.5 mV (deck psp103_idpa_ss.cir, block mid_n). +pub const SS_MID_N : [576]u32 = [ + 21, 31, 35, 39, 43, 46, 50, 54, 57, 60, 64, 67, 70, 73, + 76, 79, 82, 85, 87, 90, 93, 95, 98, 100, 147, 220, 247, 273, + 300, 326, 353, 378, 404, 428, 452, 475, 498, 520, 541, 562, 583, 603, + 622, 641, 659, 678, 695, 713, 1032, 1549, 1749, 1940, 2136, 2331, 2525, 2715, + 2901, 3082, 3258, 3430, 3597, 3760, 3919, 4073, 4224, 4371, 4514, 4654, 4791, 4925, + 5056, 5184, 7291, 10977, 12426, 13819, 15246, 16678, 18097, 19491, 20855, 22185, 23482, 24745, + 25974, 27172, 28339, 29476, 30585, 31667, 32723, 33755, 34763, 35750, 36715, 37660, 49463, 75197, + 85051, 94462, 104075, 113719, 123268, 132647, 141820, 150771, 159492, 167986, 176257, 184312, 192160, 199809, + 207269, 214547, 221653, 228594, 235379, 242014, 248508, 254868, 268597, 426739, 477918, 523211, 568589, 613653, + 657963, 701280, 743492, 784560, 824488, 863302, 901039, 937745, 973467, 1008250, 1042141, 1075185, 1107422, 1138894, + 1169639, 1199694, 1229095, 1257877, 902966, 1613588, 1804079, 1934192, 2057243, 2176542, 2292087, 2403808, 2511760, 2616076, + 2716927, 2814502, 2908989, 3000571, 3089420, 3175700, 3259560, 3341142, 3420575, 3497979, 3573469, 3647151, 3719128, 3789500, + 1967841, 4043506, 4681630, 4976166, 5217214, 5441334, 5653970, 5856752, 6050649, 6236436, 6414790, 6586311, 6751536, 6910942, + 7064959, 7213971, 7358323, 7498327, 7634264, 7766392, 7894949, 8020153, 8142214, 8261332, 3319742, 7574498, 9334595, 10020266, + 10451719, 10818336, 11154877, 11470243, 11768218, 12051133, 12320710, 12578332, 12825148, 13062135, 13290137, 13509886, 13722028, 13927130, + 14125699, 14318189, 14505014, 14686551, 14863153, 15035158, 4836598, 11819209, 15509150, 17097213, 17902165, 18482973, 18982901, 19438459, + 19862174, 20260167, 20636288, 20993330, 21333467, 21658467, 21969805, 22268729, 22556311, 22833485, 23101066, 23359778, 23610267, 23853120, + 24088880, 24318055, 6434628, 16452629, 22694896, 25889710, 27453096, 28404033, 29137755, 29773919, 30351295, 30885802, 31385894, 31856996, + 32303019, 32726979, 33131296, 33517968, 33888670, 34244836, 34587698, 34918337, 35237704, 35546653, 35845963, 36136359, 8056408, 21252222, + 30416532, 35859126, 38741701, 40360054, 41462860, 42347093, 43118026, 43816311, 44460843, 45062275, 45627579, 46161781, 46668743, 47151542, + 47612703, 48054338, 48478238, 48885947, 49278810, 49658017, 50024641, 50379665, 9662450, 26068550, 38332489, 46462535, 51242642, 53961333, + 55668271, 56918322, 57946038, 58846443, 59661415, 60412299, 61111723, 61768106, 62387545, 62974713, 63533328, 64066428, 64576547, 65065831, + 65536126, 65989044, 66426018, 66848346, 11225859, 30800919, 46215481, 57276042, 64413702, 68713104, 71358042, 73162877, 74549675, 75710468, + 76732084, 77656912, 78508181, 79300204, 80042695, 80742735, 81405757, 82036077, 82637218, 83212112, 83763245, 84292754, 84802515, 85294204, + 12728744, 35381995, 53916825, 68006151, 77801677, 84109788, 88077164, 90696814, 92596547, 94106448, 95387800, 96520397, 97546487, 98490622, + 99368470, 100190856, 100965733, 101699217, 102396170, 103060560, 103695689, 104304358, 104888988, 105451710, 14159702, 39767882, 61340314, 78460205, + 91072864, 99710921, 105371103, 109109905, 111727878, 113713560, 115331624, 116720061, 117952397, 119070203, 120098839, 121054993, 121950399, 122793751, + 123591763, 124349781, 125072171, 125762574, 126424086, 127059395, 15512021, 43931400, 68425343, 88515631, 103999290, 115173489, 122835308, 128002059, + 131579850, 134205854, 136266083, 137977337, 139459348, 140779960, 141979658, 143084168, 144110886, 145072246, 145977551, 146834018, 147647412, 148422453, + 149163086, 149872684, 16782371, 47857375, 75135972, 98097364, 116433039, 130250501, 140141050, 147013705, 151804902, 155264803, 157901089, 160023945, + 161814196, 163376877, 164774655, 166046645, 167218574, 168308269, 169328671, 170289558, 171198558, 172061793, 172884289, 173670271, 17969847, 51539251, + 81453598, 107162664, 128283042, 144774541, 157039618, 165843702, 172089433, 176590976, 179960389, 182605443, 184779535, 186635822, 188267275, 189731837, + 191067068, 192298420, 193443912, 194516819, 195527270, 196483220, 197391085, 198256163, 19075264, 54976630, 87371888, 115691010, 139497673, 158638717, + 173353804, 184254668, 192165166, 197913786, 202187311, 205483763, 208134373, 210349359, 212260159, 213949689, 215471582, 216861747, 218145150, 219339809, + 220459186, 221513652, 222511412, 223459127, 20100640, 58173461, 92893172, 123677287, 150052514, 171780205, 188964674, 202069440, 211813667, 218998195, + 224349707, 228439474, 231674345, 234326744, 236573536, 238528800, 240266969, 241837753, 243275370, 244604151, 245841967, 247002342, 248095796, 249130721, + 21048805, 61136700, 98025841, 131127069, 159941904, 184167556, 203798266, 219162926, 230865321, 239647941, 246243621, 251273910, 255212027, 258392882, + 261043354, 263314136, 265305227, 267083823, 268696066, 270174492, 271542700, 272818297, 274014771, 275142721, 21923118, 63875325, 102782440, 138053292, + 169173090, 195791385, 217814186, 235452569, 249194774, 259705577, 267695343, 273810965, 278577490, 282387626, 285519662, 288164833, 290452998, 292472568, + 294284519, 295931748, 297445146, 298847524, 300156141, 301384379, 22727258, 66399599, 107178267, 144473875, 177762124, 206657677, 230996560, 250889219, + 266714654, 279050105, 288561768, 295898266, 301618981, 306165500, 309865443, 312952388, 315589354, 317889381, 319931231, 321770492, 323447110, 324990397, + 326422338, 327759797 +]; +/// PMOS drain current in pA at the 576 cell midpoints of the 62.5 mV grid, corner mos_ss, Vgs = (i + 1/2) * 62.5 mV at index i * 24 + j, Vds = (j + 1/2) * 62.5 mV (deck psp103_idpa_ss.cir, block mid_p). +pub const SS_MID_P : [576]u32 = [ + 4, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 8, 8, 8, 8, 8, 9, 10, 11, 14, 28, 39, 40, 40, + 41, 41, 41, 41, 42, 42, 42, 42, 43, 43, 43, 43, 43, 44, + 44, 44, 45, 45, 46, 48, 191, 266, 274, 277, 278, 280, 281, 282, + 283, 284, 285, 286, 287, 288, 289, 289, 290, 291, 292, 293, 294, 295, + 296, 298, 1332, 1855, 1910, 1927, 1938, 1946, 1954, 1961, 1968, 1974, 1980, 1986, + 1992, 1998, 2004, 2009, 2014, 2020, 2025, 2030, 2036, 2041, 2046, 2052, 9267, 12947, + 13345, 13471, 13553, 13620, 13678, 13731, 13782, 13829, 13875, 13919, 13962, 14003, 14044, 14084, + 14124, 14162, 14201, 14239, 14276, 14314, 14351, 14387, 60674, 86384, 89488, 90658, 91457, 92107, + 92672, 93180, 93648, 94086, 94499, 94893, 95270, 95634, 95987, 96330, 96664, 96991, 97311, 97625, + 97934, 98239, 98539, 98836, 299443, 460890, 485371, 496303, 504149, 510516, 515964, 520776, 525118, 529096, + 532786, 536239, 539497, 542589, 545539, 548367, 551088, 553714, 556257, 558725, 561125, 563466, 565751, 567986, + 897806, 1606495, 1746156, 1801807, 1840053, 1870383, 1895867, 1918016, 1937716, 1955534, 1971859, 1986971, 2001075, 2014329, + 2026857, 2038755, 2050104, 2060969, 2071403, 2081452, 2091155, 2100545, 2109651, 2118498, 1811989, 3762153, 4329436, 4516539, + 4625948, 4707697, 4774310, 4831028, 4880691, 4925048, 4965260, 5002140, 5036281, 5068130, 5098031, 5126256, 5153022, 5178507, + 5202859, 5226199, 5248632, 5270247, 5291119, 5311314, 2912200, 6710204, 8311217, 8866736, 9127467, 9299746, 9432521, 9542129, + 9636154, 9718872, 9792975, 9860284, 9922087, 9979337, 10032756, 10082904, 10130226, 10175082, 10217767, 10258523, 10297557, 10335041, + 10371125, 10405935, 4101488, 10106068, 13381778, 14791952, 15402445, 15744556, 15983506, 16170729, 16326446, 16460638, 16579059, 16685377, + 16782093, 16870991, 16953397, 17030320, 17102549, 17170713, 17235319, 17296788, 17355465, 17411644, 17465573, 17517466, 5317751, 13694233, + 19081046, 21947815, 23301440, 23992710, 24419914, 24728240, 24972319, 25176200, 25352338, 25508045, 25648016, 25775464, 25892691, 26001411, + 26102932, 26198278, 26288268, 26373565, 26454715, 26532174, 26606324, 26677492, 6522602, 17314555, 25031967, 29844248, 32464503, 33835607, + 34619555, 35135102, 35515797, 35819344, 36073496, 36293272, 36487655, 36662453, 36821653, 36968115, 37103965, 37230830, 37349984, 37462445, + 37569038, 37670442, 37767225, 37859863, 7693318, 20871352, 30990586, 38038907, 42411561, 44908775, 46336660, 47220374, 47827704, 48284272, + 48650430, 48957414, 49222852, 49457516, 49668434, 49860447, 50037031, 50200770, 50353639, 50497184, 50632636, 50760995, 50883083, 50999586, + 8817369, 24310019, 36814070, 46221628, 52685116, 56757103, 59211175, 60718077, 61706578, 62409234, 62945531, 63377915, 63740794, 64054377, + 64331306, 64579933, 64806043, 65013798, 65206293, 65385893, 65554443, 65713415, 65863998, 66007171, 9888719, 27601853, 42424396, 54204351, + 62938062, 68936908, 72818230, 75279483, 76878876, 77975988, 78777391, 79397362, 79899868, 80322093, 80686726, 81008307, 81296588, 81558379, + 81798601, 82020920, 82228135, 82422430, 82605543, 82778878, 10905377, 30734296, 47783176, 61884561, 72945573, 81091191, 86741262, 90511408, + 93011960, 94712391, 95921033, 96824287, 97531740, 98108316, 98593559, 99012454, 99381413, 99711627, 100010993, 100285255, 100538705, 100774625, + 100995578, 101203599, 11867790, 33704660, 52875853, 69213461, 82579436, 92972697, 100631445, 106029195, 109743984, 112304761, 114111736, 115434051, + 116441817, 117240242, 117894708, 118446683, 118923218, 119342517, 119717210, 120056316, 120366449, 120652578, 120918511, 121167229, 12777817, 36516114, + 57701952, 76174344, 91776798, 104431015, 114233234, 121502127, 126722808, 130421293, 133056143, 134973137, 136410575, 137525004, 138417470, 139153371, + 139775681, 140313264, 140785988, 141207885, 141589104, 141937158, 142257727, 142555185, 13638077, 39175139, 62269085, 82769067, 100515466, 115387278, + 127380898, 136677041, 143640325, 148741022, 152450676, 155168810, 157197863, 158751256, 159973971, 160963061, 161783575, 162479604, 163081551, 163610801, + 164082714, 164508553, 164896737, 165253680, 14451540, 41689927, 66589252, 89009818, 108797171, 125810184, 139980676, 151380347, 160252600, 166979764, + 172003355, 175743643, 178551128, 180693227, 182362859, 183694971, 184782772, 185690657, 186463485, 187132932, 187721731, 188246477, 188719502, 189150123, + 15221279, 44069390, 70676577, 94914169, 116637010, 135697843, 151990211, 165506673, 176384478, 184906630, 191453496, 196432151, 200216939, 203117656, + 205372990, 207158673, 208600814, 209788924, 210786499, 211638857, 212378696, 213029915, 213610241, 214133012, 15950325, 46322561, 74545932, 100502123, + 124057004, 145065446, 163400990, 179002707, 191923017, 202349506, 210585013, 216995862, 221953790, 225792967, 228789236, 231157391, 233058530, 234610901, + 235900458, 236989603, 237923853, 238736687, 239452999, 240091524, 16641579, 48458239, 78212119, 105794366, 131082248, 153937358, 174225314, 191851638, + 206805510, 219191663, 229231849, 237233941, 243543745, 248499241, 252399834, 255492842, 257972935, 259988599, 261651021, 263042738, 264224918, 265243045, + 266131169, 266915009 +]; + +; --- corner mos_fs, the log-domain current tables (M3c-4, #11211) --------------------------------- +/// NMOS log-domain current table, corner mos_fs, IHP-Open-PDK 21133f21, L 0.45 um, 27 C: the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (Vgs = ix * 15.625 mV, Vds = iy * 31.25 mV), then the 97 words rv = nint(4096 / s(Vgs)) at Vgs = ix * 15.625 mV (deck psp103_idpa_fs.cir, blocks lam_n and r_n). +pub const FS_LG_N : [4851]u32 = [ + 4294967295, 487966, 486201, 486282, 487951, 491007, 494861, 499012, 503192, 507280, 511228, 515015, 518640, 522105, + 525416, 528580, 531606, 534501, 537273, 539931, 542481, 544931, 547286, 549553, 551737, 553843, 555876, 557841, + 559741, 561580, 563362, 565090, 566767, 568396, 569980, 571521, 573021, 574483, 575909, 577300, 578659, 579988, + 581288, 582561, 583810, 585035, 586240, 587426, 588598, 589757, 532711, 530949, 531050, 532747, 535836, 539727, + 543915, 548132, 552255, 556236, 560056, 563711, 567204, 570541, 573730, 576778, 579694, 582487, 585162, 587729, + 590194, 592564, 594844, 597039, 599156, 601198, 603171, 605078, 606924, 608711, 610442, 612122, 613753, 615337, + 616877, 618376, 619834, 621256, 622641, 623993, 625313, 626603, 627864, 629098, 630306, 631492, 632655, 633799, + 634926, 577519, 575767, 575889, 577616, 580740, 584668, 588895, 593150, 597310, 601324, 605178, 608864, 612386, + 615751, 618965, 622037, 624975, 627788, 630483, 633068, 635550, 637935, 640229, 642438, 644567, 646621, 648604, + 650521, 652375, 654170, 655909, 657595, 659230, 660819, 662363, 663863, 665324, 666746, 668132, 669483, 670800, + 672087, 673344, 674572, 675774, 676950, 678103, 679234, 680344, 622384, 620648, 620794, 622551, 625711, 629677, + 633943, 638235, 642432, 646483, 650369, 654086, 657637, 661029, 664269, 667365, 670326, 673160, 675875, 678478, + 680978, 683379, 685688, 687912, 690054, 692121, 694116, 696043, 697907, 699711, 701459, 703153, 704796, 706391, + 707940, 709447, 710912, 712338, 713727, 715080, 716400, 717687, 718945, 720172, 721373, 722547, 723696, 724821, + 725925, 667295, 665584, 665756, 667544, 670739, 674744, 679047, 683378, 687611, 691697, 695616, 699364, 702944, + 706363, 709628, 712749, 715732, 718587, 721322, 723944, 726461, 728879, 731204, 733442, 735598, 737677, 739684, + 741623, 743498, 745313, 747070, 748772, 750424, 752027, 753583, 755096, 756567, 757999, 759393, 760751, 762075, + 763366, 764626, 765857, 767059, 768234, 769383, 770508, 771610, 712238, 710563, 710764, 712584, 715814, 719856, + 724197, 728565, 732834, 736953, 740904, 744683, 748292, 751737, 755028, 758171, 761177, 764052, 766807, 769447, + 771981, 774415, 776756, 779008, 781178, 783270, 785290, 787240, 789126, 790951, 792718, 794430, 796090, 797701, + 799266, 800786, 802264, 803702, 805102, 806466, 807795, 809091, 810355, 811590, 812795, 813973, 815125, 816252, + 817355, 757189, 755569, 755803, 757655, 760920, 764997, 769375, 773778, 778082, 782234, 786216, 790023, 793659, + 797131, 800445, 803611, 806638, 809533, 812306, 814964, 817515, 819965, 822320, 824586, 826770, 828874, 830906, + 832868, 834764, 836599, 838376, 840097, 841766, 843385, 844958, 846485, 847971, 849416, 850822, 852192, 853527, + 854828, 856097, 857337, 858547, 859729, 860884, 862015, 863121, 802112, 800576, 800852, 802737, 806034, 810145, + 814557, 818993, 823328, 827511, 831521, 835356, 839017, 842512, 845849, 849036, 852082, 854997, 857787, 860462, + 863028, 865492, 867861, 870140, 872336, 874453, 876495, 878468, 880375, 882219, 884005, 885735, 887412, 889039, + 890619, 892154, 893647, 895098, 896511, 897887, 899227, 900534, 901809, 903053, 904267, 905454, 906614, 907748, + 908857, 846950, 845545, 845876, 847794, 851120, 855262, 859703, 864169, 868532, 872742, 876778, 880636, 884320, + 887836, 891192, 894398, 897462, 900392, 903198, 905887, 908467, 910944, 913325, 915617, 917823, 919950, 922003, + 923985, 925901, 927754, 929548, 931285, 932970, 934605, 936192, 937733, 939232, 940689, 942108, 943489, 944835, + 946147, 947426, 948675, 949894, 951085, 952249, 953386, 954499, 891618, 890416, 890821, 892774, 896125, 900291, + 904756, 909245, 913631, 917862, 921918, 925795, 929496, 933029, 936401, 939621, 942699, 945642, 948461, 951161, + 953752, 956239, 958631, 960931, 963147, 965282, 967343, 969332, 971255, 973115, 974916, 976660, 978351, 979991, + 981584, 983131, 984634, 986097, 987520, 988906, 990256, 991572, 992856, 994108, 995331, 996525, 997692, 998833, + 999950, 935979, 935094, 935605, 937594, 940964, 945145, 949625, 954127, 958527, 962770, 966838, 970726, 974438, + 977981, 981362, 984591, 987677, 990628, 993454, 996161, 998759, 1001253, 1003650, 1005956, 1008177, 1010318, 1012383, + 1014378, 1016305, 1018169, 1019974, 1021722, 1023417, 1025061, 1026657, 1028207, 1029714, 1031180, 1032606, 1033995, 1035348, + 1036666, 1037953, 1039208, 1040433, 1041629, 1042799, 1043942, 1045060, 979831, 979434, 980101, 982131, 985510, 989692, + 994172, 998674, 1003073, 1007315, 1011382, 1015270, 1018982, 1022524, 1025905, 1029134, 1032219, 1035171, 1037996, 1040704, + 1043301, 1045796, 1048193, 1050499, 1052720, 1054862, 1056927, 1058922, 1060850, 1062714, 1064519, 1066268, 1067963, 1069607, + 1071204, 1072754, 1074262, 1075728, 1077154, 1078543, 1079897, 1081216, 1082502, 1083757, 1084983, 1086180, 1087349, 1088493, + 1089611, 1022883, 1023224, 1024123, 1026203, 1029576, 1033739, 1038198, 1042678, 1047056, 1051278, 1055326, 1059196, 1062891, + 1066418, 1069784, 1072999, 1076072, 1079012, 1081827, 1084524, 1087112, 1089597, 1091986, 1094284, 1096498, 1098632, 1100691, + 1102680, 1104602, 1106461, 1108260, 1110004, 1111694, 1113334, 1114926, 1116472, 1117976, 1119438, 1120861, 1122246, 1123596, + 1124912, 1126195, 1127447, 1128670, 1129864, 1131031, 1132172, 1133288, 1064740, 1066160, 1067408, 1069553, 1072902, 1077019, + 1081426, 1085856, 1090183, 1094358, 1098361, 1102189, 1105844, 1109334, 1112666, 1115849, 1118892, 1121803, 1124591, 1127264, + 1129828, 1132292, 1134660, 1136939, 1139134, 1141251, 1143294, 1145267, 1147174, 1149019, 1150805, 1152536, 1154214, 1155842, + 1157423, 1158958, 1160451, 1161904, 1163317, 1164694, 1166035, 1167342, 1168618, 1169862, 1171077, 1172264, 1173424, 1174558, + 1175668, 1104912, 1107847, 1109610, 1111850, 1115154, 1119189, 1123508, 1127848, 1132089, 1136181, 1140105, 1143859, 1147445, + 1150869, 1154140, 1157266, 1160256, 1163117, 1165859, 1168487, 1171010, 1173434, 1175766, 1178010, 1180173, 1182258, 1184271, + 1186216, 1188096, 1189916, 1191678, 1193385, 1195041, 1196648, 1198209, 1199725, 1201200, 1202634, 1204031, 1205391, 1206716, + 1208008, 1209269, 1210499, 1211700, 1212874, 1214021, 1215142, 1216240, 1145771, 1149471, 1151191, 1153132, 1156144, 1159949, + 1164084, 1168268, 1172370, 1176333, 1180138, 1183780, 1187261, 1190587, 1193766, 1196806, 1199715, 1202500, 1205170, 1207731, + 1210191, 1212555, 1214830, 1217021, 1219133, 1221171, 1223138, 1225039, 1226878, 1228659, 1230383, 1232055, 1233676, 1235251, + 1236780, 1238266, 1239711, 1241118, 1242487, 1243822, 1245122, 1246390, 1247628, 1248836, 1250015, 1251168, 1252295, 1253397, + 1254475, 1189649, 1192323, 1192777, 1193594, 1195797, 1199070, 1202847, 1206768, 1210658, 1214438, 1218077, 1221567, 1224905, + 1228099, 1231153, 1234076, 1236875, 1239556, 1242129, 1244598, 1246971, 1249254, 1251451, 1253569, 1255611, 1257582, 1259486, + 1261328, 1263110, 1264835, 1266507, 1268129, 1269703, 1271231, 1272717, 1274161, 1275565, 1276933, 1278265, 1279563, 1280828, + 1282063, 1283268, 1284444, 1285594, 1286717, 1287815, 1288890, 1289942, 1233717, 1234832, 1233603, 1232861, 1233876, 1236336, + 1239565, 1243098, 1246691, 1250227, 1253654, 1256951, 1260113, 1263142, 1266043, 1268821, 1271484, 1274038, 1276489, 1278845, + 1281110, 1283290, 1285390, 1287415, 1289370, 1291258, 1293083, 1294848, 1296558, 1298214, 1299820, 1301379, 1302892, 1304362, + 1305791, 1307181, 1308534, 1309852, 1311135, 1312387, 1313608, 1314799, 1315962, 1317098, 1318208, 1319294, 1320355, 1321394, + 1322411, 1275713, 1275562, 1272873, 1270549, 1270198, 1271640, 1274148, 1277164, 1280368, 1283594, 1286761, 1289830, 1292787, + 1295626, 1298351, 1300964, 1303472, 1305879, 1308193, 1310417, 1312558, 1314620, 1316609, 1318527, 1320381, 1322172, 1323904, + 1325582, 1327207, 1328783, 1330311, 1331795, 1333237, 1334638, 1336001, 1337328, 1338620, 1339878, 1341105, 1342302, 1343469, + 1344609, 1345723, 1346810, 1347874, 1348914, 1349932, 1350928, 1351904, 1314514, 1313615, 1309966, 1306314, 1304612, 1304942, + 1306609, 1309000, 1311730, 1314583, 1317444, 1320253, 1322980, 1325613, 1328147, 1330583, 1332924, 1335175, 1337341, 1339425, + 1341433, 1343369, 1345237, 1347041, 1348784, 1350471, 1352103, 1353685, 1355218, 1356706, 1358149, 1359552, 1360915, 1362242, + 1363532, 1364789, 1366013, 1367206, 1368370, 1369506, 1370614, 1371697, 1372755, 1373789, 1374801, 1375790, 1376759, 1377707, + 1378637, 1349826, 1348617, 1344520, 1339923, 1337025, 1336251, 1337026, 1338723, 1340914, 1343342, 1345858, 1348378, 1350856, + 1353268, 1355602, 1357855, 1360027, 1362118, 1364133, 1366075, 1367948, 1369755, 1371500, 1373187, 1374819, 1376398, 1377928, + 1379411, 1380849, 1382245, 1383602, 1384920, 1386202, 1387450, 1388665, 1389849, 1391002, 1392127, 1393225, 1394297, 1395344, + 1396366, 1397366, 1398344, 1399300, 1400237, 1401153, 1402052, 1402932, 1381781, 1380551, 1376410, 1371267, 1367407, 1365615, + 1365504, 1366480, 1368097, 1370065, 1372206, 1374414, 1376627, 1378808, 1380938, 1383005, 1385006, 1386939, 1388806, 1390608, + 1392349, 1394030, 1395655, 1397227, 1398749, 1400223, 1401652, 1403037, 1404383, 1405689, 1406959, 1408193, 1409395, 1410565, + 1411705, 1412815, 1413899, 1414956, 1415987, 1416995, 1417979, 1418942, 1419883, 1420803, 1421705, 1422587, 1423451, 1424299, + 1425129, 1410685, 1409595, 1405677, 1400343, 1395787, 1393111, 1392165, 1392431, 1393462, 1394952, 1396699, 1398581, 1400517, + 1402461, 1404381, 1406263, 1408095, 1409873, 1411596, 1413264, 1414877, 1416438, 1417949, 1419412, 1420829, 1422202, 1423535, + 1424828, 1426084, 1427304, 1428491, 1429645, 1430769, 1431864, 1432931, 1433972, 1434987, 1435978, 1436946, 1437891, 1438815, + 1439719, 1440603, 1441468, 1442315, 1443145, 1443958, 1444755, 1445537, 1436892, 1436016, 1432473, 1427225, 1422237, 1418837, + 1417136, 1416726, 1417183, 1418192, 1419540, 1421087, 1422740, 1424440, 1426150, 1427845, 1429510, 1431137, 1432721, 1434260, + 1435752, 1437200, 1438603, 1439963, 1441282, 1442561, 1443804, 1445010, 1446182, 1447322, 1448431, 1449511, 1450562, 1451586, + 1452585, 1453559, 1454510, 1455439, 1456346, 1457232, 1458099, 1458947, 1459777, 1460589, 1461385, 1462164, 1462929, 1463678, + 1464413, 1460740, 1460104, 1457002, 1452033, 1446852, 1442901, 1440543, 1439509, 1439416, 1439956, 1440907, 1442118, 1443485, + 1444940, 1446438, 1447947, 1449447, 1450925, 1452374, 1453789, 1455167, 1456506, 1457808, 1459073, 1460301, 1461493, 1462652, + 1463778, 1464873, 1465939, 1466976, 1467986, 1468970, 1469929, 1470865, 1471778, 1472669, 1473540, 1474390, 1475222, 1476035, + 1476831, 1477611, 1478374, 1479121, 1479854, 1480572, 1481276, 1481968, 1482534, 1482135, 1479487, 1474915, 1469742, 1465411, + 1462505, 1460908, 1460302, 1460393, 1460957, 1461835, 1462918, 1464129, 1465414, 1466738, 1468074, 1469407, 1470725, 1472019, + 1473287, 1474525, 1475731, 1476906, 1478049, 1479161, 1480243, 1481295, 1482319, 1483316, 1484288, 1485234, 1486156, 1487056, + 1487933, 1488790, 1489627, 1490444, 1491243, 1492024, 1492789, 1493537, 1494269, 1494987, 1495690, 1496379, 1497055, 1497718, + 1498369, 1502536, 1502360, 1500149, 1496033, 1491024, 1486475, 1483131, 1481041, 1479964, 1479631, 1479823, 1480380, 1481183, + 1482152, 1483227, 1484366, 1485540, 1486729, 1487918, 1489096, 1490257, 1491397, 1492513, 1493603, 1494666, 1495703, 1496714, + 1497698, 1498657, 1499591, 1500502, 1501390, 1502256, 1503101, 1503926, 1504731, 1505518, 1506287, 1507039, 1507774, 1508493, + 1509198, 1509887, 1510563, 1511225, 1511875, 1512512, 1513137, 1513750, 1520971, 1520997, 1519189, 1515549, 1510814, 1506190, + 1502522, 1500012, 1498510, 1497783, 1497623, 1497869, 1498401, 1499133, 1500000, 1500957, 1501971, 1503018, 1504079, 1505143, + 1506201, 1507247, 1508276, 1509285, 1510273, 1511239, 1512183, 1513104, 1514003, 1514879, 1515735, 1516569, 1517384, 1518179, + 1518955, 1519714, 1520455, 1521180, 1521889, 1522582, 1523261, 1523925, 1524576, 1525214, 1525839, 1526452, 1527053, 1527644, + 1528223, 1538030, 1538236, 1536791, 1533617, 1529228, 1524651, 1520767, 1517912, 1516034, 1514946, 1514455, 1514405, 1514676, + 1515177, 1515841, 1516620, 1517476, 1518382, 1519318, 1520270, 1521226, 1522180, 1523124, 1524056, 1524972, 1525871, 1526752, + 1527614, 1528456, 1529279, 1530083, 1530868, 1531636, 1532385, 1533118, 1533833, 1534533, 1535218, 1535887, 1536543, 1537184, + 1537812, 1538428, 1539031, 1539622, 1540202, 1540771, 1541330, 1541878, 1553872, 1554238, 1553117, 1550384, 1546378, 1541945, + 1537946, 1534823, 1532620, 1531204, 1530406, 1530077, 1530098, 1530376, 1530843, 1531446, 1532146, 1532914, 1533727, 1534568, + 1535425, 1536288, 1537150, 1538007, 1538854, 1539688, 1540509, 1541314, 1542103, 1542876, 1543632, 1544372, 1545095, 1545803, + 1546495, 1547171, 1547833, 1548481, 1549115, 1549735, 1550343, 1550938, 1551521, 1552093, 1552654, 1553204, 1553743, 1554273, + 1554793, 1568636, 1569142, 1568308, 1565982, 1562373, 1558155, 1554132, 1550814, 1548338, 1546630, 1545550, 1544960, 1544742, + 1544807, 1545083, 1545516, 1546064, 1546696, 1547387, 1548119, 1548878, 1549652, 1550434, 1551216, 1551995, 1552768, 1553530, + 1554281, 1555020, 1555745, 1556456, 1557153, 1557835, 1558503, 1559158, 1559798, 1560425, 1561039, 1561640, 1562228, 1562805, + 1563370, 1563924, 1564467, 1565000, 1565522, 1566035, 1566539, 1567034, 1582437, 1583067, 1582485, 1580529, 1577313, 1573360, + 1569391, 1565948, 1563252, 1561289, 1559952, 1559118, 1558677, 1558537, 1558629, 1558897, 1559297, 1559796, 1560367, 1560992, + 1561654, 1562340, 1563042, 1563753, 1564466, 1565177, 1565883, 1566582, 1567271, 1567951, 1568619, 1569275, 1569919, 1570550, + 1571169, 1571776, 1572370, 1572953, 1573523, 1574083, 1574631, 1575168, 1575695, 1576212, 1576719, 1577217, 1577705, 1578185, + 1578656, 1595380, 1596118, 1595759, 1594136, 1591297, 1587638, 1583784, 1580284, 1577419, 1575238, 1573670, 1572612, 1571960, + 1571627, 1571542, 1571650, 1571906, 1572275, 1572729, 1573248, 1573814, 1574414, 1575038, 1575677, 1576324, 1576975, 1577626, + 1578274, 1578916, 1579551, 1580178, 1580795, 1581402, 1581998, 1582584, 1583159, 1583723, 1584276, 1584819, 1585351, 1585873, + 1586385, 1586887, 1587379, 1587863, 1588338, 1588804, 1589261, 1589711, 1607545, 1608379, 1608214, 1606890, 1604406, 1601055, + 1597366, 1593867, 1590884, 1588522, 1586751, 1585488, 1584640, 1584124, 1583871, 1583826, 1583942, 1584184, 1584524, 1584940, + 1585412, 1585927, 1586473, 1587041, 1587624, 1588216, 1588813, 1589410, 1590006, 1590598, 1591184, 1591763, 1592335, 1592898, + 1593452, 1593996, 1594531, 1595057, 1595573, 1596080, 1596577, 1597065, 1597544, 1598014, 1598476, 1598929, 1599375, 1599812, + 1600242, 1619015, 1619932, 1619938, 1618880, 1616726, 1613685, 1610195, 1606748, 1603695, 1601189, 1599242, 1597793, 1596763, + 1596076, 1595663, 1595470, 1595452, 1595572, 1595800, 1596114, 1596493, 1596924, 1597394, 1597892, 1598411, 1598945, 1599488, + 1600036, 1600586, 1601135, 1601682, 1602225, 1602762, 1603292, 1603815, 1604331, 1604838, 1605338, 1605828, 1606311, 1606785, + 1607251, 1607708, 1608157, 1608599, 1609033, 1609459, 1609878, 1610289, 1629844, 1630835, 1630992, 1630171, 1628320, 1625583, + 1622316, 1618963, 1615884, 1613273, 1611177, 1609563, 1608367, 1607519, 1606955, 1606622, 1606475, 1606476, 1606596, 1606810, + 1607099, 1607447, 1607842, 1608271, 1608727, 1609203, 1609692, 1610192, 1610697, 1611204, 1611712, 1612218, 1612721, 1613220, + 1613714, 1614201, 1614682, 1615156, 1615623, 1616082, 1616534, 1616979, 1617416, 1617845, 1618268, 1618683, 1619091, 1619493, + 1619887, 1640097, 1641154, 1641443, 1640833, 1639258, 1636813, 1633781, 1630556, 1627492, 1624809, 1622592, 1620834, 1619487, + 1618490, 1617785, 1617318, 1617047, 1616933, 1616948, 1617066, 1617266, 1617533, 1617853, 1618214, 1618608, 1619026, 1619463, + 1619914, 1620374, 1620840, 1621310, 1621780, 1622250, 1622718, 1623182, 1623642, 1624097, 1624546, 1624990, 1625427, 1625858, + 1626282, 1626700, 1627111, 1627515, 1627913, 1628304, 1628689, 1629068, 1649825, 1650938, 1651345, 1650922, 1649598, 1647428, + 1644637, 1641565, 1638550, 1635830, 1633518, 1631637, 1630154, 1629021, 1628182, 1627589, 1627199, 1626976, 1626888, 1626912, + 1627026, 1627214, 1627460, 1627754, 1628086, 1628448, 1628833, 1629235, 1629651, 1630076, 1630507, 1630943, 1631379, 1631816, + 1632252, 1632685, 1633114, 1633540, 1633960, 1634376, 1634786, 1635191, 1635590, 1635983, 1636370, 1636751, 1637127, 1637496, + 1637860, 1659063, 1660227, 1660738, 1660482, 1659385, 1657474, 1654923, 1652022, 1649085, 1646358, 1643980, 1641996, 1640394, + 1639135, 1638173, 1637462, 1636959, 1636630, 1636444, 1636377, 1636407, 1636517, 1636692, 1636920, 1637191, 1637496, 1637829, + 1638184, 1638556, 1638940, 1639333, 1639733, 1640138, 1640544, 1640951, 1641357, 1641762, 1642164, 1642562, 1642957, 1643347, + 1643733, 1644114, 1644490, 1644860, 1645225, 1645585, 1645940, 1646290, 1667856, 1669065, 1669668, 1669562, 1668669, 1666999, + 1664683, 1661963, 1659128, 1656422, 1654002, 1651936, 1650231, 1648860, 1647784, 1646961, 1646352, 1645922, 1645642, 1645487, + 1645435, 1645469, 1645573, 1645737, 1645948, 1646198, 1646480, 1646787, 1647115, 1647458, 1647814, 1648179, 1648551, 1648927, + 1649306, 1649686, 1650065, 1650444, 1650821, 1651195, 1651565, 1651932, 1652296, 1652654, 1653009, 1653359, 1653704, 1654044, + 1654380, 1676241, 1677490, 1678174, 1678201, 1677493, 1676045, 1673954, 1671423, 1668708, 1666047, 1663609, 1661482, 1659689, + 1658218, 1657038, 1656111, 1655401, 1654875, 1654504, 1654264, 1654133, 1654093, 1654129, 1654228, 1654380, 1654576, 1654807, + 1655067, 1655351, 1655655, 1655973, 1656303, 1656643, 1656989, 1657339, 1657693, 1658048, 1658403, 1658758, 1659112, 1659463, + 1659812, 1660158, 1660500, 1660839, 1661174, 1661504, 1661831, 1662154, 1684241, 1685526, 1686283, 1686428, 1685888, 1684645, + 1682769, 1680427, 1677846, 1675251, 1672817, 1670648, 1668784, 1667226, 1665951, 1664928, 1664124, 1663507, 1663050, 1662728, + 1662520, 1662408, 1662378, 1662415, 1662509, 1662650, 1662832, 1663046, 1663287, 1663550, 1663831, 1664127, 1664434, 1664750, + 1665072, 1665400, 1665730, 1666063, 1666396, 1666729, 1667061, 1667392, 1667721, 1668047, 1668370, 1668690, 1669007, 1669320, + 1669630, 1691891, 1693207, 1694029, 1694281, 1693892, 1692837, 1691164, 1689010, 1686571, 1684059, 1681649, 1679457, 1677538, + 1675905, 1674545, 1673434, 1672542, 1671839, 1671299, 1670899, 1670617, 1670436, 1670340, 1670316, 1670353, 1670442, 1670574, + 1670742, 1670940, 1671164, 1671408, 1671669, 1671944, 1672230, 1672524, 1672826, 1673132, 1673441, 1673753, 1674066, 1674379, + 1674692, 1675004, 1675314, 1675622, 1675927, 1676230, 1676530, 1676827, 1699218, 1700561, 1701441, 1701788, 1701535, 1700651, + 1699169, 1697198, 1694908, 1692492, 1690123, 1687925, 1685966, 1684271, 1682837, 1681645, 1680670, 1679887, 1679269, 1678793, + 1678440, 1678191, 1678032, 1677949, 1677931, 1677967, 1678051, 1678173, 1678329, 1678513, 1678721, 1678948, 1679191, 1679447, + 1679713, 1679988, 1680270, 1680557, 1680847, 1681140, 1681434, 1681729, 1682023, 1682317, 1682610, 1682901, 1683191, 1683478, + 1683762, 1706236, 1707604, 1708536, 1708968, 1708838, 1708112, 1706809, 1705014, 1702875, 1700566, 1698253, 1696065, 1694080, + 1692336, 1690837, 1689574, 1688524, 1687664, 1686972, 1686425, 1686004, 1685690, 1685470, 1685329, 1685256, 1685242, 1685277, + 1685355, 1685470, 1685615, 1685786, 1685978, 1686189, 1686416, 1686654, 1686903, 1687161, 1687424, 1687693, 1687966, 1688241, + 1688518, 1688796, 1689074, 1689352, 1689628, 1689904, 1690178, 1690451, 1712968, 1714357, 1715336, 1715845, 1715827, 1715245, + 1714108, 1712483, 1710495, 1708300, 1706056, 1703892, 1701896, 1700114, 1698562, 1697234, 1696115, 1695186, 1694424, 1693809, + 1693322, 1692946, 1692666, 1692469, 1692343, 1692279, 1692268, 1692302, 1692375, 1692482, 1692617, 1692776, 1692955, 1693151, + 1693362, 1693585, 1693818, 1694059, 1694306, 1694559, 1694815, 1695074, 1695335, 1695597, 1695860, 1696123, 1696385, 1696646, + 1696906, 1719436, 1720845, 1721865, 1722444, 1722526, 1722076, 1721092, 1719629, 1717790, 1715714, 1713549, 1711422, 1709428, + 1707620, 1706023, 1704640, 1703459, 1702464, 1701637, 1700958, 1700408, 1699972, 1699635, 1699383, 1699206, 1699094, 1699037, + 1699028, 1699060, 1699129, 1699228, 1699353, 1699501, 1699668, 1699851, 1700048, 1700257, 1700475, 1700701, 1700933, 1701170, + 1701411, 1701655, 1701902, 1702149, 1702398, 1702646, 1702895, 1703143, 1725653, 1727078, 1728135, 1728777, 1728951, 1728621, + 1727781, 1726470, 1724777, 1722823, 1720744, 1718666, 1716685, 1714863, 1713232, 1711800, 1710564, 1709511, 1708622, 1707882, + 1707274, 1706780, 1706388, 1706083, 1705856, 1705696, 1705594, 1705543, 1705536, 1705567, 1705630, 1705723, 1705839, 1705977, + 1706133, 1706304, 1706488, 1706683, 1706888, 1707100, 1707318, 1707541, 1707768, 1707999, 1708231, 1708465, 1708701, 1708936, + 1709172, 1731635, 1733075, 1734166, 1734864, 1735121, 1734901, 1734194, 1733028, 1731475, 1729644, 1727658, 1725638, 1723681, + 1721855, 1720199, 1718728, 1717443, 1716335, 1715391, 1714594, 1713929, 1713381, 1712935, 1712580, 1712304, 1712098, 1711952, + 1711860, 1711813, 1711807, 1711836, 1711896, 1711981, 1712090, 1712219, 1712364, 1712524, 1712696, 1712879, 1713071, 1713270, + 1713475, 1713686, 1713900, 1714117, 1714337, 1714559, 1714782, 1715006, 1737402, 1738854, 1739976, 1740725, 1741057, 1740938, + 1740352, 1739322, 1737905, 1736196, 1734307, 1732352, 1730429, 1728608, 1726936, 1725433, 1724107, 1722950, 1721954, 1721104, + 1720386, 1719785, 1719289, 1718885, 1718562, 1718311, 1718122, 1717989, 1717904, 1717862, 1717856, 1717883, 1717938, 1718018, + 1718119, 1718239, 1718375, 1718524, 1718686, 1718857, 1719037, 1719225, 1719418, 1719616, 1719819, 1720024, 1720232, 1720442, + 1720654, 1742960, 1744424, 1745572, 1746367, 1746768, 1746741, 1746269, 1745365, 1744079, 1742490, 1740700, 1738817, 1736936, + 1735130, 1733450, 1731924, 1730561, 1729362, 1728319, 1727419, 1726651, 1726001, 1725456, 1725005, 1724637, 1724342, 1724112, + 1723939, 1723817, 1723738, 1723699, 1723694, 1723719, 1723770, 1723845, 1723939, 1724050, 1724177, 1724317, 1724469, 1724630, + 1724799, 1724975, 1725157, 1725344, 1725536, 1725730, 1725927, 1726127, 1748315, 1749789, 1750962, 1751799, 1752263, 1752320, + 1751953, 1751169, 1750007, 1748536, 1746848, 1745041, 1743209, 1741426, 1739747, 1738205, 1736813, 1735577, 1734491, 1733547, + 1732732, 1732035, 1731444, 1730947, 1730536, 1730199, 1729929, 1729718, 1729558, 1729445, 1729373, 1729336, 1729332, 1729355, + 1729402, 1729471, 1729559, 1729663, 1729782, 1729913, 1730055, 1730206, 1730366, 1730532, 1730704, 1730881, 1731061, 1731246, + 1731433, 1753495, 1754977, 1756172, 1757047, 1757568, 1757702, 1757431, 1756758, 1755714, 1754358, 1752770, 1751044, 1749266, + 1747514, 1745843, 1744291, 1742877, 1741609, 1740485, 1739499, 1738641, 1737899, 1737264, 1736725, 1736271, 1735894, 1735584, + 1735335, 1735140, 1734993, 1734888, 1734820, 1734786, 1734781, 1734802, 1734846, 1734910, 1734992, 1735090, 1735201, 1735323, + 1735457, 1735599, 1735749, 1735906, 1736068, 1736235, 1736406, 1736581, 1758500, 1759989, 1761203, 1762113, 1762685, 1762891, + 1762709, 1762140, 1761207, 1759961, 1758474, 1756830, 1755112, 1753397, 1751741, 1750186, 1748756, 1747462, 1746304, 1745280, + 1744382, 1743599, 1742923, 1742342, 1741848, 1741431, 1741084, 1740798, 1740568, 1740387, 1740251, 1740153, 1740089, 1740057, + 1740052, 1740071, 1740111, 1740171, 1740247, 1740338, 1740442, 1740557, 1740682, 1740816, 1740957, 1741105, 1741259, 1741417, + 1741579, 1763336, 1764831, 1766062, 1767004, 1767624, 1767895, 1767795, 1767323, 1766496, 1765357, 1763969, 1762408, 1760755, + 1759081, 1757447, 1755896, 1754456, 1753140, 1751954, 1750897, 1749961, 1749140, 1748424, 1747805, 1747272, 1746817, 1746434, + 1746113, 1745849, 1745635, 1745467, 1745339, 1745248, 1745188, 1745157, 1745152, 1745169, 1745206, 1745261, 1745332, 1745417, + 1745515, 1745623, 1745740, 1745866, 1746000, 1746139, 1746284, 1746434, 1768018, 1769518, 1770765, 1771735, 1772399, 1772729, + 1772706, 1772324, 1771597, 1770560, 1769268, 1767792, 1766206, 1764579, 1762972, 1761431, 1759985, 1758654, 1757444, 1756356, + 1755387, 1754531, 1753778, 1753121, 1752551, 1752061, 1751642, 1751287, 1750989, 1750744, 1750545, 1750388, 1750269, 1750182, + 1750126, 1750096, 1750090, 1750106, 1750140, 1750191, 1750257, 1750337, 1750428, 1750529, 1750640, 1750759, 1750884, 1751016, + 1751154, 1772554, 1774058, 1775318, 1776314, 1777017, 1777403, 1777450, 1777152, 1776519, 1775579, 1774382, 1772990, 1771473, + 1769897, 1768322, 1766796, 1765351, 1764008, 1762778, 1761665, 1760666, 1759776, 1758989, 1758297, 1757692, 1757167, 1756714, + 1756326, 1755996, 1755720, 1755491, 1755306, 1755158, 1755046, 1754964, 1754911, 1754882, 1754876, 1754889, 1754921, 1754968, + 1755029, 1755104, 1755189, 1755284, 1755388, 1755500, 1755619, 1755744, 1776942, 1778450, 1779723, 1780742, 1781482, 1781919, + 1782031, 1781812, 1781267, 1780421, 1779315, 1778007, 1776560, 1775038, 1773500, 1771994, 1770554, 1769206, 1767960, 1766825, + 1765799, 1764880, 1764061, 1763336, 1762698, 1762140, 1761654, 1761234, 1760873, 1760567, 1760309, 1760096, 1759922, 1759783, + 1759677, 1759600, 1759549, 1759521, 1759514, 1759526, 1759554, 1759598, 1759655, 1759725, 1759805, 1759894, 1759992, 1760098, + 1760210, 1781200, 1782710, 1783994, 1785035, 1785808, 1786291, 1786464, 1786318, 1785857, 1785099, 1784082, 1782856, 1781480, + 1780015, 1778517, 1777035, 1775606, 1774255, 1772999, 1771845, 1770796, 1769849, 1769001, 1768246, 1767576, 1766986, 1766469, + 1766018, 1765628, 1765292, 1765006, 1764765, 1764565, 1764401, 1764271, 1764170, 1764097, 1764048, 1764020, 1764013, 1764023, + 1764049, 1764090, 1764143, 1764208, 1764283, 1764367, 1764459, 1764559, 1785335, 1786846, 1788140, 1789200, 1790004, 1790530, + 1790759, 1790681, 1790297, 1789623, 1788691, 1787546, 1786241, 1784834, 1783380, 1781927, 1780512, 1779164, 1777900, 1776731, + 1775662, 1774691, 1773816, 1773031, 1772332, 1771712, 1771165, 1770685, 1770265, 1769901, 1769588, 1769320, 1769094, 1768905, + 1768751, 1768628, 1768532, 1768462, 1768415, 1768388, 1768380, 1768388, 1768412, 1768449, 1768499, 1768559, 1768630, 1768709, + 1768796, 1789346, 1790859, 1792162, 1793239, 1794071, 1794636, 1794917, 1794902, 1794592, 1793998, 1793148, 1792081, 1790847, + 1789500, 1788092, 1786670, 1785274, 1783933, 1782666, 1781486, 1780399, 1779406, 1778507, 1777696, 1776969, 1776321, 1775745, + 1775236, 1774789, 1774397, 1774057, 1773763, 1773512, 1773299, 1773122, 1772976, 1772859, 1772768, 1772700, 1772655, 1772628, + 1772619, 1772626, 1772648, 1772682, 1772728, 1772785, 1772850, 1772925, 1793234, 1794748, 1796058, 1797152, 1798009, 1798612, + 1798941, 1798986, 1798744, 1798226, 1797454, 1796465, 1795301, 1794015, 1792655, 1791269, 1789895, 1788564, 1787297, 1786110, + 1785009, 1783998, 1783077, 1782242, 1781489, 1780814, 1780211, 1779675, 1779201, 1778783, 1778417, 1778098, 1777822, 1777586, + 1777386, 1777218, 1777079, 1776968, 1776881, 1776817, 1776772, 1776746, 1776737, 1776743, 1776762, 1776793, 1776836, 1776889, + 1776951, 1797016, 1798529, 1799847, 1800955, 1801836, 1802472, 1802846, 1802946, 1802769, 1802323, 1801626, 1800711, 1799617, + 1798392, 1797082, 1795733, 1794385, 1793067, 1791805, 1790613, 1789502, 1788475, 1787533, 1786676, 1785900, 1785200, 1784571, + 1784009, 1783509, 1783066, 1782675, 1782331, 1782032, 1781772, 1781550, 1781360, 1781201, 1781069, 1780963, 1780880, 1780818, + 1780775, 1780749, 1780739, 1780743, 1780761, 1780789, 1780829, 1780878, 1800691, 1802204, 1803528, 1804649, 1805552, 1806219, + 1806634, 1806786, 1806670, 1806291, 1805667, 1804823, 1803798, 1802633, 1801375, 1800066, 1798746, 1797445, 1796190, 1794997, + 1793878, 1792838, 1791879, 1791002, 1790203, 1789480, 1788827, 1788241, 1787716, 1787248, 1786833, 1786466, 1786143, 1785861, + 1785616, 1785406, 1785226, 1785075, 1784950, 1784848, 1784769, 1784709, 1784667, 1784641, 1784630, 1784633, 1784649, 1784675, + 1784712, 1804269, 1805781, 1807109, 1808242, 1809165, 1809861, 1810315, 1810515, 1810456, 1810141, 1809585, 1808811, 1807852, + 1806748, 1805541, 1804274, 1802984, 1801704, 1800459, 1799268, 1798144, 1797093, 1796120, 1795224, 1794405, 1793660, 1792985, + 1792375, 1791826, 1791335, 1790896, 1790506, 1790161, 1789857, 1789591, 1789359, 1789160, 1788989, 1788845, 1788726, 1788629, + 1788552, 1788494, 1788453, 1788427, 1788416, 1788418, 1788431, 1788455, 1807750, 1809260, 1810592, 1811736, 1812677, 1813400, + 1813889, 1814134, 1814129, 1813875, 1813383, 1812676, 1811782, 1810738, 1809584, 1808360, 1807103, 1805846, 1804614, 1803428, + 1802301, 1801242, 1800256, 1799345, 1798508, 1797742, 1797045, 1796413, 1795842, 1795328, 1794867, 1794455, 1794088, 1793763, + 1793476, 1793224, 1793004, 1792815, 1792653, 1792515, 1792401, 1792308, 1792234, 1792177, 1792137, 1792112, 1792100, 1792100, + 1792112, 1811142, 1812650, 1813986, 1815139, 1816097, 1816844, 1817367, 1817654, 1817698, 1817501, 1817072, 1816428, 1815598, + 1814613, 1813512, 1812332, 1811109, 1809876, 1808660, 1807481, 1806355, 1805290, 1804294, 1803369, 1802515, 1801731, 1801014, + 1800361, 1799769, 1799233, 1798751, 1798317, 1797929, 1797582, 1797275, 1797003, 1796765, 1796556, 1796376, 1796221, 1796090, + 1795980, 1795891, 1795819, 1795764, 1795725, 1795699, 1795687, 1795686, 1814436, 1815942, 1817281, 1818443, 1819416, 1820186, + 1820740, 1821066, 1821158, 1821015, 1820645, 1820064, 1819295, 1818368, 1817320, 1816185, 1814999, 1813793, 1812595, 1811426, + 1810303, 1809235, 1808231, 1807294, 1806426, 1805625, 1804890, 1804217, 1803605, 1803049, 1802545, 1802091, 1801682, 1801316, + 1800989, 1800698, 1800441, 1800214, 1800016, 1799844, 1799696, 1799571, 1799465, 1799379, 1799310, 1799256, 1799218, 1799192, + 1799179, 1817651, 1819155, 1820496, 1821666, 1822653, 1823444, 1824027, 1824390, 1824526, 1824434, 1824120, 1823597, 1822888, + 1822019, 1821022, 1819933, 1818784, 1817607, 1816430, 1815273, 1814155, 1813087, 1812077, 1811130, 1810249, 1809432, 1808680, + 1807990, 1807358, 1806782, 1806259, 1805785, 1805357, 1804971, 1804624, 1804315, 1804039, 1803794, 1803579, 1803390, 1803226, + 1803084, 1802964, 1802863, 1802779, 1802712, 1802660, 1802622, 1802596, 1820777, 1822279, 1823622, 1824799, 1825799, 1826610, + 1827219, 1827617, 1827795, 1827751, 1827491, 1827025, 1826373, 1825560, 1824616, 1823572, 1822462, 1821316, 1820161, 1819019, + 1817908, 1816841, 1815828, 1814873, 1813981, 1813151, 1812383, 1811676, 1811027, 1810433, 1809891, 1809397, 1808950, 1808545, + 1808181, 1807853, 1807559, 1807297, 1807065, 1806859, 1806679, 1806522, 1806386, 1806271, 1806173, 1806092, 1806027, 1805976, + 1805939, 1823835, 1825333, 1826678, 1827860, 1828872, 1829701, 1830336, 1830765, 1830982, 1830984, 1830774, 1830363, 1829766, + 1829007, 1828114, 1827116, 1826045, 1824931, 1823800, 1822674, 1821573, 1820510, 1819495, 1818534, 1817632, 1816790, 1816008, + 1815285, 1814619, 1814007, 1813447, 1812936, 1812470, 1812047, 1811665, 1811319, 1811008, 1810729, 1810479, 1810258, 1810062, + 1809889, 1809739, 1809608, 1809497, 1809403, 1809325, 1809261, 1809211, 1826814, 1828309, 1829654, 1830842, 1831865, 1832710, + 1833368, 1833828, 1834082, 1834126, 1833965, 1833605, 1833062, 1832356, 1831513, 1830561, 1829530, 1828449, 1827343, 1826236, + 1825146, 1824089, 1823074, 1822109, 1821200, 1820347, 1819553, 1818815, 1818134, 1817505, 1816928, 1816399, 1815916, 1815476, + 1815075, 1814712, 1814384, 1814088, 1813823, 1813585, 1813374, 1813186, 1813021, 1812877, 1812751, 1812644, 1812553, 1812477, + 1812415, 1829713, 1831204, 1832550, 1833744, 1834776, 1835638, 1836317, 1836805, 1837094, 1837180, 1837064, 1836754, 1836262, + 1835608, 1834815, 1833909, 1832918, 1831871, 1830792, 1829705, 1828629, 1827579, 1826566, 1825600, 1824684, 1823823, 1823017, + 1822267, 1821571, 1820927, 1820334, 1819789, 1819289, 1818832, 1818414, 1818035, 1817690, 1817378, 1817097, 1816844, 1816617, + 1816415, 1816235, 1816077, 1815938, 1815818, 1815714, 1815626, 1815552, 1832554, 1834042, 1835388, 1836585, 1837626, 1838502, + 1839202, 1839716, 1840037, 1840161, 1840089, 1839826, 1839384, 1838780, 1838035, 1837174, 1836223, 1835210, 1834159, 1833094, + 1832033, 1830992, 1829983, 1829016, 1828096, 1827227, 1826412, 1825649, 1824940, 1824282, 1823673, 1823112, 1822596, 1822123, + 1821689, 1821293, 1820933, 1820605, 1820308, 1820039, 1819798, 1819581, 1819387, 1819215, 1819063, 1818929, 1818813, 1818713, + 1818627, 1835315, 1836799, 1838145, 1839346, 1840396, 1841285, 1842004, 1842543, 1842895, 1843056, 1843025, 1842807, 1842413, + 1841857, 1841160, 1840344, 1839434, 1838456, 1837435, 1836392, 1835348, 1834318, 1833315, 1832349, 1831427, 1830552, 1829728, + 1828956, 1828234, 1827563, 1826940, 1826364, 1825833, 1825344, 1824895, 1824483, 1824107, 1823764, 1823452, 1823169, 1822913, + 1822682, 1822474, 1822289, 1822123, 1821977, 1821848, 1821736, 1821639, 1838018, 1839498, 1840844, 1842048, 1843105, 1844007, + 1844743, 1845306, 1845686, 1845881, 1845890, 1845715, 1845367, 1844858, 1844207, 1843435, 1842565, 1841623, 1840631, 1839613, + 1838587, 1837569, 1836574, 1835611, 1834687, 1833808, 1832977, 1832195, 1831462, 1830779, 1830143, 1829553, 1829007, 1828503, + 1828039, 1827613, 1827221, 1826863, 1826537, 1826239, 1825969, 1825724, 1825503, 1825304, 1825125, 1824966, 1824826, 1824701, + 1824593, 1840664, 1842139, 1843483, 1844690, 1845754, 1846667, 1847420, 1848004, 1848412, 1848639, 1848685, 1848551, 1848247, + 1847783, 1847177, 1846448, 1845618, 1844712, 1843751, 1842757, 1841750, 1840747, 1839760, 1838801, 1837878, 1836996, 1836159, + 1835368, 1834626, 1833931, 1833282, 1832679, 1832120, 1831602, 1831123, 1830682, 1830276, 1829904, 1829563, 1829251, 1828966, + 1828708, 1828473, 1828261, 1828070, 1827899, 1827746, 1827610, 1827490, 1843251, 1844722, 1846065, 1847274, 1848344, 1849267, + 1850035, 1850639, 1851072, 1851330, 1851411, 1851317, 1851054, 1850634, 1850072, 1849385, 1848595, 1847724, 1846794, 1845826, + 1844840, 1843851, 1842875, 1841922, 1841000, 1840116, 1839275, 1838477, 1837726, 1837021, 1836361, 1835745, 1835172, 1834641, + 1834148, 1833693, 1833273, 1832887, 1832532, 1832206, 1831908, 1831636, 1831388, 1831164, 1830960, 1830776, 1830611, 1830464, + 1830333, 1845768, 1847235, 1848576, 1849787, 1850863, 1851796, 1852578, 1853202, 1853659, 1853947, 1854061, 1854005, 1853783, + 1853405, 1852885, 1852240, 1851489, 1850654, 1849756, 1848815, 1847850, 1846878, 1845914, 1844968, 1844049, 1843165, 1842321, + 1841518, 1840759, 1840044, 1839374, 1838747, 1838162, 1837617, 1837112, 1836643, 1836210, 1835810, 1835442, 1835103, 1834792, + 1834507, 1834246, 1834009, 1833793, 1833597, 1833421, 1833262, 1833120, 1848238, 1849700, 1851040, 1852252, 1853333, 1854275, + 1855070, 1855712, 1856192, 1856507, 1856653, 1856633, 1856449, 1856112, 1855633, 1855029, 1854317, 1853518, 1852651, 1851737, + 1850795, 1849841, 1848889, 1847951, 1847037, 1846154, 1845307, 1844500, 1843734, 1843011, 1842331, 1841693, 1841097, 1840540, + 1840022, 1839541, 1839095, 1838682, 1838300, 1837948, 1837624, 1837326, 1837053, 1836804, 1836576, 1836368, 1836180, 1836010, + 1835857, 1850650, 1852108, 1853445, 1854659, 1855744, 1856694, 1857502, 1858161, 1858663, 1859003, 1859180, 1859193, 1859047, + 1858749, 1858311, 1857746, 1857072, 1856309, 1855474, 1854588, 1853669, 1852733, 1851795, 1850867, 1849959, 1849078, 1848231, + 1847420, 1846649, 1845918, 1845230, 1844582, 1843975, 1843407, 1842877, 1842383, 1841924, 1841499, 1841104, 1840740, 1840403, + 1840093, 1839808, 1839546, 1839307, 1839088, 1838888, 1838707, 1838543, 1853016, 1854468, 1855804, 1857018, 1858107, 1859064, + 1859884, 1860558, 1861080, 1861445, 1861651, 1861697, 1861586, 1861326, 1860926, 1860400, 1859764, 1859035, 1858232, 1857374, + 1856479, 1855563, 1854640, 1853722, 1852821, 1851944, 1851096, 1850283, 1849508, 1848771, 1848074, 1847417, 1846800, 1846221, + 1845680, 1845175, 1844704, 1844266, 1843860, 1843483, 1843134, 1842812, 1842515, 1842241, 1841990, 1841760, 1841549, 1841357, + 1841182, 1855322, 1856770, 1858103, 1859318, 1860410, 1861375, 1862205, 1862894, 1863436, 1863824, 1864057, 1864134, 1864058, + 1863834, 1863472, 1862984, 1862384, 1861691, 1860920, 1860091, 1859220, 1858324, 1857417, 1856512, 1855618, 1854746, 1853900, + 1853086, 1852307, 1851565, 1850861, 1850196, 1849570, 1848981, 1848429, 1847913, 1847430, 1846981, 1846563, 1846174, 1845814, + 1845480, 1845171, 1844886, 1844624, 1844382, 1844161, 1843958, 1843773, 1857582, 1859024, 1860355, 1861570, 1862666, 1863637, + 1864477, 1865181, 1865740, 1866151, 1866410, 1866516, 1866473, 1866284, 1865958, 1865507, 1864944, 1864284, 1863546, 1862745, + 1861899, 1861024, 1860134, 1859242, 1858358, 1857491, 1856647, 1855833, 1855052, 1854305, 1853596, 1852923, 1852288, 1851690, + 1851128, 1850602, 1850109, 1849648, 1849218, 1848818, 1848446, 1848101, 1847781, 1847485, 1847211, 1846959, 1846727, 1846514, + 1846318, 1859794, 1861232, 1862560, 1863775, 1864873, 1865851, 1866701, 1867417, 1867993, 1868425, 1868709, 1868844, 1868831, + 1868676, 1868386, 1867970, 1867442, 1866817, 1866110, 1865338, 1864518, 1863664, 1862792, 1861913, 1861039, 1860179, 1859340, + 1858526, 1857743, 1856994, 1856279, 1855600, 1854957, 1854350, 1853779, 1853242, 1852739, 1852268, 1851827, 1851416, 1851033, + 1850677, 1850346, 1850039, 1849755, 1849492, 1849249, 1849025, 1848820, 1861974, 1863406, 1864731, 1865945, 1867045, 1868028, + 1868886, 1869614, 1870207, 1870658, 1870965, 1871127, 1871144, 1871021, 1870764, 1870383, 1869890, 1869298, 1868622, 1867879, + 1867084, 1866252, 1865398, 1864534, 1863671, 1862818, 1861983, 1861172, 1860388, 1859635, 1858916, 1858231, 1857582, 1856967, + 1856387, 1855840, 1855327, 1854845, 1854394, 1853973, 1853579, 1853212, 1852870, 1852552, 1852257, 1851984, 1851730, 1851497, + 1851281, 1864092, 1865519, 1866842, 1868055, 1869158, 1870145, 1871012, 1871752, 1872359, 1872830, 1873159, 1873347, 1873393, + 1873301, 1873077, 1872730, 1872271, 1871711, 1871067, 1870353, 1869584, 1868775, 1867940, 1867091, 1866240, 1865396, 1864567, + 1863758, 1862975, 1862221, 1861498, 1860808, 1860152, 1859530, 1858942, 1858387, 1857864, 1857373, 1856912, 1856480, 1856076, + 1855699, 1855347, 1855018, 1854713, 1854430, 1854166, 1853923, 1853697, 1866177, 1867599, 1868918, 1870130, 1871235, 1872227, + 1873101, 1873851, 1874473, 1874961, 1875312, 1875524, 1875598, 1875536, 1875344, 1875029, 1874602, 1874075, 1873462, 1872776, + 1872033, 1871247, 1870431, 1869599, 1868760, 1867926, 1867103, 1866298, 1865516, 1864761, 1864035, 1863341, 1862680, 1862051, + 1861455, 1860892, 1860361, 1859860, 1859390, 1858948, 1858534, 1858146, 1857784, 1857446, 1857130, 1856837, 1856564, 1856311, + 1856076, 1868214, 1869631, 1870947, 1872158, 1873264, 1874260, 1875141, 1875902, 1876538, 1877043, 1877414, 1877649, 1877749, + 1877716, 1877555, 1877272, 1876877, 1876382, 1875799, 1875141, 1874424, 1873661, 1872866, 1872050, 1871226, 1870401, 1869586, + 1868785, 1868006, 1867251, 1866524, 1865826, 1865160, 1864525, 1863923, 1863352, 1862812, 1862303, 1861823, 1861372, 1860948, + 1860551, 1860179, 1859831, 1859506, 1859203, 1858920, 1858658, 1858413, 1870218, 1871629, 1872941, 1874152, 1875258, 1876258, + 1877146, 1877916, 1878564, 1879085, 1879475, 1879733, 1879858, 1879853, 1879721, 1879468, 1879105, 1878640, 1878087, 1877458, + 1876767, 1876028, 1875253, 1874454, 1873643, 1872830, 1872023, 1871228, 1870451, 1869697, 1868969, 1868269, 1867598, 1866958, + 1866349, 1865771, 1865224, 1864706, 1864218, 1863758, 1863325, 1862918, 1862537, 1862179, 1861845, 1861532, 1861240, 1860968, + 1860714, 1872188, 1873593, 1874902, 1876111, 1877218, 1878221, 1879114, 1879893, 1880553, 1881089, 1881498, 1881777, 1881926, + 1881947, 1881843, 1881620, 1881287, 1880852, 1880329, 1879728, 1879062, 1878346, 1877592, 1876811, 1876015, 1875213, 1874415, + 1873626, 1872853, 1872100, 1871372, 1870669, 1869995, 1869351, 1868736, 1868151, 1867596, 1867071, 1866574, 1866106, 1865664, + 1865248, 1864858, 1864491, 1864147, 1863825, 1863524, 1863242, 1862980, 1874109, 1875509, 1876815, 1878022, 1879130, 1880135, + 1881035, 1881822, 1882493, 1883044, 1883470, 1883769, 1883941, 1883988, 1883911, 1883718, 1883414, 1883009, 1882514, 1881941, + 1881302, 1880610, 1879876, 1879114, 1878333, 1877544, 1876755, 1875973, 1875205, 1874455, 1873726, 1873023, 1872346, 1871698, + 1871078, 1870487, 1869926, 1869393, 1868889, 1868412, 1867962, 1867537, 1867138, 1866762, 1866410, 1866079, 1865769, 1865478, + 1865207, 1875997, 1877391, 1878693, 1879898, 1881007, 1882015, 1882919, 1883715, 1884397, 1884961, 1885403, 1885722, 1885917, + 1885987, 1885937, 1885772, 1885497, 1885121, 1884654, 1884109, 1883495, 1882826, 1882114, 1881370, 1880606, 1879830, 1879051, + 1878277, 1877514, 1876767, 1876040, 1875336, 1874657, 1874005, 1873381, 1872785, 1872217, 1871678, 1871166, 1870681, 1870223, + 1869791, 1869383, 1868998, 1868637, 1868297, 1867979, 1867680, 1867400, 1877850, 1879239, 1880537, 1881741, 1882849, 1883860, + 1884769, 1885571, 1886263, 1886840, 1887298, 1887636, 1887852, 1887946, 1887921, 1887783, 1887535, 1887188, 1886749, 1886231, + 1885643, 1884998, 1884307, 1883582, 1882833, 1882071, 1881303, 1880538, 1879781, 1879038, 1878312, 1877608, 1876928, 1876273, + 1875645, 1875044, 1874471, 1873925, 1873407, 1872915, 1872449, 1872008, 1871592, 1871200, 1870830, 1870482, 1870154, 1869847, + 1869559, 1879669, 1881052, 1882347, 1883548, 1884657, 1885669, 1886582, 1887392, 1888093, 1888683, 1889156, 1889511, 1889747, + 1889864, 1889864, 1889751, 1889531, 1889211, 1888800, 1888308, 1887745, 1887124, 1886455, 1885749, 1885017, 1884269, 1883512, + 1882756, 1882006, 1881267, 1880544, 1879841, 1879160, 1878503, 1877872, 1877267, 1876688, 1876136, 1875611, 1875112, 1874639, + 1874191, 1873767, 1873367, 1872989, 1872632, 1872297, 1871981, 1871685, 1881454, 1882832, 1884123, 1885322, 1886430, 1887444, + 1888361, 1889177, 1889888, 1890488, 1890976, 1891348, 1891603, 1891742, 1891766, 1891678, 1891484, 1891191, 1890807, 1890341, + 1889803, 1889205, 1888558, 1887872, 1887157, 1886423, 1885679, 1884932, 1884189, 1883456, 1882736, 1882034, 1881353, 1880695, + 1880061, 1879452, 1878869, 1878311, 1877780, 1877275, 1876795, 1876340, 1875908, 1875500, 1875114, 1874750, 1874406, 1874083, + 1873778, 1883205, 1884577, 1885864, 1887061, 1888168, 1889184, 1890105, 1890927, 1891646, 1892257, 1892759, 1893147, 1893421, + 1893580, 1893627, 1893564, 1893395, 1893128, 1892770, 1892330, 1891818, 1891243, 1890618, 1889951, 1889253, 1888535, 1887803, + 1887066, 1886331, 1885604, 1884888, 1884189, 1883508, 1882849, 1882212, 1881600, 1881013, 1880451, 1879914, 1879403, 1878916, + 1878454, 1878015, 1877600, 1877206, 1876835, 1876483, 1876152, 1875840, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 132408, 120886, 106696, 93138, 81451, + 71757, 63795, 57238, 51794, 47228, 43359, 40047, 37186, 34693, 32504, 30568, 28845, 27301, 25912, + 24654, 23512, 22469, 21513, 20635, 19825, 19075, 18380, 17733, 17129, 16565, 16037, 15541, 15075, + 14636, 14221, 13829, 13459, 13107, 12773, 12456, 12154, 11866, 11592, 11330, 11079, 10839, 10610, + 10390, 10179, 9976, 9781, 9593, 9413, 9239, 9072, 8910, 8754, 8604, 8458, 8318, 8182, + 8050, 7922, 7799, 7679, 7563, 7450, 7341, 7235, 7132, 7031, 6934, 6839, 6747, 6657, + 6569, 6484, 6401, 6320, 6241, 6164, 6089 +]; +/// PMOS log-domain current table, corner mos_fs, IHP-Open-PDK 21133f21, L 0.45 um, 27 C: the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (Vgs = ix * 15.625 mV, Vds = iy * 31.25 mV), then the 97 words rv = nint(4096 / s(Vgs)) at Vgs = ix * 15.625 mV (deck psp103_idpa_fs.cir, blocks lam_p and r_p). +pub const FS_LG_P : [4851]u32 = [ + 4294967295, 149200, 146387, 143842, 142630, 142610, 143257, 144279, 145208, 146195, 147195, 148197, 149199, 150205, + 151216, 152235, 153263, 154302, 155354, 156420, 157501, 158598, 159711, 160842, 161992, 163160, 164349, 165557, + 166787, 168040, 169318, 170626, 171971, 173365, 174826, 176382, 178074, 180093, 182306, 184918, 188069, 191928, + 196690, 202561, 209745, 218411, 228676, 240577, 254065, 269007, 193835, 190438, 187623, 186132, 185847, 186219, + 186851, 187608, 188309, 189019, 189730, 190438, 191146, 191856, 192570, 193289, 194016, 194751, 195496, 196251, + 197017, 197796, 198588, 199393, 200213, 201048, 201899, 202765, 203650, 204553, 205477, 206428, 207410, 208436, + 209522, 210693, 211984, 213559, 215309, 217408, 219980, 223171, 227154, 232119, 238255, 245734, 254687, 265182, + 277214, 238600, 234922, 231916, 230222, 229760, 229957, 230409, 230987, 231503, 232027, 232548, 233064, 233577, + 234089, 234601, 235115, 235633, 236155, 236682, 237216, 237757, 238306, 238863, 239429, 240005, 240591, 241188, + 241796, 242416, 243049, 243696, 244360, 245045, 245756, 246503, 247300, 248169, 249204, 250345, 251700, 253346, + 255386, 257944, 261168, 265220, 270274, 276495, 284024, 292957, 283480, 279672, 276546, 274713, 274127, 274213, + 274553, 274968, 275417, 275822, 276223, 276616, 277005, 277389, 277771, 278153, 278535, 278919, 279305, 279694, + 280087, 280484, 280886, 281293, 281706, 282126, 282552, 282985, 283425, 283874, 284332, 284801, 285281, 285777, + 286294, 286840, 287426, 288070, 288848, 289712, 290748, 292018, 293604, 295607, 298146, 301358, 305392, 310399, + 316519, 328464, 324599, 321403, 319480, 318809, 318822, 319092, 319435, 319812, 320144, 320469, 320785, 321095, + 321399, 321700, 321998, 322294, 322590, 322886, 323183, 323481, 323781, 324083, 324388, 324696, 325007, 325322, + 325641, 325965, 326293, 326627, 326966, 327313, 327669, 328037, 328420, 328825, 329262, 329773, 330332, 330987, + 331777, 332749, 333967, 335509, 337470, 339959, 343098, 347018, 373543, 369661, 366420, 364444, 363715, 363680, + 363906, 364205, 364511, 364823, 365101, 365370, 365631, 365885, 366134, 366380, 366623, 366864, 367104, 367342, + 367581, 367820, 368059, 368299, 368540, 368783, 369028, 369275, 369524, 369775, 370030, 370287, 370549, 370816, + 371088, 371369, 371662, 371972, 372306, 372697, 373125, 373628, 374232, 374976, 375907, 377083, 378578, 380476, + 382872, 418710, 414831, 411560, 409554, 408789, 408720, 408918, 409190, 409469, 409737, 410001, 410241, 410472, + 410695, 410913, 411127, 411337, 411544, 411748, 411951, 412153, 412354, 412554, 412754, 412954, 413154, 413355, + 413556, 413759, 413962, 414167, 414373, 414581, 414792, 415006, 415224, 415448, 415682, 415927, 416203, 416499, + 416834, 417225, 417694, 418266, 418978, 419873, 421005, 422438, 463958, 460092, 456802, 454779, 453993, 453902, + 454081, 454336, 454598, 454849, 455086, 455311, 455530, 455735, 455934, 456128, 456317, 456503, 456686, 456867, + 457046, 457224, 457400, 457575, 457750, 457924, 458097, 458271, 458444, 458618, 458792, 458967, 459142, 459318, + 459496, 459676, 459859, 460046, 460239, 460442, 460668, 460908, 461178, 461490, 461859, 462305, 462854, 463537, + 464393, 509283, 505434, 502133, 500099, 499303, 499198, 499365, 499609, 499861, 500102, 500328, 500542, 500745, + 500944, 501131, 501312, 501490, 501663, 501833, 502001, 502166, 502329, 502491, 502651, 502810, 502968, 503125, + 503281, 503437, 503593, 503748, 503903, 504058, 504214, 504369, 504526, 504684, 504843, 505006, 505174, 505353, + 505539, 505742, 505966, 506221, 506518, 506871, 507299, 507825, 554677, 550849, 547543, 545504, 544701, 544589, + 544747, 544985, 545231, 545466, 545686, 545893, 546090, 546278, 546459, 546634, 546806, 546972, 547135, 547294, + 547451, 547606, 547759, 547910, 548059, 548207, 548354, 548500, 548646, 548790, 548934, 549077, 549220, 549363, + 549505, 549648, 549791, 549934, 550079, 550226, 550377, 550535, 550700, 550876, 551068, 551283, 551528, 551814, + 552153, 600133, 596330, 593024, 590982, 590176, 590060, 590215, 590448, 590691, 590922, 591139, 591343, 591536, + 591720, 591897, 592068, 592234, 592396, 592554, 592710, 592862, 593012, 593160, 593305, 593449, 593592, 593733, + 593873, 594012, 594150, 594287, 594423, 594559, 594694, 594828, 594962, 595096, 595230, 595365, 595500, 595637, + 595776, 595921, 596070, 596228, 596397, 596583, 596791, 597028, 645640, 641868, 638567, 636526, 635719, 635602, + 635755, 635986, 636227, 636457, 636672, 636874, 637065, 637248, 637423, 637591, 637755, 637915, 638070, 638223, + 638372, 638519, 638664, 638808, 638949, 639088, 639225, 639362, 639497, 639631, 639764, 639896, 640028, 640158, + 640288, 640418, 640547, 640675, 640804, 640932, 641061, 641191, 641323, 641458, 641597, 641742, 641895, 642060, + 642241, 691183, 687454, 684162, 682124, 681318, 681202, 681355, 681586, 681827, 682057, 682272, 682473, 682664, + 682845, 683020, 683188, 683351, 683509, 683664, 683815, 683963, 684109, 684252, 684394, 684533, 684671, 684807, + 684942, 685075, 685207, 685338, 685468, 685597, 685725, 685853, 685979, 686105, 686231, 686356, 686481, 686605, + 686730, 686856, 686983, 687112, 687244, 687380, 687522, 687672, 736738, 733069, 729795, 727762, 726960, 726846, + 727001, 727234, 727476, 727707, 727923, 728125, 728316, 728498, 728673, 728841, 729004, 729163, 729317, 729469, + 729617, 729762, 729905, 730046, 730185, 730322, 730457, 730591, 730724, 730855, 730985, 731114, 731243, 731370, + 731496, 731621, 731746, 731870, 731993, 732116, 732239, 732361, 732484, 732606, 732730, 732855, 732982, 733112, + 733246, 782266, 778689, 775442, 773420, 772624, 772515, 772674, 772910, 773155, 773388, 773606, 773811, 774004, + 774188, 774364, 774533, 774698, 774857, 775013, 775165, 775314, 775460, 775604, 775745, 775884, 776022, 776157, + 776292, 776424, 776556, 776686, 776815, 776943, 777070, 777196, 777321, 777445, 777569, 777692, 777815, 777936, + 778058, 778179, 778300, 778421, 778542, 778665, 778788, 778914, 830610, 825934, 821947, 819497, 818480, 818267, + 818382, 818602, 818843, 819076, 819297, 819505, 819701, 819888, 820067, 820239, 820406, 820567, 820725, 820879, + 821030, 821178, 821323, 821466, 821606, 821745, 821882, 822017, 822151, 822284, 822415, 822545, 822673, 822801, + 822928, 823054, 823179, 823303, 823426, 823549, 823671, 823793, 823914, 824034, 824154, 824275, 824395, 824516, + 824638, 884482, 876527, 870322, 866538, 864794, 864216, 864158, 864302, 864513, 864737, 864957, 865168, 865368, + 865560, 865743, 865919, 866090, 866256, 866417, 866575, 866729, 866879, 867027, 867173, 867316, 867458, 867597, + 867735, 867871, 868005, 868138, 868270, 868400, 868530, 868658, 868786, 868912, 869038, 869162, 869286, 869410, + 869532, 869654, 869776, 869897, 870018, 870138, 870258, 870379, 941229, 929228, 920111, 914444, 911583, 910386, + 910006, 909991, 910127, 910320, 910531, 910741, 910946, 911143, 911333, 911517, 911694, 911865, 912032, 912195, + 912354, 912510, 912663, 912813, 912961, 913106, 913249, 913391, 913530, 913668, 913805, 913940, 914073, 914206, + 914337, 914467, 914597, 914725, 914852, 914979, 915104, 915229, 915353, 915477, 915600, 915722, 915844, 915966, + 916087, 998477, 982727, 970682, 962957, 958763, 956755, 955905, 955629, 955629, 955756, 955937, 956138, 956344, + 956548, 956746, 956939, 957125, 957306, 957482, 957653, 957821, 957984, 958144, 958301, 958456, 958607, 958757, + 958904, 959049, 959193, 959334, 959475, 959613, 959750, 959886, 960021, 960155, 960287, 960418, 960549, 960678, + 960807, 960935, 961062, 961188, 961314, 961439, 961563, 961687, 1054692, 1035993, 1021373, 1011678, 1006102, 1003179, + 1001750, 1001122, 1000917, 1000930, 1001053, 1001229, 1001428, 1001635, 1001842, 1002046, 1002245, 1002439, 1002628, 1002811, + 1002991, 1003165, 1003337, 1003504, 1003668, 1003830, 1003989, 1004145, 1004299, 1004450, 1004600, 1004748, 1004894, 1005038, + 1005181, 1005322, 1005463, 1005601, 1005739, 1005875, 1006011, 1006145, 1006278, 1006411, 1006542, 1006673, 1006803, 1006932, + 1007060, 1108923, 1088243, 1071561, 1060124, 1053232, 1049377, 1047314, 1046272, 1045803, 1045657, 1045689, 1045818, 1045997, + 1046201, 1046415, 1046631, 1046845, 1047055, 1047261, 1047462, 1047657, 1047848, 1048035, 1048217, 1048396, 1048571, 1048743, + 1048912, 1049078, 1049241, 1049402, 1049561, 1049718, 1049872, 1050025, 1050176, 1050326, 1050474, 1050620, 1050765, 1050909, + 1051051, 1051192, 1051332, 1051471, 1051609, 1051746, 1051882, 1052017, 1160478, 1138825, 1120655, 1107765, 1099693, 1094951, + 1092249, 1090760, 1089991, 1089650, 1089560, 1089619, 1089762, 1089953, 1090168, 1090395, 1090626, 1090855, 1091082, 1091303, + 1091520, 1091732, 1091939, 1092141, 1092339, 1092532, 1092722, 1092908, 1093090, 1093269, 1093445, 1093619, 1093789, 1093958, + 1094124, 1094288, 1094450, 1094609, 1094767, 1094924, 1095078, 1095232, 1095383, 1095533, 1095682, 1095830, 1095976, 1096122, + 1096266, 1208791, 1187137, 1168079, 1154054, 1144966, 1139416, 1136104, 1134168, 1133080, 1132519, 1132285, 1132252, 1132343, + 1132509, 1132718, 1132950, 1133195, 1133443, 1133692, 1133938, 1134179, 1134415, 1134646, 1134872, 1135093, 1135308, 1135519, + 1135726, 1135928, 1136126, 1136321, 1136512, 1136700, 1136885, 1137067, 1137247, 1137424, 1137598, 1137771, 1137941, 1138109, + 1138275, 1138439, 1138601, 1138762, 1138921, 1139079, 1139235, 1139390, 1253438, 1232634, 1213296, 1198464, 1188532, 1182269, + 1178391, 1176022, 1174612, 1173818, 1173420, 1173277, 1173298, 1173424, 1173614, 1173844, 1174096, 1174360, 1174628, 1174896, + 1175162, 1175423, 1175679, 1175930, 1176175, 1176415, 1176649, 1176878, 1177102, 1177322, 1177537, 1177748, 1177955, 1178158, + 1178358, 1178554, 1178747, 1178938, 1179126, 1179310, 1179493, 1179673, 1179851, 1180026, 1180200, 1180372, 1180541, 1180709, + 1180875, 1294196, 1274891, 1255855, 1240547, 1229942, 1223056, 1218662, 1215881, 1214151, 1213113, 1212536, 1212265, 1212198, + 1212266, 1212423, 1212636, 1212884, 1213153, 1213434, 1213719, 1214004, 1214286, 1214565, 1214839, 1215107, 1215369, 1215625, + 1215876, 1216121, 1216361, 1216595, 1216825, 1217051, 1217271, 1217488, 1217701, 1217910, 1218116, 1218318, 1218517, 1218714, + 1218907, 1219098, 1219286, 1219471, 1219654, 1219835, 1220014, 1220191, 1331075, 1313662, 1295441, 1279988, 1268874, 1261451, + 1256584, 1253411, 1251364, 1250077, 1249306, 1248889, 1248714, 1248705, 1248808, 1248988, 1249217, 1249478, 1249758, 1250049, + 1250345, 1250641, 1250935, 1251225, 1251511, 1251791, 1252065, 1252333, 1252596, 1252852, 1253103, 1253349, 1253589, 1253825, + 1254056, 1254283, 1254505, 1254724, 1254938, 1255149, 1255357, 1255561, 1255762, 1255960, 1256156, 1256348, 1256539, 1256726, + 1256911, 1364282, 1348912, 1331907, 1316628, 1305167, 1297284, 1291985, 1288437, 1286078, 1284534, 1283557, 1282976, 1282673, + 1282567, 1282598, 1282725, 1282917, 1283153, 1283419, 1283702, 1283996, 1284295, 1284595, 1284893, 1285188, 1285478, 1285764, + 1286043, 1286317, 1286586, 1286848, 1287105, 1287356, 1287602, 1287844, 1288080, 1288312, 1288539, 1288762, 1288982, 1289197, + 1289409, 1289618, 1289823, 1290025, 1290224, 1290420, 1290613, 1290804, 1394151, 1380783, 1365252, 1350446, 1338803, 1330538, + 1324844, 1320939, 1318272, 1316467, 1315273, 1314514, 1314067, 1313845, 1313785, 1313840, 1313977, 1314172, 1314407, 1314669, + 1314948, 1315238, 1315532, 1315828, 1316124, 1316416, 1316705, 1316989, 1317268, 1317542, 1317810, 1318073, 1318330, 1318582, + 1318829, 1319070, 1319307, 1319540, 1319768, 1319991, 1320211, 1320427, 1320639, 1320848, 1321053, 1321255, 1321454, 1321650, + 1321844, 1421062, 1409545, 1395603, 1381525, 1369871, 1361305, 1355254, 1351012, 1348043, 1345977, 1344559, 1343612, 1343007, + 1342655, 1342487, 1342455, 1342522, 1342660, 1342851, 1343077, 1343329, 1343597, 1343876, 1344160, 1344447, 1344733, 1345018, + 1345300, 1345577, 1345850, 1346118, 1346382, 1346640, 1346892, 1347140, 1347383, 1347621, 1347855, 1348084, 1348309, 1348529, + 1348746, 1348959, 1349168, 1349374, 1349576, 1349775, 1349971, 1350164, 1445392, 1435521, 1423167, 1410013, 1398520, 1389742, + 1383379, 1378821, 1375561, 1373237, 1371593, 1370451, 1369680, 1369186, 1368898, 1368766, 1368750, 1368819, 1368952, 1369132, + 1369345, 1369582, 1369835, 1370098, 1370368, 1370641, 1370915, 1371187, 1371458, 1371725, 1371988, 1372247, 1372501, 1372751, + 1372996, 1373237, 1373473, 1373704, 1373931, 1374154, 1374373, 1374587, 1374798, 1375005, 1375209, 1375409, 1375606, 1375800, + 1375991, 1467483, 1459045, 1448196, 1436091, 1424927, 1416036, 1409410, 1404562, 1401026, 1398450, 1396582, 1395243, 1394300, + 1393657, 1393242, 1393001, 1392891, 1392882, 1392948, 1393071, 1393236, 1393433, 1393652, 1393887, 1394133, 1394386, 1394642, + 1394900, 1395158, 1395414, 1395668, 1395919, 1396166, 1396410, 1396649, 1396884, 1397115, 1397342, 1397564, 1397783, 1397998, + 1398208, 1398415, 1398619, 1398818, 1399015, 1399208, 1399398, 1399585, 1487636, 1480428, 1470958, 1459958, 1449271, 1440375, + 1433542, 1428436, 1424640, 1421823, 1419736, 1418201, 1417085, 1416291, 1415743, 1415386, 1415176, 1415080, 1415072, 1415131, + 1415241, 1415391, 1415569, 1415770, 1415986, 1416213, 1416447, 1416686, 1416927, 1417168, 1417409, 1417649, 1417886, 1418120, + 1418351, 1418578, 1418802, 1419022, 1419238, 1419451, 1419659, 1419865, 1420066, 1420264, 1420459, 1420651, 1420839, 1421024, + 1421206, 1506112, 1499955, 1491716, 1481821, 1471730, 1462938, 1455963, 1450632, 1446599, 1443552, 1441255, 1439528, 1438241, + 1437293, 1436610, 1436134, 1435820, 1435632, 1435544, 1435533, 1435583, 1435680, 1435813, 1435973, 1436154, 1436351, 1436559, + 1436774, 1436995, 1437218, 1437443, 1437668, 1437892, 1438115, 1438335, 1438553, 1438768, 1438979, 1439188, 1439393, 1439595, + 1439793, 1439988, 1440180, 1440369, 1440555, 1440737, 1440917, 1441094, 1523119, 1517860, 1510708, 1501872, 1492461, 1483881, + 1476835, 1471321, 1467073, 1463814, 1461315, 1459403, 1457948, 1456849, 1456031, 1455434, 1455013, 1454731, 1454559, 1454474, + 1454460, 1454499, 1454582, 1454699, 1454841, 1455004, 1455182, 1455371, 1455568, 1455771, 1455977, 1456185, 1456394, 1456603, + 1456811, 1457018, 1457222, 1457424, 1457623, 1457820, 1458014, 1458205, 1458393, 1458578, 1458760, 1458939, 1459115, 1459289, + 1459460, 1538848, 1534357, 1528153, 1520306, 1511623, 1503351, 1496309, 1490656, 1486221, 1482765, 1480077, 1477988, 1476369, + 1475123, 1474171, 1473453, 1472924, 1472546, 1472288, 1472127, 1472045, 1472024, 1472054, 1472123, 1472224, 1472350, 1472495, + 1472655, 1472826, 1473005, 1473191, 1473380, 1473572, 1473766, 1473960, 1474154, 1474346, 1474538, 1474727, 1474914, 1475099, + 1475282, 1475462, 1475640, 1475815, 1475987, 1476157, 1476324, 1476489, 1553444, 1549610, 1544233, 1537292, 1529351, 1521468, + 1514505, 1508763, 1504172, 1500539, 1497675, 1495418, 1493644, 1492253, 1491170, 1490334, 1489697, 1489222, 1488878, 1488639, + 1488487, 1488404, 1488379, 1488398, 1488455, 1488541, 1488651, 1488779, 1488922, 1489076, 1489239, 1489408, 1489582, 1489759, + 1489938, 1490118, 1490298, 1490477, 1490656, 1490833, 1491009, 1491182, 1491354, 1491524, 1491691, 1491857, 1492019, 1492180, + 1492338, 1567043, 1563775, 1559117, 1552993, 1545783, 1538349, 1531537, 1525759, 1521045, 1517257, 1514231, 1511816, 1509893, + 1508364, 1507154, 1506201, 1505458, 1504887, 1504455, 1504138, 1503915, 1503769, 1503686, 1503655, 1503665, 1503710, 1503782, + 1503877, 1503990, 1504118, 1504256, 1504403, 1504557, 1504716, 1504879, 1505043, 1505210, 1505377, 1505544, 1505710, 1505876, + 1506040, 1506203, 1506365, 1506524, 1506682, 1506838, 1506992, 1507143, 1579755, 1576976, 1572943, 1567551, 1561041, 1554096, + 1547501, 1541740, 1536938, 1533019, 1529846, 1527286, 1525221, 1523560, 1522227, 1521161, 1520314, 1519647, 1519129, 1518734, + 1518439, 1518229, 1518087, 1518003, 1517966, 1517968, 1518002, 1518062, 1518144, 1518243, 1518355, 1518479, 1518612, 1518752, + 1518897, 1519046, 1519197, 1519351, 1519506, 1519661, 1519816, 1519970, 1520124, 1520277, 1520428, 1520579, 1520727, 1520874, + 1521019, 1591668, 1589312, 1585825, 1581085, 1575234, 1568797, 1562475, 1556785, 1551934, 1547908, 1544607, 1541912, 1539717, + 1537930, 1536478, 1535303, 1534355, 1533595, 1532992, 1532518, 1532153, 1531877, 1531677, 1531540, 1531454, 1531412, 1531406, + 1531431, 1531479, 1531549, 1531635, 1531734, 1531845, 1531964, 1532091, 1532223, 1532359, 1532499, 1532640, 1532783, 1532927, + 1533072, 1533216, 1533360, 1533503, 1533645, 1533786, 1533926, 1534064, 1602866, 1600881, 1597870, 1593709, 1588468, 1582543, + 1576536, 1570967, 1566106, 1562002, 1558591, 1555775, 1553457, 1551552, 1549988, 1548707, 1547661, 1546811, 1546123, 1545573, + 1545137, 1544797, 1544538, 1544346, 1544212, 1544125, 1544079, 1544066, 1544081, 1544120, 1544178, 1544252, 1544340, 1544438, + 1544545, 1544660, 1544780, 1544904, 1545032, 1545163, 1545295, 1545429, 1545563, 1545698, 1545832, 1545966, 1546099, 1546232, + 1546363, 1613423, 1611761, 1609167, 1605520, 1600839, 1595416, 1589753, 1584351, 1579520, 1575366, 1571864, 1568941, 1566511, + 1564495, 1562825, 1561443, 1560302, 1559363, 1558594, 1557968, 1557462, 1557058, 1556740, 1556494, 1556311, 1556179, 1556091, + 1556040, 1556021, 1556028, 1556058, 1556106, 1556169, 1556246, 1556333, 1556429, 1556532, 1556641, 1556755, 1556873, 1556993, + 1557115, 1557239, 1557364, 1557489, 1557615, 1557740, 1557865, 1557990, 1623392, 1622013, 1619787, 1616595, 1612425, 1607485, + 1602186, 1596988, 1592225, 1588050, 1584480, 1581465, 1578934, 1576815, 1575045, 1573567, 1572335, 1571311, 1570462, 1569762, + 1569188, 1568720, 1568344, 1568045, 1567811, 1567634, 1567505, 1567416, 1567362, 1567337, 1567337, 1567358, 1567397, 1567451, + 1567517, 1567594, 1567680, 1567773, 1567872, 1567976, 1568084, 1568194, 1568307, 1568422, 1568538, 1568655, 1568772, 1568889, + 1569007, 1632831, 1631703, 1629800, 1627012, 1623305, 1618823, 1613895, 1608931, 1604272, 1600107, 1596489, 1593398, 1590778, + 1588565, 1586701, 1585132, 1583813, 1582707, 1581781, 1581009, 1580368, 1579838, 1579404, 1579051, 1578769, 1578546, 1578375, + 1578247, 1578158, 1578100, 1578070, 1578064, 1578078, 1578108, 1578153, 1578211, 1578279, 1578355, 1578439, 1578528, 1578623, + 1578721, 1578823, 1578927, 1579034, 1579141, 1579250, 1579360, 1579470, 1641789, 1640882, 1639264, 1636835, 1633548, 1629495, + 1624936, 1620229, 1615705, 1611578, 1607936, 1604786, 1602088, 1599791, 1597839, 1596184, 1594783, 1593598, 1592598, 1591755, + 1591049, 1590458, 1589967, 1589561, 1589230, 1588962, 1588748, 1588582, 1588457, 1588366, 1588306, 1588272, 1588260, 1588267, + 1588290, 1588327, 1588376, 1588436, 1588503, 1588578, 1588659, 1588745, 1588835, 1588929, 1589025, 1589124, 1589224, 1589325, + 1589427, 1650300, 1649589, 1648225, 1646115, 1643206, 1639552, 1635355, 1630920, 1626558, 1622497, 1618854, 1615662, 1612900, + 1610527, 1608496, 1606762, 1605282, 1604022, 1602950, 1602040, 1601269, 1600619, 1600072, 1599615, 1599235, 1598922, 1598667, + 1598462, 1598301, 1598177, 1598086, 1598023, 1597985, 1597968, 1597969, 1597985, 1598015, 1598057, 1598109, 1598168, 1598235, + 1598309, 1598387, 1598469, 1598555, 1598644, 1598735, 1598828, 1598922, 1658401, 1657865, 1656726, 1654901, 1652333, 1649048, + 1645201, 1641045, 1636867, 1632897, 1629276, 1626060, 1623247, 1620810, 1618707, 1616899, 1615346, 1614014, 1612874, 1611899, + 1611066, 1610358, 1609756, 1609248, 1608820, 1608462, 1608166, 1607923, 1607726, 1607569, 1607447, 1607356, 1607291, 1607249, + 1607227, 1607223, 1607234, 1607257, 1607292, 1607336, 1607389, 1607449, 1607515, 1607585, 1607661, 1607739, 1607821, 1607906, + 1607992, 1666129, 1665748, 1664810, 1663240, 1660978, 1658034, 1654520, 1650645, 1646666, 1642811, 1639234, 1636012, 1633162, + 1630670, 1628504, 1626628, 1625007, 1623608, 1622402, 1621364, 1620472, 1619707, 1619052, 1618493, 1618019, 1617617, 1617280, + 1616998, 1616765, 1616575, 1616422, 1616302, 1616211, 1616144, 1616099, 1616074, 1616064, 1616070, 1616087, 1616116, 1616154, + 1616200, 1616253, 1616312, 1616376, 1616445, 1616517, 1616592, 1616670, 1673507, 1673265, 1672507, 1671165, 1669180, 1666548, + 1663348, 1659753, 1655985, 1652263, 1648750, 1645540, 1642668, 1640132, 1637911, 1635974, 1634290, 1632828, 1631560, 1630462, + 1629513, 1628693, 1627987, 1627379, 1626858, 1626414, 1626036, 1625716, 1625448, 1625224, 1625041, 1624892, 1624774, 1624682, + 1624614, 1624566, 1624537, 1624524, 1624524, 1624536, 1624559, 1624591, 1624631, 1624678, 1624731, 1624789, 1624851, 1624917, + 1624987, 1680565, 1680447, 1679850, 1678712, 1676977, 1674630, 1671726, 1668403, 1664853, 1661280, 1657850, 1654669, 1651789, + 1649222, 1646955, 1644964, 1643222, 1641701, 1640375, 1639220, 1638215, 1637343, 1636586, 1635931, 1635365, 1634878, 1634460, + 1634103, 1633799, 1633543, 1633329, 1633151, 1633006, 1632889, 1632797, 1632728, 1632678, 1632646, 1632628, 1632624, 1632632, + 1632650, 1632676, 1632711, 1632752, 1632799, 1632851, 1632908, 1632968, 1687329, 1687322, 1686869, 1685915, 1684405, 1682318, + 1679691, 1676631, 1673302, 1669889, 1666558, 1663423, 1660549, 1657961, 1655657, 1653619, 1651825, 1650250, 1648869, 1647660, + 1646602, 1645679, 1644874, 1644172, 1643562, 1643034, 1642576, 1642182, 1641844, 1641555, 1641310, 1641103, 1640931, 1640789, + 1640674, 1640583, 1640512, 1640461, 1640425, 1640404, 1640396, 1640399, 1640412, 1640434, 1640463, 1640499, 1640541, 1640588, + 1640640, 1693814, 1693908, 1693584, 1692795, 1691489, 1689640, 1687270, 1684461, 1681352, 1678110, 1674890, 1671816, 1668963, + 1666367, 1664035, 1661958, 1660118, 1658493, 1657060, 1655800, 1654693, 1653721, 1652869, 1652122, 1651470, 1650900, 1650405, + 1649974, 1649601, 1649280, 1649005, 1648769, 1648570, 1648403, 1648264, 1648151, 1648060, 1647989, 1647935, 1647897, 1647873, + 1647861, 1647860, 1647869, 1647886, 1647911, 1647942, 1647979, 1648021, 1700033, 1700218, 1700012, 1699372, 1698250, 1696618, + 1694487, 1691918, 1689026, 1685959, 1682864, 1679865, 1677046, 1674453, 1672103, 1669995, 1668114, 1666445, 1664966, 1663658, + 1662504, 1661485, 1660588, 1659798, 1659105, 1658496, 1657962, 1657496, 1657090, 1656737, 1656431, 1656167, 1655942, 1655749, + 1655587, 1655451, 1655340, 1655249, 1655177, 1655122, 1655082, 1655055, 1655040, 1655036, 1655040, 1655054, 1655074, 1655101, + 1655133, 1706020, 1706286, 1706186, 1705680, 1704726, 1703292, 1701380, 1699037, 1696357, 1693467, 1690505, 1687593, 1684820, + 1682242, 1679884, 1677751, 1675838, 1674128, 1672606, 1671254, 1670055, 1668993, 1668052, 1667221, 1666487, 1665839, 1665269, + 1664768, 1664328, 1663944, 1663608, 1663317, 1663064, 1662847, 1662661, 1662503, 1662370, 1662260, 1662170, 1662097, 1662041, + 1661999, 1661970, 1661952, 1661944, 1661945, 1661954, 1661971, 1661994, 1711781, 1712120, 1712115, 1711731, 1710928, 1709674, + 1707966, 1705836, 1703360, 1700649, 1697826, 1695011, 1692296, 1689743, 1687387, 1685238, 1683298, 1681554, 1679993, 1678601, + 1677360, 1676255, 1675274, 1674402, 1673629, 1672945, 1672339, 1671803, 1671331, 1670916, 1670551, 1670231, 1669953, 1669710, + 1669501, 1669321, 1669167, 1669037, 1668928, 1668839, 1668766, 1668708, 1668665, 1668633, 1668612, 1668602, 1668600, 1668605, + 1668618, 1717327, 1717733, 1717814, 1717540, 1716874, 1715786, 1714266, 1712335, 1710056, 1707520, 1704842, 1702133, 1699486, + 1696969, 1694623, 1692467, 1690506, 1688734, 1687139, 1685709, 1684429, 1683286, 1682266, 1681356, 1680546, 1679825, 1679184, + 1678615, 1678111, 1677666, 1677272, 1676925, 1676620, 1676353, 1676121, 1675919, 1675744, 1675595, 1675467, 1675360, 1675271, + 1675198, 1675139, 1675094, 1675060, 1675037, 1675024, 1675019, 1675022, 1722677, 1723143, 1723302, 1723129, 1722588, 1721650, + 1720302, 1718559, 1716466, 1714104, 1711572, 1708975, 1706405, 1703934, 1701608, 1699452, 1697477, 1695682, 1694058, 1692594, + 1691279, 1690099, 1689042, 1688095, 1687249, 1686494, 1685819, 1685218, 1684683, 1684208, 1683786, 1683412, 1683081, 1682790, + 1682534, 1682310, 1682115, 1681946, 1681800, 1681675, 1681569, 1681481, 1681407, 1681348, 1681302, 1681266, 1681241, 1681225, + 1681217, 1727843, 1728363, 1728593, 1728510, 1728083, 1727283, 1726094, 1724524, 1722610, 1720416, 1718031, 1715551, 1713066, + 1710649, 1708351, 1706204, 1704222, 1702409, 1700760, 1699267, 1697919, 1696705, 1695613, 1694632, 1693752, 1692963, 1692256, + 1691624, 1691058, 1690554, 1690104, 1689703, 1689347, 1689032, 1688753, 1688508, 1688292, 1688103, 1687938, 1687796, 1687674, + 1687569, 1687481, 1687408, 1687348, 1687300, 1687263, 1687236, 1687218, 1732828, 1733397, 1733692, 1733691, 1733368, 1732693, + 1731652, 1730244, 1728498, 1726467, 1724228, 1721869, 1719476, 1717121, 1714860, 1712728, 1710746, 1708921, 1707252, 1705734, + 1704357, 1703112, 1701988, 1700975, 1700062, 1699241, 1698503, 1697840, 1697245, 1696712, 1696235, 1695809, 1695428, 1695089, + 1694788, 1694520, 1694284, 1694076, 1693893, 1693733, 1693594, 1693474, 1693371, 1693284, 1693211, 1693150, 1693101, 1693063, + 1693034, 1737651, 1738264, 1738617, 1738692, 1738463, 1737904, 1736997, 1735740, 1734152, 1732278, 1730183, 1727947, 1725650, + 1723364, 1721147, 1719039, 1717063, 1715232, 1713548, 1712008, 1710606, 1709333, 1708179, 1707135, 1706191, 1705339, 1704571, + 1703879, 1703256, 1702695, 1702192, 1701740, 1701335, 1700972, 1700649, 1700360, 1700103, 1699876, 1699674, 1699497, 1699342, + 1699206, 1699088, 1698987, 1698900, 1698827, 1698766, 1698717, 1698677, 1742322, 1742975, 1743382, 1743525, 1743382, 1742928, + 1742145, 1741027, 1739589, 1737865, 1735911, 1733798, 1731600, 1729390, 1727223, 1725145, 1723182, 1721350, 1719656, 1718099, + 1716674, 1715375, 1714194, 1713121, 1712149, 1711268, 1710471, 1709751, 1709100, 1708513, 1707983, 1707506, 1707077, 1706692, + 1706346, 1706036, 1705759, 1705513, 1705293, 1705098, 1704926, 1704775, 1704642, 1704526, 1704426, 1704340, 1704268, 1704206, + 1704156, 1746845, 1747534, 1747989, 1748194, 1748130, 1747772, 1747104, 1746116, 1744817, 1743236, 1741419, 1739429, 1737334, + 1735203, 1733094, 1731051, 1729107, 1727281, 1725581, 1724011, 1722568, 1721247, 1720040, 1718941, 1717941, 1717033, 1716209, + 1715461, 1714784, 1714171, 1713616, 1713115, 1712662, 1712254, 1711887, 1711556, 1711260, 1710994, 1710756, 1710544, 1710355, + 1710188, 1710041, 1709911, 1709797, 1709699, 1709614, 1709541, 1709479, 1751220, 1751943, 1752442, 1752704, 1752712, 1752443, + 1751880, 1751013, 1749846, 1748400, 1746716, 1744847, 1742857, 1740810, 1738763, 1736763, 1734844, 1733028, 1731328, 1729749, + 1728291, 1726951, 1725722, 1724599, 1723574, 1722640, 1721790, 1721016, 1720314, 1719675, 1719097, 1718572, 1718096, 1717666, + 1717278, 1716927, 1716611, 1716326, 1716071, 1715842, 1715637, 1715454, 1715291, 1715148, 1715021, 1714909, 1714812, 1714728, + 1714655, 1755468, 1756221, 1756759, 1757074, 1757148, 1756960, 1756494, 1755739, 1754694, 1753377, 1751821, 1750071, 1748186, + 1746226, 1744245, 1742293, 1740404, 1738604, 1736908, 1735325, 1733856, 1732499, 1731251, 1730106, 1729058, 1728100, 1727225, + 1726427, 1725700, 1725037, 1724435, 1723887, 1723389, 1722938, 1722528, 1722158, 1721822, 1721519, 1721246, 1721000, 1720779, + 1720581, 1720403, 1720245, 1720105, 1719981, 1719871, 1719775, 1719692, 1759590, 1760370, 1760945, 1761307, 1761441, 1761329, + 1760952, 1760300, 1759370, 1758175, 1756740, 1755107, 1753327, 1751455, 1749546, 1747645, 1745792, 1744013, 1742326, 1740742, + 1739265, 1737896, 1736632, 1735467, 1734398, 1733417, 1732519, 1731697, 1730947, 1730262, 1729636, 1729066, 1728547, 1728074, + 1727645, 1727254, 1726900, 1726579, 1726288, 1726025, 1725788, 1725574, 1725382, 1725210, 1725056, 1724919, 1724798, 1724690, + 1724595, 1763597, 1764401, 1765009, 1765415, 1765604, 1765560, 1765265, 1764709, 1763886, 1762806, 1761488, 1759968, 1758292, + 1756510, 1754674, 1752829, 1751016, 1749262, 1747589, 1746009, 1744528, 1743149, 1741871, 1740689, 1739600, 1738599, 1737679, + 1736836, 1736063, 1735355, 1734708, 1734116, 1733576, 1733083, 1732633, 1732224, 1731851, 1731512, 1731203, 1730924, 1730671, + 1730442, 1730236, 1730049, 1729882, 1729732, 1729598, 1729479, 1729373, 1767490, 1768315, 1768954, 1769400, 1769640, 1769658, + 1769440, 1768972, 1768250, 1767277, 1766071, 1764660, 1763086, 1761395, 1759634, 1757849, 1756080, 1754356, 1752701, 1751128, + 1749647, 1748262, 1746972, 1745776, 1744670, 1743649, 1742710, 1741845, 1741051, 1740323, 1739655, 1739042, 1738482, 1737969, + 1737499, 1737071, 1736680, 1736323, 1735998, 1735702, 1735433, 1735189, 1734968, 1734768, 1734588, 1734425, 1734279, 1734148, + 1734031, 1771280, 1772125, 1772791, 1773273, 1773559, 1773636, 1773487, 1773101, 1772472, 1771600, 1770500, 1769195, 1767721, + 1766120, 1764436, 1762714, 1760993, 1759303, 1757669, 1756108, 1754630, 1753241, 1751943, 1750734, 1749613, 1748576, 1747618, + 1746734, 1745920, 1745171, 1744483, 1743850, 1743270, 1742738, 1742250, 1741803, 1741394, 1741020, 1740678, 1740366, 1740082, + 1739823, 1739587, 1739373, 1739179, 1739004, 1738846, 1738703, 1738575, 1774958, 1775821, 1776512, 1777028, 1777357, 1777487, + 1777403, 1777094, 1776551, 1775775, 1774776, 1773572, 1772196, 1770684, 1769079, 1767422, 1765752, 1764100, 1762492, 1760947, + 1759476, 1758086, 1756782, 1755564, 1754430, 1753378, 1752403, 1751501, 1750669, 1749901, 1749194, 1748542, 1747943, 1747392, + 1746886, 1746421, 1745994, 1745604, 1745245, 1744918, 1744618, 1744344, 1744095, 1743867, 1743660, 1743472, 1743302, 1743148, + 1743009, 1778545, 1779424, 1780138, 1780684, 1781052, 1781231, 1781207, 1780969, 1780507, 1779820, 1778916, 1777809, 1776528, + 1775105, 1773578, 1771988, 1770371, 1768761, 1767182, 1765655, 1764194, 1762808, 1761501, 1760276, 1759131, 1758065, 1757075, + 1756157, 1755307, 1754522, 1753796, 1753126, 1752509, 1751940, 1751416, 1750934, 1750490, 1750083, 1749709, 1749365, 1749051, + 1748762, 1748499, 1748258, 1748038, 1747837, 1747655, 1747489, 1747339, 1782031, 1782926, 1783660, 1784234, 1784638, 1784863, + 1784894, 1784721, 1784335, 1783733, 1782918, 1781905, 1780715, 1779379, 1777931, 1776410, 1774849, 1773283, 1771737, 1770232, + 1768785, 1767405, 1766098, 1764868, 1763715, 1762638, 1761634, 1760701, 1759835, 1759033, 1758290, 1757603, 1756968, 1756382, + 1755841, 1755342, 1754882, 1754459, 1754069, 1753710, 1753381, 1753079, 1752801, 1752547, 1752314, 1752101, 1751907, 1751730, + 1751568, 1785439, 1786346, 1787100, 1787698, 1788136, 1788402, 1788484, 1788372, 1788056, 1787532, 1786803, 1785878, 1784776, + 1783525, 1782155, 1780702, 1779200, 1777680, 1776169, 1774690, 1773259, 1771888, 1770584, 1769351, 1768192, 1767105, 1766090, + 1765143, 1764263, 1763445, 1762686, 1761982, 1761330, 1760727, 1760170, 1759655, 1759179, 1758739, 1758334, 1757961, 1757617, + 1757300, 1757009, 1756741, 1756496, 1756271, 1756065, 1755876, 1755704, 1788758, 1789677, 1790447, 1791069, 1791537, 1791841, + 1791971, 1791915, 1791665, 1791215, 1790565, 1789725, 1788709, 1787540, 1786247, 1784863, 1783420, 1781949, 1780476, 1779026, + 1777614, 1776255, 1774956, 1773723, 1772560, 1771466, 1770441, 1769482, 1768588, 1767756, 1766982, 1766262, 1765595, 1764976, + 1764403, 1763871, 1763380, 1762925, 1762505, 1762117, 1761759, 1761429, 1761124, 1760844, 1760585, 1760348, 1760130, 1759930, + 1759747, 1791989, 1792918, 1793704, 1794348, 1794844, 1795184, 1795357, 1795354, 1795165, 1794784, 1794210, 1793450, 1792515, + 1791427, 1790211, 1788896, 1787513, 1786093, 1784661, 1783242, 1781852, 1780507, 1779217, 1777987, 1776821, 1775722, 1774689, + 1773720, 1772814, 1771969, 1771181, 1770447, 1769765, 1769131, 1768542, 1767996, 1767489, 1767020, 1766585, 1766183, 1765811, + 1765467, 1765149, 1764856, 1764586, 1764337, 1764107, 1763896, 1763702, 1795153, 1796092, 1796892, 1797555, 1798076, 1798449, + 1798663, 1798708, 1798575, 1798259, 1797756, 1797072, 1796215, 1795205, 1794063, 1792817, 1791495, 1790126, 1788737, 1787351, + 1785986, 1784658, 1783378, 1782153, 1780988, 1779885, 1778845, 1777867, 1776951, 1776093, 1775292, 1774544, 1773848, 1773199, + 1772596, 1772035, 1771514, 1771031, 1770582, 1770166, 1769780, 1769423, 1769092, 1768786, 1768504, 1768242, 1768001, 1767779, + 1767575, 1798231, 1799177, 1799991, 1800671, 1801216, 1801620, 1801871, 1801962, 1801882, 1801626, 1801191, 1800579, 1799798, + 1798862, 1797793, 1796615, 1795355, 1794039, 1792695, 1791344, 1790007, 1788699, 1787431, 1786214, 1785051, 1783946, 1782902, + 1781917, 1780992, 1780123, 1779311, 1778551, 1777841, 1777179, 1776562, 1775987, 1775452, 1774955, 1774492, 1774063, 1773664, + 1773294, 1772950, 1772632, 1772338, 1772065, 1771813, 1771580, 1771364, 1801243, 1802197, 1803022, 1803719, 1804286, 1804717, + 1805003, 1805135, 1805105, 1804906, 1804534, 1803989, 1803280, 1802417, 1801419, 1800308, 1799109, 1797847, 1796548, 1795235, + 1793927, 1792641, 1791389, 1790180, 1789022, 1787918, 1786871, 1785880, 1784947, 1784069, 1783246, 1782474, 1781752, 1781077, + 1780447, 1779859, 1779311, 1778800, 1778324, 1777881, 1777470, 1777087, 1776731, 1776401, 1776095, 1775810, 1775547, 1775303, + 1775078, 1804192, 1805152, 1805986, 1806698, 1807285, 1807741, 1808060, 1808231, 1808247, 1808100, 1807787, 1807308, 1806666, + 1805873, 1804944, 1803898, 1802760, 1801552, 1800300, 1799026, 1797749, 1796487, 1795252, 1794055, 1792904, 1791802, 1790753, + 1789759, 1788819, 1787933, 1787100, 1786317, 1785584, 1784897, 1784254, 1783653, 1783092, 1782569, 1782080, 1781625, 1781200, + 1780805, 1780437, 1780095, 1779777, 1779482, 1779207, 1778953, 1778717, 1807077, 1808042, 1808886, 1809610, 1810215, 1810695, + 1811043, 1811251, 1811309, 1811212, 1810955, 1810536, 1809959, 1809233, 1808370, 1807389, 1806310, 1805157, 1803953, 1802719, + 1801475, 1800239, 1799024, 1797840, 1796697, 1795599, 1794551, 1793554, 1792609, 1791716, 1790874, 1790082, 1789338, 1788640, + 1787985, 1787372, 1786799, 1786263, 1785762, 1785294, 1784858, 1784450, 1784071, 1783717, 1783388, 1783081, 1782796, 1782531, + 1782284, 1809886, 1810856, 1811708, 1812445, 1813067, 1813569, 1813945, 1814186, 1814285, 1814235, 1814030, 1813669, 1813154, + 1812491, 1811693, 1810775, 1809756, 1808658, 1807502, 1806310, 1805101, 1803892, 1802698, 1801531, 1800398, 1799306, 1798260, + 1797262, 1796314, 1795416, 1794567, 1793766, 1793012, 1792304, 1791638, 1791014, 1790429, 1789881, 1789369, 1788889, 1788441, + 1788022, 1787631, 1787266, 1786926, 1786608, 1786313, 1786037, 1785781, 1812644, 1813618, 1814478, 1815226, 1815863, 1816385, + 1816786, 1817059, 1817195, 1817188, 1817032, 1816725, 1816269, 1815667, 1814931, 1814074, 1813114, 1812070, 1810963, 1809813, + 1808640, 1807461, 1806290, 1805139, 1804018, 1802934, 1801892, 1800895, 1799945, 1799042, 1798187, 1797379, 1796616, 1795898, + 1795222, 1794588, 1793992, 1793433, 1792908, 1792417, 1791958, 1791528, 1791125, 1790749, 1790398, 1790070, 1789764, 1789478, + 1789212, 1815339, 1816317, 1817183, 1817941, 1818592, 1819133, 1819558, 1819860, 1820030, 1820064, 1819954, 1819699, 1819298, + 1818755, 1818079, 1817282, 1816379, 1815388, 1814330, 1813224, 1812088, 1810939, 1809793, 1808662, 1807555, 1806480, 1805444, + 1804449, 1803498, 1802592, 1801732, 1800917, 1800147, 1799420, 1798735, 1798091, 1797484, 1796914, 1796379, 1795878, 1795407, + 1794966, 1794553, 1794166, 1793804, 1793466, 1793150, 1792854, 1792578, 1817984, 1818964, 1819835, 1820603, 1821267, 1821825, + 1822272, 1822600, 1822803, 1822875, 1822808, 1822602, 1822253, 1821766, 1821148, 1820408, 1819561, 1818623, 1817614, 1816551, + 1815453, 1814337, 1813217, 1812106, 1811015, 1809951, 1808921, 1807929, 1806979, 1806072, 1805208, 1804388, 1803611, 1802876, + 1802182, 1801528, 1800912, 1800332, 1799787, 1799275, 1798793, 1798342, 1797918, 1797521, 1797149, 1796800, 1796474, 1796168, + 1795883, 1820565, 1821548, 1822425, 1823200, 1823876, 1824450, 1824917, 1825271, 1825505, 1825612, 1825587, 1825425, 1825127, + 1824694, 1824130, 1823446, 1822654, 1821769, 1820808, 1819790, 1818730, 1817647, 1816555, 1815466, 1814392, 1813341, 1812320, + 1811333, 1810385, 1809477, 1808611, 1807786, 1807004, 1806262, 1805561, 1804898, 1804273, 1803684, 1803129, 1802606, 1802115, + 1801653, 1801220, 1800812, 1800430, 1800072, 1799736, 1799421, 1799126, 1823097, 1824081, 1824962, 1825746, 1826432, 1827021, + 1827507, 1827884, 1828146, 1828286, 1828300, 1828182, 1827931, 1827548, 1827037, 1826407, 1825669, 1824835, 1823923, 1822948, + 1821928, 1820879, 1819815, 1818750, 1817695, 1816658, 1815647, 1814667, 1813722, 1812815, 1811947, 1811120, 1810332, 1809585, + 1808876, 1808206, 1807572, 1806974, 1806410, 1805878, 1805377, 1804905, 1804462, 1804045, 1803653, 1803285, 1802939, 1802615, + 1802311, 1825579, 1826564, 1827449, 1828239, 1828936, 1829538, 1830041, 1830440, 1830728, 1830900, 1830949, 1830872, 1830666, + 1830331, 1829872, 1829294, 1828607, 1827824, 1826959, 1826028, 1825048, 1824034, 1823000, 1821960, 1820924, 1819903, 1818903, + 1817931, 1816991, 1816086, 1815218, 1814388, 1813597, 1812844, 1812129, 1811452, 1810810, 1810204, 1809631, 1809090, 1808580, + 1808099, 1807646, 1807220, 1806819, 1806441, 1806086, 1805753, 1805440, 1828024, 1829009, 1829898, 1830693, 1831399, 1832013, + 1832532, 1832951, 1833264, 1833464, 1833547, 1833508, 1833344, 1833055, 1832644, 1832115, 1831479, 1830745, 1829927, 1829040, + 1828099, 1827120, 1826117, 1825102, 1824088, 1823083, 1822096, 1821133, 1820198, 1819296, 1818429, 1817598, 1816804, 1816047, + 1815326, 1814642, 1813994, 1813379, 1812798, 1812249, 1811730, 1811240, 1810778, 1810342, 1809932, 1809545, 1809181, 1808839, + 1808517, 1830405, 1831392, 1832283, 1833084, 1833798, 1834423, 1834958, 1835395, 1835731, 1835959, 1836074, 1836071, 1835948, + 1835702, 1835338, 1834857, 1834269, 1833583, 1832812, 1831969, 1831068, 1830125, 1829153, 1828165, 1827173, 1826187, 1825214, + 1824261, 1823334, 1822436, 1821571, 1820740, 1819944, 1819184, 1818459, 1817769, 1817114, 1816493, 1815904, 1815347, 1814820, + 1814321, 1813851, 1813406, 1812987, 1812592, 1812219, 1811868, 1811538, 1832751, 1833737, 1834631, 1835436, 1836157, 1836793, + 1837341, 1837797, 1838154, 1838407, 1838552, 1838583, 1838497, 1838294, 1837973, 1837539, 1836998, 1836358, 1835632, 1834832, + 1833972, 1833064, 1832125, 1831164, 1830195, 1829228, 1828270, 1827329, 1826410, 1825518, 1824656, 1823826, 1823029, 1822266, + 1821537, 1820843, 1820182, 1819554, 1818958, 1818393, 1817858, 1817352, 1816873, 1816420, 1815992, 1815589, 1815208, 1814848, + 1814509, 1835047, 1836033, 1836928, 1837738, 1838466, 1839112, 1839672, 1840144, 1840521, 1840799, 1840971, 1841034, 1840985, + 1840821, 1840542, 1840152, 1839657, 1839063, 1838381, 1837624, 1836803, 1835932, 1835025, 1834093, 1833148, 1832201, 1831260, + 1830332, 1829422, 1828537, 1827679, 1826851, 1826054, 1825289, 1824558, 1823859, 1823193, 1822560, 1821957, 1821386, 1820843, + 1820329, 1819842, 1819381, 1818946, 1818534, 1818144, 1817777, 1817430, 1837307, 1838292, 1839189, 1840002, 1840736, 1841390, + 1841963, 1842449, 1842845, 1843145, 1843344, 1843437, 1843422, 1843295, 1843056, 1842709, 1842257, 1841707, 1841069, 1840353, + 1839572, 1838737, 1837863, 1836960, 1836040, 1835114, 1834190, 1833276, 1832377, 1831499, 1830646, 1829821, 1829025, 1828260, + 1827526, 1826824, 1826154, 1825515, 1824907, 1824328, 1823779, 1823258, 1822763, 1822295, 1821851, 1821431, 1821034, 1820658, + 1820303, 1839531, 1840516, 1841413, 1842229, 1842968, 1843630, 1844213, 1844714, 1845127, 1845448, 1845671, 1845793, 1845809, + 1845717, 1845517, 1845210, 1844800, 1844293, 1843697, 1843022, 1842280, 1841482, 1840640, 1839766, 1838872, 1837968, 1837062, + 1836162, 1835275, 1834406, 1833559, 1832738, 1831943, 1831178, 1830443, 1829738, 1829064, 1828421, 1827807, 1827223, 1826667, + 1826139, 1825637, 1825161, 1824710, 1824283, 1823878, 1823494, 1823132, 1841706, 1842689, 1843587, 1844406, 1845150, 1845819, + 1846413, 1846926, 1847355, 1847696, 1847942, 1848091, 1848137, 1848079, 1847916, 1847648, 1847279, 1846813, 1846258, 1845624, + 1844920, 1844158, 1843349, 1842506, 1841638, 1840756, 1839870, 1838986, 1838112, 1837252, 1836413, 1835596, 1834804, 1834040, + 1833304, 1832598, 1831921, 1831273, 1830655, 1830065, 1829504, 1828969, 1828461, 1827978, 1827520, 1827085, 1826673, 1826282, + 1825912, 1843845, 1844827, 1845725, 1846546, 1847294, 1847970, 1848573, 1849098, 1849543, 1849901, 1850170, 1850343, 1850419, + 1850393, 1850264, 1850033, 1849703, 1849277, 1848762, 1848167, 1847501, 1846775, 1846000, 1845186, 1844346, 1843487, 1842621, + 1841754, 1840893, 1840045, 1839213, 1838402, 1837614, 1836851, 1836116, 1835408, 1834729, 1834078, 1833456, 1832861, 1832294, + 1831754, 1831239, 1830750, 1830285, 1829843, 1829424, 1829026, 1828649, 1845948, 1846928, 1847826, 1848649, 1849401, 1850083, + 1850694, 1851231, 1851689, 1852065, 1852354, 1852552, 1852654, 1852658, 1852563, 1852367, 1852074, 1851687, 1851211, 1850655, + 1850026, 1849335, 1848593, 1847810, 1846996, 1846162, 1845316, 1844467, 1843621, 1842784, 1841961, 1841156, 1840373, 1839613, + 1838879, 1838171, 1837490, 1836836, 1836210, 1835611, 1835039, 1834493, 1833973, 1833478, 1833006, 1832558, 1832132, 1831727, + 1831343, 1848016, 1848994, 1849892, 1850716, 1851472, 1852159, 1852778, 1853325, 1853796, 1854188, 1854496, 1854716, 1854844, + 1854877, 1854813, 1854651, 1854394, 1854044, 1853606, 1853087, 1852495, 1851839, 1851130, 1850377, 1849591, 1848782, 1847957, + 1847126, 1846295, 1845470, 1844657, 1843860, 1843082, 1842326, 1841593, 1840885, 1840203, 1839548, 1838919, 1838316, 1837740, + 1837189, 1836663, 1836162, 1835685, 1835230, 1834797, 1834386, 1833995, 1850048, 1851024, 1851921, 1852747, 1853505, 1854198, + 1854823, 1855380, 1855864, 1856271, 1856597, 1856837, 1856989, 1857049, 1857015, 1856886, 1856664, 1856349, 1855948, 1855465, + 1854909, 1854288, 1853612, 1852890, 1852131, 1851346, 1850544, 1849731, 1848917, 1848105, 1847303, 1846514, 1845742, 1844990, + 1844260, 1843553, 1842871, 1842214, 1841583, 1840977, 1840396, 1839841, 1839311, 1838804, 1838321, 1837860, 1837421, 1837004, + 1836606, 1852044, 1853018, 1853915, 1854741, 1855502, 1856199, 1856831, 1857397, 1857892, 1858313, 1858656, 1858917, 1859092, + 1859177, 1859172, 1859074, 1858884, 1858604, 1858238, 1857791, 1857270, 1856683, 1856039, 1855348, 1854617, 1853858, 1853077, + 1852285, 1851486, 1850689, 1849898, 1849119, 1848354, 1847607, 1846880, 1846175, 1845493, 1844835, 1844202, 1843594, 1843010, + 1842451, 1841915, 1841404, 1840915, 1840449, 1840004, 1839581, 1839177, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 132408, 120886, 106696, 93138, 81451, + 71757, 63795, 57238, 51794, 47228, 43359, 40047, 37186, 34693, 32504, 30568, 28845, 27301, 25912, + 24654, 23512, 22469, 21513, 20635, 19825, 19075, 18380, 17733, 17129, 16565, 16037, 15541, 15075, + 14636, 14221, 13829, 13459, 13107, 12773, 12456, 12154, 11866, 11592, 11330, 11079, 10839, 10610, + 10390, 10179, 9976, 9781, 9593, 9413, 9239, 9072, 8910, 8754, 8604, 8458, 8318, 8182, + 8050, 7922, 7799, 7679, 7563, 7450, 7341, 7235, 7132, 7031, 6934, 6839, 6747, 6657, + 6569, 6484, 6401, 6320, 6241, 6164, 6089 +]; +/// NMOS drain current in pA at 1000 centres of the log grid's cells, corner mos_fs, point k = 1 .. 1000 at Vgs = (floor(96 frac(k a1)) + 1/2) * 15.625 mV, Vds = (floor(48 frac(k a2)) + 1/2) * 31.25 mV (deck psp103_idpa_fs.cir, block cen_n). +pub const FS_CEN_N : [1000]u32 = [ + 230746027, 56519872, 8706379, 628, 257300139, 90125633, 13067628, 2309, 118552962, 107267516, 12780145, 7665, 249892430, 123701560, + 19320602, 7936, 286406051, 109496432, 23662243, 35043, 314592580, 138019819, 20028579, 119220, 206437158, 158658598, 31363047, 352979, + 314458605, 67010742, 41208095, 263744, 353131751, 157844659, 51747358, 826176, 98703835, 187087766, 48012168, 1963218, 302171545, 208942465, + 63404518, 1610311, 382554231, 150462850, 76961530, 3867674, 413983664, 218082103, 25815242, 7031081, 336, 247714058, 82424480, 10969688, + 1338, 48659544, 100031854, 10491299, 4461, 222691741, 116742606, 14372536, 3447, 275163926, 88325963, 20574069, 19293, 303845780, + 129779327, 7604535, 69382, 161309995, 150246852, 27277878, 218880, 293381899, 7954756, 37040620, 144783, 340316618, 144435928, 46998899, + 520212, 11412942, 177255112, 40547945, 1374368, 253922359, 200287362, 57562969, 2841885, 366733105, 103509689, 66317158, 2874193, 401335960, + 203209358, 79589647, 5554448, 125115517, 237170133, 73853655, 9075213, 751, 261263463, 93324180, 8116846, 2581, 190326063, 109558302, + 11927442, 8277, 261403877, 54263251, 17825093, 10367, 292842472, 120319309, 24402333, 39689, 91040479, 141827600, 23646504, 131201, + 265255061, 154744195, 32849285, 75060, 328226845, 121577712, 42443535, 321062, 359470385, 166981299, 24408503, 923333, 192130802, 191075727, + 51791527, 2103519, 338075643, 43218989, 60966538, 1999865, 387888608, 187868705, 73682342, 4272629, 58444848, 226235880, 61808319, 7448007, + 415, 251300920, 86208441, 3131920, 1512, 143014310, 102473320, 9834683, 4854, 245202802, 19627367, 15162385, 5419, 282513963, + 109429274, 21306982, 22908, 10622673, 133360303, 19645543, 48096, 236268867, 146659815, 28850009, 18800, 313120970, 86213825, 38279587, + 184316, 347794881, 157213234, 48090625, 593841, 137110047, 181787112, 42388330, 1488626, 309175825, 203331307, 55484508, 1310085, 375216160, + 162390817, 67936524, 3239204, 408313501, 214620411, 46254983, 5946535, 238422633, 234673458, 79044761, 8011018, 864, 81978842, 95481858, + 7817639, 2834, 228729198, 111559580, 12713161, 2901, 270769859, 94304523, 18538386, 12709, 297773603, 119708440, 13148476, 27804, + 187644624, 138625012, 25039562, 89241, 295210203, 50130392, 34121345, 100875, 336837946, 144620439, 43549102, 374019, 54816731, 172360636, + 37107274, 1013066, 270064643, 194357116, 50150425, 641643, 359215882, 124661481, 62613497, 2326583, 396158085, 203510766, 15012081, 4637254, + 183782712, 224628190, 71588391, 6527922, 489, 9682144, 88996856, 6010606, 1647, 202055787, 104572621, 10597171, 688, 258171528, + 76094571, 15866857, 4275, 287899022, 111230469, 21977004, 16224, 125251494, 130627306, 21670426, 52657, 272263668, 149029040, 30162773, + 55454, 324161859, 127576026, 35920444, 221575, 345637494, 163545907, 28419826, 661673, 231510371, 185370842, 44951513, 1595159, 340274542, + 72800328, 57205156, 1591279, 383402952, 188803833, 69376843, 2802610, 102059211, 214350792, 64253143, 5175015, 318961610, 238408897, 82189795, + 4196139, 968, 163709919, 97699498, 8572482, 3070, 244013915, 39920787, 13407899, 2366, 277057470, 102206775, 19187817, 9191, + 51067155, 123166519, 18198173, 30763, 248525915, 141132408, 26404644, 27311, 303352689, 101052163, 31990098, 126151, 335340280, 153582998, + 10075866, 422769, 169432741, 176348861, 40247828, 1096446, 316323605, 25613446, 51963003, 1024715, 371420348, 164259262, 63836330, 2007464, + 11757350, 204713207, 52329685, 4005632, 279864906, 228745466, 75418382, 905650, 556, 111311092, 91295316, 6760314, 1111, 230009930, + 100796795, 11160998, 1233, 265856501, 93261844, 16504352, 5138, 292212499, 115222657, 14361254, 18116, 208537688, 133303545, 23059646, + 56917, 288098062, 71718494, 28266001, 69093, 323926026, 142687332, 36860087, 255934, 95037526, 167900350, 35205670, 724498, 292009482, + 188381994, 46885438, 441037, 356837365, 136394298, 58705020, 1374876, 390608584, 193624353, 30172516, 3013690, 217355468, 218984724, 69183898, + 5464450, 367047608, 63171714, 79647054, 5160901, 659, 208888715, 94173136, 9229139, 608, 254082098, 79167243, 14032457, 2826, + 281866118, 107209096, 8602111, 10417, 154776710, 125968851, 17412272, 33515, 273105534, 21755700, 24749829, 38125, 312054112, 129396337, + 32934028, 149708, 11035470, 158752819, 29447216, 467823, 251840329, 172849459, 42273428, 105576, 340193257, 106175889, 53517565, 892605, + 379577438, 181334733, 65164923, 2227255, 142322947, 209071954, 62191322, 4268289, 336598669, 232171294, 73321382, 3877561, 404033770, 178688959, + 87982558, 7400728, 1199, 242936568, 55075704, 11771271, 1580, 271344075, 98967414, 17087984, 5933, 103915884, 118281054, 14492711, + 19872, 250722337, 135615935, 21612308, 19526, 299473482, 114704610, 29215464, 84849, 329291915, 149377372, 18663639, 184949, 198346291, + 164209641, 37526939, 529576, 323926530, 54787772, 48506540, 564966, 366934971, 166341095, 60040374, 1561556, 57161196, 199785126, 53800137, + 3247857, 296360257, 222715847, 67093842, 2419755, 386512626, 146845055, 81639569, 5780867, 715, 228960115, 17374492, 9812442, 837, + 260567109, 91146154, 12665512, 3342, 30055466, 110629010, 11725383, 11550, 219660593, 128358644, 18517854, 4607, 287559048, 87507723, + 25706099, 48290, 318226303, 133718132, 3184145, 108523, 131428689, 156112238, 32903148, 330840, 299677400, 175543040, 43929957, 324912, + 353397667, 150224745, 54886899, 1045529, 385681280, 189379030, 37287622, 2428549, 243343299, 213201293, 61388674, 4511994, 365366418, 93307800, + 75431569, 4459435, 415123931, 211787929, 89661503, 7965378, 432, 243335065, 80709707, 10583606, 1910, 268149956, 102977998, 9015939, + 6666, 176104627, 120825894, 15634128, 21510, 272428296, 46436769, 22557086, 16073, 306824249, 124556118, 30073650, 62304, 73523193, + 147466771, 28233656, 204006, 266869244, 167085906, 39283466, 169332, 338416865, 121667476, 49915928, 683099, 366272383, 178274754, 19716260, + 1732199, 176912198, 204264207, 55284541, 3464366, 344382233, 27341469, 69355561, 3248963, 400919849, 188247563, 83381308, 5196349, 199, + 231994451, 64294203, 8782317, 1048, 258013507, 95890233, 1587145, 3816, 133691357, 113369165, 12960565, 12603, 253925714, 130123590, + 19470893, 8338, 296119876, 112179886, 26563986, 35998, 323063978, 138728470, 23415866, 121279, 222023342, 159126989, 34811341, 357266, + 323988158, 79392966, 41424546, 411998, 354314214, 167550012, 51934236, 1185476, 118942413, 194584564, 48894672, 2614286, 311080292, 216610690, + 63766009, 2231315, 385127237, 159018176, 77247766, 3938342, 422916794, 219751445, 43793127, 7103250, 563, 248483365, 88059477, 11043848, + 2213, 66907801, 105977732, 10673925, 7344, 229163414, 117077828, 16597501, 4084, 283708610, 93765434, 23265497, 19916, 312288235, + 130580699, 12508112, 70741, 178743824, 150751403, 30503179, 221756, 297663897, 23751881, 37258361, 233852, 341745958, 152707993, 47188288, + 774447, 33868214, 184679705, 42271841, 1889182, 266367318, 207871973, 57956100, 388510, 369982506, 115992771, 71261593, 2937842, 410318734, + 205713649, 5635141, 5622444, 295, 238049027, 79510362, 9215626, 1245, 261859692, 99115003, 8378453, 2625, 203027484, 109909533, + 13937395, 8375, 270109475, 63594895, 20313208, 10768, 301262564, 121371747, 27344111, 41461, 110639090, 142378762, 23955055, 133116, + 271861168, 161713330, 33074039, 125045, 329911026, 131379003, 42635938, 494251, 360380219, 174363300, 29112310, 1313927, 223384522, 198571744, + 52235628, 2125985, 348695233, 59134232, 65727810, 2056573, 396963357, 191473430, 78851171, 4335973, 81523472, 227278817, 68170699, 7513982, + 691, 252580138, 86720038, 5128490, 1539, 158263289, 102843736, 11640120, 4916, 254315940, 31581881, 17439601, 5670, 290911800, + 111112370, 24040547, 23482, 31438405, 133975370, 20116227, 78543, 245207522, 153508189, 29083567, 58226, 315367946, 98398330, 38471761, + 292917, 348834819, 164587447, 4016943, 875755, 155600442, 182436015, 46510411, 1506884, 321173376, 8868040, 60049512, 1358779, 384395295, + 168618054, 72922909, 3296309, 417191166, 215936670, 53906018, 6008420, 254275272, 242620325, 79642069, 9551036, 882, 99544826, 96259198, + 9408175, 2874, 238422223, 111870620, 14779586, 3053, 279179074, 97690527, 18650689, 13083, 298499021, 126151315, 14976796, 45687, + 200344150, 145347578, 25522317, 144162, 298440912, 63967274, 34317307, 164707, 337999225, 152236535, 43722836, 382423, 76430952, 173095383, + 41126149, 1027377, 284134155, 194854436, 54513242, 865028, 368670267, 134637381, 67419107, 2377875, 405063714, 205153702, 23810575, 4694661, + 202084562, 232513625, 72381874, 7891516, 500, 28939407, 89407647, 7386845, 1673, 213255664, 104896588, 12462663, 1330, 266651509, + 81786477, 15977354, 7152, 288678137, 117556492, 2363049, 26767, 141590550, 137219080, 21923256, 85795, 277213265, 7792694, 30363274, + 92266, 325569273, 131306649, 39553865, 227501, 354265028, 164363206, 33088105, 672471, 247401608, 185906204, 49106565, 1612249, 350258643, + 86592026, 61817826, 1635937, 386045871, 191318799, 69602562, 3619368, 123149126, 222181465, 65421883, 6361711, 329026575, 246356891, 82636936, + 5458484, 985, 177225063, 98038802, 10229262, 3108, 248005515, 50849731, 13516419, 3973, 277938374, 108481323, 19290754, 15220, + 70353769, 129627304, 18490483, 50417, 255360002, 147882544, 26610702, 29568, 312192065, 113928169, 35415050, 130208, 343948420, 154595923, + 16609595, 430520, 187848661, 176932436, 44200906, 1109793, 327292146, 41722844, 52237513, 1061625, 372984432, 173461899, 64294379, 2667950, + 34928567, 212492819, 55169591, 5021633, 292505241, 236624396, 75918894, 2664257, 567, 127355560, 91644350, 6873278, 1823, 232829473, + 6396188, 11267316, 2082, 266882193, 99612068, 16605060, 8539, 10402320, 121544455, 14987414, 29801, 218822336, 133710896, 23266803, + 57601, 297203451, 81547539, 31479603, 71790, 332529167 +]; +/// PMOS drain current in pA at 1000 centres of the log grid's cells, corner mos_fs, point k = 1 .. 1000 at Vgs = (floor(96 frac(k a1)) + 1/2) * 15.625 mV, Vds = (floor(48 frac(k a2)) + 1/2) * 31.25 mV (deck psp103_idpa_fs.cir, block cen_p). +pub const FS_CEN_P : [1000]u32 = [ + 138492714, 29150578, 805531, 11, 153332762, 42422661, 1598847, 29, 78168009, 50496987, 2463621, 76, 159701173, 58720992, + 4153123, 179, 179392873, 59183843, 5261365, 484, 195858498, 72274300, 6313143, 1291, 137744185, 82684990, 9768956, 3447, + 206976961, 41724214, 13421431, 5319, 230805391, 89966242, 17619631, 14293, 68483225, 104534364, 19717441, 38206, 206386971, 116466397, + 25831223, 88712, 260957164, 93943697, 31866499, 232450, 279631251, 131089803, 14293755, 549788, 7, 147114884, 38665565, 1158643, + 18, 32585845, 46718152, 1856311, 47, 143017970, 54810979, 2585976, 92, 172072279, 49285003, 4257237, 297, 188804767, + 67656967, 2899718, 793, 108034125, 77911391, 8221592, 2118, 193283469, 5066422, 11645571, 3249, 222294600, 82776914, 15534250, + 8762, 8029067, 98904871, 16871119, 23491, 173304610, 111050741, 23128542, 62381, 249700376, 65780284, 26348626, 148152, 270776068, + 122621790, 32313107, 364913, 88006827, 140659349, 34754332, 815037, 12, 154425391, 43140887, 1336893, 30, 122057557, 50953648, + 1959073, 80, 163635435, 31667354, 3390780, 183, 181699978, 62749257, 5325963, 487, 61631069, 73215267, 6845848, 1301, + 175039322, 78897641, 9978224, 1951, 214046594, 71117901, 13588955, 5377, 233228113, 93167133, 11266767, 14418, 131447353, 105573429, + 20530822, 38523, 228904979, 28047923, 23743037, 92735, 261474151, 113753976, 29398259, 236426, 41436022, 134097114, 29917397, 557695, + 7, 148130709, 39564438, 525959, 19, 92694600, 47212249, 1452008, 49, 153871804, 11805925, 2638483, 112, 174848391, + 57415541, 4315639, 300, 7304516, 68581419, 5523110, 495, 156041155, 74293646, 8447602, 545, 204256191, 51946441, 11808916, + 3293, 225362461, 87601471, 15681931, 8842, 94217318, 100144246, 16059159, 23685, 209172261, 111773692, 21221270, 57229, 252470139, + 99540345, 26617911, 150649, 273732164, 127282646, 23441778, 370187, 165663598, 136641389, 36054410, 568319, 12, 53919354, 43585042, + 1040065, 31, 143757771, 51338004, 2005382, 69, 167508853, 50534613, 3441722, 185, 183255645, 60355616, 4009358, 305, + 124510432, 69787788, 7050850, 811, 192753148, 30879357, 10142826, 2015, 217775228, 81040219, 13734231, 5428, 38005393, 94738241, + 13866030, 14538, 182632521, 106367057, 18829062, 29451, 241594412, 77766710, 24014630, 94407, 265236132, 120619507, 8234900, 239813, + 127916711, 130519809, 32545167, 377936, 8, 6488838, 40154461, 720461, 19, 127881396, 47617070, 1490649, 19, 159786544, + 41913001, 2683008, 71, 176605580, 55945649, 4368092, 188, 83837171, 65376088, 5819474, 499, 178083671, 74791007, 8615337, + 1233, 209476547, 72549509, 10361589, 3327, 220961698, 89554208, 11147040, 8916, 156534109, 101034048, 16561325, 23872, 228780579, + 46381792, 21506028, 58569, 256440314, 112421736, 26850155, 96472, 71622921, 124373278, 29154419, 244725, 221004148, 137626215, 36752069, + 472824, 13, 104674660, 44016675, 1073402, 33, 151280818, 22877547, 2043518, 44, 169699503, 51432711, 3487124, 116, + 34659481, 61168578, 4675999, 308, 162682508, 70318470, 7225008, 717, 194820373, 59082459, 8829955, 2039, 213766774, 84083112, + 4585422, 5474, 115053463, 95766147, 14482008, 14653, 212619831, 16588430, 19132769, 36043, 247947891, 97904800, 24209328, 59882, + 8361192, 118457425, 24613404, 155428, 193432532, 131641044, 33443501, 128560, 8, 72153866, 40604578, 750104, 14, 142699177, + 44590456, 1516805, 27, 162691491, 46987673, 2722153, 72, 177875751, 56935199, 3614134, 190, 137094996, 65950310, 5994783, + 505, 185182358, 42935949, 7436357, 1249, 206218187, 78314314, 10471744, 3356, 65157344, 90712456, 12435141, 8987, 196039149, + 101737592, 16893744, 13620, 238109132, 82722360, 21742310, 36945, 259483951, 112092407, 15466647, 97356, 150308133, 125692691, 30337065, + 247398, 253998013, 41442229, 34300090, 508267, 9, 130365639, 41136802, 1098551, 16, 155465981, 40901254, 2076468, 44, + 171175090, 52757562, 2404909, 118, 102491179, 61776155, 3973731, 311, 175502326, 13485616, 6179291, 766, 198495317, 71645415, + 8935585, 2058, 7677360, 85549944, 10389004, 5519, 169173933, 91892664, 14837043, 3747, 226968274, 65376991, 19376630, 22702, + 251566120, 105248388, 24415951, 60524, 98969638, 119757594, 27139944, 157065, 231351025, 132509989, 31202906, 336302, 277503815, 112597036, + 37863560, 770133, 20, 148450345, 30045534, 1543767, 28, 164469261, 48583063, 2757422, 73, 69078861, 57617542, 3109110, + 192, 161599097, 66425787, 5073235, 465, 190447497, 64258933, 7537365, 1262, 208041084, 80376098, 7338011, 2088, 133615342, + 86894087, 12862438, 5583, 215844255, 34600025, 17148591, 13939, 242966099, 97196523, 21946102, 37344, 40195077, 114051511, 23718251, + 98344, 203268579, 126662787, 28220474, 204350, 265199124, 93294999, 34665931, 524197, 12, 140204584, 10049719, 1119334, 17, + 157719093, 44579473, 1581924, 45, 20303552, 53552970, 2360496, 119, 142256877, 62268466, 4081850, 129, 182623750, 50677731, + 6275623, 776, 200721516, 71078844, 1412099, 1282, 89180100, 82101461, 11006956, 3425, 199756114, 92493855, 15096660, 8508, + 233877326, 88432507, 19582671, 22959, 253919051, 108052377, 17017027, 61115, 166810572, 120868984, 25436268, 158615, 250378720, 60251302, + 31595657, 348553, 283366353, 130282755, 38160429, 785970, 10, 145757823, 39907236, 1145675, 28, 159960145, 49569897, 1733855, + 74, 114867200, 58148643, 3218766, 196, 173227811, 27960774, 5162179, 294, 193302341, 66127024, 7626304, 787, 50302587, + 77257022, 9243150, 2105, 178034002, 87544290, 13143735, 4942, 223929595, 73142227, 17358208, 14108, 239361293, 101820408, 9718490, + 37705, 121672111, 115292006, 22658955, 99278, 235471430, 18010558, 28651657, 225059, 273418519, 116780198, 34973012, 359948, 5, + 138941159, 33114603, 807495, 18, 153535564, 45795873, 410852, 46, 87783209, 54136866, 2479204, 121, 161877339, 62620862, + 4165994, 180, 186144645, 60136511, 6359088, 484, 202271784, 72457098, 7604015, 1292, 148433817, 82789393, 11325074, 3452, + 214116100, 49013135, 13451268, 8640, 231281988, 95696874, 17645794, 23184, 82239453, 109582163, 19908400, 61672, 212349802, 121720783, + 25898424, 141340, 262437943, 98734500, 31916151, 233170, 286914531, 131750313, 23615314, 551165, 11, 147339290, 41915141, 1161128, + 29, 44573169, 50229627, 1871392, 75, 146745865, 54875984, 3298450, 105, 178322409, 51629123, 5226211, 298, 195143312, + 67872562, 4708604, 794, 119819014, 78025941, 9636016, 2121, 195781470, 15080546, 11674866, 5282, 222917181, 87921557, 15560085, + 14227, 23719083, 103855530, 17238951, 38043, 181635487, 116206260, 23204348, 24679, 251658162, 73260175, 28990206, 148612, 278027995, + 123719738, 3238035, 365836, 7, 140929720, 37910485, 818642, 18, 154583237, 46524276, 1356078, 30, 130469203, 51021962, + 2555301, 81, 169902878, 36589328, 4236092, 183, 187965887, 63054575, 6433368, 489, 74846656, 73343861, 6893914, 1303, + 179083999, 83352666, 10008111, 3203, 214823640, 76960876, 13614507, 8734, 233550383, 98030633, 12900533, 23391, 152309210, 110626967, + 20621073, 38575, 236974341, 38120249, 26247861, 93059, 268719645, 115448324, 32189520, 237023, 57733515, 134441079, 33181689, 558940, + 11, 148475975, 39677010, 876347, 19, 102641187, 47284841, 1940867, 50, 160286631, 18753577, 3362562, 112, 181043345, + 57946321, 5294523, 301, 21509866, 68730672, 5590879, 801, 161627357, 78633585, 8478581, 1653, 205388784, 59205628, 11833611, + 5349, 225752528, 92390614, 2012378, 14357, 106617488, 100310466, 18124465, 23716, 218041597, 5809336, 23585716, 57552, 259720799, + 102781458, 29272310, 151017, 280944872, 127756222, 27234144, 371012, 176513827, 142250277, 36193346, 827251, 12, 65407014, 43738817, + 1427729, 31, 150421258, 51396772, 2613461, 69, 173645677, 51763764, 3449627, 185, 183471502, 64331374, 4275879, 493, + 132604419, 74010568, 7114972, 1314, 194520538, 39299735, 10167323, 3273, 218230677, 85845943, 13756754, 5436, 52923523, 94935350, + 15800097, 14557, 192717831, 106483598, 21051827, 34944, 248951473, 83448046, 26532943, 94641, 272404819, 121251262, 12769823, 240339, + 140388783, 136037779, 32739284, 566059, 8, 19350253, 40236976, 1017148, 20, 135333413, 47678259, 1991069, 36, 165893502, + 44352410, 2689855, 114, 176843046, 59805158, 860902, 304, 94435689, 69479714, 5853587, 808, 180974368, 4936225, 8639771, + 2004, 210073701, 74093600, 11970213, 3332, 227657216, 89782168, 13091352, 8928, 167665998, 101161673, 18641288, 23903, 236402977, + 54788060, 23884966, 58725, 257606502, 113495131, 26886059, 153046, 86138863, 129802287, 29441366, 375716, 227950061, 143242397, 36844765, + 693525, 13, 113463931, 44080961, 1472601, 34, 153033373, 29018636, 2049315, 70, 169981534, 55191942, 3494260, 187, + 47522932, 65153080, 4716787, 497, 166804431, 74552312, 7249604, 743, 201427876, 65228488, 10301359, 2042, 220394802, 84387739, + 7482823, 5482, 127684384, 95908782, 16421436, 14672, 220790636, 26827008, 19176776, 36166, 248684131, 103753985, 24281075, 95904, + 24731585, 123799941, 25412015, 243323, 202086957, 137164089, 33552157, 376312, 8, 82531078, 40670726, 753874, 21, 144040979, + 3830049, 1521584, 43, 163041454, 50679658, 2728269, 115, 7109659, 60797278, 3682226, 307, 143504514, 66035278, 6018747, + 506, 191872152, 48275481, 8771592, 1251, 212782532 +]; +/// NMOS drain current in pA at the first 1000 held-out R2 points of corner mos_fs, the points of the tt corner's TT_R2_N (deck psp103_idpa_fs.cir, block r2_n; the first 200 are FS_R2_N). +pub const FS_R2K_N : [1000]u32 = [ + 230337436, 58754330, 8533455, 748, 256317387, 91454966, 12649389, 2617, 112896803, 108305396, 12212782, 8089, 247875956, 124179637, + 18178160, 7961, 290357361, 108700575, 24764483, 32453, 317092955, 137007522, 19945590, 105499, 210978262, 156382368, 31808713, 299526, + 314106122, 67219087, 41357717, 320011, 352925105, 161250100, 51262544, 940119, 88952754, 188976017, 47395598, 2085851, 300355798, 210284131, + 61672960, 1658465, 380512674, 147889910, 74577880, 3876262, 417172198, 217719962, 30430511, 6826435, 394, 245785981, 83540001, 10521373, + 1452, 47245956, 100850921, 9780647, 4600, 222779815, 116640445, 15330574, 3657, 277640022, 88535202, 21487046, 17505, 306094775, + 127904439, 7139643, 59985, 154888115, 147792470, 27607942, 178158, 293440282, 13296885, 36837028, 175192, 340125060, 145368369, 46371942, + 590570, 6865816, 178941595, 38672152, 1449592, 255451473, 200824449, 55779643, 2884270, 362260878, 103110209, 68496811, 2797665, 404346431, + 203347190, 81169065, 5335510, 134597696, 235067541, 74896507, 8615001, 798, 258412694, 93488337, 7488283, 2603, 188422476, 109228659, + 12720662, 7783, 263780806, 57513155, 18445421, 9242, 294899998, 118385088, 24854218, 33586, 88079666, 139239094, 23579772, 103835, + 266800126, 157436398, 32536477, 90680, 326483592, 122799945, 41699407, 352570, 357312195, 168577422, 22708852, 964700, 198967412, 191354822, + 50012596, 2088350, 340240061, 46993960, 62594177, 1923198, 390850101, 185414477, 74995054, 4055239, 51722014, 224050225, 63496410, 6925901, + 433, 248267606, 86193256, 3644051, 1464, 142376801, 101944654, 10348629, 4457, 247854182, 14937765, 15640101, 4765, 283422063, + 107705802, 21615512, 18536, 12766090, 130697185, 19486143, 59586, 231203158, 149037403, 28457468, 3651, 311474840, 89525529, 37248327, + 200206, 345534258, 157526231, 46514470, 613195, 131537982, 181849769, 44284437, 1455503, 312273537, 202198505, 56870669, 1244464, 376351600, + 160729953, 69005160, 2979101, 409466784, 212519861, 44558047, 5448971, 244555908, 238051142, 78907180, 8651459, 818, 84703963, 94787156, + 8214442, 2543, 228087036, 109836094, 13071097, 2396, 271513699, 93717533, 18611725, 10078, 297923799, 122118251, 13195705, 33771, + 184260075, 140713180, 24599775, 100746, 294131843, 44322873, 33021778, 108385, 333375146, 144891498, 41896738, 372346, 55118928, 172266100, + 38140669, 972688, 275664744, 192972472, 51324436, 672327, 360281943, 125596338, 63202997, 2099131, 397168167, 200025485, 14432461, 4178239, + 176950978, 227723898, 71452072, 6979957, 454, 17423860, 87751870, 6313588, 1446, 201567405, 102673064, 10737978, 445, 258904829, + 72039345, 15842872, 5386, 287070367, 113394257, 21668519, 18931, 125592937, 132456697, 20958642, 58191, 272740034, 149880771, 29022378, + 56172, 320652487, 128493829, 37502612, 216575, 349142365, 162523602, 29125648, 622269, 228113346, 183766905, 45948284, 1445718, 341655813, + 78400988, 57591813, 1405281, 384390145, 185560121, 69312870, 3106661, 99950987, 217220739, 63132510, 5517109, 321334581, 240087702, 80828802, + 4491419, 818, 164916921, 95653283, 8639987, 2453, 245064807, 38928216, 13308486, 2820, 276028445, 104234421, 18699018, 10498, + 56836220, 124255282, 17503069, 33267, 244645156, 141712796, 25252175, 26911, 307045245, 104355658, 33335073, 121116, 337739646, 152453585, + 11683299, 381634, 168911447, 174566863, 40719368, 967402, 318833333, 20523531, 52174085, 884491, 370917279, 166977388, 63588486, 2225778, + 15695832, 206424394, 51310445, 4256505, 273398480, 230141777, 73995325, 268740, 460, 116279496, 88777928, 6776264, 1405, 228916346, + 103137635, 11007560, 1444, 264708374, 93724995, 15963145, 5753, 289567444, 116085360, 13892540, 18855, 206771051, 133639016, 21712503, + 56105, 291959875, 68801702, 29396898, 65312, 326069232, 141647718, 37636058, 225285, 99252031, 165347998, 35541498, 620674, 289394953, + 185084187, 46951032, 517654, 356384589, 140678712, 58061502, 1525056, 389513862, 195100991, 30721903, 3190800, 214018593, 220137416, 67192445, + 5548401, 365923397, 56509263, 82046630, 5146097, 802, 208386391, 96219709, 8938536, 705, 252953372, 79173812, 13459834, 3109, + 278999126, 107899077, 7089897, 10600, 157139597, 125656569, 18403544, 32278, 274282424, 21728091, 25690492, 34020, 314015732, 129022716, + 33518390, 128654, 21313159, 156067741, 29804578, 382742, 250544302, 176120377, 41921691, 110388, 340152373, 103156674, 52735639, 990878, + 377282619, 182734329, 63804946, 2311392, 143960752, 210035647, 60217560, 4298471, 335343441, 231818197, 75456244, 3743487, 406479077, 180222065, + 89458248, 7099357, 1351, 240466021, 55745487, 11187522, 1652, 268307432, 99582436, 16018042, 5910, 96091905, 117759639, 15321793, + 18441, 252036577, 134434575, 22217812, 17161, 301383105, 111925709, 29631101, 71373, 329638918, 146643828, 20181349, 227981, 200270720, + 167192226, 37080350, 610803, 321096250, 53754528, 47614220, 605373, 364562747, 168126141, 58345217, 1607824, 65154859, 199770309, 52172172, + 3239716, 295721523, 222112332, 68998317, 2266334, 389193771, 141134640, 82855814, 5487570, 777, 226640249, 20727480, 9144038, 860, + 257436427, 90799502, 13543555, 3264, 25672295, 109936985, 12433308, 10471, 222280570, 126601386, 18980337, 5200, 287816425, 85974974, + 25976403, 38546, 318354243, 136893393, 1320021, 131942, 138479339, 158286039, 32405734, 377615, 297348498, 177188567, 42699869, 345846, + 351121300, 148721912, 53091219, 1066786, 381491669, 189218073, 39643028, 2363548, 245075889, 212385869, 62652039, 4310631, 368899696, 90030889, + 76414250, 4100539, 415885960, 210211667, 89888941, 7326562, 438, 246293153, 80402902, 11297790, 1782, 270749127, 102166623, 9202458, + 5909, 181964274, 118878366, 15979054, 17796, 272640626, 48222312, 22556183, 20263, 306806177, 126342541, 29757137, 74563, 66850598, + 149378715, 27787553, 226134, 266245650, 168451396, 37994143, 180258, 336554354, 120571453, 48046702, 670899, 369688099, 178121494, 17350546, + 1659791, 182972640, 202615020, 56357467, 3259743, 343842009, 28457491, 70133976, 2935673, 401694479, 188757156, 83382445, 5731591, 162, + 234710045, 65034922, 9277974, 959, 260349873, 94401409, 1640909, 3312, 129693962, 111263704, 13214283, 10179, 254564270, 127225242, + 19371904, 10363, 294873392, 113662345, 26146923, 41273, 321303514, 140428457, 22361227, 132005, 224978060, 159773323, 33496791, 367839, + 320138114, 80653917, 43215259, 398040, 357535965, 165882316, 53290720, 1115660, 110679184, 192761365, 49877012, 2388326, 311605542, 214004298, + 64012909, 1980481, 386200471, 158720109, 77047323, 4354924, 421836206, 222357103, 39715422, 7480680, 507, 249838184, 86519871, 11352532, + 1842, 66519601, 103752780, 10683522, 5795, 231311149, 119626427, 16424586, 5097, 282344248, 95637428, 22771099, 22397, 310333673, + 131350732, 11814173, 75518, 171970823, 151146950, 29203471, 220940, 300583243, 29324816, 38600063, 222381, 344885531, 151059138, 48308463, + 714452, 30328598, 182757744, 42010715, 1686570, 269612951, 204525359, 58044095, 651907, 368649315, 117124133, 70886634, 3191613, 409137112, + 208535102, 3060028, 5901732, 263, 239157498, 78124907, 9355280, 1015, 262367771, 96335809, 8345174, 3284, 199677433, 112153551, + 13714845, 9777, 268823668, 67686482, 19630809, 11901, 299182239, 121945294, 26227188, 42492, 107783853, 142559878, 25094273, 129700, + 275764867, 160789312, 34203664, 117387, 331483836, 130624582, 43542642, 434740, 361721758, 172473970, 28456918, 1142268, 216201063, 195039923, + 52208572, 2390565, 347774436, 63767619, 64902730, 2235876, 395827303, 191748349, 77445859, 4536116, 75499152, 228211324, 67744692, 7577382, + 553, 252221108, 88992496, 5300295, 1850, 156804012, 104807168, 11243003, 5604, 253537549, 27940068, 16726767, 6177, 287772567, + 111652295, 22890640, 23556, 34463003, 133990373, 21035161, 74821, 242793139, 152346801, 30027738, 45055, 316881128, 100413979, 38996724, + 251319, 350010641, 161623917, 4584043, 739323, 151504618, 185525263, 46444686, 1692758, 321600023, 686742, 59096683, 1480726, 381616953, + 169176183, 71374842, 3377833, 414018971, 216819737, 51266700, 6014095, 261836391, 242009361, 81676431, 9386983, 1036, 102030201, 97586438, + 9009163, 3201, 234980006, 112736682, 14059211, 3129, 275976799, 98818042, 19788947, 12865, 302082326, 125397547, 15742806, 42576, + 198966882, 143978976, 26072545, 125703, 300252966, 58210821, 34673919, 138263, 337950385, 149504531, 43727415, 456805, 77226272, 175943644, + 40462826, 1150827, 287514986, 196598309, 53467352, 893223, 366012975, 137051748, 65489577, 2419628, 401810347, 204613394, 24067648, 4659856, + 197033735, 231697254, 74256453, 7627989, 575, 37016349, 90487891, 7011379, 1821, 210539647, 105508241, 11627925, 1315, 263565328, + 79599360, 16922328, 6910, 291253811, 116694283, 4083070, 23949, 143289127, 135679646, 22334968, 72939, 280114480, 5257973, 30577010, + 72633, 325381603, 134364950, 39238388, 269891, 353467688, 166226927, 32613360, 749124, 242995282, 187368088, 48009211, 1682118, 348161638, + 92971060, 59793424, 1652469, 389161363, 190776719, 71666296, 3508119, 122311414, 221227659, 66250024, 6080269, 333383575, 243969968, 83503203, + 5188515, 1031, 176815228, 98421374, 9432326, 3081, 250094994, 49566974, 14290566, 3640, 280252039, 107658508, 19868039, 13324, + 76953170, 127437751, 18796092, 41838, 254057027, 144942319, 26708230, 36420, 312028259, 112658075, 34974622, 152999, 342109713, 156237025, + 17767866, 466942, 186821064, 178146472, 42705139, 1144841, 326619981, 37639526, 54289071, 1064761, 375882452, 173528390, 65857774, 2551081, + 39750387, 210500264, 55734511, 4737771, 288375590, 234017883, 76613842, 2064047, 581, 131342139, 91477445, 7471660, 1766, 234670383, + 8109206, 11892917, 1875, 268998090, 97615239, 17035244, 7327, 2219397, 119233031, 15279229, 23776, 219009641, 136819139, 23069132, + 70236, 297386214, 80247536, 30939019, 83496, 330504463 +]; +/// PMOS drain current in pA at the first 1000 held-out R2 points of corner mos_fs, the points of the tt corner's TT_R2_P (deck psp103_idpa_fs.cir, block r2_p; the first 200 are FS_R2_P). +pub const FS_R2K_P : [1000]u32 = [ + 138257042, 30427326, 777622, 13, 152495970, 43348212, 1494796, 32, 74460436, 51138939, 2260263, 80, 157971159, 58958937, + 3745440, 179, 182295996, 58777879, 5679610, 453, 197890937, 71515246, 6504360, 1138, 140797950, 81226195, 9977915, 2858, + 206927857, 41707361, 13462132, 6718, 230566759, 92115173, 17388411, 16987, 61792423, 105923134, 19276177, 42636, 204918274, 117352457, + 24908980, 92985, 258913994, 92512833, 30510901, 230375, 282529284, 130737869, 16783805, 518299, 8, 145827616, 39402732, 1057067, + 20, 31612241, 47172488, 1654666, 49, 142538703, 54791422, 2901167, 96, 174190009, 49246118, 4575636, 271, 190529365, + 66554580, 2779652, 681, 103921105, 76285814, 8348689, 1709, 193352341, 8466913, 11572419, 3997, 221910193, 83772084, 15220338, + 10145, 4831615, 100053728, 16119649, 25549, 174097204, 111545769, 22151419, 63839, 246171898, 65532357, 27521401, 142825, 273371423, + 122401294, 33227669, 335061, 94621736, 139154973, 35352692, 723019, 12, 152214574, 43326634, 1162994, 30, 121315723, 50756273, + 2191416, 75, 165518580, 33324202, 3615039, 162, 183149841, 61530002, 5493372, 408, 59686155, 71445373, 6859233, 1023, + 175955415, 80757825, 9837049, 2348, 212817926, 72051037, 13207904, 6054, 231405043, 94128077, 10462917, 15276, 135819423, 105818734, + 19524364, 38358, 230888636, 30439656, 24680357, 87134, 263853552, 112262283, 30128194, 211075, 36733871, 132423744, 30612248, 478507, + 8, 145705601, 39592686, 644268, 18, 92511134, 46854001, 1608927, 45, 155738095, 9008037, 2793305, 97, 175706194, + 56190337, 4414044, 245, 8774926, 66695641, 5484867, 613, 152785084, 75888054, 8254628, 108, 202951187, 53910076, 11350917, + 3611, 223333128, 87996541, 14914918, 9124, 90331989, 100161536, 17007420, 22968, 211607715, 111085704, 21987530, 52417, 253743758, + 98382893, 27178654, 130353, 274744412, 125528760, 22817020, 307323, 169872643, 139247218, 35951808, 670078, 12, 55753330, 43084355, + 1144319, 28, 143782223, 50298110, 2104649, 58, 168117490, 49711394, 3476990, 147, 183243035, 62018653, 3977295, 367, + 122267197, 71131924, 6822829, 920, 191687857, 27460908, 9648790, 2152, 215125103, 81280651, 12932740, 5447, 38267119, 94556688, + 14530216, 13729, 186598206, 105449686, 19441585, 28540, 242645181, 78103348, 24380070, 79377, 265986355, 118248124, 7931800, 192550, + 123244793, 132822241, 32356837, 440300, 7, 11662299, 39445833, 785406, 17, 127806109, 46444209, 1541666, 12, 160232975, + 39680536, 2677532, 88, 176096549, 57376399, 4248458, 221, 83993876, 66487360, 5537702, 551, 177923310, 75381718, 8100480, + 1279, 206668923, 72960897, 11105851, 3251, 223732071, 88971201, 11620187, 8200, 154472048, 99905470, 17039202, 20638, 229878957, + 49700563, 21733141, 47873, 257008472, 110077479, 26797905, 118431, 70149597, 126400930, 28649694, 280965, 222475729, 138960852, 35934727, + 512756, 11, 105484864, 42728165, 1094919, 28, 151754327, 22486864, 2009709, 53, 168939211, 52675283, 3334986, 133, + 38486652, 61949990, 4391502, 331, 159930534, 70684523, 6704385, 714, 197764639, 60678461, 9433619, 1941, 215927260, 83336813, + 5316310, 4896, 114806743, 94447909, 14772828, 12333, 214335800, 13295185, 19238133, 28667, 247665074, 99863013, 24035736, 71929, + 11149408, 119928469, 24073470, 175114, 188840721, 132689859, 32543009, 42190, 7, 75270351, 39150586, 752574, 17, 142067897, + 45975683, 1465914, 32, 161724638, 47629550, 2557909, 80, 175957356, 57511239, 3358106, 199, 135673191, 66107793, 5458193, + 498, 188041027, 41275042, 7914975, 1158, 208058291, 77492983, 10845772, 2924, 68031577, 89067816, 12623064, 7366, 194416357, + 99457212, 16894682, 16942, 237707273, 85366006, 21426649, 43332, 258343098, 113295099, 15596890, 107294, 147889237, 126476503, 29252718, + 256190, 252723484, 37159065, 35711365, 500299, 11, 129945414, 42302613, 1036486, 18, 154369565, 41211544, 1911093, 48, + 169010715, 53153943, 1996267, 120, 103768357, 61651066, 4358610, 299, 176799627, 13454508, 6548341, 691, 200058021, 71005834, + 9201931, 1747, 14799691, 83748434, 10512729, 4399, 168331070, 94087204, 14701441, 4105, 226700013, 63845061, 18971356, 25969, + 249769925, 106258884, 23662242, 65001, 99967653, 120304247, 26016280, 158886, 230971536, 132285316, 32409240, 321490, 279704926, 113303441, + 38771440, 709369, 22, 146714131, 30469879, 1386721, 29, 162087515, 48840456, 2436832, 72, 64123164, 57312609, 3400751, + 180, 162787058, 65626709, 5331534, 409, 191809544, 62639944, 7711130, 1044, 208425984, 78457292, 7742413, 2628, 134845573, + 88815592, 12655287, 6615, 213886200, 34027063, 16670232, 15507, 240978571, 98242106, 21086996, 39104, 45691892, 114143855, 22652839, + 97009, 203164924, 126187584, 29240896, 188756, 267386840, 89763768, 35383232, 470091, 13, 138430354, 11946505, 974877, 17, + 155160823, 44472283, 1811282, 44, 17386429, 53088520, 2576153, 108, 144088423, 61226787, 4261629, 144, 183098656, 49614399, + 6371683, 624, 200825276, 73124611, 592683, 1571, 93805658, 83637720, 10749280, 3952, 198023896, 93582371, 14523223, 9221, + 231815516, 87879787, 18666274, 23425, 250534990, 107939987, 18139997, 58637, 168200027, 120163896, 26198950, 143894, 253002290, 58124643, + 32138619, 302385, 284115206, 128819083, 38338781, 663211, 10, 148184073, 39716864, 1306633, 27, 161934601, 48970866, 1852058, + 66, 118634974, 56953354, 3334753, 164, 173515999, 28856371, 5181299, 373, 193166858, 67576652, 7496038, 939, 45779061, + 78545027, 8965025, 2362, 177366307, 88381520, 12529680, 5259, 222012560, 72607695, 16400629, 13997, 242275723, 101577686, 8745342, + 35229, 125881366, 114205050, 23266348, 87578, 235345675, 18712389, 29037575, 189520, 274011228, 116456755, 34991937, 436971, 4, + 141071483, 33259979, 912679, 16, 155212680, 44943302, 435226, 40, 85315716, 52806179, 2545757, 99, 162271773, 60723860, + 4136961, 222, 185382178, 61307145, 6182884, 562, 200883378, 73521508, 7212473, 1412, 150106260, 83287773, 10688062, 3550, + 211090150, 49743004, 14290307, 8349, 233894231, 94790843, 18336235, 21092, 76697206, 108295178, 20394871, 52830, 212830169, 119763559, + 26079006, 115647, 263082132, 99010925, 31791612, 279730, 286070131, 133652786, 21583575, 616723, 10, 148521327, 40968546, 1227124, + 24, 44337449, 48783841, 1887595, 60, 147938678, 56499598, 3234753, 129, 177348980, 52796483, 5017890, 336, 193504827, + 68535247, 4389715, 845, 115226651, 78299073, 8995268, 2122, 198199347, 18554111, 12335186, 4972, 225296243, 86908731, 16102783, + 12603, 21268158, 102405598, 17368945, 31704, 183869359, 113916036, 23259935, 42937, 250792633, 74151340, 28738794, 174865, 276962770, + 125564465, 1760414, 403680, 6, 141834095, 36941948, 851271, 15, 154898506, 44882875, 1349326, 37, 128412003, 52407046, + 2469616, 93, 168836711, 38830938, 3997890, 201, 186115884, 63514736, 5986830, 506, 72839107, 73411240, 7444815, 1269, + 181947192, 82802054, 10534691, 2943, 216319543, 76302352, 14024946, 7523, 234622485, 96480423, 12752272, 18971, 147535748, 108149306, + 20573593, 47554, 236262582, 41105195, 25834054, 107334, 267536286, 116001833, 31396381, 256922, 53468418, 135104264, 32464947, 571153, + 9, 148356941, 41095975, 875221, 23, 101666041, 48446847, 1835010, 56, 159390756, 16693456, 3118810, 121, 178675969, + 58269876, 4846897, 303, 23598264, 68616339, 6019143, 760, 160442328, 77881519, 8887659, 1294, 206673792, 60084354, 12102675, + 4487, 226556945, 90398738, 2293455, 11334, 103867332, 102454762, 18003876, 28509, 218157418, 451935, 23077353, 64932, 257587818, + 103306998, 28383157, 159888, 278191466, 128243313, 25819453, 371313, 181965940, 141868452, 37407627, 791470, 14, 66931356, 44618958, + 1322467, 34, 148111261, 51935113, 2375432, 72, 171115050, 52197320, 3850912, 182, 186151650, 63899130, 4599700, 455, + 131917485, 73074401, 7392085, 1141, 195827204, 35818693, 10335550, 2675, 218374243, 83864747, 13738871, 6767, 53453290, 96817227, + 15501516, 17051, 194780144, 107755615, 20467681, 37899, 246772192, 84908485, 25520389, 97880, 269457903, 121068955, 13020968, 234921, + 137124596, 135417861, 33780911, 527177, 9, 24667335, 40922227, 920971, 21, 133369252, 48022365, 1761069, 35, 163304948, + 43405303, 2994644, 109, 178985864, 59228286, 1473616, 273, 95630671, 68378994, 6044569, 684, 182822573, 3327762, 8722716, + 1592, 209976750, 76087794, 11846903, 4039, 226878590, 91208617, 12793353, 10187, 164581607, 102168133, 18002317, 25623, 234497904, + 58658004, 22808882, 59244, 260530046, 113174503, 27990408, 145518, 85655174, 128979252, 30103144, 340393, 231147869, 141550285, 37353590, + 614864, 13, 112883759, 44246826, 1267169, 34, 154996179, 28314035, 2272704, 66, 171816696, 54530277, 3699731, 164, + 51932560, 63791578, 4838725, 410, 166096833, 72610046, 7262800, 929, 201192523, 65111935, 10109922, 2411, 219066807, 85572466, + 7831506, 6083, 126858345, 96668307, 15675063, 15319, 219782517, 24249953, 20249041, 35571, 251279957, 103623612, 25163881, 88799, + 28144207, 122505777, 25878256, 214114, 199376840, 135244339, 33906345, 286033, 8, 84770274, 40609227, 882915, 21, 145679841, + 4840595, 1678213, 39, 164603581, 49594182, 2866337, 99, 1520765, 59304829, 3757146, 246, 143628735, 67980211, 5953773, + 617, 191705643, 47779140, 8527051, 1439, 211202172 +]; +/// NMOS drain current in pA at the 576 cell midpoints of the 62.5 mV grid, corner mos_fs, Vgs = (i + 1/2) * 62.5 mV at index i * 24 + j, Vds = (j + 1/2) * 62.5 mV (deck psp103_idpa_fs.cir, block mid_n). +pub const FS_MID_N : [576]u32 = [ + 332, 501, 561, 617, 673, 729, 784, 838, 891, 942, 991, 1040, 1087, 1133, + 1177, 1221, 1263, 1304, 1345, 1384, 1423, 1461, 1498, 1535, 2226, 3363, 3780, 4168, + 4561, 4953, 5340, 5718, 6088, 6448, 6798, 7139, 7470, 7792, 8106, 8411, 8709, 8999, + 9283, 9559, 9830, 10094, 10353, 10606, 14867, 22553, 25410, 28078, 30783, 33488, 36159, 38778, + 41335, 43826, 46251, 48610, 50905, 53138, 55312, 57430, 59495, 61508, 63472, 65390, 67264, 69097, + 70889, 72645, 92414, 142434, 160125, 176326, 192687, 209003, 225091, 240848, 256224, 271197, 285765, 299935, + 313718, 327129, 340184, 352899, 365291, 377374, 389165, 400677, 411924, 422921, 433678, 444210, 428087, 703477, + 784298, 850081, 914713, 978317, 1040488, 1101002, 1159773, 1216796, 1272112, 1325783, 1377882, 1428486, 1477672, 1525514, + 1572083, 1617448, 1661671, 1704812, 1746929, 1788076, 1828306, 1867669, 1229054, 2299974, 2589139, 2760662, 2916763, 3066267, + 3210091, 3348498, 3481746, 3610122, 3733927, 3853454, 3968986, 4080784, 4189091, 4294129, 4396103, 4495202, 4591597, 4685447, + 4776901, 4866098, 4953171, 5038248, 2439400, 5200702, 6132717, 6524110, 6819967, 7088860, 7341735, 7581667, 7810256, 8028663, + 8237841, 8438604, 8631662, 8817638, 8997083, 9170484, 9338276, 9500850, 9658556, 9811713, 9960612, 10105523, 10246701, 10384390, + 3905995, 9138844, 11508442, 12445287, 12984743, 13421725, 13816147, 14183016, 14528155, 14854858, 15165428, 15461653, 15744989, 16016657, + 16277699, 16529013, 16771382, 17005495, 17231963, 17451330, 17664090, 17870693, 18071558, 18267085, 5509391, 13702799, 18333652, 20458053, + 21504650, 22212479, 22801322, 23330190, 23818633, 24275518, 24706066, 25113895, 25501744, 25871802, 26225866, 26565447, 26891835, 27206141, + 27509337, 27802277, 28085725, 28360370, 28626847, 28885750, 7167663, 18572858, 26041350, 30128675, 32189619, 33395674, 34282367, 35030266, + 35699840, 36315189, 36888376, 37426725, 37935295, 38417880, 38877464, 39316478, 39736942, 40140565, 40528814, 40902963, 41264133, 41613325, + 41951447, 42279339, 8825399, 23533014, 34151237, 40837642, 44576180, 46688982, 48076341, 49146814, 50057870, 50871930, 51617389, 52309534, + 52957891, 53569069, 54147988, 54698490, 55223677, 55726111, 56207947, 56671026, 57116945, 57547108, 57962772, 58365086, 10445622, 28440628, + 42330939, 52012571, 58048899, 61614193, 63839310, 65415689, 66670504, 67745807, 68705710, 69582441, 70394394, 71153330, 71867460, 72542886, + 73184350, 73795658, 74379939, 74939813, 75477514, 75994977, 76493906, 76975838, 12004294, 33202695, 50365141, 63229479, 72012092, 77584472, + 81093519, 83459180, 85224011, 86660029, 87897819, 89002609, 90009861, 90940831, 91809452, 92625538, 93396398, 94127698, 94823969, 95488922, + 96125660, 96736822, 97324699, 97891316, 13486487, 37760209, 58118152, 74206687, 85993238, 94023805, 99291720, 102813670, 105329903, 107277295, + 108888337, 110284337, 111530975, 112666286, 113714043, 114690203, 115606134, 116470335, 117289396, 118068580, 118812193, 119523827, 120206541, 120862999, + 14883682, 42077730, 65507259, 84767914, 99661123, 110452087, 117898571, 122976697, 126549260, 129215672, 131336282, 133113854, 134661742, 136045444, + 137304910, 138466028, 139546566, 140559344, 141514000, 142418030, 143277418, 144097061, 144881050, 145632876, 16191852, 46136229, 72485298, 94808606, + 112802040, 126513670, 136453755, 143461846, 148426365, 152067896, 154878129, 157160505, 159094530, 160786480, 162301126, 163679716, 164949834, 166130811, + 167236777, 168278434, 169264132, 170200560, 171093196, 171946632, 17410081, 49928087, 79029207, 104271924, 125287950, 141967771, 154600394, 163843146, + 170525342, 175424707, 179141945, 182086377, 184517970, 186597453, 188424665, 190063209, 191555089, 192929179, 194206109, 195401153, 196525973, 197589723, + 198599756, 199562120, 18539588, 53453543, 85132324, 113132689, 137049744, 156664424, 172084744, 183778751, 192460478, 198899016, 203763040, 207555912, + 210623338, 213191251, 215404834, 217358005, 219112858, 220711697, 222184310, 223552364, 224832104, 226036044, 227174065, 228254150, 19583013, 56718171, + 90799096, 121386741, 148057815, 170519873, 188740820, 203014988, 213914246, 222146207, 228399678, 233246040, 237110631, 240289337, 242980856, 245317253, + 247386956, 249250310, 250949539, 252515018, 253969206, 255329146, 256608087, 257816566, 20543916, 59731062, 96041372, 129043811, 158308689, 183496492, + 204470784, 221377758, 234642605, 244877192, 252746489, 258856215, 263694846, 267625237, 270903666, 273706623, 276154923, 278331899, 280295978, 282089005, + 283741662, 285276974, 286712623, 288062483, 21426409, 62503530, 100875798, 136122669, 167815966, 195587895, 219226768, 238758417, 254470806, 266863438, + 276543640, 284117170, 290112257, 294948218, 298937616, 302304768, 305207759, 307757640, 310032998, 312090245, 313970617, 315704863, 317316385, 318823357, + 22234902, 65048183, 105321959, 142647777, 176604176, 206808378, 232996151, 255098902, 273283918, 287935309, 299581032, 308797239, 316126068, 322027108, + 326862462, 330903886, 334349544, 337342048, 339983891, 342349242, 344492449, 346453962, 348264409, 349947405, 22973919, 67378264, 109401064, 148646960, + 184704602, 217185575, 245790419, 270378538, 291015529, 307976042, 321697977, 332705654, 341530724, 348653907, 354475597, 359310617, 363397297, 366912127, + 369984555, 372709505, 375157036, 377379421, 379416199, 381297728, 23647967, 69507188, 113135018, 154149781, 192152413, 226755392, 257637042, 284603305, + 307636761, 326913574, 342779518, 355692843, 366154412, 374646707, 381594326, 387347286, 392181226, 396306830, 399882409, 403026093, 405826072, 408348578, + 410643832, 412750372 +]; +/// PMOS drain current in pA at the 576 cell midpoints of the 62.5 mV grid, corner mos_fs, Vgs = (i + 1/2) * 62.5 mV at index i * 24 + j, Vds = (j + 1/2) * 62.5 mV (deck psp103_idpa_fs.cir, block mid_p). +pub const FS_MID_P : [576]u32 = [ + 9, 13, 13, 13, 14, 14, 14, 14, 14, 14, 14, 15, 15, 15, + 15, 15, 16, 16, 16, 17, 17, 18, 20, 23, 61, 85, 87, 88, + 89, 89, 90, 90, 90, 91, 91, 92, 92, 92, 93, 93, 94, 94, + 94, 95, 96, 97, 98, 100, 413, 577, 594, 600, 603, 606, 608, 610, + 612, 615, 616, 618, 620, 622, 624, 626, 628, 629, 631, 633, 635, 637, + 639, 642, 2843, 3973, 4093, 4130, 4154, 4172, 4189, 4205, 4219, 4233, 4246, 4259, + 4271, 4283, 4295, 4307, 4319, 4330, 4342, 4353, 4364, 4375, 4387, 4398, 19339, 27188, + 28061, 28349, 28537, 28689, 28822, 28944, 29057, 29164, 29266, 29365, 29460, 29553, 29643, 29731, + 29818, 29904, 29988, 30071, 30153, 30235, 30315, 30395, 116881, 169992, 176948, 179771, 181743, 183345, + 184729, 185965, 187093, 188138, 189119, 190046, 190930, 191777, 192592, 193380, 194145, 194889, 195615, 196324, + 197019, 197701, 198371, 199031, 481327, 779811, 829151, 850793, 866229, 878681, 889273, 898574, 906920, 914529, + 921550, 928093, 934237, 940044, 945563, 950832, 955883, 960742, 965429, 969964, 974361, 978635, 982795, 986852, + 1219035, 2313440, 2559843, 2649841, 2708867, 2754895, 2793204, 2826277, 2855535, 2881882, 2905930, 2928114, 2948756, 2968100, + 2986336, 3003616, 3020059, 3035767, 3050822, 3065294, 3079242, 3092715, 3105758, 3118409, 2228571, 4830874, 5707533, 5992576, + 6145654, 6255891, 6344249, 6418762, 6483574, 6541169, 6593171, 6640705, 6684582, 6725411, 6763658, 6799688, 6833795, 6866216, + 6897147, 6926751, 6955167, 6982511, 7008884, 7034373, 3385639, 8020080, 10193895, 11003267, 11363217, 11587038, 11754343, 11890292, + 12005802, 12106754, 12196749, 12278176, 12352707, 12421564, 12485666, 12545725, 12602300, 12655844, 12706722, 12755241, 12801653, 12846174, + 12888988, 12930252, 4604934, 11552745, 15611219, 17507845, 18343396, 18789636, 19087573, 19314898, 19501084, 19659980, 19799260, 19923682, + 20036427, 20139734, 20235247, 20324208, 20407583, 20486134, 20560477, 20631116, 20698467, 20762881, 20824654, 20884040, 5832507, 15205380, + 21502655, 25075024, 26848841, 27751931, 28289749, 28664621, 28954513, 29193061, 29397101, 29576207, 29736371, 29881613, 30014774, 30137940, + 30252693, 30360259, 30461614, 30557543, 30648690, 30735590, 30818691, 30898373, 7035548, 18840800, 27532546, 33202135, 36448865, 38195876, + 39186266, 39819650, 40274688, 40630121, 40923463, 41174565, 41395021, 41592165, 41770940, 41934840, 42086433, 42227664, 42360044, 42484771, + 42602811, 42714956, 42821862, 42924082, 8195185, 22378523, 33493356, 41482508, 46644502, 49701696, 51476489, 52565259, 53297898, 53836763, + 54261253, 54612353, 54912885, 55176554, 55412153, 55625642, 55821245, 56002064, 56170449, 56328220, 56476820, 56617412, 56750946, 56878211, + 9301544, 25774103, 39267086, 49648472, 57003523, 61795678, 64757993, 66592364, 67786560, 68621912, 69248452, 69745882, 70158179, 70510989, + 70820169, 71096062, 71345740, 71574236, 71785251, 71981585, 72165408, 72338436, 72502049, 72657373, 10350423, 29005715, 44791868, 57544865, + 67219198, 74051079, 78590267, 81520163, 83433474, 84737874, 85679039, 86397025, 86971407, 87448634, 87856954, 88214342, 88532744, 88820422, + 89083289, 89325710, 89550990, 89761688, 89959828, 90147032, 11341100, 32065505, 50039879, 65091458, 77103160, 86145351, 92568433, 96943371, + 99881935, 101886379, 103304254, 104353859, 105166770, 105822020, 106368006, 106835297, 107243890, 107607339, 107935139, 108234147, 108509446, 108764898, + 109003495, 109227601, 12274912, 34954037, 55003599, 72253996, 86554211, 97866895, 106371817, 112486016, 116761274, 119735837, 121839202, 123372696, + 124532823, 125443708, 126183473, 126801968, 127331762, 127794730, 128205991, 128576291, 128913463, 129223358, 129510434, 129778160, 13154346, 37676763, + 59687336, 79025279, 95527939, 109094489, 119777248, 127840211, 133726393, 137948375, 140977341, 143184535, 144834893, 146107059, 147118467, 147946009, + 148640539, 149236300, 149756860, 150218827, 150634176, 151011735, 151358146, 151678504, 13982473, 40241785, 64102022, 85413480, 104014375, 119770618, + 132647971, 142781081, 150487894, 156209174, 160411227, 163507070, 165821033, 167588764, 168973939, 170087885, 171006017, 171779791, 172444802, 173026113, + 173541707, 174004745, 174425041, 174810042, 14762596, 42658475, 68262013, 91435087, 112023353, 129878772, 144913028, 157162253, 166826164, 174249664, + 179854531, 184060730, 187231886, 189654155, 191539166, 193037808, 194255785, 195266843, 196122692, 196859980, 197505049, 198077135, 198590516, 199055961, + 15498039, 44936616, 72183145, 97110678, 119575414, 139427092, 156546780, 170901247, 182590790, 191859807, 199059866, 204585389, 208813204, 212065293, + 214596390, 216598087, 218210193, 219533200, 220639045, 221579395, 222391675, 223103299, 223734617, 224300940, 16192022, 47085902, 75881561, 102462415, + 126696323, 148437559, 167552523, 183962530, 197690838, 208889587, 217829099, 224854119, 230328650, 234590797, 237927438, 240567130, 242684513, 244409678, + 245838265, 247040300, 248067166, 248956817, 249737540, 250430654, 16847599, 49115642, 79373033, 107512579, 133413823, 156939196, 177950763, 196342457, + 212081625, 225242856, 236015762, 244681669, 251570486, 257015776, 261321516, 264744880, 267492373, 269724114, 271561585, 273095895, 274395101, 275510099, + 276479153, 277331238 +]; + +; --- corner mos_sf, the log-domain current tables (M3c-4, #11211) --------------------------------- +/// NMOS log-domain current table, corner mos_sf, IHP-Open-PDK 21133f21, L 0.45 um, 27 C: the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (Vgs = ix * 15.625 mV, Vds = iy * 31.25 mV), then the 97 words rv = nint(4096 / s(Vgs)) at Vgs = ix * 15.625 mV (deck psp103_idpa_sf.cir, blocks lam_n and r_n). +pub const SF_LG_N : [4851]u32 = [ + 4294967295, 318348, 316126, 315941, 317555, 320678, 324648, 328929, 333218, 337435, 341508, 345414, 349148, 352714, + 356119, 359371, 362462, 365434, 368281, 371009, 373627, 376141, 378558, 380884, 383126, 385302, 387388, 389405, + 391357, 393246, 395078, 396856, 398582, 400260, 401893, 403483, 405033, 406545, 408022, 409466, 410879, 412264, + 413622, 414957, 416271, 417569, 418854, 420132, 421420, 422712, 363572, 361305, 361118, 362737, 365873, 369859, + 374158, 378486, 382707, 386800, 390726, 394478, 398048, 401466, 404732, 407853, 410837, 413695, 416432, 419058, + 421579, 424001, 426332, 428577, 430741, 432830, 434847, 436797, 438685, 440513, 442285, 444005, 445675, 447298, + 448877, 450413, 451911, 453371, 454802, 456193, 457553, 458884, 460188, 461467, 462724, 463962, 465183, 466394, + 467597, 408868, 406578, 406398, 408033, 411191, 415204, 419528, 423887, 428147, 432255, 436207, 439973, 443576, + 447016, 450301, 453440, 456441, 459314, 462066, 464704, 467237, 469671, 472011, 474264, 476436, 478531, 480553, + 482508, 484399, 486229, 488003, 489722, 491391, 493012, 494588, 496121, 497612, 499066, 500482, 501864, 503213, + 504531, 505820, 507082, 508319, 509536, 510728, 511902, 513061, 454233, 451933, 451767, 453424, 456611, 460655, + 465011, 469404, 473697, 477835, 481816, 485611, 489239, 492703, 496011, 499171, 502193, 505084, 507852, 510507, + 513054, 515501, 517854, 520119, 522301, 524406, 526437, 528400, 530297, 532134, 533913, 535637, 537310, 538934, + 540511, 542045, 543537, 544990, 546405, 547784, 549130, 550443, 551726, 552980, 554207, 555409, 556587, 557744, + 558883, 499665, 497364, 497215, 498899, 502117, 506196, 510592, 515017, 519344, 523520, 527524, 531353, 535009, + 538499, 541831, 545014, 548057, 550967, 553755, 556427, 558990, 561453, 563820, 566098, 568292, 570408, 572451, + 574423, 576330, 578175, 579962, 581693, 583372, 585002, 586585, 588123, 589619, 591074, 592492, 593873, 595219, + 596533, 597815, 599067, 600292, 601489, 602661, 603810, 604937, 545159, 542863, 542735, 544446, 547698, 551815, + 556248, 560711, 565074, 569284, 573321, 577180, 580865, 584382, 587739, 590946, 594010, 596942, 599748, 602438, + 605019, 607497, 609880, 612172, 614380, 616508, 618562, 620546, 622463, 624318, 626114, 627854, 629541, 631178, + 632767, 634312, 635813, 637274, 638696, 640081, 641431, 642748, 644033, 645287, 646512, 647710, 648881, 650028, + 651152, 590709, 588425, 588318, 590060, 593347, 597501, 601973, 606474, 610873, 615118, 619188, 623078, 626792, + 630336, 633719, 636949, 640036, 642988, 645815, 648523, 651122, 653616, 656014, 658321, 660543, 662684, 664750, + 666745, 668674, 670539, 672344, 674093, 675789, 677434, 679032, 680583, 682092, 683559, 684987, 686378, 687733, + 689054, 690343, 691601, 692830, 694030, 695204, 696352, 697476, 636306, 634042, 633960, 635732, 639054, 643246, + 647757, 652295, 656731, 661011, 665113, 669034, 672777, 676348, 679756, 683010, 686120, 689093, 691939, 694666, + 697282, 699793, 702206, 704527, 706763, 708917, 710996, 713003, 714942, 716818, 718634, 720392, 722097, 723751, + 725356, 726916, 728432, 729906, 731341, 732737, 734099, 735425, 736719, 737982, 739215, 740420, 741597, 742748, + 743875, 681940, 679705, 679649, 681452, 684810, 689040, 693588, 698164, 702636, 706949, 711084, 715035, 718806, + 722404, 725837, 729115, 732246, 735240, 738105, 740850, 743483, 746010, 748439, 750774, 753024, 755191, 757282, + 759300, 761251, 763137, 764963, 766731, 768445, 770107, 771721, 773288, 774812, 776293, 777735, 779138, 780505, + 781838, 783138, 784406, 785644, 786853, 788035, 789190, 790321, 727591, 725400, 725375, 727210, 730602, 734868, + 739453, 744065, 748572, 752918, 757084, 761064, 764863, 768486, 771943, 775243, 778395, 781409, 784293, 787056, + 789705, 792248, 794691, 797041, 799303, 801483, 803586, 805615, 807577, 809473, 811309, 813086, 814809, 816480, + 818102, 819677, 821208, 822696, 824144, 825554, 826928, 828267, 829572, 830846, 832089, 833303, 834490, 835649, + 836784, 773229, 771106, 771119, 772985, 776410, 780710, 785330, 789976, 794516, 798893, 803088, 807096, 810920, + 814568, 818047, 821369, 824541, 827573, 830474, 833254, 835918, 838476, 840933, 843296, 845571, 847762, 849876, + 851917, 853888, 855794, 857639, 859425, 861157, 862836, 864465, 866048, 867586, 869081, 870536, 871952, 873332, + 874676, 875987, 877266, 878514, 879733, 880925, 882089, 883228, 818810, 816793, 816852, 818750, 822206, 826537, + 831189, 835865, 840434, 844840, 849061, 853094, 856941, 860610, 864110, 867450, 870640, 873690, 876607, 879401, + 882079, 884650, 887120, 889495, 891781, 893983, 896107, 898157, 900138, 902053, 903906, 905700, 907439, 909125, + 910762, 912351, 913895, 915397, 916858, 918280, 919665, 921015, 922331, 923615, 924868, 926091, 927287, 928456, + 929598, 864261, 862409, 862530, 864461, 867943, 872301, 876979, 881681, 886274, 890702, 894945, 898999, 902865, + 906552, 910069, 913425, 916630, 919693, 922623, 925430, 928120, 930701, 933181, 935566, 937861, 940073, 942205, + 944263, 946252, 948174, 950034, 951835, 953580, 955273, 956915, 958510, 960060, 961566, 963032, 964459, 965849, + 967203, 968524, 969812, 971069, 972296, 973496, 974668, 975814, 909469, 907876, 908085, 910049, 913552, 917928, + 922623, 927342, 931952, 936396, 940653, 944720, 948600, 952299, 955827, 959193, 962408, 965480, 968420, 971234, + 973933, 976522, 979009, 981400, 983702, 985919, 988057, 990121, 992115, 994042, 995907, 997712, 999462, 1001159, + 1002806, 1004404, 1005958, 1007468, 1008938, 1010368, 1011761, 1013118, 1014442, 1015733, 1016993, 1018223, 1019425, 1020600, + 1021749, 954261, 953072, 953409, 955410, 958923, 963304, 968004, 972727, 977341, 981788, 986049, 990119, 994002, + 997704, 1001235, 1004604, 1007821, 1010896, 1013837, 1016654, 1019354, 1021946, 1024435, 1026828, 1029131, 1031351, 1033491, + 1035556, 1037551, 1039480, 1041346, 1043153, 1044905, 1046603, 1048251, 1049851, 1051406, 1052917, 1054388, 1055819, 1057213, + 1058572, 1059896, 1061188, 1062449, 1063681, 1064884, 1066059, 1067209, 998379, 997813, 998341, 1000382, 1003892, 1008260, + 1012945, 1017652, 1022251, 1026684, 1030931, 1034989, 1038859, 1042551, 1046071, 1049431, 1052639, 1055706, 1058640, 1061450, + 1064144, 1066729, 1069212, 1071600, 1073898, 1076113, 1078248, 1080310, 1082301, 1084226, 1086089, 1087893, 1089641, 1091336, + 1092981, 1094578, 1096130, 1097640, 1099108, 1100537, 1101929, 1103285, 1104608, 1105898, 1107157, 1108387, 1109588, 1110762, + 1111910, 1041464, 1041829, 1042645, 1044736, 1048223, 1052552, 1057193, 1061857, 1066413, 1070806, 1075015, 1079037, 1082875, + 1086535, 1090026, 1093359, 1096543, 1099586, 1102498, 1105287, 1107962, 1110529, 1112995, 1115367, 1117651, 1119851, 1121973, + 1124021, 1126001, 1127914, 1129766, 1131560, 1133298, 1134984, 1136620, 1138208, 1139752, 1141254, 1142714, 1144136, 1145521, + 1146871, 1148187, 1149471, 1150724, 1151948, 1153144, 1154312, 1155455, 1090180, 1088897, 1088225, 1089276, 1092130, 1096095, + 1100519, 1105042, 1109493, 1113799, 1117933, 1121886, 1125660, 1129262, 1132699, 1135981, 1139117, 1142116, 1144986, 1147737, + 1150374, 1152907, 1155341, 1157682, 1159937, 1162110, 1164206, 1166230, 1168186, 1170078, 1171908, 1173682, 1175401, 1177068, + 1178687, 1180259, 1181787, 1183273, 1184718, 1186126, 1187497, 1188834, 1190137, 1191409, 1192651, 1193863, 1195048, 1196206, + 1197338, 1146300, 1140576, 1136255, 1134722, 1135934, 1138917, 1142760, 1146925, 1151139, 1155273, 1159269, 1163105, 1166775, + 1170281, 1173631, 1176832, 1179892, 1182820, 1185624, 1188312, 1190891, 1193369, 1195751, 1198043, 1200251, 1202380, 1204434, + 1206419, 1208337, 1210193, 1211989, 1213730, 1215418, 1217055, 1218645, 1220190, 1221692, 1223152, 1224574, 1225958, 1227307, + 1228622, 1229905, 1231157, 1232379, 1233572, 1234739, 1235879, 1236995, 1202206, 1192708, 1184784, 1180295, 1179358, 1180883, + 1183764, 1187291, 1191069, 1194890, 1198648, 1202293, 1205801, 1209165, 1212387, 1215470, 1218422, 1221248, 1223958, 1226557, + 1229053, 1231452, 1233759, 1235981, 1238123, 1240188, 1242183, 1244110, 1245974, 1247778, 1249525, 1251219, 1252861, 1254456, + 1256004, 1257509, 1258973, 1260397, 1261783, 1263134, 1264450, 1265734, 1266986, 1268208, 1269402, 1270568, 1271708, 1272823, + 1273914, 1254135, 1242524, 1231987, 1224901, 1221788, 1221654, 1223320, 1225965, 1229099, 1232441, 1235832, 1239185, 1242454, + 1245615, 1248658, 1251582, 1254389, 1257083, 1259668, 1262152, 1264539, 1266835, 1269046, 1271177, 1273232, 1275215, 1277132, + 1278984, 1280777, 1282513, 1284196, 1285827, 1287410, 1288948, 1290442, 1291894, 1293308, 1294683, 1296023, 1297328, 1298601, + 1299843, 1301055, 1302238, 1303394, 1304523, 1305628, 1306708, 1307766, 1301030, 1288729, 1276681, 1267603, 1262550, 1260778, + 1261139, 1262765, 1265107, 1267830, 1270731, 1273691, 1276636, 1279525, 1282335, 1285054, 1287678, 1290206, 1292640, 1294982, + 1297238, 1299412, 1301507, 1303527, 1305478, 1307363, 1309185, 1310949, 1312656, 1314310, 1315915, 1317471, 1318983, 1320451, + 1321879, 1323268, 1324620, 1325936, 1327219, 1328470, 1329689, 1330880, 1332042, 1333177, 1334287, 1335372, 1336433, 1337471, + 1338487, 1342930, 1330880, 1318250, 1307814, 1301152, 1297884, 1296969, 1297542, 1299022, 1301043, 1303371, 1305857, 1308409, + 1310965, 1313490, 1315962, 1318367, 1320699, 1322955, 1325135, 1327241, 1329274, 1331238, 1333136, 1334970, 1336744, 1338461, + 1340124, 1341736, 1343298, 1344815, 1346287, 1347718, 1349109, 1350462, 1351779, 1353062, 1354311, 1355529, 1356718, 1357877, + 1359009, 1360115, 1361196, 1362252, 1363286, 1364297, 1365287, 1366256, 1380269, 1368992, 1356473, 1345258, 1337341, 1332770, + 1330676, 1330230, 1330846, 1332137, 1333850, 1335818, 1337930, 1340111, 1342312, 1344502, 1346660, 1348771, 1350829, 1352830, + 1354770, 1356651, 1358474, 1360239, 1361948, 1363604, 1365209, 1366766, 1368276, 1369742, 1371165, 1372549, 1373894, 1375202, + 1376476, 1377716, 1378925, 1380104, 1381253, 1382375, 1383470, 1384539, 1385585, 1386607, 1387606, 1388584, 1389542, 1390480, + 1391398, 1413596, 1403320, 1391373, 1379875, 1371051, 1365387, 1362241, 1360850, 1360639, 1361213, 1362308, 1363743, 1365394, + 1367177, 1369033, 1370920, 1372810, 1374684, 1376530, 1378338, 1380104, 1381824, 1383498, 1385125, 1386705, 1388240, 1389731, + 1391178, 1392585, 1393952, 1395281, 1396574, 1397832, 1399057, 1400250, 1401413, 1402547, 1403653, 1404732, 1405786, 1406815, + 1407821, 1408805, 1409767, 1410708, 1411630, 1412532, 1413416, 1414283, 1443457, 1434233, 1423119, 1411738, 1402332, 1395787, + 1391726, 1389482, 1388505, 1388400, 1388898, 1389809, 1391001, 1392381, 1393882, 1395457, 1397070, 1398697, 1400322, 1401931, + 1403516, 1405071, 1406593, 1408079, 1409529, 1410941, 1412317, 1413656, 1414960, 1416229, 1417465, 1418668, 1419841, 1420983, + 1422097, 1423184, 1424244, 1425279, 1426289, 1427277, 1428241, 1429185, 1430107, 1431010, 1431894, 1432759, 1433607, 1434438, + 1435253, 1470351, 1462133, 1451968, 1440998, 1431307, 1424086, 1419248, 1416249, 1414574, 1413841, 1413776, 1414186, 1414933, + 1415918, 1417068, 1418331, 1419665, 1421044, 1422444, 1423851, 1425252, 1426641, 1428009, 1429354, 1430673, 1431964, 1433226, + 1434458, 1435661, 1436834, 1437979, 1439096, 1440186, 1441249, 1442287, 1443300, 1444289, 1445256, 1446200, 1447123, 1448026, + 1448909, 1449773, 1450619, 1451448, 1452259, 1453055, 1453835, 1454600, 1494697, 1487400, 1478202, 1467839, 1458118, 1450419, + 1444940, 1441281, 1438983, 1437676, 1437090, 1437030, 1437355, 1437961, 1438772, 1439729, 1440790, 1441922, 1443100, 1444305, + 1445524, 1446745, 1447961, 1449166, 1450355, 1451526, 1452676, 1453803, 1454907, 1455988, 1457045, 1458078, 1459089, 1460076, + 1461041, 1461984, 1462906, 1463807, 1464689, 1465552, 1466396, 1467222, 1468031, 1468823, 1469600, 1470361, 1471107, 1471839, + 1472557, 1516867, 1510391, 1502117, 1492471, 1482929, 1474937, 1468946, 1464721, 1461869, 1460044, 1458981, 1458486, 1458415, + 1458663, 1459149, 1459812, 1460608, 1461499, 1462459, 1463467, 1464506, 1465563, 1466628, 1467694, 1468756, 1469808, 1470848, + 1471873, 1472881, 1473872, 1474844, 1475797, 1476731, 1477645, 1478541, 1479418, 1480276, 1481116, 1481939, 1482745, 1483534, + 1484306, 1485064, 1485806, 1486533, 1487247, 1487947, 1488634, 1489308, 1537154, 1531400, 1523982, 1515097, 1505895, 1497778, + 1491399, 1486698, 1483360, 1481070, 1479573, 1478677, 1478239, 1478151, 1478331, 1478716, 1479257, 1479917, 1480666, 1481481, + 1482344, 1483240, 1484158, 1485088, 1486024, 1486961, 1487893, 1488818, 1489733, 1490636, 1491526, 1492401, 1493262, 1494107, + 1494936, 1495750, 1496548, 1497330, 1498097, 1498849, 1499587, 1500310, 1501019, 1501714, 1502396, 1503065, 1503722, 1504367, + 1505001, 1555810, 1550690, 1544044, 1535919, 1527169, 1519075, 1512428, 1507336, 1503576, 1500871, 1498981, 1497719, 1496942, + 1496542, 1496434, 1496556, 1496855, 1497294, 1497840, 1498469, 1499162, 1499901, 1500675, 1501473, 1502286, 1503110, 1503937, + 1504764, 1505588, 1506406, 1507216, 1508017, 1508806, 1509584, 1510350, 1511104, 1511844, 1512571, 1513286, 1513987, 1514676, + 1515352, 1516016, 1516667, 1517307, 1517935, 1518552, 1519159, 1519754, 1573042, 1568476, 1562521, 1555124, 1546896, 1538949, + 1532145, 1526744, 1522623, 1519552, 1517308, 1515712, 1514623, 1513933, 1513557, 1513431, 1513502, 1513731, 1514083, 1514534, + 1515062, 1515650, 1516284, 1516953, 1517647, 1518360, 1519085, 1519817, 1520552, 1521287, 1522019, 1522747, 1523468, 1524181, + 1524886, 1525581, 1526267, 1526942, 1527606, 1528260, 1528902, 1529534, 1530155, 1530766, 1531366, 1531956, 1532535, 1533105, + 1533666, 1589029, 1584948, 1579606, 1572890, 1565215, 1557513, 1550656, 1545025, 1540601, 1537208, 1534647, 1532747, 1531371, + 1530413, 1529788, 1529430, 1529286, 1529315, 1529483, 1529763, 1530134, 1530576, 1531075, 1531618, 1532197, 1532802, 1533427, + 1534066, 1534714, 1535368, 1536025, 1536681, 1537336, 1537986, 1538632, 1539271, 1539903, 1540528, 1541144, 1541752, 1542351, + 1542940, 1543521, 1544093, 1544656, 1545209, 1545754, 1546290, 1546818, 1603915, 1600260, 1595460, 1589369, 1582255, 1574871, + 1568050, 1562265, 1557595, 1553923, 1551078, 1548903, 1547265, 1546059, 1545202, 1544627, 1544281, 1544122, 1544115, 1544233, + 1544452, 1544754, 1545122, 1545545, 1546011, 1546512, 1547039, 1547587, 1548151, 1548726, 1549309, 1549896, 1550485, 1551075, + 1551663, 1552248, 1552828, 1553404, 1553974, 1554537, 1555094, 1555644, 1556186, 1556721, 1557248, 1557768, 1558279, 1558784, + 1559281, 1617820, 1614542, 1610222, 1604699, 1598132, 1591115, 1584410, 1578541, 1573679, 1569769, 1566673, 1564249, 1562371, + 1560938, 1559865, 1559088, 1558552, 1558216, 1558043, 1558006, 1558081, 1558249, 1558492, 1558799, 1559156, 1559555, 1559988, + 1560448, 1560929, 1561427, 1561937, 1562457, 1562983, 1563512, 1564044, 1564576, 1565106, 1565634, 1566159, 1566680, 1567196, + 1567707, 1568212, 1568712, 1569205, 1569692, 1570172, 1570646, 1571114, 1630852, 1627906, 1624011, 1619002, 1612957, 1606335, + 1599808, 1593922, 1588921, 1584812, 1581497, 1578849, 1576753, 1575109, 1573837, 1572871, 1572158, 1571655, 1571326, 1571142, + 1571080, 1571119, 1571242, 1571436, 1571688, 1571989, 1572330, 1572704, 1573105, 1573528, 1573967, 1574421, 1574884, 1575355, + 1575832, 1576312, 1576793, 1577275, 1577756, 1578235, 1578712, 1579185, 1579654, 1580119, 1580580, 1581035, 1581485, 1581931, + 1582370, 1643099, 1640448, 1636930, 1632383, 1626830, 1620614, 1614315, 1608471, 1603380, 1599112, 1595606, 1592759, 1590464, + 1588627, 1587170, 1586029, 1585149, 1584489, 1584012, 1583689, 1583496, 1583413, 1583421, 1583507, 1583658, 1583864, 1584116, + 1584407, 1584729, 1585078, 1585449, 1585838, 1586240, 1586654, 1587077, 1587506, 1587939, 1588375, 1588813, 1589252, 1589690, + 1590126, 1590560, 1590992, 1591421, 1591846, 1592267, 1592684, 1593097, 1654639, 1652251, 1649069, 1644937, 1639839, 1634029, + 1627993, 1622241, 1617108, 1612718, 1609052, 1606028, 1603553, 1601540, 1599912, 1598607, 1597572, 1596764, 1596147, 1595693, + 1595376, 1595175, 1595073, 1595055, 1595109, 1595223, 1595389, 1595599, 1595845, 1596123, 1596426, 1596751, 1597094, 1597452, + 1597821, 1598200, 1598587, 1598979, 1599374, 1599773, 1600173, 1600573, 1600973, 1601372, 1601770, 1602165, 1602558, 1602948, + 1603335, 1665539, 1663387, 1660504, 1656745, 1652067, 1646653, 1640902, 1635284, 1630154, 1625679, 1621879, 1618700, 1616064, + 1613889, 1612104, 1610646, 1609466, 1608519, 1607771, 1607192, 1606757, 1606444, 1606237, 1606120, 1606079, 1606105, 1606188, + 1606319, 1606492, 1606699, 1606937, 1607201, 1607485, 1607788, 1608105, 1608435, 1608775, 1609123, 1609478, 1609837, 1610199, + 1610564, 1610931, 1611298, 1611665, 1612031, 1612396, 1612760, 1613121, 1675853, 1673913, 1671298, 1667874, 1663581, 1658546, + 1653093, 1647644, 1642556, 1638030, 1634125, 1630814, 1628033, 1625712, 1623781, 1622183, 1620866, 1619790, 1618917, 1618220, + 1617673, 1617254, 1616946, 1616734, 1616603, 1616544, 1616547, 1616602, 1616702, 1616843, 1617016, 1617219, 1617447, 1617696, + 1617962, 1618244, 1618538, 1618843, 1619157, 1619477, 1619803, 1620133, 1620467, 1620802, 1621139, 1621477, 1621815, 1622152, + 1622489, 1685639, 1683891, 1681517, 1678393, 1674453, 1669777, 1664626, 1659371, 1654358, 1649814, 1645830, 1642408, 1639500, + 1637045, 1634981, 1633252, 1631809, 1630610, 1629621, 1628812, 1628158, 1627638, 1627234, 1626930, 1626713, 1626572, 1626497, + 1626478, 1626509, 1626584, 1626695, 1626839, 1627011, 1627207, 1627423, 1627658, 1627907, 1628170, 1628443, 1628725, 1629015, + 1629311, 1629612, 1629916, 1630224, 1630533, 1630844, 1631156, 1631468, 1694936, 1693360, 1691204, 1688352, 1684732, 1680394, + 1675542, 1670498, 1665590, 1661058, 1657023, 1653510, 1650492, 1647918, 1645731, 1643881, 1642319, 1641006, 1639907, 1638993, + 1638238, 1637622, 1637126, 1636735, 1636435, 1636215, 1636064, 1635975, 1635939, 1635949, 1636000, 1636086, 1636203, 1636348, + 1636515, 1636703, 1636909, 1637130, 1637363, 1637608, 1637862, 1638124, 1638392, 1638666, 1638945, 1639226, 1639511, 1639797, + 1640085, 1703785, 1702367, 1700407, 1697800, 1694473, 1690450, 1685891, 1681069, 1676290, 1671797, 1667734, 1664151, 1661038, + 1658358, 1656061, 1654099, 1652427, 1651007, 1649804, 1648789, 1647939, 1647231, 1646648, 1646173, 1645794, 1645498, 1645275, + 1645117, 1645015, 1644964, 1644956, 1644986, 1645050, 1645144, 1645264, 1645406, 1645568, 1645748, 1645943, 1646150, 1646369, + 1646597, 1646834, 1647078, 1647327, 1647581, 1647839, 1648101, 1648365, 1712226, 1710951, 1709169, 1706784, 1703723, 1699992, + 1695715, 1691121, 1686488, 1682059, 1677991, 1674357, 1671166, 1668393, 1665995, 1663931, 1662157, 1660636, 1659335, 1658227, + 1657285, 1656490, 1655823, 1655269, 1654813, 1654444, 1654152, 1653928, 1653763, 1653651, 1653585, 1653561, 1653573, 1653618, + 1653691, 1653788, 1653908, 1654047, 1654204, 1654375, 1654559, 1654754, 1654959, 1655173, 1655393, 1655620, 1655852, 1656089, + 1656329, 1720283, 1719138, 1717518, 1715334, 1712516, 1709057, 1705048, 1700684, 1696212, 1691866, 1687815, 1684150, 1680896, + 1678042, 1675555, 1673396, 1671528, 1669913, 1668521, 1667324, 1666296, 1665418, 1664672, 1664041, 1663512, 1663073, 1662714, + 1662425, 1662199, 1662029, 1661908, 1661831, 1661792, 1661789, 1661816, 1661870, 1661948, 1662047, 1662166, 1662301, 1662451, + 1662613, 1662787, 1662971, 1663163, 1663363, 1663570, 1663782, 1663998, 1727988, 1726962, 1725489, 1723489, 1720893, 1717684, + 1713930, 1709793, 1705490, 1701245, 1697230, 1693551, 1690250, 1687328, 1684761, 1682518, 1680562, 1678860, 1677382, 1676100, + 1674992, 1674035, 1673212, 1672508, 1671909, 1671403, 1670979, 1670629, 1670344, 1670117, 1669942, 1669814, 1669726, 1669675, + 1669658, 1669669, 1669706, 1669767, 1669848, 1669948, 1670064, 1670194, 1670337, 1670492, 1670656, 1670829, 1671010, 1671197, + 1671391, 1735357, 1734442, 1733104, 1731271, 1728877, 1725900, 1722387, 1718472, 1714345, 1710214, 1706252, 1702577, 1699243, + 1696265, 1693630, 1691309, 1689274, 1687491, 1685933, 1684572, 1683386, 1682355, 1681460, 1680687, 1680020, 1679450, 1678964, + 1678554, 1678213, 1677931, 1677704, 1677525, 1677390, 1677293, 1677232, 1677201, 1677199, 1677221, 1677266, 1677331, 1677413, + 1677512, 1677625, 1677750, 1677887, 1678034, 1678189, 1678352, 1678523, 1742425, 1741611, 1740397, 1738717, 1736509, 1733745, + 1730459, 1726758, 1722809, 1718802, 1714909, 1711251, 1707899, 1704878, 1702183, 1699794, 1697685, 1695828, 1694194, 1692759, + 1691501, 1690398, 1689435, 1688595, 1687864, 1687231, 1686686, 1686219, 1685822, 1685488, 1685210, 1684983, 1684801, 1684660, + 1684555, 1684484, 1684442, 1684427, 1684436, 1684467, 1684517, 1684584, 1684667, 1684764, 1684873, 1684993, 1685124, 1685263, + 1685410, 1749211, 1748490, 1747389, 1745849, 1743811, 1741244, 1738170, 1734675, 1730904, 1727029, 1723216, 1719591, 1716234, + 1713180, 1710436, 1707987, 1705812, 1703885, 1702181, 1700677, 1699349, 1698179, 1697150, 1696246, 1695454, 1694762, 1694160, + 1693637, 1693187, 1692802, 1692475, 1692200, 1691973, 1691788, 1691642, 1691531, 1691451, 1691399, 1691373, 1691370, 1691388, + 1691424, 1691477, 1691546, 1691628, 1691722, 1691828, 1691943, 1692068, 1755733, 1755098, 1754102, 1752690, 1750807, 1748422, + 1745546, 1742248, 1738653, 1734915, 1731193, 1727613, 1724263, 1721188, 1718403, 1715901, 1713667, 1711677, 1709908, 1708338, + 1706945, 1705712, 1704620, 1703655, 1702804, 1702055, 1701397, 1700822, 1700320, 1699885, 1699511, 1699190, 1698919, 1698692, + 1698505, 1698355, 1698237, 1698150, 1698089, 1698053, 1698039, 1698045, 1698069, 1698109, 1698165, 1698233, 1698314, 1698406, + 1698508, 1762002, 1761446, 1760546, 1759252, 1757513, 1755296, 1752605, 1749495, 1746072, 1742474, 1738850, 1735326, 1731995, + 1728909, 1726094, 1723548, 1721260, 1719213, 1717384, 1715752, 1714299, 1713005, 1711854, 1710831, 1709924, 1709120, 1708409, + 1707783, 1707232, 1706749, 1706328, 1705963, 1705649, 1705381, 1705155, 1704967, 1704812, 1704690, 1704595, 1704527, 1704481, + 1704457, 1704453, 1704466, 1704495, 1704538, 1704595, 1704663, 1704742, 1768035, 1767553, 1766743, 1765558, 1763951, 1761889, + 1759371, 1756439, 1753183, 1749727, 1746207, 1742748, 1739446, 1736360, 1733523, 1730940, 1728607, 1726507, 1724622, 1722934, + 1721423, 1720072, 1718865, 1717787, 1716826, 1715970, 1715208, 1714532, 1713933, 1713405, 1712939, 1712531, 1712176, 1711868, + 1711603, 1711377, 1711188, 1711030, 1710903, 1710802, 1710727, 1710673, 1710641, 1710626, 1710629, 1710648, 1710680, 1710725, + 1710783, 1773844, 1773431, 1772703, 1771619, 1770134, 1768216, 1765859, 1763095, 1760001, 1756686, 1753276, 1749890, 1746626, + 1743550, 1740699, 1738088, 1735714, 1733568, 1731633, 1729892, 1728327, 1726923, 1725662, 1724532, 1723520, 1722613, 1721803, + 1721079, 1720435, 1719861, 1719353, 1718903, 1718508, 1718161, 1717859, 1717597, 1717372, 1717181, 1717022, 1716890, 1716784, + 1716702, 1716642, 1716601, 1716578, 1716572, 1716580, 1716603, 1716638, 1779458, 1779108, 1778457, 1777466, 1776094, 1774309, + 1772101, 1769497, 1766558, 1763382, 1760083, 1756776, 1753558, 1750500, 1747644, 1745010, 1742603, 1740415, 1738434, 1736644, + 1735030, 1733574, 1732263, 1731083, 1730021, 1729066, 1728209, 1727440, 1726751, 1726134, 1725584, 1725094, 1724659, 1724274, + 1723935, 1723638, 1723379, 1723156, 1722964, 1722802, 1722667, 1722556, 1722468, 1722401, 1722353, 1722322, 1722307, 1722307, + 1722321, 1784869, 1784579, 1783999, 1783094, 1781827, 1780165, 1778097, 1775642, 1772852, 1769813, 1766628, 1763405, 1760241, + 1757208, 1754355, 1751706, 1749272, 1747048, 1745026, 1743191, 1741529, 1740026, 1738668, 1737440, 1736331, 1735331, 1734428, + 1733615, 1732883, 1732225, 1731635, 1731106, 1730633, 1730211, 1729837, 1729505, 1729214, 1728958, 1728735, 1728543, 1728379, + 1728241, 1728126, 1728033, 1727960, 1727905, 1727867, 1727845, 1727837, 1790086, 1789851, 1789338, 1788514, 1787344, 1785797, + 1783860, 1781546, 1778900, 1775993, 1772923, 1769788, 1766684, 1763684, 1760841, 1758184, 1755729, 1753474, 1751415, 1749540, + 1747835, 1746288, 1744884, 1743611, 1742458, 1741414, 1740469, 1739613, 1738841, 1738143, 1737513, 1736946, 1736437, 1735980, + 1735571, 1735206, 1734882, 1734595, 1734343, 1734121, 1733929, 1733764, 1733623, 1733504, 1733407, 1733328, 1733268, 1733223, + 1733194, 1795142, 1794959, 1794507, 1793758, 1792678, 1791237, 1789423, 1787241, 1784730, 1781953, 1778996, 1775952, 1772912, + 1769951, 1767124, 1764466, 1761995, 1759715, 1757623, 1755710, 1753966, 1752377, 1750930, 1749615, 1748420, 1747333, 1746346, + 1745451, 1744638, 1743901, 1743234, 1742631, 1742085, 1741594, 1741151, 1740754, 1740398, 1740081, 1739799, 1739549, 1739329, + 1739137, 1738970, 1738826, 1738705, 1738603, 1738520, 1738453, 1738403, 1800027, 1799892, 1799499, 1798819, 1797823, 1796481, + 1794781, 1792724, 1790342, 1787691, 1784846, 1781894, 1778923, 1776007, 1773202, 1770549, 1768067, 1765767, 1763647, 1761701, + 1759919, 1758292, 1756806, 1755450, 1754214, 1753088, 1752062, 1751127, 1750276, 1749502, 1748799, 1748160, 1747580, 1747055, + 1746580, 1746151, 1745765, 1745417, 1745106, 1744828, 1744582, 1744363, 1744171, 1744003, 1743857, 1743733, 1743627, 1743540, + 1743469, 1804752, 1804662, 1804323, 1803708, 1802790, 1801542, 1799948, 1798009, 1795750, 1793219, 1790484, 1787627, 1784728, + 1781861, 1779084, 1776441, 1773955, 1771638, 1769494, 1767519, 1765705, 1764041, 1762518, 1761125, 1759851, 1758686, 1757622, + 1756650, 1755763, 1754953, 1754214, 1753541, 1752928, 1752370, 1751864, 1751404, 1750988, 1750612, 1750272, 1749967, 1749694, + 1749450, 1749233, 1749041, 1748872, 1748725, 1748598, 1748489, 1748398, 1809340, 1809293, 1809004, 1808450, 1807604, 1806442, + 1804947, 1803119, 1800976, 1798561, 1795935, 1793170, 1790345, 1787531, 1784788, 1782159, 1779673, 1777346, 1775182, 1773181, + 1771336, 1769639, 1768082, 1766652, 1765342, 1764141, 1763041, 1762033, 1761110, 1760266, 1759493, 1758787, 1758141, 1757552, + 1757014, 1756524, 1756079, 1755674, 1755308, 1754976, 1754676, 1754407, 1754166, 1753950, 1753758, 1753589, 1753440, 1753311, + 1753199, 1813781, 1813773, 1813531, 1813034, 1812257, 1811175, 1809774, 1808049, 1806017, 1803714, 1801192, 1798521, 1795772, + 1793015, 1790309, 1787700, 1785219, 1782885, 1780706, 1778682, 1776810, 1775084, 1773493, 1772031, 1770686, 1769450, 1768316, + 1767274, 1766317, 1765439, 1764634, 1763895, 1763218, 1762598, 1762031, 1761512, 1761038, 1760606, 1760213, 1759855, 1759530, + 1759236, 1758971, 1758732, 1758518, 1758327, 1758157, 1758007, 1757876, 1818085, 1818114, 1817917, 1817473, 1816760, 1815754, + 1814440, 1812814, 1810887, 1808689, 1806270, 1803691, 1801019, 1798322, 1795658, 1793073, 1790602, 1788265, 1786074, 1784031, + 1782136, 1780382, 1778762, 1777268, 1775891, 1774622, 1773455, 1772380, 1771391, 1770481, 1769644, 1768875, 1768168, 1767518, + 1766922, 1766375, 1765873, 1765414, 1764994, 1764611, 1764262, 1763944, 1763655, 1763394, 1763158, 1762945, 1762754, 1762584, + 1762433, 1822253, 1822318, 1822162, 1821769, 1821116, 1820181, 1818950, 1817415, 1815588, 1813493, 1811173, 1808685, 1806091, + 1803456, 1800836, 1798280, 1795823, 1793488, 1791289, 1789231, 1787315, 1785536, 1783889, 1782366, 1780959, 1779660, 1778461, + 1777355, 1776335, 1775394, 1774527, 1773728, 1772991, 1772313, 1771689, 1771114, 1770586, 1770101, 1769656, 1769248, 1768875, + 1768533, 1768222, 1767938, 1767680, 1767447, 1767236, 1767046, 1766876, 1826310, 1826408, 1826292, 1825945, 1825348, 1824480, + 1823326, 1821878, 1820145, 1818147, 1815923, 1813524, 1811008, 1808436, 1805864, 1803339, 1800900, 1798570, 1796367, 1794297, + 1792363, 1790562, 1788890, 1787340, 1785904, 1784576, 1783347, 1782211, 1781161, 1780191, 1779295, 1778466, 1777702, 1776996, + 1776344, 1775743, 1775189, 1774678, 1774208, 1773776, 1773379, 1773014, 1772680, 1772375, 1772096, 1771842, 1771611, 1771402, + 1771213, 1830244, 1830373, 1830294, 1829992, 1829447, 1828642, 1827560, 1826195, 1824551, 1822646, 1820515, 1818203, 1815765, + 1813257, 1810735, 1808246, 1805827, 1803507, 1801302, 1799224, 1797275, 1795455, 1793760, 1792185, 1790723, 1789367, 1788110, + 1786946, 1785868, 1784869, 1783945, 1783089, 1782296, 1781563, 1780885, 1780258, 1779679, 1779144, 1778649, 1778194, 1777774, + 1777387, 1777031, 1776704, 1776405, 1776131, 1775880, 1775652, 1775444, 1834081, 1834239, 1834194, 1833934, 1833439, 1832692, + 1831678, 1830390, 1828830, 1827014, 1824972, 1822745, 1820383, 1817941, 1815470, 1813018, 1810624, 1808316, 1806114, 1804029, + 1802068, 1800231, 1798516, 1796917, 1795430, 1794048, 1792765, 1791573, 1790468, 1789442, 1788490, 1787607, 1786788, 1786029, + 1785325, 1784673, 1784069, 1783509, 1782991, 1782512, 1782070, 1781661, 1781284, 1780936, 1780616, 1780322, 1780052, 1779805, + 1779579, 1837794, 1837980, 1837968, 1837747, 1837299, 1836608, 1835659, 1834444, 1832964, 1831233, 1829277, 1827133, 1824847, + 1822470, 1820053, 1817641, 1815274, 1812982, 1810786, 1808699, 1806729, 1804877, 1803144, 1801525, 1800015, 1798609, 1797300, + 1796083, 1794952, 1793900, 1792922, 1792013, 1791169, 1790385, 1789656, 1788980, 1788352, 1787769, 1787228, 1786727, 1786262, + 1785832, 1785434, 1785066, 1784726, 1784412, 1784124, 1783858, 1783614, 1841411, 1841622, 1841642, 1841458, 1841055, 1840416, + 1839527, 1838381, 1836977, 1835328, 1833454, 1831390, 1829179, 1826868, 1824505, 1822135, 1819798, 1817525, 1815337, 1813250, + 1811273, 1809410, 1807661, 1806023, 1804492, 1803063, 1801731, 1800490, 1799333, 1798256, 1797254, 1796320, 1795452, 1794643, + 1793890, 1793190, 1792539, 1791933, 1791370, 1790847, 1790361, 1789910, 1789491, 1789103, 1788744, 1788412, 1788104, 1787821, + 1787559, 1844946, 1845181, 1845230, 1845081, 1844719, 1844129, 1843297, 1842216, 1840884, 1839311, 1837517, 1835530, 1833392, + 1831146, 1828838, 1826512, 1824207, 1821954, 1819778, 1817694, 1815713, 1813840, 1812077, 1810422, 1808871, 1807421, 1806066, + 1804802, 1803622, 1802521, 1801494, 1800536, 1799644, 1798811, 1798035, 1797312, 1796638, 1796010, 1795425, 1794880, 1794373, + 1793902, 1793463, 1793055, 1792677, 1792326, 1792000, 1791698, 1791420, 1848370, 1848629, 1848705, 1848589, 1848266, 1847723, + 1846946, 1845927, 1844664, 1843164, 1841445, 1839535, 1837468, 1835287, 1833035, 1830755, 1828484, 1826255, 1824092, 1822014, + 1820031, 1818151, 1816377, 1814706, 1813138, 1811669, 1810294, 1809007, 1807805, 1806681, 1805631, 1804651, 1803735, 1802880, + 1802082, 1801336, 1800641, 1799991, 1799385, 1798820, 1798292, 1797801, 1797343, 1796916, 1796519, 1796149, 1795806, 1795487, + 1795191, 1851712, 1851993, 1852096, 1852011, 1851725, 1851226, 1850500, 1849539, 1848341, 1846911, 1845266, 1843428, 1841432, + 1839315, 1837118, 1834884, 1832649, 1830446, 1828299, 1826229, 1824247, 1822362, 1820578, 1818895, 1817311, 1815823, 1814429, + 1813122, 1811898, 1810752, 1809681, 1808678, 1807741, 1806864, 1806043, 1805276, 1804559, 1803889, 1803262, 1802676, 1802129, + 1801618, 1801141, 1800696, 1800280, 1799893, 1799532, 1799196, 1798883, 1854958, 1855259, 1855387, 1855332, 1855082, 1854624, + 1853947, 1853042, 1851905, 1850543, 1848968, 1847201, 1845273, 1843219, 1841079, 1838892, 1836695, 1834519, 1832391, 1830331, + 1828353, 1826466, 1824674, 1822979, 1821381, 1819878, 1818465, 1817139, 1815895, 1814729, 1813637, 1812613, 1811654, 1810756, + 1809915, 1809128, 1808390, 1807699, 1807053, 1806447, 1805881, 1805351, 1804855, 1804392, 1803958, 1803554, 1803176, 1802823, + 1802494, 1858137, 1858458, 1858609, 1858582, 1858365, 1857947, 1857315, 1856462, 1855385, 1854086, 1852577, 1850879, 1849017, + 1847025, 1844941, 1842802, 1840643, 1838497, 1836389, 1834341, 1832368, 1830480, 1828683, 1826979, 1825368, 1823850, 1822420, + 1821076, 1819813, 1818628, 1817515, 1816471, 1815492, 1814573, 1813712, 1812904, 1812146, 1811436, 1810769, 1810145, 1809559, + 1809011, 1808497, 1808015, 1807565, 1807143, 1806748, 1806379, 1806034, 1861219, 1861559, 1861732, 1861732, 1861547, 1861166, + 1860578, 1859776, 1858754, 1857517, 1856073, 1854440, 1852643, 1850713, 1848684, 1846593, 1844475, 1842359, 1840274, 1838241, + 1836276, 1834389, 1832588, 1830877, 1829255, 1827723, 1826279, 1824918, 1823638, 1822434, 1821302, 1820239, 1819240, 1818302, + 1817421, 1816594, 1815817, 1815088, 1814403, 1813760, 1813156, 1812589, 1812058, 1811559, 1811091, 1810652, 1810241, 1809856, + 1809495, 1864235, 1864592, 1864787, 1864812, 1864657, 1864312, 1863765, 1863010, 1862042, 1860862, 1859480, 1857910, 1856176, + 1854306, 1852333, 1850290, 1848212, 1846129, 1844068, 1842051, 1840095, 1838212, 1836409, 1834692, 1833061, 1831517, 1830059, + 1828682, 1827385, 1826164, 1825014, 1823933, 1822915, 1821958, 1821058, 1820212, 1819417, 1818669, 1817965, 1817304, 1816683, + 1816098, 1815549, 1815034, 1814549, 1814094, 1813667, 1813266, 1812890, 1867185, 1867559, 1867774, 1867822, 1867696, 1867384, + 1866877, 1866167, 1865249, 1864125, 1862801, 1861293, 1859619, 1857808, 1855889, 1853895, 1851857, 1849808, 1847772, 1845773, + 1843828, 1841950, 1840147, 1838425, 1836787, 1835233, 1833761, 1832371, 1831058, 1829820, 1828653, 1827554, 1826518, 1825543, + 1824625, 1823760, 1822947, 1822180, 1821459, 1820780, 1820141, 1819540, 1818974, 1818442, 1817941, 1817469, 1817026, 1816610, + 1816219, 1870054, 1870443, 1870677, 1870748, 1870649, 1870369, 1869900, 1869232, 1868363, 1867292, 1866025, 1864576, 1862962, + 1861208, 1859342, 1857396, 1855401, 1853386, 1851377, 1849398, 1847466, 1845594, 1843794, 1842069, 1840425, 1838861, 1837379, + 1835975, 1834648, 1833394, 1832211, 1831095, 1830043, 1829050, 1828114, 1827233, 1826401, 1825618, 1824879, 1824183, 1823528, + 1822910, 1822327, 1821779, 1821262, 1820775, 1820317, 1819885, 1819479, 1872856, 1873260, 1873512, 1873605, 1873532, 1873283, + 1872849, 1872222, 1871399, 1870379, 1869167, 1867774, 1866217, 1864519, 1862706, 1860809, 1858855, 1856875, 1854895, 1852937, + 1851019, 1849156, 1847359, 1845633, 1843984, 1842413, 1840921, 1839505, 1838165, 1836897, 1835698, 1834566, 1833497, 1832488, + 1831536, 1830637, 1829789, 1828988, 1828233, 1827521, 1826848, 1826214, 1825616, 1825051, 1824519, 1824017, 1823543, 1823097, + 1822677, 1875610, 1876028, 1876296, 1876410, 1876361, 1876140, 1875740, 1875152, 1874373, 1873401, 1872240, 1870902, 1869400, + 1867757, 1865996, 1864145, 1862234, 1860290, 1858339, 1856402, 1854501, 1852648, 1850855, 1849130, 1847477, 1845900, 1844398, + 1842971, 1841618, 1840337, 1839124, 1837976, 1836892, 1835866, 1834898, 1833982, 1833118, 1832301, 1831529, 1830800, 1830112, + 1829462, 1828848, 1828268, 1827720, 1827203, 1826714, 1826254, 1825819, 1878280, 1878712, 1878997, 1879130, 1879104, 1878912, + 1878544, 1877994, 1877256, 1876331, 1875220, 1873934, 1872486, 1870896, 1869186, 1867383, 1865515, 1863607, 1861686, 1859773, + 1857889, 1856047, 1854261, 1852538, 1850884, 1849301, 1847792, 1846356, 1844992, 1843698, 1842471, 1841310, 1840210, 1839170, + 1838185, 1837255, 1836374, 1835542, 1834754, 1834010, 1833306, 1832640, 1832011, 1831416, 1830854, 1830322, 1829819, 1829344, + 1828895, 1880902, 1881347, 1881647, 1881799, 1881795, 1881629, 1881292, 1880777, 1880079, 1879198, 1878136, 1876900, 1875504, + 1873965, 1872305, 1870549, 1868722, 1866851, 1864961, 1863073, 1861207, 1859378, 1857600, 1855880, 1854225, 1852639, 1851123, + 1849679, 1848304, 1846998, 1845759, 1844584, 1843470, 1842415, 1841416, 1840470, 1839574, 1838726, 1837924, 1837164, 1836445, + 1835765, 1835120, 1834511, 1833934, 1833387, 1832871, 1832382, 1831919, 1883458, 1883915, 1884230, 1884399, 1884417, 1884276, + 1883968, 1883487, 1882828, 1881989, 1880973, 1879786, 1878440, 1876952, 1875341, 1873631, 1871846, 1870012, 1868153, 1866291, + 1864445, 1862630, 1860861, 1859146, 1857492, 1855903, 1854383, 1852930, 1851547, 1850230, 1848979, 1847791, 1846664, 1845596, + 1844582, 1843622, 1842711, 1841849, 1841031, 1840257, 1839523, 1838828, 1838170, 1837546, 1836954, 1836394, 1835864, 1835361, + 1834885, 1885966, 1886434, 1886763, 1886949, 1886987, 1886870, 1886590, 1886141, 1885518, 1884720, 1883748, 1882608, 1881311, + 1879871, 1878308, 1876643, 1874900, 1873104, 1871276, 1869440, 1867615, 1865816, 1864057, 1862347, 1860695, 1859106, 1857581, + 1856122, 1854730, 1853404, 1852142, 1850942, 1849802, 1848720, 1847693, 1846719, 1845794, 1844917, 1844086, 1843297, 1842549, + 1841839, 1841167, 1840529, 1839924, 1839350, 1838806, 1838290, 1837801, 1888407, 1888886, 1889228, 1889431, 1889488, 1889394, + 1889141, 1888723, 1888136, 1887377, 1886447, 1885352, 1884102, 1882710, 1881194, 1879574, 1877873, 1876113, 1874318, 1872509, + 1870706, 1868923, 1867176, 1865474, 1863825, 1862236, 1860708, 1859244, 1857845, 1856510, 1855238, 1854027, 1852875, 1851781, + 1850741, 1849753, 1848815, 1847925, 1847079, 1846277, 1845515, 1844792, 1844106, 1843454, 1842836, 1842249, 1841692, 1841163, + 1840661, 1890800, 1891289, 1891644, 1891862, 1891938, 1891865, 1891638, 1891250, 1890696, 1889974, 1889086, 1888035, 1886830, + 1885484, 1884014, 1882437, 1880777, 1879055, 1877293, 1875512, 1873730, 1871966, 1870231, 1868538, 1866894, 1865305, 1863775, + 1862307, 1860902, 1859559, 1858278, 1857057, 1855894, 1854787, 1853735, 1852735, 1851784, 1850880, 1850021, 1849205, 1848430, + 1847694, 1846994, 1846329, 1845698, 1845098, 1844528, 1843987, 1843472, 1893144, 1893643, 1894010, 1894243, 1894336, 1894285, + 1894082, 1893722, 1893201, 1892515, 1891665, 1890656, 1889495, 1888194, 1886768, 1885235, 1883615, 1881930, 1880201, 1878448, + 1876690, 1874944, 1873223, 1871539, 1869901, 1868314, 1866784, 1865313, 1863902, 1862552, 1861262, 1860031, 1858858, 1857741, + 1856676, 1855664, 1854700, 1853784, 1852913, 1852084, 1851296, 1850546, 1849834, 1849156, 1848512, 1847899, 1847317, 1846763, + 1846236, 1895441, 1895948, 1896327, 1896574, 1896684, 1896653, 1896473, 1896140, 1895649, 1894998, 1894186, 1893217, 1892099, + 1890841, 1889459, 1887968, 1886388, 1884740, 1883044, 1881320, 1879586, 1877859, 1876153, 1874479, 1872847, 1871264, 1869734, + 1868261, 1866845, 1865489, 1864192, 1862952, 1861769, 1860641, 1859566, 1858542, 1857566, 1856638, 1855754, 1854912, 1854112, + 1853350, 1852624, 1851934, 1851278, 1850653, 1850058, 1849492, 1848953, 1897689, 1898205, 1898595, 1898855, 1898981, 1898969, + 1898812, 1898505, 1898044, 1897425, 1896649, 1895720, 1894642, 1893427, 1892087, 1890637, 1889097, 1887486, 1885823, 1884127, + 1882418, 1880711, 1879021, 1877359, 1875734, 1874155, 1872627, 1871152, 1869733, 1868372, 1867067, 1865820, 1864628, 1863490, + 1862404, 1861369, 1860382, 1859441, 1858546, 1857692, 1856879, 1856105, 1855368, 1854665, 1853997, 1853360, 1852753, 1852175, + 1851625, 1899888, 1900413, 1900813, 1901086, 1901227, 1901234, 1901098, 1900816, 1900383, 1899796, 1899056, 1898164, 1897126, + 1895951, 1894652, 1893244, 1891743, 1890168, 1888538, 1886871, 1885187, 1883501, 1881827, 1880178, 1878562, 1876988, 1875462, + 1873987, 1872566, 1871200, 1869889, 1868634, 1867434, 1866287, 1865191, 1864145, 1863147, 1862196, 1861289, 1860424, 1859599, + 1858813, 1858064, 1857350, 1856669, 1856020, 1855402, 1854813, 1854251, 1902039, 1902572, 1902982, 1903267, 1903423, 1903447, + 1903333, 1903075, 1902669, 1902113, 1901405, 1900550, 1899550, 1898416, 1897157, 1895788, 1894325, 1892786, 1891190, 1889553, + 1887894, 1886230, 1884573, 1882937, 1881331, 1879764, 1878240, 1876766, 1875343, 1873974, 1872658, 1871397, 1870188, 1869033, + 1867928, 1866872, 1865864, 1864902, 1863983, 1863107, 1862271, 1861474, 1860713, 1859988, 1859296, 1858636, 1858006, 1857405, + 1856833, 1904162, 1904701, 1905121, 1905417, 1905588, 1905628, 1905533, 1905298, 1904918, 1904391, 1903716, 1902895, 1901933, + 1900837, 1899617, 1898287, 1896862, 1895358, 1893794, 1892187, 1890554, 1888911, 1887273, 1885650, 1884055, 1882494, 1880975, + 1879502, 1878078, 1876706, 1875386, 1874118, 1872903, 1871739, 1870625, 1869560, 1868542, 1867569, 1866640, 1865753, 1864906, + 1864098, 1863326, 1862589, 1861886, 1861215, 1860574, 1859962, 1859378, 1906214, 1906762, 1907190, 1907498, 1907683, 1907739, + 1907664, 1907451, 1907096, 1906598, 1905954, 1905167, 1904241, 1903182, 1902001, 1900709, 1899321, 1897853, 1896322, 1894745, + 1893139, 1891518, 1889899, 1888291, 1886707, 1885155, 1883641, 1882170, 1880747, 1879373, 1878049, 1876776, 1875555, 1874384, + 1873262, 1872188, 1871161, 1870179, 1869240, 1868343, 1867485, 1866666, 1865884, 1865137, 1864423, 1863741, 1863089, 1862467, + 1861872, 1908260, 1908814, 1909251, 1909569, 1909766, 1909838, 1909781, 1909588, 1909258, 1908786, 1908173, 1907418, 1906526, + 1905503, 1904359, 1903104, 1901752, 1900319, 1898820, 1897272, 1895692, 1894094, 1892493, 1890902, 1889329, 1887786, 1886277, + 1884810, 1883387, 1882011, 1880684, 1879407, 1878180, 1877002, 1875872, 1874790, 1873754, 1872762, 1871813, 1870906, 1870038, + 1869209, 1868416, 1867658, 1866933, 1866240, 1865578, 1864945, 1864340, 1910235, 1910795, 1911241, 1911570, 1911779, 1911867, + 1911827, 1911655, 1911348, 1910903, 1910318, 1909595, 1908737, 1907750, 1906641, 1905423, 1904107, 1902708, 1901242, 1899724, + 1898170, 1896596, 1895015, 1893440, 1891881, 1890347, 1888845, 1887381, 1885960, 1884584, 1883255, 1881975, 1880742, 1879558, + 1878422, 1877332, 1876288, 1875287, 1874329, 1873413, 1872535, 1871696, 1870893, 1870125, 1869390, 1868688, 1868015, 1867373, + 1866758, 1912204, 1912770, 1913223, 1913561, 1913782, 1913884, 1913860, 1913708, 1913423, 1913003, 1912446, 1911753, 1910927, + 1909973, 1908900, 1907716, 1906435, 1905070, 1903635, 1902147, 1900620, 1899069, 1897508, 1895949, 1894403, 1892879, 1891385, + 1889926, 1888507, 1887131, 1885800, 1884516, 1883279, 1882089, 1880946, 1879849, 1878797, 1877788, 1876821, 1875895, 1875008, + 1874159, 1873346, 1872568, 1871823, 1871110, 1870428, 1869775, 1869150, 1914101, 1914673, 1915134, 1915481, 1915714, 1915830, + 1915823, 1915689, 1915426, 1915030, 1914501, 1913837, 1913043, 1912123, 1911084, 1909935, 1908688, 1907357, 1905954, 1904495, + 1902995, 1901468, 1899928, 1898387, 1896855, 1895342, 1893856, 1892403, 1890987, 1889612, 1888281, 1886995, 1885754, 1884560, + 1883411, 1882307, 1881247, 1880231, 1879256, 1878321, 1877425, 1876567, 1875745, 1874958, 1874204, 1873481, 1872789, 1872127, + 1871492, 1915992, 1916569, 1917037, 1917393, 1917637, 1917765, 1917774, 1917658, 1917416, 1917043, 1916539, 1915904, 1915140, + 1914251, 1913245, 1912130, 1910917, 1909618, 1908246, 1906817, 1905343, 1903840, 1902321, 1900797, 1899280, 1897778, 1896301, + 1894854, 1893441, 1892068, 1890737, 1889448, 1888205, 1887006, 1885851, 1884741, 1883674, 1882650, 1881667, 1880724, 1879820, + 1878952, 1878121, 1877324, 1876561, 1875829, 1875128, 1874456, 1873812, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 126608, 106236, 86938, + 71891, 60617, 52108, 45553, 40389, 36236, 32832, 29999, 27605, 25559, 23791, 22249, 20892, 19689, + 18616, 17653, 16784, 15996, 15278, 14622, 14019, 13464, 12951, 12475, 12033, 11621, 11237, 10877, + 10539, 10221, 9922, 9640, 9374, 9121, 8882, 8656, 8440, 8235, 8040, 7853, 7675, 7505, + 7343, 7187, 7038, 6894, 6757, 6625, 6497, 6375, 6257, 6144, 6034, 5929, 5827, 5728, + 5633, 5541, 5451, 5365, 5281, 5200, 5121, 5045, 4971, 4899, 4829, 4761, 4695, 4631, + 4568, 4508, 4448, 4391, 4334, 4280, 4226 +]; +/// PMOS log-domain current table, corner mos_sf, IHP-Open-PDK 21133f21, L 0.45 um, 27 C: the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (Vgs = ix * 15.625 mV, Vds = iy * 31.25 mV), then the 97 words rv = nint(4096 / s(Vgs)) at Vgs = ix * 15.625 mV (deck psp103_idpa_sf.cir, blocks lam_p and r_p). +pub const SF_LG_P : [4851]u32 = [ + 4294967295, 298104, 295075, 292421, 290880, 290425, 290601, 291032, 291544, 292094, 292612, 293134, 293658, 294188, + 294725, 295270, 295827, 296396, 296978, 297575, 298188, 298817, 299464, 300129, 300813, 301517, 302240, 302984, + 303749, 304536, 305347, 306183, 307047, 307945, 308884, 309909, 310979, 312145, 313440, 314909, 316608, 318613, + 321011, 323909, 327427, 331694, 336842, 342994, 350250, 358679, 342401, 339085, 336316, 334669, 334125, 334203, + 334530, 334934, 335350, 335773, 336173, 336571, 336968, 337366, 337768, 338175, 338588, 339009, 339438, 339876, + 340324, 340783, 341253, 341735, 342230, 342737, 343258, 343793, 344343, 344908, 345490, 346091, 346712, 347360, + 348039, 348786, 349571, 350432, 351399, 352507, 353802, 355344, 357207, 359478, 362258, 365657, 369794, 374784, + 380731, 386814, 383392, 380533, 378797, 378190, 378208, 378471, 378807, 379153, 379491, 379828, 380146, 380460, + 380772, 381083, 381395, 381710, 382028, 382349, 382676, 383008, 383345, 383690, 384041, 384400, 384766, 385141, + 385525, 385917, 386320, 386732, 387157, 387594, 388047, 388518, 389029, 389562, 390139, 390777, 391497, 392327, + 393305, 394477, 395900, 397644, 399789, 402428, 405659, 409586, 431332, 427883, 424969, 423167, 422511, 422490, + 422714, 423008, 423311, 423604, 423886, 424163, 424426, 424684, 424939, 425193, 425446, 425699, 425954, 426210, + 426469, 426730, 426995, 427263, 427536, 427813, 428094, 428381, 428673, 428970, 429274, 429585, 429903, 430230, + 430568, 430920, 431300, 431698, 432129, 432607, 433148, 433773, 434510, 435396, 436473, 437795, 439425, 441435, + 443905, 475945, 472503, 469557, 467712, 467018, 466972, 467171, 467440, 467716, 467982, 468235, 468477, 468714, + 468939, 469160, 469377, 469593, 469806, 470019, 470232, 470446, 470660, 470875, 471092, 471310, 471531, 471754, + 471980, 472208, 472440, 472675, 472913, 473156, 473404, 473658, 473920, 474197, 474484, 474789, 475120, 475486, + 475898, 476374, 476935, 477606, 478420, 479417, 480644, 482156, 520645, 517224, 514259, 512390, 511669, 511604, + 511788, 512042, 512302, 512551, 512787, 513010, 513224, 513430, 513633, 513829, 514021, 514211, 514398, 514585, + 514770, 514955, 515140, 515325, 515510, 515696, 515883, 516071, 516260, 516450, 516643, 516837, 517033, 517232, + 517434, 517640, 517851, 518074, 518303, 518546, 518808, 519096, 519418, 519788, 520219, 520733, 521351, 522103, + 523025, 565422, 562031, 559053, 557172, 556434, 556354, 556530, 556774, 557025, 557264, 557489, 557702, 557904, + 558098, 558286, 558469, 558649, 558824, 558997, 559167, 559336, 559503, 559669, 559835, 560000, 560164, 560329, + 560494, 560659, 560824, 560990, 561157, 561324, 561493, 561663, 561835, 562010, 562191, 562375, 562566, 562767, + 562982, 563216, 563476, 563769, 564109, 564507, 564982, 565554, 610267, 606910, 603926, 602039, 601293, 601203, + 601372, 601611, 601857, 602090, 602309, 602515, 602711, 602898, 603079, 603254, 603424, 603591, 603754, 603915, + 604075, 604231, 604387, 604540, 604693, 604845, 604996, 605147, 605297, 605447, 605597, 605747, 605897, 606048, + 606199, 606350, 606503, 606657, 606816, 606976, 607142, 607315, 607499, 607696, 607911, 608152, 608425, 608741, + 609112, 655168, 651850, 648867, 646977, 646228, 646133, 646297, 646534, 646777, 647007, 647223, 647426, 647618, + 647801, 647978, 648148, 648314, 648476, 648634, 648789, 648942, 649093, 649242, 649389, 649535, 649679, 649822, + 649965, 650106, 650247, 650388, 650527, 650667, 650806, 650946, 651085, 651225, 651365, 651506, 651650, 651795, + 651945, 652099, 652260, 652432, 652617, 652820, 653046, 653303, 700108, 696839, 693863, 691975, 691225, 691129, + 691291, 691526, 691769, 691998, 692213, 692415, 692605, 692787, 692961, 693129, 693293, 693452, 693607, 693760, + 693909, 694057, 694202, 694345, 694487, 694627, 694765, 694903, 695040, 695176, 695310, 695445, 695578, 695711, + 695843, 695976, 696107, 696239, 696372, 696504, 696639, 696774, 696912, 697054, 697201, 697355, 697518, 697694, + 697887, 745062, 741859, 738899, 737016, 736269, 736174, 736336, 736572, 736815, 737046, 737261, 737463, 737653, + 737835, 738009, 738177, 738339, 738497, 738652, 738803, 738951, 739097, 739241, 739382, 739522, 739660, 739796, + 739931, 740065, 740198, 740330, 740461, 740591, 740721, 740849, 740978, 741105, 741233, 741360, 741487, 741614, + 741742, 741871, 742002, 742135, 742272, 742414, 742563, 742720, 789993, 786885, 783952, 782080, 781338, 781247, + 781413, 781651, 781897, 782130, 782347, 782550, 782742, 782925, 783100, 783268, 783432, 783591, 783745, 783897, + 784045, 784191, 784334, 784475, 784614, 784752, 784888, 785022, 785155, 785287, 785417, 785547, 785676, 785803, + 785930, 786057, 786182, 786308, 786432, 786556, 786680, 786804, 786928, 787054, 787180, 787307, 787438, 787571, + 787710, 834841, 831876, 828988, 827133, 826401, 826318, 826490, 826734, 826984, 827221, 827442, 827649, 827844, + 828030, 828207, 828378, 828544, 828704, 828861, 829014, 829164, 829311, 829455, 829597, 829737, 829875, 830012, + 830146, 830280, 830412, 830543, 830672, 830801, 830929, 831055, 831181, 831306, 831431, 831555, 831678, 831801, + 831923, 832045, 832168, 832291, 832414, 832538, 832664, 832793, 879513, 876769, 873953, 872125, 871409, 871339, + 871522, 871775, 872033, 872278, 872505, 872718, 872919, 873109, 873291, 873467, 873636, 873800, 873960, 874116, + 874269, 874419, 874566, 874710, 874853, 874993, 875131, 875268, 875403, 875537, 875669, 875800, 875930, 876059, + 876187, 876314, 876440, 876565, 876689, 876813, 876936, 877059, 877181, 877303, 877424, 877546, 877668, 877791, + 877915, 923868, 921463, 918763, 916980, 916290, 916240, 916439, 916707, 916979, 917235, 917473, 917696, 917905, + 918103, 918293, 918475, 918651, 918821, 918987, 919148, 919306, 919460, 919612, 919761, 919907, 920051, 920193, + 920333, 920472, 920609, 920744, 920878, 921011, 921142, 921272, 921402, 921530, 921657, 921784, 921910, 922035, + 922159, 922283, 922406, 922529, 922651, 922773, 922895, 923018, 967691, 965809, 963292, 961579, 960928, 960909, + 961136, 961427, 961718, 961992, 962247, 962484, 962707, 962918, 963119, 963312, 963498, 963678, 963852, 964022, + 964188, 964349, 964508, 964664, 964816, 964967, 965115, 965261, 965405, 965547, 965687, 965826, 965963, 966099, + 966234, 966367, 966500, 966631, 966761, 966891, 967019, 967147, 967274, 967400, 967525, 967650, 967775, 967899, + 968023, 1010674, 1009581, 1007350, 1005746, 1005156, 1005184, 1005450, 1005776, 1006098, 1006399, 1006678, 1006938, 1007181, + 1007411, 1007629, 1007838, 1008039, 1008233, 1008421, 1008603, 1008780, 1008954, 1009123, 1009289, 1009451, 1009611, 1009768, + 1009923, 1010075, 1010225, 1010373, 1010519, 1010664, 1010807, 1010948, 1011088, 1011227, 1011364, 1011500, 1011635, 1011769, + 1011902, 1012034, 1012166, 1012296, 1012425, 1012554, 1012683, 1012811, 1059539, 1056610, 1052895, 1050347, 1049261, 1049068, + 1049257, 1049573, 1049913, 1050243, 1050552, 1050842, 1051113, 1051369, 1051613, 1051845, 1052067, 1052281, 1052488, 1052688, + 1052883, 1053072, 1053257, 1053437, 1053614, 1053787, 1053957, 1054124, 1054288, 1054449, 1054609, 1054765, 1054920, 1055073, + 1055224, 1055373, 1055521, 1055667, 1055812, 1055955, 1056097, 1056238, 1056378, 1056516, 1056654, 1056790, 1056926, 1057061, + 1057195, 1116092, 1108503, 1101152, 1096159, 1093629, 1092666, 1092481, 1092635, 1092922, 1093250, 1093582, 1093902, 1094208, + 1094498, 1094773, 1095036, 1095287, 1095528, 1095761, 1095985, 1096203, 1096414, 1096619, 1096819, 1097015, 1097206, 1097393, + 1097577, 1097757, 1097933, 1098107, 1098278, 1098447, 1098613, 1098777, 1098939, 1099098, 1099256, 1099412, 1099567, 1099719, + 1099870, 1100020, 1100169, 1100316, 1100461, 1100606, 1100749, 1100892, 1172710, 1161133, 1150199, 1142429, 1138009, 1135871, + 1135000, 1134780, 1134879, 1135126, 1135436, 1135766, 1136097, 1136420, 1136730, 1137028, 1137314, 1137588, 1137852, 1138106, + 1138352, 1138590, 1138821, 1139046, 1139265, 1139478, 1139686, 1139890, 1140090, 1140285, 1140477, 1140666, 1140851, 1141034, + 1141213, 1141390, 1141565, 1141737, 1141907, 1142074, 1142240, 1142404, 1142566, 1142726, 1142884, 1143041, 1143197, 1143351, + 1143504, 1225569, 1211715, 1198202, 1188039, 1181751, 1178293, 1176543, 1175762, 1175521, 1175573, 1175781, 1176068, 1176391, + 1176726, 1177061, 1177389, 1177707, 1178015, 1178312, 1178598, 1178875, 1179143, 1179402, 1179654, 1179899, 1180137, 1180369, + 1180596, 1180817, 1181034, 1181246, 1181453, 1181657, 1181858, 1182055, 1182248, 1182439, 1182626, 1182811, 1182993, 1183173, + 1183351, 1183526, 1183699, 1183870, 1184039, 1184206, 1184372, 1184536, 1273512, 1258896, 1243926, 1231979, 1224079, 1219355, + 1216672, 1215230, 1214534, 1214285, 1214302, 1214474, 1214734, 1215041, 1215371, 1215709, 1216046, 1216378, 1216702, 1217017, + 1217322, 1217618, 1217904, 1218183, 1218453, 1218715, 1218971, 1219219, 1219462, 1219699, 1219931, 1220158, 1220380, 1220598, + 1220812, 1221022, 1221228, 1221430, 1221630, 1221826, 1222019, 1222210, 1222398, 1222583, 1222766, 1222947, 1223125, 1223302, + 1223476, 1316473, 1302139, 1286677, 1273564, 1264372, 1258525, 1254947, 1252818, 1251609, 1250986, 1250736, 1250724, 1250861, + 1251090, 1251374, 1251689, 1252020, 1252355, 1252690, 1253020, 1253344, 1253660, 1253967, 1254266, 1254557, 1254840, 1255115, + 1255383, 1255645, 1255900, 1256148, 1256392, 1256629, 1256862, 1257090, 1257314, 1257534, 1257749, 1257961, 1258169, 1258374, + 1258575, 1258774, 1258969, 1259162, 1259352, 1259539, 1259724, 1259907, 1354808, 1341363, 1326144, 1312423, 1302258, 1295454, + 1291058, 1288261, 1286522, 1285486, 1284920, 1284670, 1284632, 1284734, 1284928, 1285182, 1285472, 1285784, 1286107, 1286434, + 1286760, 1287082, 1287399, 1287710, 1288013, 1288309, 1288597, 1288879, 1289153, 1289420, 1289682, 1289937, 1290186, 1290430, + 1290669, 1290903, 1291132, 1291357, 1291577, 1291794, 1292007, 1292216, 1292422, 1292625, 1292824, 1293021, 1293214, 1293405, + 1293594, 1389020, 1376748, 1362274, 1348423, 1337582, 1329988, 1324863, 1321443, 1319183, 1317721, 1316812, 1316288, 1316034, + 1315968, 1316034, 1316190, 1316408, 1316667, 1316952, 1317253, 1317562, 1317874, 1318186, 1318495, 1318799, 1319098, 1319391, + 1319678, 1319959, 1320233, 1320500, 1320762, 1321018, 1321268, 1321513, 1321753, 1321987, 1322218, 1322443, 1322665, 1322882, + 1323096, 1323306, 1323512, 1323715, 1323915, 1324112, 1324306, 1324497, 1419635, 1408611, 1395179, 1381590, 1370348, 1362124, + 1356364, 1352371, 1349616, 1347732, 1346470, 1345653, 1345158, 1344896, 1344804, 1344833, 1344950, 1345129, 1345352, 1345604, + 1345876, 1346160, 1346450, 1346744, 1347037, 1347328, 1347616, 1347900, 1348179, 1348452, 1348720, 1348982, 1349239, 1349491, + 1349737, 1349979, 1350215, 1350447, 1350674, 1350897, 1351115, 1351330, 1351541, 1351748, 1351952, 1352152, 1352350, 1352544, + 1352735, 1447155, 1437335, 1425078, 1412048, 1400660, 1391959, 1385655, 1381145, 1377928, 1375639, 1374026, 1372910, 1372161, + 1371686, 1371414, 1371294, 1371287, 1371365, 1371504, 1371688, 1371904, 1372143, 1372398, 1372662, 1372932, 1373204, 1373477, + 1373749, 1374018, 1374283, 1374545, 1374802, 1375055, 1375303, 1375547, 1375785, 1376020, 1376249, 1376474, 1376695, 1376912, + 1377125, 1377335, 1377540, 1377742, 1377941, 1378136, 1378329, 1378518, 1472009, 1463296, 1452232, 1439967, 1428663, 1419635, + 1412878, 1407911, 1404267, 1401596, 1399645, 1398233, 1397226, 1396528, 1396065, 1395782, 1395636, 1395596, 1395635, 1395735, + 1395881, 1396061, 1396265, 1396488, 1396723, 1396966, 1397215, 1397466, 1397717, 1397968, 1398217, 1398464, 1398707, 1398947, + 1399184, 1399416, 1399644, 1399869, 1400089, 1400306, 1400518, 1400727, 1400933, 1401134, 1401333, 1401528, 1401719, 1401908, + 1402094, 1494580, 1486856, 1476934, 1465552, 1454528, 1445321, 1438202, 1432835, 1428805, 1425778, 1423505, 1421805, 1420544, + 1419622, 1418962, 1418507, 1418213, 1418043, 1417971, 1417975, 1418038, 1418146, 1418290, 1418461, 1418651, 1418856, 1419071, + 1419294, 1419521, 1419751, 1419981, 1420212, 1420441, 1420669, 1420894, 1421117, 1421336, 1421552, 1421765, 1421975, 1422181, + 1422384, 1422583, 1422780, 1422973, 1423162, 1423349, 1423533, 1423714, 1515176, 1508325, 1499457, 1489005, 1478420, 1469177, + 1461788, 1456080, 1451704, 1448349, 1445775, 1443801, 1442293, 1441149, 1440293, 1439664, 1439215, 1438910, 1438719, 1438618, + 1438590, 1438619, 1438693, 1438802, 1438939, 1439098, 1439273, 1439460, 1439657, 1439860, 1440067, 1440276, 1440487, 1440698, + 1440909, 1441118, 1441326, 1441531, 1441734, 1441935, 1442132, 1442327, 1442519, 1442708, 1442895, 1443078, 1443259, 1443437, + 1443612, 1534063, 1527976, 1520060, 1510533, 1500502, 1491356, 1483792, 1477802, 1473122, 1469468, 1466613, 1464381, 1462636, + 1461279, 1460230, 1459427, 1458823, 1458379, 1458064, 1457853, 1457728, 1457670, 1457668, 1457710, 1457788, 1457894, 1458023, + 1458169, 1458329, 1458500, 1458678, 1458863, 1459051, 1459242, 1459434, 1459627, 1459820, 1460012, 1460203, 1460392, 1460580, + 1460765, 1460948, 1461129, 1461307, 1461483, 1461657, 1461828, 1461997, 1551459, 1546041, 1538973, 1530332, 1520928, 1511997, + 1504350, 1498142, 1493198, 1489276, 1486163, 1483688, 1481721, 1480158, 1478921, 1477949, 1477190, 1476607, 1476167, 1475844, + 1475617, 1475469, 1475386, 1475356, 1475369, 1475418, 1475495, 1475596, 1475715, 1475849, 1475995, 1476150, 1476312, 1476480, + 1476651, 1476825, 1477000, 1477176, 1477353, 1477529, 1477704, 1477878, 1478051, 1478222, 1478392, 1478559, 1478725, 1478888, + 1479050, 1567553, 1562719, 1556402, 1548587, 1539845, 1531228, 1523589, 1517224, 1512059, 1507899, 1504551, 1501852, 1499674, + 1497916, 1496500, 1495362, 1494453, 1493732, 1493167, 1492730, 1492401, 1492160, 1491993, 1491887, 1491833, 1491820, 1491842, + 1491893, 1491967, 1492061, 1492171, 1492294, 1492426, 1492567, 1492715, 1492867, 1493022, 1493181, 1493341, 1493502, 1493663, + 1493825, 1493986, 1494146, 1494305, 1494463, 1494620, 1494775, 1494928, 1582496, 1578175, 1572521, 1565465, 1557391, 1549161, + 1541615, 1535158, 1529816, 1525449, 1521888, 1518982, 1516608, 1514666, 1513078, 1511782, 1510726, 1509871, 1509182, 1508633, + 1508201, 1507866, 1507614, 1507430, 1507305, 1507228, 1507192, 1507190, 1507217, 1507268, 1507339, 1507426, 1507526, 1507638, + 1507759, 1507887, 1508021, 1508159, 1508301, 1508445, 1508591, 1508738, 1508886, 1509034, 1509182, 1509330, 1509477, 1509623, + 1509767, 1596419, 1592548, 1587479, 1581110, 1573689, 1565899, 1558522, 1552036, 1546562, 1542019, 1538269, 1535175, 1532618, + 1530504, 1528753, 1527305, 1526109, 1525123, 1524314, 1523654, 1523120, 1522691, 1522353, 1522091, 1521894, 1521751, 1521655, + 1521599, 1521576, 1521581, 1521610, 1521660, 1521726, 1521806, 1521898, 1522000, 1522110, 1522226, 1522348, 1522474, 1522603, + 1522735, 1522868, 1523003, 1523138, 1523275, 1523411, 1523547, 1523682, 1609431, 1605958, 1601406, 1595657, 1588859, 1581538, + 1574394, 1567941, 1562380, 1557694, 1553779, 1550514, 1547790, 1545514, 1543611, 1542019, 1540688, 1539576, 1538651, 1537882, + 1537247, 1536726, 1536302, 1535961, 1535692, 1535482, 1535325, 1535213, 1535138, 1535096, 1535082, 1535092, 1535122, 1535169, + 1535230, 1535304, 1535388, 1535481, 1535581, 1535687, 1535798, 1535912, 1536030, 1536151, 1536273, 1536396, 1536521, 1536646, + 1536771, 1621630, 1618509, 1614413, 1609221, 1603007, 1596168, 1589308, 1582945, 1577343, 1572547, 1568490, 1565073, 1562196, + 1559770, 1557724, 1555996, 1554536, 1553305, 1552266, 1551392, 1550659, 1550047, 1549539, 1549120, 1548778, 1548502, 1548283, + 1548113, 1547986, 1547895, 1547837, 1547805, 1547797, 1547809, 1547839, 1547883, 1547940, 1548008, 1548084, 1548169, 1548260, + 1548357, 1548458, 1548563, 1548670, 1548781, 1548893, 1549006, 1549121, 1633096, 1630288, 1626598, 1621904, 1616231, 1609872, + 1603333, 1597110, 1591512, 1586640, 1582467, 1578916, 1575900, 1573337, 1571157, 1569300, 1567719, 1566372, 1565226, 1564250, + 1563422, 1562721, 1562130, 1561634, 1561220, 1560877, 1560596, 1560369, 1560188, 1560049, 1559944, 1559871, 1559824, 1559800, + 1559796, 1559809, 1559838, 1559879, 1559932, 1559994, 1560064, 1560141, 1560224, 1560313, 1560405, 1560501, 1560600, 1560701, + 1560804, 1643901, 1641373, 1638043, 1633795, 1628621, 1622729, 1616534, 1610495, 1604944, 1600029, 1595765, 1592100, 1588959, + 1586270, 1583966, 1581989, 1580293, 1578837, 1577586, 1576513, 1575593, 1574806, 1574134, 1573561, 1573076, 1572668, 1572325, + 1572041, 1571807, 1571617, 1571467, 1571350, 1571263, 1571202, 1571164, 1571146, 1571145, 1571159, 1571186, 1571224, 1571273, + 1571330, 1571394, 1571464, 1571541, 1571621, 1571706, 1571794, 1571884, 1654102, 1651824, 1648815, 1644968, 1640249, 1634805, + 1628967, 1623147, 1617682, 1612759, 1608430, 1604670, 1601420, 1598617, 1596198, 1594109, 1592305, 1590745, 1589396, 1588229, + 1587220, 1586350, 1585599, 1584953, 1584398, 1583924, 1583521, 1583179, 1582892, 1582653, 1582456, 1582296, 1582169, 1582070, + 1581997, 1581946, 1581915, 1581900, 1581901, 1581915, 1581941, 1581977, 1582021, 1582073, 1582132, 1582197, 1582267, 1582340, + 1582418, 1663762, 1661708, 1658987, 1655497, 1651194, 1646172, 1640695, 1635120, 1629777, 1624878, 1620509, 1616673, 1613330, + 1610424, 1607900, 1605708, 1603802, 1602144, 1600701, 1599444, 1598350, 1597399, 1596571, 1595853, 1595231, 1594693, 1594230, + 1593832, 1593492, 1593203, 1592959, 1592756, 1592588, 1592451, 1592343, 1592258, 1592196, 1592153, 1592126, 1592115, 1592117, + 1592131, 1592155, 1592188, 1592229, 1592277, 1592331, 1592390, 1592454, 1672919, 1671068, 1668604, 1665437, 1661511, 1656886, + 1651765, 1646453, 1641262, 1636417, 1632035, 1628144, 1624722, 1621726, 1619107, 1616819, 1614819, 1613068, 1611536, 1610194, + 1609019, 1607990, 1607089, 1606301, 1605612, 1605012, 1604490, 1604036, 1603644, 1603306, 1603016, 1602769, 1602561, 1602386, + 1602241, 1602123, 1602029, 1601957, 1601903, 1601866, 1601844, 1601835, 1601837, 1601851, 1601873, 1601903, 1601941, 1601985, + 1602035, 1681619, 1679951, 1677719, 1674841, 1671259, 1667003, 1662228, 1657190, 1652175, 1647413, 1643043, 1639117, 1635632, + 1632559, 1629855, 1627479, 1625390, 1623554, 1621937, 1620515, 1619261, 1618158, 1617186, 1616330, 1615578, 1614917, 1614336, + 1613829, 1613385, 1612998, 1612663, 1612373, 1612123, 1611910, 1611729, 1611578, 1611452, 1611349, 1611267, 1611204, 1611157, + 1611125, 1611106, 1611099, 1611102, 1611115, 1611135, 1611163, 1611198, 1689903, 1688400, 1686378, 1683761, 1680490, 1676576, + 1672133, 1667374, 1662553, 1657899, 1653564, 1649623, 1646092, 1642953, 1640175, 1637719, 1635549, 1633632, 1631936, 1630436, + 1629109, 1627934, 1626894, 1625973, 1625158, 1624438, 1623801, 1623240, 1622746, 1622311, 1621931, 1621598, 1621308, 1621057, + 1620840, 1620654, 1620496, 1620364, 1620253, 1620163, 1620091, 1620035, 1619994, 1619966, 1619949, 1619943, 1619947, 1619959, + 1619978, 1697797, 1696444, 1694611, 1692230, 1689242, 1685644, 1681518, 1677036, 1672424, 1667898, 1663621, 1659685, 1656123, + 1652933, 1650090, 1647563, 1645319, 1643326, 1641557, 1639984, 1638586, 1637343, 1636237, 1635254, 1634379, 1633601, 1632910, + 1632297, 1631753, 1631272, 1630847, 1630471, 1630142, 1629852, 1629600, 1629380, 1629191, 1629028, 1628889, 1628772, 1628674, + 1628594, 1628531, 1628481, 1628444, 1628419, 1628405, 1628400, 1628403, 1705334, 1704117, 1702456, 1700288, 1697558, 1694250, + 1690423, 1686215, 1681820, 1677440, 1673241, 1669329, 1665753, 1662523, 1659626, 1657036, 1654725, 1652664, 1650825, 1649184, + 1647719, 1646411, 1645243, 1644199, 1643266, 1642433, 1641689, 1641025, 1640433, 1639905, 1639436, 1639020, 1638650, 1638323, + 1638035, 1637782, 1637560, 1637367, 1637200, 1637055, 1636932, 1636828, 1636742, 1636670, 1636613, 1636569, 1636536, 1636514, + 1636501, 1712532, 1711441, 1709936, 1707962, 1705465, 1702425, 1698880, 1694938, 1690764, 1686544, 1682441, 1678571, 1674997, + 1671742, 1668801, 1666157, 1663786, 1661661, 1659758, 1658054, 1656526, 1655156, 1653928, 1652827, 1651838, 1650952, 1650156, + 1649443, 1648804, 1648232, 1647720, 1647263, 1646854, 1646491, 1646168, 1645881, 1645628, 1645404, 1645208, 1645037, 1644888, + 1644760, 1644650, 1644557, 1644479, 1644415, 1644364, 1644324, 1644295, 1719428, 1718451, 1717088, 1715290, 1713007, 1710212, + 1706930, 1703243, 1699291, 1695241, 1691250, 1687439, 1683881, 1680613, 1677639, 1674950, 1672526, 1670344, 1668382, 1666618, + 1665031, 1663603, 1662318, 1661161, 1660119, 1659181, 1658336, 1657575, 1656890, 1656274, 1655720, 1655223, 1654777, 1654377, + 1654019, 1653699, 1653414, 1653161, 1652936, 1652738, 1652563, 1652411, 1652278, 1652163, 1652064, 1651980, 1651910, 1651853, + 1651806, 1726041, 1725168, 1723934, 1722296, 1720207, 1717638, 1714601, 1711158, 1707427, 1703553, 1699686, 1695948, 1692422, + 1689153, 1686157, 1683432, 1680962, 1678729, 1676713, 1674893, 1673250, 1671768, 1670428, 1669219, 1668125, 1667137, 1666245, + 1665438, 1664708, 1664050, 1663455, 1662918, 1662435, 1661999, 1661607, 1661254, 1660938, 1660655, 1660402, 1660177, 1659977, + 1659799, 1659643, 1659506, 1659386, 1659283, 1659194, 1659118, 1659055, 1732390, 1731612, 1730497, 1729005, 1727093, 1724731, + 1721921, 1718711, 1715195, 1711502, 1707769, 1704117, 1700636, 1697379, 1694371, 1691618, 1689109, 1686832, 1684767, 1682896, + 1681201, 1679667, 1678276, 1677016, 1675874, 1674838, 1673899, 1673047, 1672275, 1671575, 1670940, 1670365, 1669845, 1669374, + 1668948, 1668563, 1668216, 1667904, 1667623, 1667371, 1667145, 1666943, 1666764, 1666604, 1666464, 1666340, 1666232, 1666138, + 1666057, 1738486, 1737796, 1736789, 1735431, 1733681, 1731509, 1728911, 1725920, 1722614, 1719102, 1715510, 1711957, 1708533, + 1705300, 1702292, 1699519, 1696980, 1694664, 1692555, 1690637, 1688895, 1687312, 1685873, 1684565, 1683376, 1682295, 1681311, + 1680417, 1679603, 1678863, 1678189, 1677577, 1677021, 1676515, 1676056, 1675640, 1675263, 1674921, 1674613, 1674334, 1674083, + 1673857, 1673654, 1673473, 1673311, 1673167, 1673040, 1672927, 1672829, 1744349, 1743739, 1742832, 1741596, 1739995, 1737998, + 1735596, 1732812, 1729707, 1726376, 1722932, 1719485, 1716129, 1712932, 1709933, 1707151, 1704588, 1702239, 1700092, 1698133, + 1696346, 1694718, 1693234, 1691881, 1690647, 1689522, 1688496, 1687560, 1686706, 1685927, 1685216, 1684568, 1683976, 1683437, + 1682946, 1682499, 1682092, 1681722, 1681385, 1681080, 1680804, 1680554, 1680328, 1680125, 1679942, 1679778, 1679631, 1679501, + 1679385, 1749990, 1749454, 1748638, 1747515, 1746050, 1744214, 1741994, 1739405, 1736493, 1733340, 1730046, 1726714, 1723437, + 1720285, 1717306, 1714522, 1711944, 1709569, 1707389, 1705392, 1703566, 1701896, 1700369, 1698974, 1697698, 1696531, 1695465, + 1694489, 1693596, 1692779, 1692032, 1691349, 1690723, 1690151, 1689629, 1689151, 1688715, 1688316, 1687953, 1687622, 1687321, + 1687047, 1686799, 1686573, 1686370, 1686186, 1686020, 1685871, 1685738, 1755439, 1754971, 1754239, 1753219, 1751879, 1750190, + 1748138, 1745731, 1743004, 1740025, 1736881, 1733669, 1730478, 1727382, 1724430, 1721654, 1719067, 1716672, 1714465, 1712435, + 1710572, 1708863, 1707297, 1705861, 1704546, 1703339, 1702234, 1701219, 1700289, 1699436, 1698654, 1697936, 1697277, 1696673, + 1696119, 1695612, 1695147, 1694721, 1694331, 1693974, 1693649, 1693351, 1693080, 1692833, 1692608, 1692404, 1692219, 1692051, + 1691900, 1760688, 1760283, 1759629, 1758703, 1757478, 1755925, 1754029, 1751792, 1749241, 1746430, 1743437, 1740349, 1737253, + 1734220, 1731306, 1728545, 1725957, 1723549, 1721319, 1719261, 1717365, 1715622, 1714019, 1712546, 1711193, 1709949, 1708806, + 1707755, 1706789, 1705901, 1705085, 1704334, 1703643, 1703008, 1702424, 1701887, 1701394, 1700941, 1700525, 1700143, 1699793, + 1699472, 1699179, 1698910, 1698664, 1698440, 1698236, 1698051, 1697882, 1765746, 1765400, 1764818, 1763980, 1762861, 1761434, + 1759683, 1757605, 1755220, 1752572, 1749729, 1746768, 1743771, 1740809, 1737940, 1735203, 1732622, 1730206, 1727960, 1725879, + 1723955, 1722180, 1720544, 1719037, 1717648, 1716369, 1715191, 1714106, 1713105, 1712184, 1711334, 1710551, 1709830, 1709164, + 1708551, 1707986, 1707466, 1706986, 1706545, 1706138, 1705764, 1705421, 1705105, 1704815, 1704549, 1704305, 1704082, 1703878, + 1703692, 1770648, 1770356, 1769839, 1769082, 1768060, 1766749, 1765132, 1763202, 1760974, 1758483, 1755785, 1752952, 1750058, + 1747174, 1744358, 1741651, 1739083, 1736667, 1734409, 1732308, 1730361, 1728558, 1726891, 1725351, 1723930, 1722617, 1721406, + 1720287, 1719254, 1718300, 1717418, 1716604, 1715852, 1715158, 1714516, 1713923, 1713376, 1712870, 1712403, 1711973, 1711575, + 1711209, 1710871, 1710560, 1710274, 1710011, 1709769, 1709547, 1709343, 1775383, 1775141, 1774686, 1774003, 1773071, 1771867, + 1770373, 1768582, 1766502, 1764161, 1761606, 1758900, 1756114, 1753312, 1750555, 1747886, 1745337, 1742926, 1740662, 1738548, + 1736580, 1734753, 1733059, 1731490, 1730037, 1728694, 1727450, 1726300, 1725236, 1724250, 1723339, 1722495, 1721714, 1720991, + 1720321, 1719702, 1719128, 1718597, 1718106, 1717651, 1717231, 1716842, 1716483, 1716151, 1715845, 1715562, 1715301, 1715062, + 1714841, 1779962, 1779767, 1779368, 1778754, 1777905, 1776801, 1775422, 1773760, 1771819, 1769621, 1767205, 1764626, 1761948, + 1759234, 1756542, 1753917, 1751394, 1748994, 1746730, 1744606, 1742622, 1740774, 1739056, 1737460, 1735980, 1734607, 1733334, + 1732153, 1731059, 1730045, 1729104, 1728231, 1727422, 1726671, 1725975, 1725329, 1724730, 1724174, 1723659, 1723181, 1722738, + 1722328, 1721947, 1721595, 1721269, 1720967, 1720688, 1720431, 1720193, 1784410, 1784257, 1783911, 1783360, 1782588, 1781575, + 1780303, 1778761, 1776951, 1774888, 1772606, 1770152, 1767583, 1764959, 1762336, 1759761, 1757269, 1754886, 1752626, 1750497, + 1748501, 1746636, 1744896, 1743276, 1741770, 1740370, 1739069, 1737860, 1736738, 1735695, 1734726, 1733825, 1732989, 1732211, + 1731489, 1730817, 1730193, 1729614, 1729075, 1728574, 1728109, 1727677, 1727275, 1726903, 1726557, 1726237, 1725939, 1725664, + 1725409, 1788715, 1788602, 1788304, 1787813, 1787112, 1786184, 1785010, 1783581, 1781893, 1779959, 1777806, 1775474, 1773014, + 1770483, 1767934, 1765413, 1762959, 1760598, 1758348, 1756219, 1754214, 1752335, 1750577, 1748936, 1747407, 1745982, 1744655, + 1743420, 1742270, 1741200, 1740204, 1739277, 1738415, 1737612, 1736864, 1736168, 1735520, 1734916, 1734354, 1733831, 1733344, + 1732891, 1732470, 1732077, 1731712, 1731373, 1731058, 1730765, 1730493, 1792889, 1792813, 1792560, 1792124, 1791489, 1790639, + 1789558, 1788233, 1786661, 1784849, 1782819, 1780606, 1778255, 1775818, 1773346, 1770884, 1768472, 1766139, 1763903, 1761778, + 1759770, 1757880, 1756108, 1754449, 1752898, 1751450, 1750099, 1748839, 1747664, 1746569, 1745547, 1744595, 1743707, 1742879, + 1742107, 1741387, 1740716, 1740089, 1739505, 1738960, 1738452, 1737979, 1737537, 1737125, 1736741, 1736384, 1736051, 1735741, + 1735452, 1796931, 1796890, 1796680, 1796295, 1795722, 1794945, 1793950, 1792722, 1791258, 1789562, 1787650, 1785553, 1783310, + 1780968, 1778575, 1776177, 1773812, 1771510, 1769294, 1767178, 1765170, 1763274, 1761489, 1759815, 1758246, 1756777, 1755404, + 1754121, 1752923, 1751803, 1750758, 1749781, 1748870, 1748018, 1747222, 1746479, 1745785, 1745137, 1744531, 1743965, 1743436, + 1742943, 1742481, 1742051, 1741648, 1741273, 1740923, 1740596, 1740291, 1800869, 1800860, 1800689, 1800351, 1799835, 1799126, + 1798210, 1797073, 1795710, 1794123, 1792324, 1790338, 1788201, 1785954, 1783642, 1781310, 1778995, 1776730, 1774537, 1772433, + 1770429, 1768530, 1766737, 1765050, 1763464, 1761977, 1760584, 1759280, 1758059, 1756917, 1755848, 1754849, 1753914, 1753039, + 1752221, 1751456, 1750740, 1750069, 1749443, 1748856, 1748307, 1747793, 1747313, 1746864, 1746443, 1746050, 1745682, 1745339, + 1745018, 1804688, 1804709, 1804575, 1804281, 1803818, 1803172, 1802330, 1801279, 1800011, 1798526, 1796835, 1794957, 1792923, + 1790770, 1788541, 1786278, 1784017, 1781792, 1779627, 1777540, 1775544, 1773645, 1771847, 1770149, 1768550, 1767047, 1765636, + 1764312, 1763071, 1761907, 1760817, 1759795, 1758839, 1757942, 1757102, 1756315, 1755578, 1754887, 1754239, 1753633, 1753064, + 1752531, 1752032, 1751565, 1751126, 1750716, 1750331, 1749971, 1749634, 1808417, 1808465, 1808365, 1808111, 1807697, 1807110, + 1806337, 1805364, 1804185, 1802797, 1801208, 1799433, 1797499, 1795440, 1793294, 1791100, 1788897, 1786715, 1784581, 1782515, + 1780530, 1778635, 1776833, 1775128, 1773518, 1772001, 1770573, 1769231, 1767971, 1766787, 1765676, 1764634, 1763656, 1762738, + 1761877, 1761070, 1760312, 1759600, 1758933, 1758307, 1757719, 1757167, 1756650, 1756164, 1755708, 1755280, 1754879, 1754503, + 1754150, 1812027, 1812101, 1812032, 1811818, 1811450, 1810918, 1810209, 1809311, 1808215, 1806919, 1805426, 1803750, 1801914, + 1799947, 1797884, 1795763, 1793619, 1791485, 1789386, 1787344, 1785373, 1783485, 1781685, 1779975, 1778357, 1776828, 1775386, + 1774028, 1772750, 1771548, 1770418, 1769356, 1768358, 1767421, 1766540, 1765712, 1764934, 1764204, 1763517, 1762872, 1762265, + 1761696, 1761160, 1760657, 1760184, 1759740, 1759323, 1758931, 1758562, 1815546, 1815645, 1815605, 1815426, 1815101, 1814620, + 1813971, 1813142, 1812125, 1810915, 1809514, 1807933, 1806191, 1804314, 1802334, 1800286, 1798204, 1796119, 1794058, 1792044, + 1790092, 1788214, 1786417, 1784705, 1783081, 1781542, 1780088, 1778716, 1777422, 1776203, 1775055, 1773975, 1772958, 1772001, + 1771101, 1770255, 1769458, 1768708, 1768003, 1767340, 1766715, 1766128, 1765575, 1765054, 1764565, 1764104, 1763671, 1763263, + 1762880, 1818988, 1819109, 1819098, 1818952, 1818666, 1818233, 1817639, 1816875, 1815930, 1814800, 1813487, 1811996, 1810345, + 1808556, 1806658, 1804682, 1802663, 1800630, 1798610, 1796626, 1794695, 1792830, 1791039, 1789328, 1787699, 1786153, 1784689, + 1783303, 1781995, 1780760, 1779596, 1778498, 1777463, 1776489, 1775570, 1774705, 1773890, 1773122, 1772398, 1771717, 1771075, + 1770470, 1769900, 1769363, 1768857, 1768380, 1767931, 1767508, 1767110, 1822326, 1822468, 1822482, 1822367, 1822120, 1821730, + 1821189, 1820485, 1819610, 1818556, 1817325, 1815921, 1814357, 1812654, 1810837, 1808935, 1806980, 1805001, 1803024, 1801074, + 1799167, 1797318, 1795537, 1793829, 1792199, 1790648, 1789175, 1787779, 1786458, 1785209, 1784030, 1782916, 1781865, 1780873, + 1779937, 1779054, 1778222, 1777436, 1776696, 1775997, 1775338, 1774716, 1774130, 1773576, 1773055, 1772562, 1772098, 1771660, + 1771247, 1825587, 1825749, 1825787, 1825701, 1825488, 1825141, 1824648, 1824001, 1823190, 1822208, 1821054, 1819733, 1818253, + 1816633, 1814895, 1813066, 1811176, 1809252, 1807321, 1805407, 1803527, 1801697, 1799928, 1798226, 1796597, 1795042, 1793563, + 1792158, 1790826, 1789565, 1788371, 1787242, 1786175, 1785167, 1784215, 1783315, 1782466, 1781664, 1780906, 1780191, 1779515, + 1778877, 1778275, 1777706, 1777168, 1776661, 1776181, 1775729, 1775301, 1828757, 1828937, 1828998, 1828940, 1828760, 1828451, + 1828005, 1827411, 1826660, 1825746, 1824666, 1823423, 1822024, 1820485, 1818825, 1817069, 1815243, 1813376, 1811493, 1809617, + 1807767, 1805959, 1804204, 1802511, 1800885, 1799330, 1797846, 1796434, 1795093, 1793820, 1792614, 1791471, 1790390, 1789367, + 1788399, 1787484, 1786619, 1785801, 1785027, 1784296, 1783604, 1782951, 1782333, 1781748, 1781196, 1780673, 1780180, 1779713, + 1779271, 1831866, 1832064, 1832145, 1832112, 1831963, 1831690, 1831286, 1830742, 1830048, 1829197, 1828187, 1827018, 1825696, + 1824234, 1822650, 1820965, 1819205, 1817396, 1815561, 1813725, 1811907, 1810123, 1808385, 1806702, 1805082, 1803528, 1802041, + 1800624, 1799274, 1797992, 1796774, 1795619, 1794524, 1793487, 1792504, 1791574, 1790693, 1789860, 1789071, 1788324, 1787617, + 1786948, 1786315, 1785715, 1785148, 1784611, 1784103, 1783622, 1783167, 1834883, 1835097, 1835199, 1835190, 1835069, 1834831, + 1834467, 1833969, 1833329, 1832538, 1831594, 1830496, 1829248, 1827862, 1826351, 1824737, 1823042, 1821291, 1819507, 1817713, + 1815929, 1814171, 1812453, 1810784, 1809171, 1807620, 1806134, 1804712, 1803357, 1802066, 1800838, 1799672, 1798565, 1797515, + 1796519, 1795574, 1794679, 1793831, 1793028, 1792266, 1791544, 1790861, 1790213, 1789599, 1789018, 1788467, 1787945, 1787450, + 1786981, 1837840, 1838069, 1838189, 1838202, 1838108, 1837902, 1837576, 1837122, 1836531, 1835797, 1834915, 1833884, 1832707, + 1831393, 1829954, 1828409, 1826778, 1825085, 1823353, 1821603, 1819854, 1818125, 1816427, 1814774, 1813171, 1811625, 1810140, + 1808717, 1807357, 1806059, 1804823, 1803646, 1802528, 1801466, 1800457, 1799499, 1798590, 1797728, 1796910, 1796135, 1795399, + 1794701, 1794039, 1793411, 1792816, 1792251, 1791715, 1791207, 1790726, 1840736, 1840979, 1841116, 1841150, 1841081, 1840905, + 1840614, 1840200, 1839657, 1838976, 1838153, 1837185, 1836075, 1834830, 1833460, 1831983, 1830416, 1828781, 1827100, 1825395, + 1823684, 1821984, 1820310, 1818674, 1817083, 1815544, 1814062, 1812639, 1811275, 1809972, 1808728, 1807543, 1806414, 1805341, + 1804320, 1803350, 1802428, 1801553, 1800721, 1799932, 1799182, 1798470, 1797795, 1797153, 1796544, 1795966, 1795417, 1794896, + 1794402, 1843555, 1843811, 1843965, 1844019, 1843973, 1843825, 1843567, 1843193, 1842693, 1842062, 1841295, 1840388, 1839342, + 1838163, 1836861, 1835449, 1833945, 1832369, 1830741, 1829081, 1827409, 1825741, 1824093, 1822476, 1820899, 1819369, 1817892, + 1816470, 1815105, 1813798, 1812548, 1811355, 1810218, 1809134, 1808102, 1807121, 1806187, 1805299, 1804455, 1803652, 1802890, + 1802165, 1801476, 1800821, 1800199, 1799608, 1799047, 1798513, 1798006, 1846313, 1846582, 1846750, 1846823, 1846800, 1846678, + 1846451, 1846113, 1845655, 1845072, 1844357, 1843507, 1842522, 1841407, 1840170, 1838823, 1837380, 1835862, 1834286, 1832673, + 1831041, 1829407, 1827785, 1826189, 1824628, 1823110, 1821639, 1820220, 1818855, 1817545, 1816291, 1815092, 1813946, 1812854, + 1811812, 1810819, 1809874, 1808975, 1808118, 1807304, 1806528, 1805791, 1805090, 1804422, 1803788, 1803184, 1802610, 1802064, + 1801545, 1849028, 1849308, 1849491, 1849580, 1849577, 1849480, 1849282, 1848978, 1848559, 1848020, 1847354, 1846558, 1845632, + 1844578, 1843402, 1842117, 1840735, 1839273, 1837750, 1836183, 1834592, 1832993, 1831400, 1829826, 1828283, 1826776, 1825314, + 1823899, 1822536, 1821225, 1819967, 1818762, 1817610, 1816509, 1815458, 1814455, 1813499, 1812588, 1811720, 1810894, 1810107, + 1809357, 1808643, 1807964, 1807317, 1806701, 1806114, 1805556, 1805025, 1851665, 1851955, 1852152, 1852258, 1852275, 1852201, + 1852030, 1851758, 1851376, 1850879, 1850260, 1849516, 1848645, 1847649, 1846535, 1845310, 1843987, 1842581, 1841110, 1839591, + 1838042, 1836479, 1834916, 1833367, 1831842, 1830351, 1828898, 1827490, 1826130, 1824819, 1823559, 1822350, 1821192, 1820084, + 1819025, 1818014, 1817048, 1816127, 1815248, 1814410, 1813612, 1812851, 1812125, 1811434, 1810775, 1810148, 1809550, 1808980, + 1808437, 1854258, 1854558, 1854767, 1854888, 1854924, 1854871, 1854727, 1854485, 1854138, 1853679, 1853105, 1852409, 1851591, + 1850651, 1849594, 1848427, 1847162, 1845812, 1844393, 1842921, 1841414, 1839888, 1838357, 1836833, 1835329, 1833853, 1832412, + 1831012, 1829655, 1828346, 1827085, 1825874, 1824711, 1823597, 1822530, 1821511, 1820536, 1819605, 1818716, 1817868, 1817058, + 1816286, 1815550, 1814847, 1814177, 1813538, 1812929, 1812347, 1811793, 1856790, 1857100, 1857320, 1857456, 1857508, 1857477, + 1857357, 1857143, 1856828, 1856408, 1855875, 1855226, 1854458, 1853571, 1852570, 1851459, 1850250, 1848955, 1847587, 1846163, + 1844699, 1843210, 1841711, 1840215, 1838733, 1837274, 1835846, 1834455, 1833105, 1831798, 1830538, 1829325, 1828158, 1827039, + 1825967, 1824940, 1823957, 1823017, 1822119, 1821261, 1820441, 1819658, 1818911, 1818197, 1817516, 1816866, 1816246, 1815654, + 1815089, 1859278, 1859597, 1859828, 1859977, 1860046, 1860033, 1859936, 1859749, 1859465, 1859080, 1858586, 1857981, 1857260, + 1856425, 1855476, 1854420, 1853266, 1852023, 1850706, 1849330, 1847908, 1846458, 1844992, 1843524, 1842065, 1840625, 1839212, + 1837831, 1836488, 1835186, 1833927, 1832713, 1831544, 1830421, 1829343, 1828309, 1827319, 1826371, 1825464, 1824596, 1823767, + 1822974, 1822217, 1821493, 1820801, 1820141, 1819510, 1818907, 1818331, 1861704, 1862031, 1862273, 1862435, 1862519, 1862525, + 1862449, 1862287, 1862033, 1861681, 1861225, 1860661, 1859986, 1859199, 1858302, 1857299, 1856197, 1855007, 1853740, 1852410, + 1851032, 1849621, 1848189, 1846751, 1845316, 1843896, 1842499, 1841130, 1839796, 1838499, 1837243, 1836030, 1834860, 1833734, + 1832651, 1831612, 1830615, 1829660, 1828745, 1827868, 1827030, 1826228, 1825461, 1824727, 1824025, 1823355, 1822714, 1822101, + 1821515, 1864087, 1864422, 1864673, 1864847, 1864945, 1864968, 1864913, 1864775, 1864548, 1864227, 1863807, 1863283, 1862651, + 1861910, 1861062, 1860109, 1859059, 1857919, 1856701, 1855418, 1854084, 1852711, 1851315, 1849906, 1848498, 1847099, 1845719, + 1844363, 1843038, 1841749, 1840497, 1839285, 1838115, 1836987, 1835901, 1834857, 1833854, 1832892, 1831969, 1831085, 1830238, + 1829427, 1828651, 1827908, 1827197, 1826516, 1825865, 1825243, 1824647, 1866425, 1866768, 1867029, 1867213, 1867325, 1867364, + 1867328, 1867212, 1867011, 1866720, 1866333, 1865846, 1865256, 1864559, 1863758, 1862854, 1861853, 1860762, 1859593, 1858356, + 1857064, 1855731, 1854370, 1852992, 1851610, 1850234, 1848872, 1847531, 1846217, 1844935, 1843689, 1842480, 1841310, 1840181, + 1839092, 1838044, 1837036, 1836068, 1835139, 1834248, 1833393, 1832573, 1831788, 1831036, 1830316, 1829626, 1828966, 1828334, + 1827728, 1868720, 1869069, 1869339, 1869534, 1869658, 1869713, 1869695, 1869600, 1869423, 1869160, 1868805, 1868353, 1867802, + 1867147, 1866391, 1865534, 1864580, 1863538, 1862416, 1861224, 1859975, 1858681, 1857356, 1856010, 1854655, 1853302, 1851959, + 1850634, 1849332, 1848060, 1846819, 1845614, 1844446, 1843317, 1842226, 1841175, 1840163, 1839190, 1838255, 1837356, 1836494, + 1835667, 1834874, 1834113, 1833384, 1832685, 1832016, 1831375, 1830760, 1870971, 1871326, 1871604, 1871809, 1871945, 1872014, + 1872013, 1871938, 1871785, 1871548, 1871223, 1870805, 1870290, 1869676, 1868962, 1868150, 1867243, 1866247, 1865171, 1864024, + 1862817, 1861563, 1860273, 1858959, 1857633, 1856304, 1854982, 1853673, 1852385, 1851122, 1849889, 1848689, 1847524, 1846395, + 1845304, 1844250, 1843235, 1842257, 1841317, 1840412, 1839543, 1838709, 1837908, 1837139, 1836402, 1835695, 1835016, 1834366, + 1833743, 1873178, 1873539, 1873824, 1874038, 1874186, 1874268, 1874283, 1874227, 1874096, 1873884, 1873588, 1873201, 1872722, + 1872146, 1871473, 1870704, 1869842, 1868891, 1867860, 1866757, 1865592, 1864377, 1863123, 1861842, 1860545, 1859241, 1857939, + 1856648, 1855375, 1854123, 1852899, 1851704, 1850543, 1849416, 1848325, 1847270, 1846252, 1845271, 1844325, 1843415, 1842540, + 1841699, 1840891, 1840115, 1839370, 1838654, 1837968, 1837309, 1836677, 1875340, 1875706, 1875999, 1876222, 1876380, 1876476, + 1876506, 1876467, 1876357, 1876169, 1875899, 1875543, 1875097, 1874558, 1873925, 1873197, 1872378, 1871471, 1870484, 1869424, + 1868300, 1867124, 1865907, 1864658, 1863390, 1862112, 1860833, 1859561, 1858302, 1857063, 1855848, 1854661, 1853504, 1852380, + 1851290, 1850235, 1849215, 1848230, 1847281, 1846366, 1845486, 1844638, 1843824, 1843041, 1842288, 1841565, 1840871, 1840204, + 1839564, 1877478, 1877849, 1878148, 1878379, 1878547, 1878655, 1878699, 1878677, 1878586, 1878420, 1878176, 1877849, 1877434, + 1876930, 1876334, 1875646, 1874868, 1874003, 1873058, 1872040, 1870957, 1869820, 1868638, 1867423, 1866184, 1864932, 1863676, + 1862423, 1861181, 1859955, 1858750, 1857571, 1856420, 1855299, 1854210, 1853155, 1852134, 1851147, 1850194, 1849275, 1848390, + 1847537, 1846716, 1845926, 1845166, 1844436, 1843734, 1843060, 1842412, 1879550, 1879926, 1880231, 1880471, 1880649, 1880768, + 1880826, 1880820, 1880748, 1880604, 1880384, 1880084, 1879700, 1879229, 1878669, 1878020, 1877282, 1876458, 1875555, 1874578, + 1873535, 1872436, 1871291, 1870109, 1868901, 1867676, 1866444, 1865211, 1863986, 1862775, 1861581, 1860411, 1859266, 1858150, + 1857065, 1856011, 1854989, 1854001, 1853046, 1852123, 1851233, 1850375, 1849549, 1848753, 1847987, 1847250, 1846542, 1845860, + 1845205, 1881618, 1881999, 1882310, 1882556, 1882743, 1882872, 1882943, 1882952, 1882897, 1882773, 1882576, 1882301, 1881946, + 1881506, 1880980, 1880367, 1879667, 1878883, 1878020, 1877083, 1876079, 1875017, 1873907, 1872759, 1871581, 1870383, 1869175, + 1867963, 1866756, 1865559, 1864378, 1863217, 1862080, 1860969, 1859886, 1858834, 1857813, 1856823, 1855866, 1854940, 1854046, + 1853184, 1852352, 1851551, 1850778, 1850035, 1849319, 1848631, 1847968, 1883620, 1884005, 1884322, 1884575, 1884771, 1884910, + 1884993, 1885017, 1884979, 1884874, 1884699, 1884449, 1884121, 1883712, 1883219, 1882641, 1881978, 1881233, 1880408, 1879510, + 1878545, 1877521, 1876447, 1875331, 1874184, 1873014, 1871831, 1870641, 1869453, 1868272, 1867104, 1865954, 1864825, 1863720, + 1862642, 1861592, 1860572, 1859583, 1858624, 1857696, 1856799, 1855933, 1855097, 1854290, 1853513, 1852764, 1852042, 1851346, + 1850677, 1885619, 1886008, 1886329, 1886589, 1886792, 1886941, 1887035, 1887072, 1887049, 1886962, 1886807, 1886581, 1886279, + 1885898, 1885436, 1884891, 1884263, 1883555, 1882768, 1881907, 1880980, 1879992, 1878953, 1877870, 1876753, 1875611, 1874452, + 1873285, 1872115, 1870951, 1869797, 1868658, 1867538, 1866440, 1865366, 1864320, 1863302, 1862312, 1861353, 1860423, 1859523, + 1858653, 1857813, 1857002, 1856219, 1855464, 1854736, 1854034, 1853358, 1887550, 1887943, 1888269, 1888535, 1888746, 1888904, + 1889010, 1889060, 1889052, 1888982, 1888847, 1888643, 1888366, 1888013, 1887581, 1887068, 1886475, 1885802, 1885052, 1884229, + 1883338, 1882386, 1881382, 1880332, 1879246, 1878133, 1877000, 1875855, 1874706, 1873559, 1872419, 1871292, 1870182, 1869092, + 1868025, 1866983, 1865967, 1864979, 1864020, 1863089, 1862187, 1861315, 1860471, 1859656, 1858868, 1858108, 1857375, 1856668, + 1855986, 1889479, 1889875, 1890206, 1890477, 1890695, 1890861, 1890976, 1891038, 1891044, 1890991, 1890874, 1890691, 1890438, + 1890110, 1889706, 1889224, 1888664, 1888025, 1887310, 1886522, 1885667, 1884751, 1883780, 1882763, 1881707, 1880622, 1879514, + 1878393, 1877264, 1876135, 1875010, 1873896, 1872796, 1871715, 1870654, 1869616, 1868604, 1867617, 1866658, 1865727, 1864824, + 1863949, 1863102, 1862283, 1861491, 1860726, 1859987, 1859275, 1858587, 136533, 136533, 136533, 136533, 136533, 136533, + 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 136533, 126608, 106236, 86938, + 71891, 60617, 52108, 45553, 40389, 36236, 32832, 29999, 27605, 25559, 23791, 22249, 20892, 19689, + 18616, 17653, 16784, 15996, 15278, 14622, 14019, 13464, 12951, 12475, 12033, 11621, 11237, 10877, + 10539, 10221, 9922, 9640, 9374, 9121, 8882, 8656, 8440, 8235, 8040, 7853, 7675, 7505, + 7343, 7187, 7038, 6894, 6757, 6625, 6497, 6375, 6257, 6144, 6034, 5929, 5827, 5728, + 5633, 5541, 5451, 5365, 5281, 5200, 5121, 5045, 4971, 4899, 4829, 4761, 4695, 4631, + 4568, 4508, 4448, 4391, 4334, 4280, 4226 +]; +/// NMOS drain current in pA at 1000 centres of the log grid's cells, corner mos_sf, point k = 1 .. 1000 at Vgs = (floor(96 frac(k a1)) + 1/2) * 15.625 mV, Vds = (floor(48 frac(k a2)) + 1/2) * 31.25 mV (deck psp103_idpa_sf.cir, block cen_n). +pub const SF_CEN_N : [1000]u32 = [ + 195433524, 46143045, 4444596, 105, 217525708, 70422265, 7370521, 393, 110750288, 84835343, 7167795, 1323, 218285259, 98926804, + 11831714, 1364, 244804284, 90334727, 15063878, 6216, 268227916, 112264040, 13210276, 22090, 190753265, 129816743, 21078046, 70890, + 273974198, 60643710, 28849144, 53262, 303881608, 132212243, 37391137, 200886, 95237797, 155495907, 35241492, 604186, 274780590, 174212222, + 47311167, 498896, 334144678, 134245970, 58619161, 1556716, 357514965, 185130763, 21853722, 3387132, 56, 209207735, 64079564, 5937633, + 226, 46107311, 78644134, 5618623, 765, 197694840, 92897869, 8267344, 589, 235375318, 74668806, 12754489, 3375, 258982502, + 105239120, 5419312, 12558, 151221912, 122523335, 17926833, 42017, 258056028, 7291803, 25513718, 27578, 293278728, 121845634, 33510281, + 115156, 11100995, 147104980, 29989315, 377466, 235546520, 166646379, 42484683, 987747, 321760155, 94540390, 49632981, 1051314, 346998648, + 173505892, 60766439, 2499246, 121335374, 200180039, 57391738, 4683739, 126, 220669624, 72912129, 4138288, 440, 171013154, 86705153, + 6572558, 1431, 224287011, 47288568, 10737613, 1793, 249572016, 97432188, 15622896, 7061, 86696476, 115252574, 15177468, 24373, + 236826182, 126200633, 22203208, 13722, 283264460, 104707549, 29820788, 66006, 308574300, 138479572, 18950612, 227706, 181707192, 158647699, + 37780976, 654924, 298912379, 40163197, 45164145, 650303, 335989258, 161627181, 55772262, 1773787, 57049798, 190921836, 48827420, 3645176, + 69, 212025362, 66901382, 1618393, 256, 131436426, 80620220, 5168536, 834, 211694685, 17384862, 8826054, 927, 240708790, + 88902179, 13299228, 4023, 10212878, 107983280, 12346263, 8590, 213921314, 119172298, 19088716, 3422, 271270624, 76297230, 26478414, + 35726, 298686090, 130345115, 34382243, 133256, 131175790, 150615043, 30180432, 413526, 277190070, 169125373, 40629053, 374233, 325591601, + 142340664, 50941205, 1230306, 352072235, 181271706, 37489980, 2728218, 225606829, 197387088, 60929660, 3996525, 146, 76743118, 74641843, + 3868598, 484, 198937462, 88353100, 7112649, 492, 230847272, 77800454, 11258567, 2207, 253370965, 96118199, 8589970, 4901, + 173575483, 112205407, 16170849, 16243, 257500155, 45095367, 23180632, 18717, 289369706, 120460446, 30695981, 77844, 52953343, 142514789, + 26183740, 252555, 246654519, 161300431, 36256669, 171358, 313015343, 111968659, 46485378, 793385, 341865704, 172104898, 12628495, 1971946, + 176048033, 188722652, 54893221, 3071154, 82, 9169743, 69105134, 2767504, 280, 178731652, 82338966, 5676111, 117, 220479060, + 64051700, 9329492, 730, 244807147, 88988103, 13800048, 2831, 118067961, 105294057, 13634711, 9421, 240236655, 121125792, 20081379, + 9988, 278864138, 107738140, 24579101, 43460, 295961746, 134937814, 20550593, 149983, 214615934, 153482651, 32043748, 447229, 298553766, + 66819728, 41995701, 480957, 331284212, 160641754, 52112361, 1007697, 99015255, 179922155, 49179932, 2267623, 292395020, 200371139, 63349441, + 1828303, 164, 148098160, 76444439, 4349093, 525, 209182944, 34447909, 7596457, 401, 235521085, 81626180, 11735930, 1589, + 48769019, 98844424, 11108663, 5432, 221903467, 114261698, 17182208, 4819, 261216068, 87524371, 21483737, 23682, 287076953, 126578602, + 7746430, 88774, 160127019, 145658554, 28268973, 275698, 280598831, 23759960, 37678346, 272464, 321311645, 141062616, 47473274, 646570, + 11491612, 171661282, 40869649, 1615139, 260220550, 191973642, 57678012, 435912, 94, 102908069, 70960611, 3213437, 189, 198107778, + 78990637, 6057154, 207, 226013226, 74547706, 9788555, 881, 248189913, 92043756, 8639661, 3167, 190102660, 107473403, 14640617, + 10197, 249156292, 63344726, 18589392, 12561, 277370975, 117733144, 25315517, 50616, 91136900, 138318617, 24349558, 165508, 261895914, + 155934959, 33534756, 96983, 309613711, 119739504, 43198344, 393732, 336507537, 162411358, 24591958, 1104055, 205996515, 183520486, 52489090, + 2428095, 327459318, 59093361, 61016236, 2267006, 112, 182184038, 73314114, 4776876, 101, 216162538, 64334896, 8035434, 481, + 239240791, 85247423, 5430498, 1805, 144113604, 101111487, 10456743, 5927, 237359262, 19627047, 15897361, 6778, 267379071, 107531149, + 22215322, 28328, 10675411, 130461529, 20294610, 98895, 230269929, 142305026, 29799881, 22882, 296637960, 94922302, 38913138, 227154, + 327126137, 152487166, 48552167, 735615, 137002210, 174980116, 46881008, 1748855, 302865652, 194735166, 55688956, 1562250, 352195576, 158977117, + 68019592, 3611319, 204, 206856438, 46277149, 6473846, 267, 230178451, 78381548, 10211355, 1020, 97761639, 94486837, 8376970, + 3479, 220498529, 109377155, 13533649, 3409, 256956665, 96421188, 19315967, 15549, 281449007, 122496405, 13522648, 35296, 185150620, + 134799031, 26013757, 112789, 283960167, 50046057, 34807760, 129586, 316618582, 140943489, 44276111, 459967, 55594821, 166963796, 40714905, + 1211629, 271498611, 186500832, 50485869, 923644, 338660322, 132860311, 62628558, 2628757, 121, 195712291, 15043736, 5162177, 140, + 220956607, 71971997, 7090924, 570, 28621609, 87924970, 6496456, 2005, 196712787, 103070800, 11247972, 804, 247094626, 75599081, + 16618484, 8653, 271977633, 109069853, 2413775, 20052, 124871086, 127753652, 22393177, 66259, 265766275, 144515473, 31085748, 67802, + 305563916, 128616618, 40009594, 274431, 331659961, 158156378, 28802584, 817765, 227431960, 178236601, 45742831, 1873532, 322728651, 86237417, + 57379984, 1874710, 359784115, 182555923, 69398117, 3968754, 72, 205863302, 64099633, 5677517, 324, 226863576, 81409265, 4881136, + 1148, 161220649, 96558326, 9166484, 3770, 235134895, 41209436, 14235197, 2800, 262292022, 101531683, 19976789, 11246, 70496811, + 120295787, 18889933, 39070, 240705594, 137144969, 27352478, 33047, 293629419, 106657870, 35925942, 161627, 314815559, 148965609, 15754866, + 521011, 168394490, 170453418, 40771499, 1311610, 306715920, 25638402, 52274604, 1235201, 348310261, 164819110, 64050194, 2292167, 33, + 196333616, 52371970, 4493720, 176, 218086599, 75388362, 967301, 653, 124242637, 90133710, 7289744, 2190, 221006216, 104529118, + 11941685, 1434, 253170968, 92066952, 17270250, 6390, 275708626, 112810803, 15606916, 22482, 204434212, 130199172, 23804410, 71787, + 282156995, 71393011, 29018840, 88732, 304743155, 140194844, 37541312, 318112, 114392925, 162110316, 35781444, 893963, 281436136, 180985615, + 47596493, 757580, 335860036, 140888924, 58851974, 1594320, 365355154, 186282551, 36604125, 3431652, 94, 209806694, 68895579, 5987739, + 376, 63179459, 83792709, 5735524, 1267, 202345500, 93174527, 9850937, 696, 242873887, 78552378, 14765491, 3487, 266437971, + 105840613, 8889057, 12810, 167042706, 122931977, 20439919, 42587, 260943131, 21754936, 25682630, 46667, 294292653, 128825793, 33661239, + 186653, 32881705, 153644582, 30956227, 577475, 245709749, 173344128, 42789094, 125970, 323914499, 105274185, 53806119, 1082235, 354869852, + 175175796, 4852880, 2538800, 49, 200850976, 62121319, 4775124, 210, 221147955, 77910583, 4264369, 448, 181837285, 86993507, + 7962672, 1448, 231868229, 54942876, 12561466, 1864, 257005255, 98173777, 17866371, 7383, 105157538, 115693893, 15391344, 24739, + 241541394, 132324042, 22375084, 23572, 284433970, 112881835, 29972738, 108794, 309262576, 144956625, 22207175, 358435, 209095999, 165264620, + 38112962, 663062, 307874752, 54715150, 49159518, 674768, 343916088, 164046033, 60161006, 1808051, 79492955, 191695664, 53903841, 3686187, + 116, 213044311, 67300349, 2666213, 261, 144973282, 80922354, 6377400, 845, 219520294, 27789916, 10457712, 971, 248117948, + 89995347, 15349250, 4126, 30157277, 108467297, 12607331, 14257, 220733546, 125182996, 19264182, 10693, 272786814, 86811448, 26628770, + 59736, 299458563, 136775558, 3221761, 214559, 148257376, 151129250, 33534971, 419297, 287254981, 8278548, 44434167, 391986, 333580164, + 146849280, 55153329, 1258622, 359873696, 182210034, 43579167, 2764541, 239389817, 204412364, 61377647, 4994117, 149, 92991629, 75271308, + 4889947, 491, 207156075, 88610226, 8554441, 518, 238251048, 80016739, 11340918, 2273, 253939148, 101740286, 9508490, 8152, + 184225420, 118097978, 16525827, 26846, 259654093, 57423896, 23332124, 31674, 290218889, 126985097, 30833949, 79726, 73747182, 143085845, + 29369475, 256524, 258647403, 161706055, 39865702, 222427, 321173453, 120065613, 50522140, 816217, 349684763, 173236834, 19826405, 2003333, + 192737935, 195691174, 55439214, 3921702, 84, 27389977, 69434721, 3604629, 284, 188164651, 82605476, 6939555, 225, 227909961, + 68165401, 9408839, 1231, 245412187, 94484158, 1647696, 4715, 132832434, 111062941, 13814873, 15604, 243627660, 7118179, 20234212, + 17035, 279865192, 110235286, 27478582, 44693, 303570834, 135560366, 23978981, 152649, 228536757, 153916194, 35450823, 452642, 307060175, + 79033731, 45845598, 498452, 333174976, 162314257, 52296467, 1420019, 119116526, 186835812, 49905589, 2972747, 300074673, 207397040, 63702872, + 2505735, 167, 159776994, 76721933, 5429929, 532, 211896791, 43774269, 7672477, 678, 236193818, 87021585, 11811836, 2653, + 66977852, 104488342, 11299346, 9013, 226829582, 120178449, 17336642, 5217, 268938277, 97054321, 24184616, 24481, 294669174, 127317036, + 12739429, 90514, 176995470, 146126494, 31478543, 279406, 289827002, 38545806, 37895499, 284920, 322406064, 148803893, 47844621, 946592, + 34081676, 178519833, 42617929, 2182934, 270499503, 198938352, 58063970, 1282754, 96, 117408000, 71244500, 3282888, 310, 199989147, + 5641572, 6129453, 352, 226778592, 79908762, 9861348, 1474, 9967167, 97553324, 8926395, 5260, 198259898, 107807554, 14793141, + 10322, 257033593, 71452678, 21089970, 13072, 284955033 +]; +/// PMOS drain current in pA at 1000 centres of the log grid's cells, corner mos_sf, point k = 1 .. 1000 at Vgs = (floor(96 frac(k a1)) + 1/2) * 15.625 mV, Vds = (floor(48 frac(k a2)) + 1/2) * 31.25 mV (deck psp103_idpa_sf.cir, block cen_p). +pub const SF_CEN_P : [1000]u32 = [ + 157560068, 35965422, 2122902, 52, 173874664, 53842917, 3602449, 136, 83918886, 63148401, 4918944, 355, 176610312, 72421366, + 7519498, 850, 200409889, 70998524, 9129653, 2272, 218237902, 87071683, 10105634, 6009, 147302975, 98692495, 15091101, 15878, + 226656517, 46364379, 19806372, 24256, 253554307, 105034672, 25041187, 63816, 71566922, 122057342, 27135436, 163958, 219827588, 135067289, + 34795267, 334636, 282112246, 104247846, 41939846, 785348, 303492818, 149237449, 17055141, 1578822, 32, 167263012, 49423292, 2814265, + 85, 34763065, 58858473, 3920198, 221, 157083304, 68047894, 5159084, 438, 192499580, 58187886, 7694204, 1402, 210806725, + 81899529, 4275424, 3709, 115007882, 93447144, 13035139, 9814, 210961290, 5586374, 17552649, 14931, 244422862, 96404426, 22467519, + 39617, 8361590, 115870073, 23245540, 103259, 183472525, 129250306, 31552852, 259096, 269733465, 72146392, 35465418, 537808, 294154176, + 139385790, 42495829, 1142408, 91320481, 160318171, 44614661, 2148944, 53, 175168600, 54779020, 2988422, 138, 133666605, 63706073, + 4142223, 364, 183079923, 36545198, 6415756, 865, 203271623, 76244383, 9231659, 2290, 65241677, 88257335, 11166294, 6057, + 189964188, 94624253, 15397713, 9016, 235556971, 81843657, 20035604, 24548, 256486941, 109462477, 14847404, 64459, 138387883, 123328280, + 28389326, 165586, 247056068, 30477454, 32365230, 356721, 284214475, 128961486, 39086532, 803238, 42911203, 153177584, 38082542, 1603891, + 33, 168482856, 50652479, 1225817, 87, 100538380, 59470443, 3274620, 226, 171856347, 13450281, 5259081, 533, 195999902, + 69810535, 7790977, 1416, 7697335, 83098837, 9268073, 2322, 168521711, 89561986, 13380507, 2512, 224686695, 58767580, 17781189, + 15148, 248198042, 103188481, 22664162, 40015, 98882957, 117425188, 22880342, 104248, 224671793, 130099663, 29329713, 230011, 274585358, + 111793116, 35808316, 550770, 297709454, 145628175, 29236087, 1162003, 173273411, 156331365, 46547645, 1636812, 55, 58013454, 55337715, + 2515447, 141, 160172317, 64170054, 4238485, 327, 188066512, 60932572, 6505035, 875, 205141525, 73969747, 6621358, 1435, + 133431807, 84584494, 11496596, 3790, 211608972, 34571045, 15634523, 9327, 240201122, 95399805, 20232838, 24796, 39788708, 111502750, + 20037152, 65059, 194946228, 124272481, 26416029, 120478, 262589973, 86236893, 32715783, 366469, 288798451, 138185190, 9900210, 817982, + 133413581, 149755201, 42339871, 1189953, 34, 6937728, 51410417, 1873291, 89, 141411428, 59964348, 3363608, 90, 179564860, + 49853211, 5342715, 337, 198141672, 68938492, 7877211, 889, 89243116, 79685194, 9797297, 2341, 194661113, 90150673, 13630021, + 5740, 231272151, 84805427, 15944862, 15310, 244050021, 105805854, 15937196, 40383, 166357202, 118500856, 23614758, 105192, 248176614, + 50844728, 29703835, 238164, 279472043, 128574639, 36101690, 377813, 74431557, 143097984, 38149767, 838597, 233551442, 157498795, 47474947, + 1306369, 56, 114585540, 55871003, 2602731, 147, 169950042, 26715730, 4316398, 209, 190795218, 63650178, 6583880, 550, + 36698493, 74998004, 8152881, 1448, 177074893, 85219019, 11766552, 3350, 215690633, 67978382, 13943552, 9441, 236536653, 99663015, + 6124279, 25022, 121552715, 112771768, 21014165, 65630, 229775484, 18073851, 26823720, 151662, 270463745, 111769884, 32964904, 245883, + 8662421, 136674114, 31847370, 574062, 203668608, 151106669, 43606564, 331434, 36, 78226998, 51973362, 1963872, 60, 160164605, + 56569643, 3422667, 129, 183269871, 58302848, 5415436, 341, 199646421, 70235948, 6491857, 897, 148032707, 80380298, 10081965, + 2362, 204881671, 48779804, 12086230, 5815, 228559830, 92990533, 16099580, 15453, 68508881, 107264744, 18376941, 40731, 211110810, + 119332399, 24073430, 60184, 259734374, 93313497, 30010610, 157085, 283158391, 129596120, 19234686, 382438, 157463580, 144722466, 39944615, + 849459, 271234591, 44693413, 44716426, 1438921, 39, 145534831, 52627906, 2666781, 75, 175401631, 50287756, 4382810, 211, + 192572990, 65488222, 4194781, 556, 109805400, 75742070, 7210168, 1460, 193972110, 15089018, 10372412, 3585, 220315719, 84876343, + 14096009, 9534, 8040463, 101578888, 15550635, 25235, 180969531, 108688522, 21519082, 16474, 247328383, 73030682, 27145951, 98980, + 274892299, 121760101, 33227643, 249439, 103246054, 138311270, 36057947, 581623, 246815681, 152128552, 41097875, 1028093, 299474381, 124534190, + 48872868, 2022796, 70, 167726966, 35982202, 3482635, 131, 185455612, 60663218, 5480346, 344, 73834221, 71087767, 5901576, + 906, 177778830, 80947549, 8827975, 2188, 211598992, 75696035, 12236725, 5879, 230750448, 95814927, 10557787, 9672, 141975710, + 103232482, 19021068, 25540, 234926389, 38166114, 24417247, 61920, 265751235, 112144715, 30273098, 159345, 41787438, 132135765, 31594300, + 387464, 215637083, 145879678, 37578908, 656446, 285877930, 102423742, 45175693, 1494247, 44, 158354665, 11717082, 2718646, 81, + 178238457, 55966685, 3566010, 214, 21579089, 66508572, 4703271, 561, 155327319, 76334410, 7398042, 602, 203095949, 58624266, + 10521420, 3630, 223039779, 85477814, 1919366, 5968, 94223139, 97989753, 16623370, 15776, 216518137, 109396182, 21877040, 38291, + 255944105, 101561090, 27415520, 100426, 277710451, 125528917, 22458372, 252601, 175936548, 139661228, 34268374, 588616, 269247475, 65487744, + 41598975, 1078546, 306632306, 146697841, 49237374, 2068205, 50, 165587236, 50076553, 2783068, 133, 180936920, 61983689, 3609673, + 348, 124310118, 71734820, 6106821, 916, 192505885, 31726884, 8971526, 1389, 215161451, 79773482, 12368224, 3682, 52983180, + 92645385, 14261365, 9750, 191784771, 104006398, 19421048, 22419, 244998047, 82873034, 24696461, 62842, 262670272, 118520462, 12380540, + 161315, 127677835, 133667670, 30900018, 392089, 252622335, 19424550, 38140483, 750598, 295943145, 130542149, 45556953, 1123519, 26, + 158140388, 40845574, 2128311, 83, 174117187, 57673527, 757927, 217, 94471343, 67231275, 4950209, 568, 179368738, 76754070, + 7541261, 854, 207554101, 72407333, 10649332, 2276, 224884654, 87306360, 11920395, 6017, 158753991, 98816950, 17095581, 15898, + 234168835, 54697249, 19847355, 38990, 254136728, 111548709, 25075504, 101646, 86056788, 127472816, 27451780, 255503, 226632465, 140668741, + 34883370, 501514, 283930954, 110002201, 42002002, 788636, 310910478, 150115131, 28500893, 1583223, 51, 167535012, 53145414, 2820203, + 135, 47644382, 62817753, 3953737, 353, 161626440, 68125892, 6251521, 499, 199054581, 61383828, 9073826, 1405, 217390071, + 82184988, 6965500, 3714, 127562589, 93585565, 14891869, 9826, 214049336, 16629868, 17593819, 24070, 245195875, 102170396, 22502001, + 63471, 24730477, 121202005, 23925567, 163108, 192676798, 134760920, 31655022, 91809, 272129483, 80638204, 38572657, 540237, 301562566, + 140861508, 3798441, 1145872, 32, 160653265, 48293807, 2158730, 84, 175353058, 58614770, 3040485, 139, 142888446, 63788857, + 5099906, 366, 189706802, 42527167, 7658958, 867, 209795624, 76672571, 10762336, 2296, 79224981, 88415483, 11245474, 6065, + 194801365, 99482901, 15440958, 14706, 236532189, 88535340, 20070393, 39474, 256871164, 114729398, 17339077, 102742, 160925564, 128745304, + 28516213, 165850, 255575914, 41537679, 35336211, 358642, 291647679, 131213924, 42342625, 805869, 59776465, 153615635, 42063196, 1607792, + 53, 168891003, 50799344, 1994674, 87, 111352804, 59559440, 4103826, 227, 178728077, 21488436, 6365910, 535, 202466994, + 70602017, 9182104, 1418, 22700445, 83286851, 9399142, 3744, 175005024, 94312041, 13426948, 7606, 226119871, 67020912, 17815536, + 24410, 248670571, 108411793, 2553919, 64144, 112068055, 117628477, 25418761, 104408, 234123162, 6296264, 32160190, 231920, 282057788, + 115880696, 38928603, 552634, 305058994, 146250058, 33977997, 1165025, 184912297, 162258078, 46737131, 2181902, 55, 70376298, 55528634, + 3217505, 142, 167401825, 64240640, 5211622, 329, 194497894, 62749040, 6518811, 876, 205396799, 78378729, 7255740, 2312, + 142457860, 89223759, 11596843, 6113, 213835274, 44016218, 15669502, 15052, 240759931, 100726422, 20263302, 24835, 55397170, 111749906, + 22463649, 65156, 205711648, 124409533, 29104158, 145643, 270233511, 92926140, 35700466, 367796, 296121868, 139032924, 15515588, 820230, + 146626183, 155601653, 42626483, 1629881, 35, 20686924, 51514424, 2453550, 89, 149604487, 60038538, 4208937, 170, 186003027, + 53180364, 5355489, 542, 198425789, 73244507, 1307245, 1431, 100731907, 84211639, 9853582, 3774, 198219431, 5461045, 13666006, + 9277, 232017546, 86963137, 18004686, 15335, 250946024, 106098597, 18564726, 40442, 178202365, 118652806, 26159116, 105346, 256183157, + 60265568, 32548910, 239114, 280893353, 130033414, 36146876, 562690, 89622358, 148868577, 38612831, 1182044, 241333982, 163430680, 47594386, + 1784554, 57, 124235691, 55949793, 3322315, 149, 172247141, 33920412, 4328142, 335, 191139018, 67886323, 6596215, 885, + 50403251, 79411483, 8226603, 2332, 182013398, 89868954, 11804143, 3477, 222591919, 75945339, 15859852, 9457, 243376634, 100071129, + 10021015, 25058, 134898204, 112944257, 23416722, 65723, 238460091, 29313072, 26882161, 152416, 271371188, 118293662, 33056315, 374774, + 25649802, 142372864, 33178572, 832798, 213167378, 156954363, 43751121, 961315, 36, 89494992, 52055281, 1975094, 93, 161926933, + 4384452, 3433363, 207, 183706021, 62529527, 5426734, 547, 7516958, 74533857, 6652213, 1443, 155376547, 80482151, 10120130, + 2366, 211935507, 55170630, 13858826, 5827, 235351005 +]; +/// NMOS drain current in pA at the first 1000 held-out R2 points of corner mos_sf, the points of the tt corner's TT_R2_N (deck psp103_idpa_sf.cir, block r2_n; the first 200 are SF_R2_N). +pub const SF_R2K_N : [1000]u32 = [ + 195098959, 48047313, 4333372, 126, 216627006, 71611906, 7081882, 446, 105565113, 85739350, 6774390, 1397, 216223144, 99338052, + 10994914, 1368, 248275694, 89720441, 15898164, 5745, 270468708, 111343076, 13354461, 19423, 194691705, 127816262, 21429936, 59046, + 273885116, 60699000, 28967830, 66345, 303667721, 135111853, 36992513, 236406, 85926073, 157193555, 34651918, 657070, 273033631, 175392373, + 45857418, 518813, 331985645, 132242001, 56588611, 1561295, 360430615, 184748983, 25719474, 3261294, 66, 207525744, 65075856, 5637308, + 246, 44745089, 79348135, 5146395, 789, 197121210, 92813653, 8944915, 624, 237717500, 74707668, 13432854, 3057, 260979116, + 103627874, 5130126, 10799, 145564502, 120357639, 18179712, 33678, 258137372, 12192500, 25352620, 33934, 292989200, 123003907, 32998006, + 133976, 6678490, 148599191, 28645304, 405300, 236512514, 167143174, 40990333, 1007813, 317879609, 94186859, 51471374, 1014373, 349715648, + 173361841, 62116159, 2371729, 130394461, 198316497, 58275126, 4385869, 134, 218120045, 73070390, 3731737, 444, 169980183, 86418916, + 7116755, 1344, 226482019, 49910314, 11189015, 1595, 251365166, 95741572, 15965383, 5948, 83940698, 112956595, 15139636, 19059, + 237892128, 128583565, 21956385, 16744, 281802069, 105923461, 29217667, 73499, 306631799, 139841017, 17612379, 240667, 187586732, 158905189, + 36287558, 649132, 301200001, 43619757, 46536888, 617603, 338587584, 159658868, 56887075, 1655445, 50529834, 188937586, 50037061, 3320729, + 72, 209290631, 66896948, 1922362, 248, 131105683, 80156667, 5508964, 765, 213975398, 13244770, 9165325, 814, 241577229, + 87293615, 13528979, 3242, 12271785, 105601494, 12249795, 10712, 209894906, 121270755, 18781415, 677, 269784421, 79155924, 25654683, + 39119, 296597492, 130729541, 33095073, 138397, 125876078, 150664837, 31721077, 401502, 280016543, 168136661, 41788396, 350043, 326847708, + 140826523, 51841712, 1100691, 353111750, 179271541, 36301502, 2434176, 230984063, 200422869, 60804301, 4407582, 138, 79317121, 74028960, + 4120102, 434, 198890696, 86855624, 7359808, 405, 231531995, 76900771, 11311944, 1744, 253475400, 98269430, 8580169, 5979, + 170609537, 114040312, 15829415, 18432, 256293108, 40012585, 22311873, 20200, 286325153, 120746598, 29358612, 77488, 53281768, 142399329, + 27127263, 239778, 251386867, 160080427, 37227952, 171852, 314138120, 112536268, 46984658, 691893, 342728797, 169063407, 12151590, 1717161, + 169748289, 191494362, 54719785, 3350131, 76, 16494756, 68036339, 2948933, 245, 178606235, 80688747, 5769847, 75, 221075727, + 60689666, 9312356, 923, 244101076, 90909886, 13570167, 3312, 118318869, 106890247, 13101141, 10442, 240025834, 121879214, 19191598, + 10122, 275709634, 108379793, 25840090, 42386, 299067346, 134067153, 21215978, 139172, 211987195, 152057513, 32855481, 392382, 299784420, + 71701406, 42320307, 408613, 332045962, 157689823, 52057009, 1158400, 96985069, 182468987, 48330033, 2467917, 293967756, 201881662, 62176638, + 1969194, 138, 149175919, 74667477, 4392223, 419, 209893666, 33737250, 7527617, 479, 234609957, 83385377, 11378319, 1819, + 54203802, 99815677, 10592378, 5885, 218554808, 114770561, 16295742, 4752, 264562768, 90002132, 22541940, 22672, 289284450, 125582204, + 8986707, 78969, 159751305, 144060382, 28665633, 235055, 282511432, 19036398, 37852600, 226045, 320937057, 143578936, 47262014, 743010, + 15334453, 173283027, 40035884, 1752199, 254660912, 193222049, 56442191, 134645, 78, 107319898, 68795275, 3223174, 239, 197284345, + 81015813, 5954380, 243, 224951134, 75216578, 9401521, 988, 245859729, 92806335, 8221360, 3298, 188298158, 107760113, 13625758, + 10047, 252519114, 60861073, 19466255, 11844, 279331110, 116730743, 25934535, 43981, 95141391, 136076550, 24630378, 137246, 260079368, + 153014371, 33584806, 117485, 309182931, 123372078, 42663458, 451331, 335454996, 163809790, 24926099, 1192275, 202877828, 184535826, 50810862, + 2477938, 325902704, 52947011, 63074849, 2258492, 136, 181668550, 75075940, 4588511, 118, 215036707, 64594605, 7636532, 530, + 236692889, 85840651, 4485145, 1837, 145944141, 100848394, 11182768, 5703, 238824938, 19589534, 16614657, 6028, 269140893, 106881382, + 22675555, 24089, 20602731, 128084227, 20536176, 78578, 229245037, 145193943, 29519199, 24801, 296377761, 92588642, 38265711, 259267, + 325117929, 153758498, 47408434, 773957, 138447592, 175801268, 45204199, 1765304, 302696264, 194426605, 57507538, 1493019, 354505679, 159957203, + 69293245, 3425006, 230, 204698343, 46884136, 6079412, 279, 227450073, 78867435, 9444161, 1016, 90682570, 94034463, 8967519, + 3224, 221929412, 108336003, 13988262, 2988, 258601310, 94116467, 19638582, 12974, 281785418, 120041993, 14475641, 44303, 186777159, + 137421360, 25656332, 133372, 281737493, 49175192, 34072855, 140989, 314476960, 142376680, 42864120, 478217, 63280292, 166982324, 39220496, + 1206669, 271476377, 185957608, 52092234, 858892, 341026613, 127990392, 63671923, 2457807, 132, 193575550, 17918505, 4725411, 144, + 218099134, 71732356, 7698278, 557, 24481205, 87314634, 6976357, 1815, 199003026, 101540684, 11587713, 903, 247504535, 74144829, + 16824788, 6858, 272092537, 111858779, 1005440, 24655, 131312071, 129690211, 21992148, 76835, 263762553, 145966171, 30088508, 72861, + 303395885, 127718410, 38523195, 281452, 327956864, 158013125, 30648470, 788437, 229162810, 177488102, 46822733, 1760358, 325563475, 83226405, + 58215875, 1679425, 360519863, 180830123, 69597763, 3568869, 73, 208587870, 63830241, 6156996, 302, 229178683, 80680061, 5077332, + 1016, 166222629, 94859541, 9413300, 3109, 235431994, 42638612, 14234858, 3546, 262233951, 103289747, 19730905, 13553, 64143948, + 121989198, 18497730, 43694, 239867048, 138339903, 26315689, 35344, 291631585, 105850315, 34389682, 158234, 317897395, 148756114, 14003191, + 491954, 174014873, 169004905, 41678240, 1205224, 306681443, 26656158, 52928288, 1080276, 348964619, 164544213, 64052870, 2603011, 27, + 198823295, 52775055, 4815032, 161, 220151249, 74110613, 1009488, 566, 120764486, 88294020, 7465183, 1764, 221492089, 101985392, + 11868918, 1789, 252140296, 93549588, 16950980, 7354, 274142568, 114297671, 14870860, 24589, 206560689, 130779669, 22756627, 74145, + 278720302, 72472478, 30467423, 85252, 307616847, 138875193, 38660945, 293790, 106641154, 160487079, 36571764, 789723, 282019543, 178656933, + 47811123, 646260, 336609602, 141131952, 58680044, 1819530, 364421552, 188619787, 33327739, 3666276, 85, 211057628, 67554181, 6196075, + 313, 62833421, 81844162, 5743658, 997, 203831085, 95402671, 9726538, 871, 241690789, 80194241, 14393443, 3931, 264669719, + 106574397, 8349537, 13709, 160907929, 123282786, 19412271, 42427, 263743524, 26808224, 26759893, 44122, 297028495, 127447969, 34577165, + 168680, 29462972, 151898773, 30963040, 495267, 248404625, 170386775, 42864191, 216413, 322958192, 106451069, 53483753, 1207794, 353785529, + 177559699, 2635824, 2703610, 44, 201865744, 60833587, 4866351, 171, 221588202, 75507448, 4244399, 561, 179189746, 88947624, + 7806792, 1694, 230654286, 58355846, 12057886, 2063, 255081041, 98722352, 17010734, 7572, 102405704, 115843996, 16279720, 24069, + 244932647, 131517121, 23270095, 22022, 285984710, 112058058, 30706099, 93554, 310451120, 143171804, 21814490, 298297, 202913503, 162129204, + 38082669, 780562, 307085224, 58992240, 48468116, 753670, 342771566, 164629525, 58963293, 1918538, 73633515, 192522098, 53160507, 3726061, + 93, 212753218, 69276472, 2715638, 314, 143661055, 82623110, 6108409, 964, 218546609, 24667365, 9943296, 1059, 245332333, + 90455775, 14482952, 4139, 33074515, 108453264, 13327474, 13556, 219329718, 124161381, 20000505, 8263, 274213998, 88243153, 27051069, + 50279, 300458528, 134155585, 3674864, 173514, 144486383, 153872059, 33447020, 490486, 287317888, 642619, 43636583, 438343, 331207275, + 147495877, 53838069, 1300447, 357030566, 182928011, 41399531, 2767896, 246180008, 203883219, 63132617, 4886247, 175, 95188047, 76431373, + 4630052, 547, 204303227, 89364613, 8048009, 531, 235351077, 80776612, 12175280, 2235, 257106909, 101091217, 10086586, 7581, + 183302487, 116886971, 16953021, 23235, 261181910, 52320254, 23615075, 26203, 290246235, 124455543, 30836731, 98038, 74497471, 145595312, + 28857070, 296798, 260972755, 163260118, 38991533, 234024, 318787225, 122096711, 48898967, 835434, 346704721, 172877071, 20129504, 1983414, + 188310677, 194957991, 57022430, 3754977, 97, 34968411, 70373347, 3370701, 310, 185705735, 83133472, 6369729, 222, 225007037, + 66580415, 10086096, 1189, 247746224, 93716874, 2839440, 4209, 134447259, 109692294, 14128729, 13184, 245804342, 4799018, 20400680, + 13241, 279722350, 112923299, 27226477, 54035, 302828073, 137263446, 23547321, 174044, 224705830, 155211010, 34533511, 479540, 304941872, + 84636647, 44150467, 505028, 336101665, 161879131, 54039863, 1362346, 118384612, 185945625, 50736549, 2802406, 303647717, 205286820, 64447610, + 2321799, 175, 159070595, 77045779, 4905558, 527, 214041073, 42694499, 8213134, 620, 238277280, 86225846, 12235739, 2317, + 73202219, 102573251, 11525704, 7441, 225993700, 117588744, 17409972, 6467, 268726113, 96568010, 23835623, 29106, 293073345, 128805747, + 13503815, 99529, 175938728, 147188701, 30258969, 290803, 288590618, 34814738, 39596656, 285924, 325110625, 148694463, 49162300, 891388, + 38785583, 176791323, 43214433, 2020266, 267327336, 196617362, 58648177, 985512, 98, 120645175, 71105053, 3652070, 301, 201887057, + 7140858, 6553402, 317, 228655002, 78277007, 10170495, 1263, 2128969, 95521136, 9106178, 4177, 198416468, 110529407, 14644580, + 12664, 256952093, 70569464, 20666458, 15314, 283159894 +]; +/// PMOS drain current in pA at the first 1000 held-out R2 points of corner mos_sf, the points of the tt corner's TT_R2_P (deck psp103_idpa_sf.cir, block r2_p; the first 200 are SF_R2_P). +pub const SF_R2K_P : [1000]u32 = [ + 157296800, 37449390, 2065872, 62, 173007555, 54874476, 3422172, 152, 79928793, 63868470, 4600272, 375, 174948904, 72688144, + 6924223, 848, 203446211, 70500662, 9712809, 2129, 220331808, 86253269, 10256398, 5303, 150608639, 97102644, 15361225, 13195, + 226482211, 46438790, 19858930, 30485, 253325033, 107417478, 24757967, 75402, 64552713, 123534436, 26639300, 181647, 218376579, 136014620, + 33703101, 348501, 280223086, 102525753, 40362825, 780175, 306386087, 148897905, 20051985, 1508217, 37, 165896352, 50247777, 2625027, + 93, 33743309, 59373667, 3581512, 228, 156941214, 68024367, 5646455, 458, 194629747, 58240778, 8152336, 1280, 212594483, + 80669151, 4052869, 3189, 110499192, 91673286, 13205418, 7934, 211016576, 9331347, 17458305, 18306, 244090782, 97289477, 22079131, + 45706, 5032076, 117104398, 22221293, 111878, 184515264, 129771498, 30388378, 264642, 266082605, 71871009, 36847282, 521108, 296765024, + 139301337, 43555749, 1067904, 98199880, 158730780, 45307064, 1961863, 57, 172856055, 54982954, 2681513, 139, 132495592, 63484319, + 4520635, 344, 185001429, 38599956, 6748479, 770, 204793262, 74893955, 9465547, 1919, 63154756, 86324647, 11176474, 4771, + 191084670, 96648662, 15214841, 10827, 234245657, 82780332, 19558505, 27575, 254631239, 110524306, 13810179, 68172, 143210222, 123587114, + 27184452, 164892, 248895537, 33103865, 33475485, 337767, 286650665, 127249376, 39939383, 732427, 38020135, 151430529, 39025444, 1424505, + 35, 165949088, 50680887, 1457297, 85, 100189703, 59068008, 3542626, 208, 173854998, 10254659, 5499012, 463, 196862961, + 68504395, 7933286, 1155, 9247605, 81041408, 9206303, 2870, 164832786, 91304538, 13127377, 497, 223352717, 61004787, 17196816, + 16587, 246154046, 103559152, 21713905, 41266, 94838788, 117446112, 24048767, 101221, 227146004, 129359454, 30246648, 212676, 275748365, + 110570722, 36469672, 486854, 298728889, 143839989, 28309592, 1002604, 177772516, 159065712, 46433168, 1857554, 52, 59955320, 54774258, + 2706609, 127, 159903496, 63001827, 4400936, 275, 188689357, 60248105, 6556907, 695, 205140335, 75793536, 6606225, 1728, + 130999103, 86061045, 11193161, 4293, 210643052, 30657308, 14994424, 9954, 237459983, 95635003, 19227055, 24882, 40034785, 111321089, + 20815271, 61545, 199207462, 123287250, 27158111, 118808, 263567007, 86773601, 33147964, 314498, 289577584, 135635547, 9527012, 683330, + 128484422, 152180379, 42148950, 1340772, 32, 12470973, 50599882, 2003370, 78, 141155955, 58641377, 3450295, 59, 180061309, + 47207528, 5334041, 419, 197599047, 70515863, 7705310, 1041, 89452301, 80914224, 9406103, 2584, 194840610, 90795870, 12951237, + 5951, 228397555, 85355665, 16899675, 14969, 246898401, 105159749, 16467840, 37208, 163959086, 117289942, 24203531, 91458, 249300842, + 54626185, 29975181, 198311, 280110026, 126114197, 36040702, 451439, 72900909, 145248635, 37511924, 937546, 235336750, 158899630, 46537980, + 1400854, 49, 115456142, 54411274, 2641915, 120, 170570418, 26146292, 4261544, 252, 190000943, 65043626, 6355869, 628, + 40789780, 75856470, 7750283, 1556, 174135029, 85621569, 11066563, 3333, 218699966, 70032993, 14732239, 8993, 238725325, 98852377, + 7095932, 22422, 121227855, 111359172, 21367920, 55504, 231712164, 14490547, 26951628, 122619, 270136642, 113812532, 32760036, 290048, + 11555229, 138187988, 31196165, 634671, 198778106, 152212553, 42573939, 103285, 30, 81669445, 50311741, 1969019, 74, 159416466, + 58138491, 3335316, 152, 182279637, 58882153, 5159021, 379, 197642714, 70873241, 6145621, 938, 146653284, 80556688, 9338851, + 2328, 207885202, 46845836, 12724862, 5398, 230430231, 92140844, 16579427, 13488, 71531597, 105480295, 18608480, 33519, 209162674, + 116881932, 24076620, 74091, 259338984, 96290555, 29630963, 182164, 282035448, 130833028, 19495658, 416546, 154971407, 145556755, 38674008, + 873797, 270225022, 40035326, 46341889, 1422622, 46, 145129033, 53956968, 2550069, 87, 174315909, 50480163, 4111464, 229, + 190316532, 65935181, 3479648, 566, 111362330, 75599720, 7765128, 1403, 195089344, 15063569, 10877238, 3235, 221920810, 84357372, + 14444056, 8106, 15506246, 99626555, 15726812, 20188, 180017765, 111059170, 21347755, 17864, 247176482, 71107443, 26654681, 112468, + 273046072, 122825151, 32332232, 266078, 104359274, 138907257, 34742169, 587375, 245944658, 151889196, 42498945, 989794, 301628635, 125513166, + 49911179, 1898994, 77, 165882721, 36449508, 3208931, 138, 182979893, 60975839, 4978271, 342, 68403722, 70747181, 6339474, + 846, 178877103, 80067514, 9188559, 1924, 213037159, 73826558, 12468822, 4870, 231135168, 93745373, 11269811, 12143, 143341372, + 105318653, 18759236, 30177, 232751588, 37485941, 23831983, 68587, 263738470, 113353282, 29240776, 166344, 47549909, 132219622, 30398346, + 382938, 215250666, 145378556, 38776611, 611844, 288108909, 98457876, 46002148, 1373371, 47, 156526267, 13948554, 2445951, 83, + 175593838, 55815474, 3955544, 207, 18457824, 65992087, 5046551, 511, 157283520, 75177261, 7657378, 676, 203490524, 57508904, + 10653431, 2925, 223146387, 87721746, 800728, 7299, 99199720, 99652631, 16297003, 18168, 214690872, 110573023, 21163073, 41398, + 253911076, 100705545, 26303755, 102383, 274252690, 125408992, 23888906, 243201, 177295932, 138921250, 35161108, 541963, 272085190, 63188815, + 42230255, 962139, 307359002, 145332614, 49440246, 1815527, 50, 168090736, 49862787, 3076643, 125, 182999886, 61320688, 3777375, + 310, 128477483, 70403374, 6281384, 765, 192745857, 32853103, 8997141, 1756, 215041334, 81269072, 12194000, 4387, 48208123, + 94047184, 13917682, 10926, 191238894, 104917316, 18647255, 23833, 243218222, 82182702, 23522413, 62352, 265626453, 118298643, 11013586, + 151357, 132089198, 132503136, 31619236, 351000, 252261002, 20200751, 38594851, 651514, 296562472, 130617407, 45578129, 1308743, 21, + 160345841, 41170643, 2335920, 76, 175879798, 56704329, 791799, 188, 91714763, 65744689, 5056926, 463, 179826795, 74653660, + 7498686, 1052, 206724585, 73597686, 10408699, 2637, 223451558, 88476248, 11367297, 6569, 160800252, 99355175, 16282278, 16344, + 231061827, 55540020, 20897679, 37708, 256805977, 110487342, 25917630, 92866, 80179164, 126099847, 28048135, 221677, 227068379, 138593398, + 35093524, 423499, 284697660, 109995322, 41857749, 914387, 310043630, 152113704, 25955159, 1726178, 46, 168756830, 52075046, 2941595, + 114, 47379614, 61198172, 3977686, 281, 163117833, 69936129, 6156177, 612, 198026847, 62683382, 8782119, 1586, 215708118, + 82886943, 6543415, 3950, 122673171, 93882756, 14062811, 9829, 216437866, 20490792, 18430074, 22685, 247665055, 101028382, 23172374, + 56450, 22164241, 119666999, 23971787, 137378, 195110281, 132315375, 31720544, 157117, 271122384, 81505994, 38280184, 618754, 300500948, + 142885898, 2064764, 1238270, 28, 161592170, 47233920, 2223339, 69, 175687643, 56757447, 3027865, 171, 140514465, 65341672, + 4966952, 424, 188633969, 45192084, 7312916, 954, 207911655, 77158109, 10150678, 2376, 77147190, 88492914, 11975730, 5910, + 197823243, 98881447, 16119560, 13532, 237988662, 87913511, 20584890, 34116, 257970198, 113117143, 17044433, 84043, 155731604, 126098140, + 28462971, 201612, 254832151, 44778755, 34845908, 405910, 290517896, 131609922, 41420804, 860723, 55369518, 154316883, 41454839, 1634550, + 42, 168755317, 52409552, 2021367, 104, 110305987, 60870491, 3927331, 257, 177947968, 19069925, 5999147, 573, 200004970, + 70967310, 8552629, 1430, 24889565, 83172472, 9976351, 3555, 173360302, 93490723, 13965268, 5956, 227399784, 68231094, 18156020, + 20543, 249516790, 106260317, 2912229, 50996, 109143197, 119928220, 25288152, 124456, 234407296, 488837, 31554442, 258563, 279835699, + 116355746, 37888358, 579573, 302281716, 146800067, 32279615, 1165829, 190606744, 161850491, 48126566, 2110224, 64, 72079189, 56521736, + 3032162, 156, 164858956, 64844237, 4838154, 343, 191889281, 63363677, 7111285, 861, 208184818, 77896092, 7705186, 2139, + 141552564, 88200674, 11964943, 5317, 215233032, 40098376, 15886266, 12339, 240872524, 98642502, 20241660, 30792, 55961177, 113781906, + 22083707, 75939, 208205067, 125768403, 28403674, 156350, 268024069, 94587251, 34503200, 378730, 293175659, 138774713, 15743518, 805396, + 143063914, 154950635, 43838678, 1542666, 39, 26407724, 52292790, 2273596, 96, 147551025, 60427515, 3826400, 168, 183384731, + 51897925, 5824565, 518, 200635003, 72610564, 2246410, 1288, 101971026, 83007920, 10113586, 3199, 200360798, 3684661, 13775701, + 7388, 231905274, 89144992, 17847112, 18539, 250162133, 107614898, 18221286, 46005, 174911255, 119733523, 25388398, 112583, 254372571, + 64616324, 31266379, 241087, 283787085, 129665885, 37446617, 538963, 89069363, 148017129, 39321554, 1093413, 244768444, 161644894, 48177860, + 1632685, 59, 123813635, 56140453, 2959243, 147, 174147522, 33083717, 4689668, 312, 193039273, 67187412, 6900035, 776, + 55093307, 77905915, 8398951, 1926, 181098129, 87741926, 11823844, 4331, 222384820, 75414989, 15612334, 11143, 241995264, 101336873, + 10607266, 27754, 134096922, 113767061, 22496516, 68535, 237765479, 26475089, 28178380, 150199, 273949180, 118251358, 34102070, 350185, + 29184286, 140979671, 33655358, 750332, 210094812, 154929906, 44164775, 741401, 37, 92147406, 51983456, 2230600, 90, 163504327, + 5549991, 3702921, 188, 185339677, 61257972, 5639749, 468, 1606478, 72882230, 6773237, 1161, 155513476, 82627789, 10029434, + 2882, 211897768, 54429524, 13537587, 6690, 233722160 +]; +/// NMOS drain current in pA at the 576 cell midpoints of the 62.5 mV grid, corner mos_sf, Vgs = (i + 1/2) * 62.5 mV at index i * 24 + j, Vds = (j + 1/2) * 62.5 mV (deck psp103_idpa_sf.cir, block mid_n). +pub const SF_MID_N : [576]u32 = [ + 56, 83, 93, 103, 113, 122, 132, 141, 150, 159, 167, 176, 184, 192, + 199, 207, 214, 221, 228, 235, 242, 248, 255, 261, 380, 571, 643, 710, + 779, 847, 915, 981, 1046, 1109, 1170, 1230, 1288, 1345, 1400, 1453, 1506, 1557, + 1606, 1655, 1702, 1749, 1794, 1839, 2624, 3954, 4464, 4947, 5440, 5933, 6421, 6900, + 7368, 7824, 8268, 8701, 9122, 9532, 9931, 10319, 10698, 11068, 11429, 11781, 12126, 12462, + 12792, 13115, 17980, 27229, 30791, 34182, 37642, 41112, 44547, 47919, 51217, 54433, 57566, 60617, + 63587, 66479, 69296, 72041, 74718, 77330, 79879, 82368, 84802, 87181, 89510, 91790, 112114, 173073, + 194914, 215153, 235663, 256155, 276385, 296218, 315587, 334462, 352837, 370719, 388120, 405058, 421553, 437623, + 453289, 468569, 483483, 498047, 512279, 526196, 539813, 553147, 495606, 824585, 919726, 996194, 1071169, 1144886, + 1216903, 1286974, 1355010, 1421010, 1485025, 1547130, 1607411, 1665958, 1722860, 1778206, 1832078, 1884553, 1935707, 1985609, + 2034325, 2081918, 2128448, 2173976, 1341634, 2558143, 2891730, 3081424, 3251886, 3414552, 3570747, 3720868, 3865253, 4004252, + 4138213, 4267475, 4392355, 4513149, 4630126, 4743535, 4853602, 4960535, 5064524, 5165745, 5264360, 5360522, 5454376, 5546063, + 2564247, 5548291, 6595705, 7025273, 7340315, 7623974, 7889793, 8141508, 8380990, 8609557, 8828270, 9038026, 9239599, 9433665, + 9620820, 9801587, 9976433, 10145777, 10309992, 10469418, 10624365, 10775120, 10921952, 11065120, 4018564, 9488885, 12044566, 13065768, + 13637523, 14092178, 14499698, 14877545, 15232332, 15567703, 15886167, 16189647, 16479700, 16757622, 17024515, 17281325, 17528877, 17767891, + 17999008, 18222797, 18439771, 18650399, 18855118, 19054339, 5597922, 13995184, 18826436, 21081715, 22185043, 22916700, 23518601, 24056521, + 24552033, 25014745, 25450231, 25862314, 26253873, 26627191, 26984141, 27326292, 27654977, 27971347, 28276401, 28571020, 28855988, 29132011, + 29399740, 29659782, 7229334, 18781968, 26407901, 30625020, 32757666, 33992503, 34889852, 35641996, 36313292, 36929111, 37502001, 38039519, + 38546863, 39027918, 39485739, 39922805, 40341176, 40742591, 41128543, 41500324, 41859070, 42205795, 42541415, 42866780, 8862801, 23656885, + 34357847, 41113030, 44893306, 47019113, 48403432, 49465342, 50366598, 51170825, 51906655, 52589384, 53228513, 53830628, 54400637, 54942378, + 55458949, 55952910, 56426416, 56881305, 57319172, 57741417, 58149294, 58543948, 10464273, 28491029, 42380381, 52029622, 58018845, 61534343, + 63713004, 65248951, 66469337, 67514949, 68448578, 69301469, 70091354, 70829568, 71524040, 72180684, 72804111, 73398033, 73965505, 74509093, + 75030985, 75533078, 76017043, 76484386, 12010991, 33198355, 50281449, 62997116, 71598813, 77000406, 80369768, 82627413, 84308577, 85677771, + 86860059, 87917036, 88881856, 89774312, 90607384, 91390255, 92129794, 92831358, 93499246, 94136998, 94747579, 95333520, 95897019, 96440026, + 13488268, 37722494, 57935673, 73762556, 85213615, 92904828, 97881913, 101176939, 103521235, 105336517, 106842516, 108151730, 109324146, 110394168, + 111383220, 112305699, 113171912, 113989607, 114764835, 115502453, 116206457, 116880197, 117526538, 118147981, 14887212, 42027995, 65263738, 84163850, + 98567354, 108824929, 115780327, 120455543, 123716720, 126145486, 128081474, 129711041, 131136208, 132415004, 133582483, 134661283, 135666958, 136610786, + 137501300, 138345177, 139147791, 139913563, 140646212, 141348927, 16203081, 46094289, 72217760, 94100951, 111464861, 124445732, 133665028, 140044596, + 144503006, 147751675, 150257744, 152300254, 154039825, 155569495, 156945077, 158201776, 159363050, 160445354, 161460769, 162418503, 163325791, 164188471, + 165011362, 165798528, 17434093, 49911412, 78771650, 103515689, 123784403, 139549343, 151223770, 159579816, 165512146, 169810819, 173057073, 175631085, + 177766155, 179602503, 181225330, 182688070, 184025677, 185262086, 186414409, 187495365, 188514723, 189480202, 190398056, 191273466, 18580558, 53476923, + 84914561, 112378309, 135455407, 153994535, 168229628, 178766460, 186419954, 192002505, 196179326, 199426851, 202058849, 204273340, 206194016, 207899167, + 209439761, 210850199, 212154604, 213370524, 214511159, 215586734, 216605378, 217573710, 19644237, 56793668, 90646312, 120678482, 146442357, 167696654, + 184528168, 197380809, 206957008, 214042174, 219347025, 223427186, 226676168, 229356484, 231638407, 233631997, 235409401, 237019110, 238494743, 239860379, + 241133813, 242328586, 243455279, 244522365, 20627880, 59868142, 95974127, 128419193, 156733636, 180611330, 200021940, 215263136, 226911335, 235688539, + 242312374, 247392517, 251392931, 254641781, 257361494, 259700143, 261756383, 263596865, 265267645, 266801402, 268221985, 269547280, 270791049, 271964145, + 21534878, 62709284, 100910275, 135612500, 166333853, 192722325, 214656228, 232307032, 246125037, 256746187, 264861990, 271107966, 276002546, 279934761, + 283181109, 285932252, 288318223, 290428009, 292323339, 294047899, 295633329, 297103109, 298475089, 299763154, 22369012, 65327595, 105470362, 142276537, + 175258554, 204032779, 228407414, 248448263, 264487532, 277064243, 286819008, 294386235, 300319010, 305057266, 308929348, 312170618, 314946231, 317371354, + 319526702, 321469577, 323241387, 324872674, 326386450, 327800430, 23134270, 67734494, 109672071, 148433374, 183530520, 214558998, 241274014, 263654763, + 281927538, 296532354, 308042740, 317069133, 324178575, 329848309, 334452417, 338270170, 341503890, 344297986, 346755230, 348949195, 350933186, 352746447, + 354418395, 355971505 +]; +/// PMOS drain current in pA at the 576 cell midpoints of the 62.5 mV grid, corner mos_sf, Vgs = (i + 1/2) * 62.5 mV at index i * 24 + j, Vds = (j + 1/2) * 62.5 mV (deck psp103_idpa_sf.cir, block mid_p). +pub const SF_MID_P : [576]u32 = [ + 43, 61, 63, 64, 64, 65, 65, 66, 66, 67, 67, 68, 68, 69, + 69, 70, 71, 71, 72, 73, 75, 77, 80, 85, 287, 403, 416, 420, + 422, 424, 426, 428, 429, 431, 433, 434, 436, 437, 439, 440, 442, 443, + 445, 447, 449, 451, 454, 458, 1926, 2703, 2787, 2812, 2828, 2841, 2852, 2862, + 2872, 2881, 2890, 2899, 2908, 2916, 2924, 2932, 2940, 2948, 2956, 2964, 2972, 2980, + 2989, 2998, 12871, 18135, 18717, 18901, 19018, 19112, 19195, 19270, 19341, 19408, 19472, 19534, + 19594, 19653, 19710, 19766, 19822, 19876, 19930, 19983, 20036, 20088, 20141, 20193, 79862, 115106, + 119508, 121164, 122292, 123206, 123997, 124708, 125360, 125967, 126539, 127083, 127604, 128105, 128590, 129060, + 129517, 129964, 130401, 130830, 131251, 131666, 132074, 132477, 365694, 574003, 606556, 620743, 630848, 639020, + 645996, 652144, 657681, 662746, 667435, 671819, 675948, 679861, 683591, 687161, 690593, 693901, 697101, 700203, + 703218, 706154, 709019, 711819, 1032115, 1883420, 2058659, 2125738, 2171001, 2206683, 2236573, 2262498, 2285519, 2306315, + 2325347, 2342947, 2359359, 2374770, 2389325, 2403140, 2416308, 2428906, 2440999, 2452639, 2463872, 2474737, 2485268, 2495495, + 2016648, 4241854, 4919700, 5140521, 5265891, 5358521, 5433648, 5497447, 5553211, 5602950, 5647991, 5689264, 5727443, 5763035, + 5796430, 5827936, 5857800, 5886222, 5913368, 5939378, 5964368, 5988438, 6011674, 6034149, 3184521, 7393714, 9224994, 9871614, + 10168833, 10361677, 10509088, 10630291, 10734017, 10825121, 10906639, 10980610, 11048478, 11111304, 11169892, 11224865, 11276717, 11325848, + 11372583, 11417193, 11459903, 11500907, 11540368, 11578428, 4435142, 10979015, 14617635, 16219586, 16913912, 17296802, 17560911, 17766470, + 17936813, 18083276, 18212326, 18328053, 18433230, 18529835, 18619328, 18702821, 18781184, 18855105, 18925144, 18991758, 19055328, 19116175, + 19174570, 19230747, 5703367, 14732767, 20608035, 23789920, 25311066, 26085096, 26557965, 26896077, 27162197, 27383713, 27574653, 27743177, + 27894490, 28032139, 28158653, 28275913, 28385349, 28488082, 28585004, 28676839, 28764180, 28847524, 28927286, 29003821, 6948971, 18488077, + 26804035, 32053727, 34950854, 36476223, 37344777, 37911175, 38326360, 38655718, 38930542, 39167638, 39376986, 39565005, 39736076, 39893333, + 40039098, 40175147, 40302864, 40423355, 40537517, 40646084, 40749672, 40848796, 8148456, 22145584, 32953653, 40547514, 45311772, 48058777, + 49634286, 50605889, 51269414, 51765270, 52161114, 52491881, 52777190, 53028963, 53254947, 53460449, 53649270, 53824227, 53987468, 54140669, + 54285166, 54422040, 54552179, 54676323, 9289260, 25649546, 38910583, 48951821, 55911432, 60337611, 63023131, 64674787, 65755167, 66519415, + 67099871, 67565934, 67955812, 68291886, 68588102, 68853639, 69094831, 69316221, 69521179, 69712271, 69891498, 70060449, 70220412, 70372441, + 10365782, 28971860, 44596577, 57076005, 66391869, 72843316, 77049681, 79730008, 81473418, 82666690, 83535039, 84204070, 84744341, 85196894, + 85586731, 85929837, 86236904, 86515374, 86770611, 87006602, 87226381, 87432314, 87626277, 87809784, 11376726, 32101623, 49975174, 64818892, + 76526148, 85207058, 91272842, 95345607, 98056746, 99901628, 101210745, 102186166, 102947542, 103566029, 104085022, 104531929, 104924728, 105275655, + 105593325, 105883988, 106152306, 106401835, 106635347, 106855038, 12323367, 35038379, 55035024, 72135344, 86188838, 97179529, 105331933, 111114686, + 115114692, 117880046, 119832493, 121259461, 122344399, 123201507, 123902029, 124491236, 124998671, 125444202, 125841597, 126200674, 126528618, 126830818, + 127111395, 127373570, 13208437, 37787788, 59779523, 79013598, 95322476, 108614049, 118969364, 126695460, 132275631, 136245534, 139080496, 141144204, + 142690212, 143886532, 144842268, 145628312, 146291352, 146862773, 147364183, 147810830, 148213734, 148581043, 148918904, 149232047, 14035422, 40358887, + 64220412, 85461058, 103911538, 119438534, 132023648, 141832923, 149221686, 154660494, 158630297, 161545006, 163721996, 165387526, 166696505, 167753221, + 168627847, 169368067, 170006804, 170567231, 171065988, 171515270, 171924186, 172299668, 14808127, 42762368, 68373827, 91495627, 111964935, 129629874, + 144408758, 156358007, 165707527, 172832528, 178176031, 182166947, 185167988, 187459070, 189243996, 190666349, 191825844, 192791636, 193612029, 194321193, + 194943666, 195497374, 195995630, 196448491, 15530409, 45009523, 72257887, 97140495, 119504981, 139194840, 156091709, 170173641, 181562726, 190529991, + 197450439, 202733213, 206760295, 209851785, 212256867, 214160546, 215696476, 216960015, 218019065, 218922229, 219704638, 220392005, 221003408, 221553211, + 16206024, 47111606, 75891231, 102421021, 126560685, 148157217, 167073892, 183236701, 196682945, 207585711, 216237433, 223000358, 228248406, 232322335, + 235506640, 238024953, 240046309, 241695559, 243063910, 244217831, 245205945, 246064093, 246818960, 247490648, 16838538, 49079466, 79292163, 107362909, + 133163749, 156549617, 177377408, 195541230, 211016168, 223891723, 234376155, 242768353, 249410920, 254643866, 258772170, 262050392, 264680657, 266818257, + 268580171, 270053651, 271303602, 272378432, 273314462, 274139166, 17431289, 50923350, 82478169, 111991159, 139346243, 164408457, 187035807, 207105078, + 224548512, 239389136, 251758032, 261884473, 270063546, 276615105, 281847807, 286035716, 289408037, 292148586, 294400710, 296274291, 297852816, 299199536, + 300362451, 301378156 +]; + ; --- the accessors and the tests ------------------------------------------------------------------------ /// The fold of the first n entries of t after the state s. Order matters. @@ -3252,6 +7659,87 @@ pub fn r2_count(c: u32) -> u32 { return R2_OTHER_COUNT; } +/// The log-domain NMOS table of corner c (M3c-2 for tt, M3c-4 for the others; any other index gives the tt table). +pub fn lg_n(c: u32) -> []const u32 { + if (c == CORNER_FF) { return &FF_LG_N; } + if (c == CORNER_SS) { return &SS_LG_N; } + if (c == CORNER_FS) { return &FS_LG_N; } + if (c == CORNER_SF) { return &SF_LG_N; } + return &TT_LG_N; +} + +/// The log-domain PMOS table of corner c. +pub fn lg_p(c: u32) -> []const u32 { + if (c == CORNER_FF) { return &FF_LG_P; } + if (c == CORNER_SS) { return &SS_LG_P; } + if (c == CORNER_FS) { return &FS_LG_P; } + if (c == CORNER_SF) { return &SF_LG_P; } + return &TT_LG_P; +} + +/// The 1000 NMOS currents in pA at cell centres of the log grid, corner c. +pub fn cen_n(c: u32) -> []const u32 { + if (c == CORNER_FF) { return &FF_CEN_N; } + if (c == CORNER_SS) { return &SS_CEN_N; } + if (c == CORNER_FS) { return &FS_CEN_N; } + if (c == CORNER_SF) { return &SF_CEN_N; } + return &TT_CEN_N; +} + +/// The 1000 PMOS currents in pA at cell centres of the log grid, corner c. +pub fn cen_p(c: u32) -> []const u32 { + if (c == CORNER_FF) { return &FF_CEN_P; } + if (c == CORNER_SS) { return &SS_CEN_P; } + if (c == CORNER_FS) { return &FS_CEN_P; } + if (c == CORNER_SF) { return &SF_CEN_P; } + return &TT_CEN_P; +} + +/// The 576 NMOS currents in pA at the midpoints of the 62.5 mV cells, corner c. +pub fn mid_n(c: u32) -> []const u32 { + if (c == CORNER_FF) { return &FF_MID_N; } + if (c == CORNER_SS) { return &SS_MID_N; } + if (c == CORNER_FS) { return &FS_MID_N; } + if (c == CORNER_SF) { return &SF_MID_N; } + return &TT_MID_N; +} + +/// The 576 PMOS currents in pA at the midpoints of the 62.5 mV cells, corner c. +pub fn mid_p(c: u32) -> []const u32 { + if (c == CORNER_FF) { return &FF_MID_P; } + if (c == CORNER_SS) { return &SS_MID_P; } + if (c == CORNER_FS) { return &FS_MID_P; } + if (c == CORNER_SF) { return &SF_MID_P; } + return &TT_MID_P; +} + +/// The 1000 NMOS currents in pA at the R2 points of corner c (for tt these are TT_R2_N, the other corners' FF_R2_N and the rest hold the first 200 of the same points). +pub fn r2k_n(c: u32) -> []const u32 { + if (c == CORNER_FF) { return &FF_R2K_N; } + if (c == CORNER_SS) { return &SS_R2K_N; } + if (c == CORNER_FS) { return &FS_R2K_N; } + if (c == CORNER_SF) { return &SF_R2K_N; } + return &TT_R2_N; +} + +/// The 1000 PMOS currents in pA at the R2 points of corner c. +pub fn r2k_p(c: u32) -> []const u32 { + if (c == CORNER_FF) { return &FF_R2K_P; } + if (c == CORNER_SS) { return &SS_R2K_P; } + if (c == CORNER_FS) { return &FS_R2K_P; } + if (c == CORNER_SF) { return &SF_R2K_P; } + return &TT_R2_P; +} + +/// The gate scale [vt in uV, v0 in uV, a in 1/1000] of corner c's log tables. +pub fn log_s(c: u32) -> []const u32 { + if (c == CORNER_FF) { return &FF_LOG_S; } + if (c == CORNER_SS) { return &SS_LOG_S; } + if (c == CORNER_FS) { return &FS_LOG_S; } + if (c == CORNER_SF) { return &SF_LOG_S; } + return &TT_LOG_S; +} + /// The NMOS drain-charge table of corner c (any other index gives the tt table). pub fn qd_n(c: u32) -> []const u32 { if (c == CORNER_FF) { return &FF_QD_N; } @@ -3749,3 +8237,226 @@ test the_log_domain_tables_are_the_numbers_ngspice_printed { t[2000] = t[2000] + 1; assert fold_arr(&t, 4851, 0) != fold_arr(&TT_LG_N, 4851, 0); } + +test the_log_domain_tables_of_ss_ff_fs_and_sf_are_the_numbers_ngspice_printed { + // M3c-4 (#11211). Per corner (ff, ss, fs, sf; the tt corner's are above), the two log tables N then P (tag word first), the 1000 + 1000 currents at cell centres, and the references the corner + // is judged by (the 1000 R2 points and the 576 midpoints, N then P): the pins see one changed number, and the accessors route to the named corner's arrays. + var ncorner : u32 = 0; + var c : u32 = CORNER_FF; + while (c <= CORNER_SF) { + var sl : u64 = fold_arr(lg_n(c), 4851, 0); + sl = fold_arr(lg_p(c), 4851, sl); + var sc : u64 = fold_arr(cen_n(c), 1000, 0); + sc = fold_arr(cen_p(c), 1000, sc); + var sr : u64 = fold_arr(r2k_n(c), 1000, 0); + sr = fold_arr(r2k_p(c), 1000, sr); + sr = fold_arr(mid_n(c), 576, sr); + sr = fold_arr(mid_p(c), 576, sr); + if (c == CORNER_FF) { + assert_eq(sl, PIN_FF_LG); + assert_eq(sc, PIN_FF_CEN); + assert_eq(sr, PIN_FF_REF); + } + if (c == CORNER_SS) { + assert_eq(sl, PIN_SS_LG); + assert_eq(sc, PIN_SS_CEN); + assert_eq(sr, PIN_SS_REF); + } + if (c == CORNER_FS) { + assert_eq(sl, PIN_FS_LG); + assert_eq(sc, PIN_FS_CEN); + assert_eq(sr, PIN_FS_REF); + } + if (c == CORNER_SF) { + assert_eq(sl, PIN_SF_LG); + assert_eq(sc, PIN_SF_CEN); + assert_eq(sr, PIN_SF_REF); + } + // The layout: the tag word, 97 * 49 words of log2(Id / F), 97 words of rv; every log word under 2^21 (the reader's u64 interpolation needs under 2^23). + assert_eq(lg_n(c)[0], 4294967295); + assert_eq(lg_p(c)[0], 4294967295); + var lo_n : u32 = lg_n(c)[1]; + var hi_n : u32 = lg_n(c)[1]; + var lo_p : u32 = lg_p(c)[1]; + var hi_p : u32 = lg_p(c)[1]; + var i : usize = 1; + while (i <= 4753) { + if (lg_n(c)[i] < lo_n) { lo_n = lg_n(c)[i]; } + if (lg_n(c)[i] > hi_n) { hi_n = lg_n(c)[i]; } + if (lg_p(c)[i] < lo_p) { lo_p = lg_p(c)[i]; } + if (lg_p(c)[i] > hi_p) { hi_p = lg_p(c)[i]; } + i = i + 1; + } + assert hi_n < 2097152; + assert hi_p < 2097152; + const rv_first : u32 = lg_n(c)[4754]; + const rv_last : u32 = lg_n(c)[4850]; + // The rv words (the last 97 of a table) follow the corner's own gate scale, rv = nint(4096 / s) with s^2 = vt^2 + (a max(Vgs - v0, 0))^2: rv^2 s^2 = 4096^2 to the rounding + // of rv (half a word, so 1 / rv in the square), the same words for both devices, never rising with Vgs. + const gs : []const u32 = log_s(c); + const vt : f64 = (gs[0] as f64) * 0.000001; + const v0 : f64 = (gs[1] as f64) * 0.000001; + const ga : f64 = (gs[2] as f64) * 0.001; + var k : usize = 0; + var steps : u32 = 0; + while (k < 97) { + const vg : f64 = ((k as f64) * 15625.0) * 0.000001; + var ov : f64 = vg - v0; + if (ov < 0.0) { ov = 0.0; } + const s2 : f64 = vt * vt + ga * ga * ov * ov; + const rv : f64 = (lg_n(c)[4754 + k]) as f64; + const dev : f64 = (rv * rv * s2) / 16777216.0 - 1.0; + assert dev * dev * rv * rv < 1.21; + assert_eq(lg_n(c)[4754 + k], lg_p(c)[4754 + k]); + if (k > 0) { + assert lg_n(c)[4754 + k] <= lg_n(c)[4754 + k - 1]; + steps = steps + 1; + } + k = k + 1; + } + assert_eq(steps, 96); + // The currents at cell centres and at the R2 points: all positive, with the extremes of the corner. + var cmin_n : u32 = cen_n(c)[0]; + var cmax_n : u32 = cen_n(c)[0]; + var cmin_p : u32 = cen_p(c)[0]; + var cmax_p : u32 = cen_p(c)[0]; + var rmin_n : u32 = r2k_n(c)[0]; + var rmax_n : u32 = r2k_n(c)[0]; + var rmin_p : u32 = r2k_p(c)[0]; + var rmax_p : u32 = r2k_p(c)[0]; + i = 0; + while (i < 1000) { + if (cen_n(c)[i] < cmin_n) { cmin_n = cen_n(c)[i]; } + if (cen_n(c)[i] > cmax_n) { cmax_n = cen_n(c)[i]; } + if (cen_p(c)[i] < cmin_p) { cmin_p = cen_p(c)[i]; } + if (cen_p(c)[i] > cmax_p) { cmax_p = cen_p(c)[i]; } + if (r2k_n(c)[i] < rmin_n) { rmin_n = r2k_n(c)[i]; } + if (r2k_n(c)[i] > rmax_n) { rmax_n = r2k_n(c)[i]; } + if (r2k_p(c)[i] < rmin_p) { rmin_p = r2k_p(c)[i]; } + if (r2k_p(c)[i] > rmax_p) { rmax_p = r2k_p(c)[i]; } + i = i + 1; + } + assert cmin_n > 0; + assert cmin_p > 0; + assert rmin_n > 0; + assert rmin_p > 0; + if (c == CORNER_FF) { + assert_eq(lo_n, 565300); + assert_eq(hi_n, 1912130); + assert_eq(lo_p, 364960); + assert_eq(hi_p, 1882880); + assert_eq(rv_first, 136533); + assert_eq(rv_last, 4826); + } + if (c == CORNER_SS) { + assert_eq(lo_n, 223382); + assert_eq(hi_n, 1906037); + assert_eq(lo_p, 69772); + assert_eq(hi_p, 1876715); + assert_eq(rv_first, 136533); + assert_eq(rv_last, 4725); + } + if (c == CORNER_FS) { + assert_eq(lo_n, 486201); + assert_eq(hi_n, 1893627); + assert_eq(lo_p, 142610); + assert_eq(hi_p, 1859177); + assert_eq(rv_first, 136533); + assert_eq(rv_last, 6089); + } + if (c == CORNER_SF) { + assert_eq(lo_n, 315941); + assert_eq(hi_n, 1917774); + assert_eq(lo_p, 290425); + assert_eq(hi_p, 1891044); + assert_eq(rv_first, 136533); + assert_eq(rv_last, 4226); + } + if (c == CORNER_FF) { + assert_eq(cmin_n, 460); + assert_eq(cmax_n, 450416506); + assert_eq(cmin_p, 57); + assert_eq(cmax_p, 324955032); + assert_eq(rmin_n, 375); + assert_eq(rmax_n, 449264504); + assert_eq(rmin_p, 47); + assert_eq(rmax_p, 324071984); + } + if (c == CORNER_SS) { + assert_eq(cmin_n, 12); + assert_eq(cmax_n, 336640655); + assert_eq(cmin_p, 2); + assert_eq(cmax_p, 276548641); + assert_eq(rmin_n, 10); + assert_eq(rmax_n, 335778652); + assert_eq(rmin_p, 2); + assert_eq(rmax_p, 275711402); + } + if (c == CORNER_FS) { + assert_eq(cmin_n, 199); + assert_eq(cmax_n, 422916794); + assert_eq(cmin_p, 5); + assert_eq(cmax_p, 286914531); + assert_eq(rmin_n, 162); + assert_eq(rmax_n, 421836206); + assert_eq(rmin_p, 4); + assert_eq(rmax_p, 286070131); + } + if (c == CORNER_SF) { + assert_eq(cmin_n, 33); + assert_eq(cmax_n, 365355154); + assert_eq(cmin_p, 26); + assert_eq(cmax_p, 310910478); + assert_eq(rmin_n, 27); + assert_eq(rmax_n, 364421552); + assert_eq(rmin_p, 21); + assert_eq(rmax_p, 310043630); + } + // The first 200 of the 1000 R2 points are the points of the corner's linear-table deck (psp103_tab_.cir): the same ngspice currents from two decks, word for word. + i = 0; + while (i < 200) { + assert_eq(r2k_n(c)[i], r2_n(c)[i]); + assert_eq(r2k_p(c)[i], r2_p(c)[i]); + i = i + 1; + } + ncorner = ncorner + 1; + c = c + 1; + } + assert_eq(ncorner, 4); + // The tt corner's scale is the constants above, and the five corners' scales differ (each corner has its own). + assert_eq(log_s(CORNER_TT)[0], LOG_S_VT_UV); + assert_eq(log_s(CORNER_TT)[1], LOG_S_V0_UV); + assert_eq(log_s(CORNER_TT)[2], LOG_S_A_MILLI); + assert log_s(CORNER_SS)[1] > log_s(CORNER_TT)[1]; + assert log_s(CORNER_TT)[1] > log_s(CORNER_FF)[1]; + assert log_s(CORNER_SS)[2] > log_s(CORNER_TT)[2]; + // The accessors give the named corner (and the tt one for tt), and no two corners share a pin. + assert_eq(lg_n(CORNER_TT)[4754], TT_LG_N[4754]); + assert_eq(lg_n(CORNER_SS)[4754], SS_LG_N[4754]); + assert_eq(lg_p(CORNER_FS)[4850], FS_LG_P[4850]); + assert_eq(cen_n(CORNER_SF)[999], SF_CEN_N[999]); + assert_eq(mid_p(CORNER_FF)[575], FF_MID_P[575]); + assert_eq(r2k_n(CORNER_TT)[999], TT_R2_N[999]); + assert_eq(r2k_p(CORNER_SS)[0], SS_R2K_P[0]); + assert PIN_SS_LG != PIN_FF_LG; + assert PIN_FF_LG != PIN_FS_LG; + assert PIN_FS_LG != PIN_SF_LG; + assert PIN_SF_LG != PIN_SS_LG; + assert PIN_SS_LG != PIN_TT_LG; + assert PIN_SS_REF != PIN_FF_REF; + // A pin sees one changed number in a table of this size, and the ss tables in the ff slot are not the ff pin. + var t : [4851]u32 = [0] ** 4851; + var j : usize = 0; + while (j < 4851) { + t[j] = SS_LG_N[j]; + j = j + 1; + } + var ss : u64 = fold_arr(&t, 4851, 0); + ss = fold_arr(&SS_LG_P, 4851, ss); + assert_eq(ss, PIN_SS_LG); + t[3000] = t[3000] + 1; + var bad : u64 = fold_arr(&t, 4851, 0); + bad = fold_arr(&SS_LG_P, 4851, bad); + assert bad != PIN_SS_LG; + assert ss != PIN_FF_LG; +} From 2cee1f27a99a76517fb229870f5d31b77035b34b Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 20 Oct 2026 10:04:58 +0700 Subject: [PATCH 2/3] analog M3c-4 (tests): the 1 percent bar at the midpoints, R2 points and cell centres of ss, ff, fs and sf, the 500 fF inverter within 0.05 percent of each corner's own ngspice, the tt tables in an ss run fail by 359 times mos_psp103.t27 holds the log tables of the four corners to the bar of #11211 (FR-003, FR-004), against each corner's own ngspice currents, with the one integer reader of mos_table.t27 unchanged. Relative error with a floor of 1e-9 A, NMOS / PMOS, and the 500 fF inverter on the corner's log tables with its own drain charge against that corner's ngspice backward Euler: corner 576 midpoints 1000 R2 points 1000 cell centres tpLH, tpHL vs ngspice waveform (units) ff 0.048 / 0.104 % 0.430 / 0.432 % 0.490 / 0.613 % 0.0015 %, 0.0312 % 3188 ss 0.114 / 0.103 % 0.421 / 0.628 % 0.597 / 0.677 % 0.0020 %, 0.0236 % 2734 fs 0.086 / 0.100 % 0.588 / 0.633 % 0.727 / 0.734 % 0.0020 %, 0.0194 % 3027 sf 0.130 / 0.124 % 0.453 / 0.464 % 0.510 / 0.623 % 0.0017 %, 0.0192 % 2876 Five tests: the bar at all 24 sets (pinned both sides, with the points above the floor and the gap of the integer read to its f64 twin, at most 0.111 %); the 500 fF inverter of each corner (delays under 0.05 %, last Newton residual 2 units, the run pinned by a fold, the waveform 2.0 to 2.7 times closer than the linear tables with the same charge); the negative control (the tt log tables against the ss currents are 546 % and 359 % off, 359 times the bar or more; in ff, fs and sf 54 to 154 %; the tt tables in the 500 fF inverter of a corner miss its delays by 60 to 283 times; over all 25 pairs of table corner and reference corner exactly the five diagonal pairs pass, the 20 others miss by 53 % or more, 84 times the worst pass); the DC transfer (13 to 27 times closer to ngspice than the linear tables); and the linear tables of the corners (0.57 and more at the same sets). The headers of both specs say what is measured and what is not (no 10 pF run per corner exists). test-report: mos_psp103 40 tests, mos_psp103_data 11, mos_table 20, mos_psp103_50c_data 4, sar_comparator_psp 13, sar_kick_net 23, vacask_compare 7, sar_comparator 20, sar_switch 14, sar_adc 15, sar_kick 10: 0 failed, 0 vacuous; t27b --check exits 0 for both specs. Closes #11211 Co-Authored-By: Claude Sonnet 5.5 --- specs/analog/mos_psp103.t27 | 430 ++++++++++++++++++++++++++++++- specs/analog/mos_psp103_data.t27 | 16 +- 2 files changed, 434 insertions(+), 12 deletions(-) diff --git a/specs/analog/mos_psp103.t27 b/specs/analog/mos_psp103.t27 index 2203c1df04..9046c138f8 100644 --- a/specs/analog/mos_psp103.t27 +++ b/specs/analog/mos_psp103.t27 @@ -1,6 +1,6 @@ // SPDX-License-Identifier: Apache-2.0 ; specs/analog/mos_psp103.t27 -- the CMOS inverter on the IHP SG13G2 PSP103 tables, per corner, judged by ngspice -; M3b of the analog emulation epic (#10486, issue #10516); M3c (#10777, sub-issue #10880) adds the terminal charge, THE CHARGE below, for tt and ss, and M3c-3 (#10882) for ff, fs and sf; M3c-2 (#10881) the log-domain current of tt, THE WEAK INVERSION below. M3a (specs/analog/mos_table.t27) solved a CMOS inverter whose MOS currents +; M3b of the analog emulation epic (#10486, issue #10516); M3c (#10777, sub-issue #10880) adds the terminal charge, THE CHARGE below, for tt and ss, and M3c-3 (#10882) for ff, fs and sf; M3c-2 (#10881) the log-domain current of tt, THE WEAK INVERSION below; M3c-4 (#11211) the log-domain current of ss, ff, fs and sf, THE LOG-DOMAIN CURRENT OF THE OTHER FOUR CORNERS below. M3a (specs/analog/mos_table.t27) solved a CMOS inverter whose MOS currents ; were read from a table made of the square law. This file runs the same solver, unchanged but for taking the NMOS table and the ; PMOS table as two arguments, on tables made from the foundry's model: Id(Vgs, Vds) of sg13_lv_nmos (W 1.0 um) and sg13_lv_pmos ; (W 3.0 um), L 0.45 um, PSP 103.6 through ngspice-47 and the OSDI interface, IHP-Open-PDK commit 21133f219b1a6da10d803e345761e77415ceff40, @@ -123,6 +123,23 @@ ; (without the charge the 10 pF run is 0.16 % and 0.19 % off, as with the linear tables: the charge decides it, not the reader), its waveform within 3002 and 415 units (0.18 mV and ; 25 uV; the linear tables 6691 and, with the same charge, 7341), and its DC transfer within 2829 units (0.17 mV) where the linear tables are 91938 (5.5 mV) off. ; - +; THE LOG-DOMAIN CURRENT OF THE OTHER FOUR CORNERS (M3c-4, issue #11211). The tt log tables met the bar and the other corners had none; ss, ff, fs and sf now have theirs, SS_LG_N and so on in +; mos_psp103_data.t27, each from its own ngspice run of its own corner (decks psp103_idpa_ss.cir, _ff, _fs, _sf) and read by the same integer reader (`lg_fine`, not touched). Each corner has its own gate +; scale s(Vgs) (vt 30 mV, v0 and a below), fitted to its own ngspice grid. Against that corner's ngspice currents, relative error with a floor of 1e-9 A, NMOS / PMOS, and the 500 fF inverter on the +; corner's log tables and its own M3c-3 drain charge against that corner's ngspice backward Euler (the two 50 % delays, the worst of the 401 waveform samples in units of 2^-24 V): +; corner s: v0, a 576 midpoints 1000 R2 points 1000 cell centres tpLH, tpHL of the 500 fF inverter waveform +; ff 0.195 V, 0.650 0.048 / 0.104 % 0.430 / 0.432 % 0.490 / 0.613 % 0.0015 %, 0.0312 % 3188 +; ss 0.305 V, 0.725 0.114 / 0.103 % 0.421 / 0.628 % 0.597 / 0.677 % 0.0020 %, 0.0236 % 2734 +; fs 0.220 V, 0.525 0.086 / 0.100 % 0.588 / 0.633 % 0.727 / 0.734 % 0.0020 %, 0.0194 % 3027 +; sf 0.250 V, 0.775 0.130 / 0.124 % 0.453 / 0.464 % 0.510 / 0.623 % 0.0017 %, 0.0192 % 2876 +; so the bar of 1 % is met at all 24 sets with 1.36 times to spare at the worst (the fs PMOS at a cell centre, 0.734 %), the delays are within 0.0312 % (the bar of the issue 0.05 %), the integer read is +; within 0.111 % of its f64 twin at every set, and the waveform is closer to ngspice than the linear tables with the same charge by a factor of 2.0 to 2.7 (6460 .. 7464 units). The DC transfer +; of the inverter is 13 to 27 times closer to ngspice's than on the linear tables (the worst |dVout| 2469 .. 8270 units = 0.15 .. 0.49 mV; the linear tables 66691 .. 111357). THE NEGATIVE CONTROL +; (FR-004): the tt log tables read against the ss currents at the 1000 R2 points are 546 % (NMOS) and 359 % (PMOS) off, 359 and more times the 1 % bar; in the other three corners 54 .. 154 % +; (ff, fs, sf); the 500 fF inverter on the tt tables in an ss run is 6.3 % and 14.2 % off in its delays (0.05 % allowed); and over all 25 pairs of table corner and reference corner exactly the +; five diagonal pairs pass (at most 0.63 %) while the 20 others miss by 53 % and more, 84 times the worst pass. The linear tables of the four corners stay at 0.57 and more on the same points. +; WHAT IS NOT SAID FOR THEM: the 10 pF circuit (there is no ngspice 10 pF run of these corners), the Newton count K = 1, 2 and the mutants (tested on the tt tables above), and anything but 27 C. +; - ; THE NEGATIVE CONTROLS, tests that pass by seeing the failure. `check_tt` holds a pair of tables to the tt bounds (Id at the 1000 ; R2 points of each device, the DC transfer and the 10 pF transient against ngspice tt). The tt pair passes. The ss pair used where ; tt is expected fails every measure, by a factor of 36 to 830 over its bound: 59 uA at a held-out point, 283 mV of DC output, 10.3 mV of @@ -155,8 +172,8 @@ ; WHAT IT DOES NOT SAY. That this is PSP103: it is a TABLE MODEL of it, bilinear (the log tables: bilinear in log2 of Id / F), at 27 C, for two device sizes, no body effect (bulk at ; the source), no Vds < 0, no Vgs < 0 (the table's range is 0 .. 1.5 V), nothing about another W, L, m, temperature, the high-voltage ; devices, mismatch or Monte Carlo. That the relative-error proposal of the issue (1 %, floor 1e-9 A) is met by the LINEAR tables: it is not (see above) and the bound held for them is the -; measured one; it is met by the log tables of tt, only: the other four corners have no log table, and the log tables have no gm, no charge and no Vds < 0. Below the floor of 1 nA the bar is -; an absolute 10 pA (1 % of the floor), and a current below 1.164 pA is held at that. The log read is checked for tt at the two circuits above: the 10 pF +; measured one; it is met by the log tables of all five corners (tt: M3c-2, ss, ff, fs and sf: M3c-4); the log tables have no gm, no charge and no Vds < 0. Below the floor of 1 nA the bar is +; an absolute 10 pA (1 % of the floor), and a current below 1.164 pA is held at that. The log read is checked for tt at the two circuits above and for the other four corners at the 500 fF circuit only: the 10 pF ; run needs the charge (0.16 % and 0.19 % off without it, the linear tables 0.14 % and 0.17 %), which is the M3c charge scaled, not a new measurement of it. Charge: the drain and gate charge of all five corners, for a 500 fF node and a ; 100 ps step; the gate charge is read by one circuit here, the gate node, in tt only, in f64 and not on the board's integer path; the source and bulk charge is not tabulated (the source and bulk are ; on the rails); the 10 pF run has no charge in it (its device capacitance is 0.2 % of the load). The transient is checked for tt only, on two @@ -170,7 +187,7 @@ module AnalogMosPsp103; use analog::linear::{fabs64}; use analog::mos_table::{CELL, CELL_F, VDD_F, NCELL, NODES, VDD, K_NEWTON, RES_BOUND, RUN_STEPS, lim, id_of, gm_cell, gds_cell, mag_diff, monotone, monotone_along, fmax64, run_fix, run_fix_q, run_tabf, run_tabf_q, max_of, board_step, inv_step, inv_step_q, g_resid_q, NOQ, idf, gdsf, LG_NG, LG_ND, LG_GBITS, LG_DBITS, LG_TAG, LG_LEN, lg_fine, id_log, gds_log, idf_log, cur_of, cur_gds, lg_lam, lg_rv, exp_f64}; use analog::sar_comparator::{sc_gmf}; -use analog::mos_psp103_data::{R2_A1, R2_A2, R2_TT_COUNT, CORNER_TT, CORNER_FF, CORNER_SS, CORNER_FS, CORNER_SF, TT_N, TT_P, SS_N, SS_P, TT_INV, TT_MID_N, TT_MID_P, TT_R2_N, TT_R2_P, INV10_BE, INV10_FINE, INV10_FINE_TPLH_FS, INV10_FINE_TPHL_FS, INV500_BE_TPLH_FS, INV500_BE_TPHL_FS, INV500_FINE_TPLH_FS, INV500_FINE_TPHL_FS, INV500_BE, TT_QD_N, TT_QG_N, TT_QD_P, TT_QG_P, SS_QD_N, SS_QG_N, SS_QD_P, SS_QG_P, OP_CDD_AF, OP_CDG_AF, OP_CGG_AF, OP_CGSOL_AF, OP_CGDOL_AF, OP_CJD_AF, OP_FF_AF, OP_FS_AF, OP_SF_AF, GATE_BE, table_n, table_p, fold_q, qd_n, qg_n, qd_p, qg_p, inv500_be, inv500_tplh_fs, inv500_tphl_fs, inv_dc, r2_n, r2_p, r2_count, TT_LG_N, TT_LG_P, TT_CEN_N, TT_CEN_P}; +use analog::mos_psp103_data::{R2_A1, R2_A2, R2_TT_COUNT, CORNER_TT, CORNER_FF, CORNER_SS, CORNER_FS, CORNER_SF, TT_N, TT_P, SS_N, SS_P, TT_INV, TT_MID_N, TT_MID_P, TT_R2_N, TT_R2_P, INV10_BE, INV10_FINE, INV10_FINE_TPLH_FS, INV10_FINE_TPHL_FS, INV500_BE_TPLH_FS, INV500_BE_TPHL_FS, INV500_FINE_TPLH_FS, INV500_FINE_TPHL_FS, INV500_BE, TT_QD_N, TT_QG_N, TT_QD_P, TT_QG_P, SS_QD_N, SS_QG_N, SS_QD_P, SS_QG_P, OP_CDD_AF, OP_CDG_AF, OP_CGG_AF, OP_CGSOL_AF, OP_CGDOL_AF, OP_CJD_AF, OP_FF_AF, OP_FS_AF, OP_SF_AF, GATE_BE, table_n, table_p, fold_q, qd_n, qg_n, qd_p, qg_p, inv500_be, inv500_tplh_fs, inv500_tphl_fs, inv_dc, r2_n, r2_p, r2_count, TT_LG_N, TT_LG_P, TT_CEN_N, TT_CEN_P, lg_n, lg_p, cen_n, cen_p, mid_n, mid_p, r2k_n, r2k_p}; pub const KIND : str = "analog-cell-check"; pub const ID : str = "analog/mos_psp103"; @@ -242,6 +259,13 @@ pub const EXP_S_TT_LQ : u64 = 0x1745008BA3F87284; pub const EXP_S_TT_LQ10 : u64 = 0x27D759234A27E404; /// The issue's bar for the current: at most 1 % relative error with a floor of 1e-9 A on the reference. pub const B_LOG_ISSUE : f64 = 0.01; +/// M3c-4 (#11211): the run of each of the other four corners on its OWN log tables and its own drain-charge tables at 500 fF / 100 ps, the gate at Vdd before step 0 (the fold of the 400 samples). +pub const EXP_S_SS_LQ : u64 = 0x5DA6054BBF0EBD28; +pub const EXP_S_FF_LQ : u64 = 0xF63DB619F6F27EA7; +pub const EXP_S_FS_LQ : u64 = 0x5969E1831DE7DBC1; +pub const EXP_S_SF_LQ : u64 = 0x880B35D192C7CE28; +/// The integer read against its f64 twin on the same words, relative with a floor of 1 nA, at every one of the 24 sets of the four corners: at most this (measured 0.1111 %). +pub const B_LOG_ARITH_ALL : f64 = 0.00115; ; --- the gate node (M3c-3, deck psp103_gate_node.cir) ------------------------------------------------- /// The node's own capacitance, 25 fF; dt = 5 ps on it is dt / C = 200 V/A, the unit of the current tables. @@ -566,6 +590,43 @@ pub fn inv_run_l(tn: []const u32, tp: []const u32, qn: []const u32, qp: []const return InvL { up_rel: rel_gap(delay_up(&fix), ref_up), dn_rel: rel_gap(delay_dn(&fix), ref_dn), wave: max_diff(&fix, &bef, 401), res: max_of(&res), fold: s, rest: rest }; } +/// The 500 fF inverter of M3c-4 (#11211): the log tables ln_, lp_ (corner c's own, or another's for a negative control) with the drain-charge tables qn, qp, run as `inv_run_l` +/// against ngspice backward Euler OF CORNER c at 500 fF and 100 ps (its waveform inv500_be(c) and its two .meas 50 % crossings). +pub fn inv500_log(c: u32, ln_: []const u32, lp_: []const u32, qn: []const u32, qp: []const u32) -> InvL { + const up : f64 = steps_of_fs(inv500_tplh_fs(c), EDGE1_500F_FS, DT_500F_FS); + const dn : f64 = steps_of_fs(inv500_tphl_fs(c), EDGE2_500F_FS, DT_500F_FS); + return inv_run_l(ln_, lp_, qn, qp, inv500_be(c), up, dn); +} + +/// The log tables of corner c, device dev (0 the NMOS, 1 the PMOS), against the corner's OWN ngspice currents at held-out set kind (0 the 576 midpoints of the 62.5 mV cells, 1 the 1000 R2 +/// points, 2 the 1000 centres of the log grid's cells): `hold_log` on the arrays of the accessors of mos_psp103_data.t27 (tt: TT_R2_N for the R2 points). +pub fn hold_corner(c: u32, dev: u32, kind: u32) -> HoldL { + var n : u32 = 1000; + if (kind == 0) { n = 576; } + if (dev == 0) { + if (kind == 0) { return hold_log(lg_n(c), mid_n(c), 0, n); } + if (kind == 1) { return hold_log(lg_n(c), r2k_n(c), 1, n); } + return hold_log(lg_n(c), cen_n(c), 2, n); + } + if (kind == 0) { return hold_log(lg_p(c), mid_p(c), 0, n); } + if (kind == 1) { return hold_log(lg_p(c), r2k_p(c), 1, n); } + return hold_log(lg_p(c), cen_p(c), 2, n); +} + +/// The same for the 25 x 25 LINEAR tables of corner c read by the M3b reader (`hold_stats`). +pub fn hold_corner_lin(c: u32, dev: u32, kind: u32) -> Hold { + var n : u32 = 1000; + if (kind == 0) { n = 576; } + if (dev == 0) { + if (kind == 0) { return hold_stats(table_n(c), mid_n(c), 0, n); } + if (kind == 1) { return hold_stats(table_n(c), r2k_n(c), 1, n); } + return hold_stats(table_n(c), cen_n(c), 2, n); + } + if (kind == 0) { return hold_stats(table_p(c), mid_p(c), 0, n); } + if (kind == 1) { return hold_stats(table_p(c), r2k_p(c), 1, n); } + return hold_stats(table_p(c), cen_p(c), 2, n); +} + /// How many of the 576 cells of a table have the interpolant's movement across the cell equal to the cell's slope, within the 2 units /// of the two reads and the slope's rounding: ax 1 across a cell of Vds against `gds_cell`, ax 0 across a cell of Vgs against /// `gm_cell`. For a table nondecreasing along that axis. The slope is read off the same nodes as the value (FR-002). @@ -2238,3 +2299,364 @@ test a_mutant_log_table_or_a_wrong_device_fails_the_one_percent_bar { assert m5.rel9 > 5.0 * B_LOG_ISSUE; assert m6.rel9 > 5.0 * B_LOG_ISSUE; } + +test the_log_domain_reader_meets_one_percent_with_a_floor_of_1_nA_in_ss_ff_fs_and_sf_at_the_midpoints_the_r2_points_and_the_cell_centres { + // M3c-4 (#11211), FR-003. The log tables of ss, ff, fs and sf, each from its own ngspice run (decks psp103_idpa_ss.cir, _ff, _fs, _sf), read by the one integer reader of mos_table.t27 (`lg_fine`), against + // THAT corner's ngspice currents at the 576 cell midpoints, the 1000 R2 points and 1000 centres of the log grid's own cells, both devices: the relative error with a floor of 1e-9 A on the reference. + // Each corner has its own gate scale (SS_LOG_S ...), fitted to its own grid; the tt scale in the ff run is 1.2 % off on the NMOS on its own grid. + var worst : f64 = 0.0; + var worst_abs : f64 = 0.0; + var worst_arith : f64 = 0.0; + var nsets : u32 = 0; + var c : u32 = CORNER_FF; + while (c <= CORNER_SF) { + var dev : u32 = 0; + while (dev < 2) { + var kind : u32 = 0; + while (kind < 3) { + const h : HoldL = hold_corner(c, dev, kind); + // THE BAR, at every one of the 24 sets (4 corners, 2 devices, 3 sets), and the integer arithmetic within 0.115 % of its f64 twin. + assert h.rel9 < B_LOG_ISSUE; + assert h.arith < B_LOG_ARITH_ALL; + worst = fmax64(worst, h.rel9); + worst_abs = fmax64(worst_abs, h.abs_a); + worst_arith = fmax64(worst_arith, h.arith); + nsets = nsets + 1; + kind = kind + 1; + } + dev = dev + 1; + } + c = c + 1; + } + assert_eq(nsets, 24); + // The worst of the 24 sets: 0.7344 % (the fs PMOS at a cell centre), 1.36 times under the bar; the largest absolute error 60 nA; the largest gap of the integer read to its twin 0.1111 %. + assert worst < 0.007359; + assert worst > 0.007329; + assert worst_abs < 0.00000005981; + assert worst_abs > 0.00000005956; + assert worst_arith < 0.001113; + assert worst_arith > 0.001108; + // ff. relative error at the midpoints (nodes of the log grid: the rounding of the words), the R2 points, the cell centres, NMOS then PMOS; the points above the floor of 1 nA. + const h_ff_n_mid : HoldL = hold_corner(CORNER_FF, 0, 0); + assert h_ff_n_mid.rel9 < 0.0004844; + assert h_ff_n_mid.rel9 > 0.0004828; + assert_eq(h_ff_n_mid.n9, 575); + const h_ff_n_r2 : HoldL = hold_corner(CORNER_FF, 0, 1); + assert h_ff_n_r2.rel9 < 0.004304; + assert h_ff_n_r2.rel9 > 0.004290; + assert_eq(h_ff_n_r2.n9, 996); + const h_ff_n_cen : HoldL = hold_corner(CORNER_FF, 0, 2); + assert h_ff_n_cen.rel9 < 0.004905; + assert h_ff_n_cen.rel9 > 0.004889; + assert_eq(h_ff_n_cen.n9, 995); + const h_ff_p_mid : HoldL = hold_corner(CORNER_FF, 1, 0); + assert h_ff_p_mid.rel9 < 0.001044; + assert h_ff_p_mid.rel9 > 0.001040; + assert_eq(h_ff_p_mid.n9, 528); + const h_ff_p_r2 : HoldL = hold_corner(CORNER_FF, 1, 1); + assert h_ff_p_r2.rel9 < 0.004331; + assert h_ff_p_r2.rel9 > 0.004317; + assert_eq(h_ff_p_r2.n9, 936); + const h_ff_p_cen : HoldL = hold_corner(CORNER_FF, 1, 2); + assert h_ff_p_cen.rel9 < 0.006141; + assert h_ff_p_cen.rel9 > 0.006121; + assert_eq(h_ff_p_cen.n9, 936); + // ss. relative error at the midpoints (nodes of the log grid: the rounding of the words), the R2 points, the cell centres, NMOS then PMOS; the points above the floor of 1 nA. + const h_ss_n_mid : HoldL = hold_corner(CORNER_SS, 0, 0); + assert h_ss_n_mid.rel9 < 0.001141; + assert h_ss_n_mid.rel9 > 0.001137; + assert_eq(h_ss_n_mid.n9, 528); + const h_ss_n_r2 : HoldL = hold_corner(CORNER_SS, 0, 1); + assert h_ss_n_r2.rel9 < 0.004220; + assert h_ss_n_r2.rel9 > 0.004207; + assert_eq(h_ss_n_r2.n9, 918); + const h_ss_n_cen : HoldL = hold_corner(CORNER_SS, 0, 2); + assert h_ss_n_cen.rel9 < 0.005984; + assert h_ss_n_cen.rel9 > 0.005965; + assert_eq(h_ss_n_cen.n9, 920); + const h_ss_p_mid : HoldL = hold_corner(CORNER_SS, 1, 0); + assert h_ss_p_mid.rel9 < 0.001033; + assert h_ss_p_mid.rel9 > 0.001029; + assert_eq(h_ss_p_mid.n9, 504); + const h_ss_p_r2 : HoldL = hold_corner(CORNER_SS, 1, 1); + assert h_ss_p_r2.rel9 < 0.006287; + assert h_ss_p_r2.rel9 > 0.006268; + assert_eq(h_ss_p_r2.n9, 867); + const h_ss_p_cen : HoldL = hold_corner(CORNER_SS, 1, 2); + assert h_ss_p_cen.rel9 < 0.006776; + assert h_ss_p_cen.rel9 > 0.006755; + assert_eq(h_ss_p_cen.n9, 862); + // fs. relative error at the midpoints (nodes of the log grid: the rounding of the words), the R2 points, the cell centres, NMOS then PMOS; the points above the floor of 1 nA. + const h_fs_n_mid : HoldL = hold_corner(CORNER_FS, 0, 0); + assert h_fs_n_mid.rel9 < 0.0008599; + assert h_fs_n_mid.rel9 > 0.0008572; + assert_eq(h_fs_n_mid.n9, 565); + const h_fs_n_r2 : HoldL = hold_corner(CORNER_FS, 0, 1); + assert h_fs_n_r2.rel9 < 0.005889; + assert h_fs_n_r2.rel9 > 0.005871; + assert_eq(h_fs_n_r2.n9, 979); + const h_fs_n_cen : HoldL = hold_corner(CORNER_FS, 0, 2); + assert h_fs_n_cen.rel9 < 0.007279; + assert h_fs_n_cen.rel9 > 0.007256; + assert_eq(h_fs_n_cen.n9, 978); + const h_fs_p_mid : HoldL = hold_corner(CORNER_FS, 1, 0); + assert h_fs_p_mid.rel9 < 0.001003; + assert h_fs_p_mid.rel9 > 0.0009997; + assert_eq(h_fs_p_mid.n9, 504); + const h_fs_p_r2 : HoldL = hold_corner(CORNER_FS, 1, 1); + assert h_fs_p_r2.rel9 < 0.006342; + assert h_fs_p_r2.rel9 > 0.006322; + assert_eq(h_fs_p_r2.n9, 883); + const h_fs_p_cen : HoldL = hold_corner(CORNER_FS, 1, 2); + assert h_fs_p_cen.rel9 < 0.007355; + assert h_fs_p_cen.rel9 > 0.007332; + assert_eq(h_fs_p_cen.n9, 883); + // sf. relative error at the midpoints (nodes of the log grid: the rounding of the words), the R2 points, the cell centres, NMOS then PMOS; the points above the floor of 1 nA. + const h_sf_n_mid : HoldL = hold_corner(CORNER_SF, 0, 0); + assert h_sf_n_mid.rel9 < 0.001300; + assert h_sf_n_mid.rel9 > 0.001295; + assert_eq(h_sf_n_mid.n9, 544); + const h_sf_n_r2 : HoldL = hold_corner(CORNER_SF, 0, 1); + assert h_sf_n_r2.rel9 < 0.004542; + assert h_sf_n_r2.rel9 > 0.004528; + assert_eq(h_sf_n_r2.n9, 937); + const h_sf_n_cen : HoldL = hold_corner(CORNER_SF, 0, 2); + assert h_sf_n_cen.rel9 < 0.005107; + assert h_sf_n_cen.rel9 > 0.005091; + assert_eq(h_sf_n_cen.n9, 938); + const h_sf_p_mid : HoldL = hold_corner(CORNER_SF, 1, 0); + assert h_sf_p_mid.rel9 < 0.001240; + assert h_sf_p_mid.rel9 > 0.001235; + assert_eq(h_sf_p_mid.n9, 528); + const h_sf_p_r2 : HoldL = hold_corner(CORNER_SF, 1, 1); + assert h_sf_p_r2.rel9 < 0.004647; + assert h_sf_p_r2.rel9 > 0.004632; + assert_eq(h_sf_p_r2.n9, 916); + const h_sf_p_cen : HoldL = hold_corner(CORNER_SF, 1, 2); + assert h_sf_p_cen.rel9 < 0.006240; + assert h_sf_p_cen.rel9 > 0.006220; + assert_eq(h_sf_p_cen.n9, 915); +} + +test the_500_fF_inverter_on_the_log_tables_of_ss_ff_fs_and_sf_is_within_0_05_percent_of_ngspice_backward_euler_of_the_same_corner { + // M3c-4 (#11211), FR-003. The inverter at 500 fF and dt = 100 ps, 400 steps, the current read by the corner's own log tables and the charge by the corner's own M3c-3 drain-charge tables, the board's arithmetic + // (K = 3, the last Newton residual at most 2 units, from the corner's own DC rest value), against ngspice backward Euler OF THE SAME CORNER on the same grid (decks psp103_inv_be_500f_ss.cir, _ff, _fs, _sf): + // both 50 % delays within 0.05 % (the issue asked for 0.05 %), the waveform of 401 samples within 7500 units (0.45 mV), and closer to ngspice than the linear tables with the same charge. + const ff : InvL = inv500_log(CORNER_FF, lg_n(CORNER_FF), lg_p(CORNER_FF), qd_n(CORNER_FF), qd_p(CORNER_FF)); + const l_ff : InvL = inv_run_l(table_n(CORNER_FF), table_p(CORNER_FF), qd_n(CORNER_FF), qd_p(CORNER_FF), inv500_be(CORNER_FF), steps_of_fs(inv500_tplh_fs(CORNER_FF), EDGE1_500F_FS, DT_500F_FS), steps_of_fs(inv500_tphl_fs(CORNER_FF), EDGE2_500F_FS, DT_500F_FS)); + const ss : InvL = inv500_log(CORNER_SS, lg_n(CORNER_SS), lg_p(CORNER_SS), qd_n(CORNER_SS), qd_p(CORNER_SS)); + const l_ss : InvL = inv_run_l(table_n(CORNER_SS), table_p(CORNER_SS), qd_n(CORNER_SS), qd_p(CORNER_SS), inv500_be(CORNER_SS), steps_of_fs(inv500_tplh_fs(CORNER_SS), EDGE1_500F_FS, DT_500F_FS), steps_of_fs(inv500_tphl_fs(CORNER_SS), EDGE2_500F_FS, DT_500F_FS)); + const fs : InvL = inv500_log(CORNER_FS, lg_n(CORNER_FS), lg_p(CORNER_FS), qd_n(CORNER_FS), qd_p(CORNER_FS)); + const l_fs : InvL = inv_run_l(table_n(CORNER_FS), table_p(CORNER_FS), qd_n(CORNER_FS), qd_p(CORNER_FS), inv500_be(CORNER_FS), steps_of_fs(inv500_tplh_fs(CORNER_FS), EDGE1_500F_FS, DT_500F_FS), steps_of_fs(inv500_tphl_fs(CORNER_FS), EDGE2_500F_FS, DT_500F_FS)); + const sf : InvL = inv500_log(CORNER_SF, lg_n(CORNER_SF), lg_p(CORNER_SF), qd_n(CORNER_SF), qd_p(CORNER_SF)); + const l_sf : InvL = inv_run_l(table_n(CORNER_SF), table_p(CORNER_SF), qd_n(CORNER_SF), qd_p(CORNER_SF), inv500_be(CORNER_SF), steps_of_fs(inv500_tplh_fs(CORNER_SF), EDGE1_500F_FS, DT_500F_FS), steps_of_fs(inv500_tphl_fs(CORNER_SF), EDGE2_500F_FS, DT_500F_FS)); + // ff: tpLH 0.0015 % and tpHL 0.0312 % from ngspice's (linear tables with the same charge: 0.0207 % and 0.0107 %), the waveform's worst of 401 samples 3188 units (linear: 6460), rest value 2 units. + assert ff.up_rel < B_Q_DELAY_REL; + assert ff.dn_rel < B_Q_DELAY_REL; + assert ff.wave < B_Q_WAVE_ALL_UNITS; + assert ff.res <= RES_BOUND; + assert_eq(ff.res, 2); + assert_eq(ff.rest, 2); + assert_eq(ff.fold, EXP_S_FF_LQ); + assert ff.up_rel < 0.00001480; + assert ff.up_rel > 0.00001475; + assert ff.dn_rel < 0.0003121; + assert ff.dn_rel > 0.0003110; + assert ff.wave < 3188.5; + assert ff.wave > 3187.5; + assert ff.wave * 1.9 < l_ff.wave; + // ss: tpLH 0.0020 % and tpHL 0.0236 % from ngspice's (linear tables with the same charge: 0.0177 % and 0.0100 %), the waveform's worst of 401 samples 2734 units (linear: 7464), rest value 3 units. + assert ss.up_rel < B_Q_DELAY_REL; + assert ss.dn_rel < B_Q_DELAY_REL; + assert ss.wave < B_Q_WAVE_ALL_UNITS; + assert ss.res <= RES_BOUND; + assert_eq(ss.res, 2); + assert_eq(ss.rest, 3); + assert_eq(ss.fold, EXP_S_SS_LQ); + assert ss.up_rel < 0.00001993; + assert ss.up_rel > 0.00001986; + assert ss.dn_rel < 0.0002368; + assert ss.dn_rel > 0.0002360; + assert ss.wave < 2734.5; + assert ss.wave > 2733.5; + assert ss.wave * 1.9 < l_ss.wave; + // fs: tpLH 0.0020 % and tpHL 0.0194 % from ngspice's (linear tables with the same charge: 0.0191 % and 0.0019 %), the waveform's worst of 401 samples 3027 units (linear: 6891), rest value 3 units. + assert fs.up_rel < B_Q_DELAY_REL; + assert fs.dn_rel < B_Q_DELAY_REL; + assert fs.wave < B_Q_WAVE_ALL_UNITS; + assert fs.res <= RES_BOUND; + assert_eq(fs.res, 2); + assert_eq(fs.rest, 3); + assert_eq(fs.fold, EXP_S_FS_LQ); + assert fs.up_rel < 0.00002049; + assert fs.up_rel > 0.00002042; + assert fs.dn_rel < 0.0001945; + assert fs.dn_rel > 0.0001938; + assert fs.wave < 3027.5; + assert fs.wave > 3026.5; + assert fs.wave * 1.9 < l_fs.wave; + // sf: tpLH 0.0017 % and tpHL 0.0192 % from ngspice's (linear tables with the same charge: 0.0249 % and 0.0079 %), the waveform's worst of 401 samples 2876 units (linear: 6706), rest value 3 units. + assert sf.up_rel < B_Q_DELAY_REL; + assert sf.dn_rel < B_Q_DELAY_REL; + assert sf.wave < B_Q_WAVE_ALL_UNITS; + assert sf.res <= RES_BOUND; + assert_eq(sf.res, 2); + assert_eq(sf.rest, 3); + assert_eq(sf.fold, EXP_S_SF_LQ); + assert sf.up_rel < 0.00001681; + assert sf.up_rel > 0.00001675; + assert sf.dn_rel < 0.0001921; + assert sf.dn_rel > 0.0001914; + assert sf.wave < 2876.5; + assert sf.wave > 2875.5; + assert sf.wave * 1.9 < l_sf.wave; +} + +test the_tt_log_tables_in_an_ss_ff_fs_or_sf_run_fail_the_one_percent_bar_by_5_times_or_more_and_only_the_corners_own_tables_pass { + // M3c-4 (#11211), FR-004, THE NEGATIVE CONTROL. The tt log tables (TT_LG_N, TT_LG_P) read against the ngspice currents of the ss run (and of ff, fs, sf) at the 1000 R2 points: the relative error is + // many times the bar, not a few percent (ss: NMOS 5.46, PMOS 3.59, that is 546 and 359 times the 1 % bar). The tt tables in the corner's 500 fF inverter fail the 0.05 % delays by 60 to 280 times. And over + // all 25 pairs of table corner and reference corner (the R2 points, both devices) exactly the five diagonal pairs pass the bar and the 20 others miss it by more than 50 times. + var c : u32 = CORNER_FF; + while (c <= CORNER_SF) { + const hn : HoldL = hold_log(&TT_LG_N, r2k_n(c), 1, 1000); + const hp : HoldL = hold_log(&TT_LG_P, r2k_p(c), 1, 1000); + const mn : HoldL = hold_log(&TT_LG_N, mid_n(c), 0, 576); + const mp : HoldL = hold_log(&TT_LG_P, mid_p(c), 0, 576); + assert hn.rel9 > 5.0 * B_LOG_ISSUE; + assert hp.rel9 > 5.0 * B_LOG_ISSUE; + assert mn.rel9 > 5.0 * B_LOG_ISSUE; + assert mp.rel9 > 5.0 * B_LOG_ISSUE; + // The corner's own tables on the same points are under the bar, 70 times closer or more. + const gn : HoldL = hold_corner(c, 0, 1); + const gp : HoldL = hold_corner(c, 1, 1); + assert gn.rel9 < B_LOG_ISSUE; + assert gp.rel9 < B_LOG_ISSUE; + assert hn.rel9 > 70.0 * gn.rel9; + assert hp.rel9 > 70.0 * gp.rel9; + // The inverter with the tt current tables and the corner's own charge, against that corner's ngspice: both delays far outside 0.05 %. + const bad : InvL = inv500_log(c, &TT_LG_N, &TT_LG_P, qd_n(c), qd_p(c)); + assert bad.up_rel > 50.0 * B_Q_DELAY_REL; + assert bad.dn_rel > 50.0 * B_Q_DELAY_REL; + assert bad.wave > 90.0 * B_Q_WAVE_ALL_UNITS; + c = c + 1; + } + // The scenario of the issue: the tt tables in the ss run. + const sn : HoldL = hold_log(&TT_LG_N, r2k_n(CORNER_SS), 1, 1000); + const sp : HoldL = hold_log(&TT_LG_P, r2k_p(CORNER_SS), 1, 1000); + assert sn.rel9 < 5.471; + assert sn.rel9 > 5.453; + assert sp.rel9 < 3.593; + assert sp.rel9 > 3.581; + const sbad : InvL = inv500_log(CORNER_SS, &TT_LG_N, &TT_LG_P, qd_n(CORNER_SS), qd_p(CORNER_SS)); + assert sbad.up_rel < 0.06289; + assert sbad.up_rel > 0.06269; + assert sbad.dn_rel < 0.1419; + assert sbad.dn_rel > 0.1414; + var npass : u32 = 0; + var nmiss : u32 = 0; + var minoff : f64 = 100.0; + var maxdiag : f64 = 0.0; + var a : u32 = 0; + while (a < 5) { + var b : u32 = 0; + while (b < 5) { + const pn : HoldL = hold_log(lg_n(a), r2k_n(b), 1, 1000); + const pp : HoldL = hold_log(lg_p(a), r2k_p(b), 1, 1000); + if (a == b) { + assert pn.rel9 < B_LOG_ISSUE; + assert pp.rel9 < B_LOG_ISSUE; + maxdiag = fmax64(maxdiag, fmax64(pn.rel9, pp.rel9)); + npass = npass + 1; + } else { + assert pn.rel9 > 50.0 * B_LOG_ISSUE; + assert pp.rel9 > 50.0 * B_LOG_ISSUE; + if (pn.rel9 < minoff) { minoff = pn.rel9; } + if (pp.rel9 < minoff) { minoff = pp.rel9; } + nmiss = nmiss + 1; + } + b = b + 1; + } + a = a + 1; + } + assert_eq(npass, 5); + assert_eq(nmiss, 20); + // The least of the 20 misses is 53.4 % (53 times the bar); the largest of the five passes is 0.63 %. + assert minoff < 0.5348; + assert minoff > 0.5331; + assert maxdiag < 0.006342; + assert maxdiag > 0.006322; + assert minoff > 80.0 * maxdiag; +} + +test the_inverter_dc_transfer_on_the_log_tables_of_ss_ff_fs_and_sf_is_closer_to_ngspice_than_on_the_linear_ones { + // M3c-4 (#11211). The DC transfer of the inverter (49 points, the bisection of `dc_out` reading the tables through `cur_of`) against ngspice's own transfer of the same corner: the largest |dVout| + // on the log tables against the linear tables of that corner, and the trip point (the 0.75 V crossing) against ngspice's. + const d_ff : Dc = dc_check(lg_n(CORNER_FF), lg_p(CORNER_FF), inv_dc(CORNER_FF)); + const l_ff : Dc = dc_check(table_n(CORNER_FF), table_p(CORNER_FF), inv_dc(CORNER_FF)); + const d_ss : Dc = dc_check(lg_n(CORNER_SS), lg_p(CORNER_SS), inv_dc(CORNER_SS)); + const l_ss : Dc = dc_check(table_n(CORNER_SS), table_p(CORNER_SS), inv_dc(CORNER_SS)); + const d_fs : Dc = dc_check(lg_n(CORNER_FS), lg_p(CORNER_FS), inv_dc(CORNER_FS)); + const l_fs : Dc = dc_check(table_n(CORNER_FS), table_p(CORNER_FS), inv_dc(CORNER_FS)); + const d_sf : Dc = dc_check(lg_n(CORNER_SF), lg_p(CORNER_SF), inv_dc(CORNER_SF)); + const l_sf : Dc = dc_check(table_n(CORNER_SF), table_p(CORNER_SF), inv_dc(CORNER_SF)); + // ff: 5173 units (0.31 mV) against the linear tables' 105785 (6.3 mV); the trip point 456.7 uV against 2282.0 uV; the rest value 2 units. + assert d_ff.worst < 5173.5; + assert d_ff.worst > 5172.5; + assert d_ff.worst * 10.0 < l_ff.worst; + assert fabs64(d_ff.vm_model - d_ff.vm_ref) < 0.000459; + assert fabs64(d_ff.vm_model - d_ff.vm_ref) > 0.000455; + assert fabs64(d_ff.vm_model - d_ff.vm_ref) * 4.0 < fabs64(l_ff.vm_model - l_ff.vm_ref); + assert_eq(dc_out(lg_n(CORNER_FF), lg_p(CORNER_FF), VDD), 2); + // ss: 2783 units (0.17 mV) against the linear tables' 70972 (4.2 mV); the trip point 70.3 uV against 1545.6 uV; the rest value 3 units. + assert d_ss.worst < 2783.5; + assert d_ss.worst > 2782.5; + assert d_ss.worst * 10.0 < l_ss.worst; + assert fabs64(d_ss.vm_model - d_ss.vm_ref) < 0.0000705; + assert fabs64(d_ss.vm_model - d_ss.vm_ref) > 0.0000700; + assert fabs64(d_ss.vm_model - d_ss.vm_ref) * 4.0 < fabs64(l_ss.vm_model - l_ss.vm_ref); + assert_eq(dc_out(lg_n(CORNER_SS), lg_p(CORNER_SS), VDD), 3); + // fs: 8270 units (0.49 mV) against the linear tables' 111357 (6.6 mV); the trip point 612.0 uV against 8152.1 uV; the rest value 3 units. + assert d_fs.worst < 8270.5; + assert d_fs.worst > 8269.5; + assert d_fs.worst * 10.0 < l_fs.worst; + assert fabs64(d_fs.vm_model - d_fs.vm_ref) < 0.000614; + assert fabs64(d_fs.vm_model - d_fs.vm_ref) > 0.000610; + assert fabs64(d_fs.vm_model - d_fs.vm_ref) * 4.0 < fabs64(l_fs.vm_model - l_fs.vm_ref); + assert_eq(dc_out(lg_n(CORNER_FS), lg_p(CORNER_FS), VDD), 3); + // sf: 2469 units (0.15 mV) against the linear tables' 66691 (4.0 mV); the trip point 22.4 uV against 6284.2 uV; the rest value 3 units. + assert d_sf.worst < 2469.5; + assert d_sf.worst > 2468.5; + assert d_sf.worst * 10.0 < l_sf.worst; + assert fabs64(d_sf.vm_model - d_sf.vm_ref) < 0.0000226; + assert fabs64(d_sf.vm_model - d_sf.vm_ref) > 0.0000223; + assert fabs64(d_sf.vm_model - d_sf.vm_ref) * 4.0 < fabs64(l_sf.vm_model - l_sf.vm_ref); + assert_eq(dc_out(lg_n(CORNER_SF), lg_p(CORNER_SF), VDD), 3); +} + +test the_m3b_linear_reader_on_the_same_points_of_the_four_corners_stays_over_half_and_far_from_the_log_read { + // The linear tables of each corner (25 x 25, the M3b reader) at the same 24 sets: 0.567 and more everywhere (the least is the fs PMOS at the midpoints), 50 or more times the log read's error. The new + // tables are what meet the bar in every corner, as in tt. + var nsets : u32 = 0; + var c : u32 = CORNER_FF; + while (c <= CORNER_SF) { + var dev : u32 = 0; + while (dev < 2) { + var kind : u32 = 0; + while (kind < 3) { + const lin : Hold = hold_corner_lin(c, dev, kind); + const lg : HoldL = hold_corner(c, dev, kind); + assert lin.rel9 > 0.5; + assert lin.rel9 > 50.0 * lg.rel9; + assert lg.rel9 < B_LOG_ISSUE; + nsets = nsets + 1; + kind = kind + 1; + } + dev = dev + 1; + } + c = c + 1; + } + assert_eq(nsets, 24); + const least : Hold = hold_corner_lin(CORNER_FS, 1, 0); + assert least.rel9 < 0.5679; + assert least.rel9 > 0.5656; +} diff --git a/specs/analog/mos_psp103_data.t27 b/specs/analog/mos_psp103_data.t27 index 585e5e35cf..b21b905698 100644 --- a/specs/analog/mos_psp103_data.t27 +++ b/specs/analog/mos_psp103_data.t27 @@ -3228,7 +3228,7 @@ pub const TT_CEN_P : [1000]u32 = [ ]; ; --- corner mos_ff, the log-domain current tables (M3c-4, #11211) --------------------------------- -/// NMOS log-domain current table, corner mos_ff, IHP-Open-PDK 21133f21, L 0.45 um, 27 C: the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (Vgs = ix * 15.625 mV, Vds = iy * 31.25 mV), then the 97 words rv = nint(4096 / s(Vgs)) at Vgs = ix * 15.625 mV (deck psp103_idpa_ff.cir, blocks lam_n and r_n). +/// NMOS (sg13_lv_nmos W 1.0 um) log-domain current table, corner mos_ff, IHP-Open-PDK 21133f21, L 0.45 um, 27 C: the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (Vgs = ix * 15.625 mV, Vds = iy * 31.25 mV), then the 97 words rv = nint(4096 / s(Vgs)) at Vgs = ix * 15.625 mV (deck psp103_idpa_ff.cir, blocks lam_n and r_n). pub const FF_LG_N : [4851]u32 = [ 4294967295, 566941, 565300, 565436, 567103, 570121, 573925, 578021, 582146, 586181, 590078, 593817, 597396, 600818, 604088, 607214, 610203, 613064, 615804, 618431, 620953, 623374, 625703, 627945, 630105, 632188, 634198, 636141, @@ -3578,7 +3578,7 @@ pub const FF_LG_N : [4851]u32 = [ 6342, 6244, 6149, 6057, 5967, 5880, 5796, 5714, 5634, 5557, 5481, 5408, 5336, 5267, 5199, 5133, 5068, 5005, 4944, 4884, 4826 ]; -/// PMOS log-domain current table, corner mos_ff, IHP-Open-PDK 21133f21, L 0.45 um, 27 C: the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (Vgs = ix * 15.625 mV, Vds = iy * 31.25 mV), then the 97 words rv = nint(4096 / s(Vgs)) at Vgs = ix * 15.625 mV (deck psp103_idpa_ff.cir, blocks lam_p and r_p). +/// PMOS (sg13_lv_pmos W 3.0 um) log-domain current table, corner mos_ff, IHP-Open-PDK 21133f21, L 0.45 um, 27 C: the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (Vgs = ix * 15.625 mV, Vds = iy * 31.25 mV), then the 97 words rv = nint(4096 / s(Vgs)) at Vgs = ix * 15.625 mV (deck psp103_idpa_ff.cir, blocks lam_p and r_p). pub const FF_LG_P : [4851]u32 = [ 4294967295, 372528, 369615, 367029, 365473, 364960, 365062, 365413, 365842, 366287, 366740, 367174, 367609, 368047, 368491, 368941, 369401, 369870, 370352, 370845, 371352, 371873, 372409, 372961, 373528, 374113, 374714, 375333, @@ -4320,7 +4320,7 @@ pub const FF_MID_P : [576]u32 = [ ]; ; --- corner mos_ss, the log-domain current tables (M3c-4, #11211) --------------------------------- -/// NMOS log-domain current table, corner mos_ss, IHP-Open-PDK 21133f21, L 0.45 um, 27 C: the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (Vgs = ix * 15.625 mV, Vds = iy * 31.25 mV), then the 97 words rv = nint(4096 / s(Vgs)) at Vgs = ix * 15.625 mV (deck psp103_idpa_ss.cir, blocks lam_n and r_n). +/// NMOS (sg13_lv_nmos W 1.0 um) log-domain current table, corner mos_ss, IHP-Open-PDK 21133f21, L 0.45 um, 27 C: the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (Vgs = ix * 15.625 mV, Vds = iy * 31.25 mV), then the 97 words rv = nint(4096 / s(Vgs)) at Vgs = ix * 15.625 mV (deck psp103_idpa_ss.cir, blocks lam_n and r_n). pub const SS_LG_N : [4851]u32 = [ 4294967295, 226159, 223718, 223382, 225004, 228224, 232318, 236721, 241134, 245466, 249645, 253650, 257476, 261129, 264615, 267943, 271124, 274165, 277077, 279867, 282544, 285115, 287587, 289967, 292260, 294473, 296610, 298677, @@ -4670,7 +4670,7 @@ pub const SS_LG_N : [4851]u32 = [ 6395, 6284, 6177, 6073, 5973, 5876, 5782, 5691, 5603, 5517, 5435, 5354, 5276, 5200, 5127, 5055, 4985, 4918, 4852, 4787, 4725 ]; -/// PMOS log-domain current table, corner mos_ss, IHP-Open-PDK 21133f21, L 0.45 um, 27 C: the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (Vgs = ix * 15.625 mV, Vds = iy * 31.25 mV), then the 97 words rv = nint(4096 / s(Vgs)) at Vgs = ix * 15.625 mV (deck psp103_idpa_ss.cir, blocks lam_p and r_p). +/// PMOS (sg13_lv_pmos W 3.0 um) log-domain current table, corner mos_ss, IHP-Open-PDK 21133f21, L 0.45 um, 27 C: the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (Vgs = ix * 15.625 mV, Vds = iy * 31.25 mV), then the 97 words rv = nint(4096 / s(Vgs)) at Vgs = ix * 15.625 mV (deck psp103_idpa_ss.cir, blocks lam_p and r_p). pub const SS_LG_P : [4851]u32 = [ 4294967295, 74584, 72543, 70409, 69772, 70397, 72013, 73373, 74948, 76567, 78184, 79788, 81380, 82962, 84536, 86106, 87672, 89238, 90804, 92373, 93945, 95522, 97104, 98693, 100289, 101894, 103508, 105132, @@ -5412,7 +5412,7 @@ pub const SS_MID_P : [576]u32 = [ ]; ; --- corner mos_fs, the log-domain current tables (M3c-4, #11211) --------------------------------- -/// NMOS log-domain current table, corner mos_fs, IHP-Open-PDK 21133f21, L 0.45 um, 27 C: the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (Vgs = ix * 15.625 mV, Vds = iy * 31.25 mV), then the 97 words rv = nint(4096 / s(Vgs)) at Vgs = ix * 15.625 mV (deck psp103_idpa_fs.cir, blocks lam_n and r_n). +/// NMOS (sg13_lv_nmos W 1.0 um) log-domain current table, corner mos_fs, IHP-Open-PDK 21133f21, L 0.45 um, 27 C: the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (Vgs = ix * 15.625 mV, Vds = iy * 31.25 mV), then the 97 words rv = nint(4096 / s(Vgs)) at Vgs = ix * 15.625 mV (deck psp103_idpa_fs.cir, blocks lam_n and r_n). pub const FS_LG_N : [4851]u32 = [ 4294967295, 487966, 486201, 486282, 487951, 491007, 494861, 499012, 503192, 507280, 511228, 515015, 518640, 522105, 525416, 528580, 531606, 534501, 537273, 539931, 542481, 544931, 547286, 549553, 551737, 553843, 555876, 557841, @@ -5762,7 +5762,7 @@ pub const FS_LG_N : [4851]u32 = [ 8050, 7922, 7799, 7679, 7563, 7450, 7341, 7235, 7132, 7031, 6934, 6839, 6747, 6657, 6569, 6484, 6401, 6320, 6241, 6164, 6089 ]; -/// PMOS log-domain current table, corner mos_fs, IHP-Open-PDK 21133f21, L 0.45 um, 27 C: the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (Vgs = ix * 15.625 mV, Vds = iy * 31.25 mV), then the 97 words rv = nint(4096 / s(Vgs)) at Vgs = ix * 15.625 mV (deck psp103_idpa_fs.cir, blocks lam_p and r_p). +/// PMOS (sg13_lv_pmos W 3.0 um) log-domain current table, corner mos_fs, IHP-Open-PDK 21133f21, L 0.45 um, 27 C: the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (Vgs = ix * 15.625 mV, Vds = iy * 31.25 mV), then the 97 words rv = nint(4096 / s(Vgs)) at Vgs = ix * 15.625 mV (deck psp103_idpa_fs.cir, blocks lam_p and r_p). pub const FS_LG_P : [4851]u32 = [ 4294967295, 149200, 146387, 143842, 142630, 142610, 143257, 144279, 145208, 146195, 147195, 148197, 149199, 150205, 151216, 152235, 153263, 154302, 155354, 156420, 157501, 158598, 159711, 160842, 161992, 163160, 164349, 165557, @@ -6504,7 +6504,7 @@ pub const FS_MID_P : [576]u32 = [ ]; ; --- corner mos_sf, the log-domain current tables (M3c-4, #11211) --------------------------------- -/// NMOS log-domain current table, corner mos_sf, IHP-Open-PDK 21133f21, L 0.45 um, 27 C: the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (Vgs = ix * 15.625 mV, Vds = iy * 31.25 mV), then the 97 words rv = nint(4096 / s(Vgs)) at Vgs = ix * 15.625 mV (deck psp103_idpa_sf.cir, blocks lam_n and r_n). +/// NMOS (sg13_lv_nmos W 1.0 um) log-domain current table, corner mos_sf, IHP-Open-PDK 21133f21, L 0.45 um, 27 C: the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (Vgs = ix * 15.625 mV, Vds = iy * 31.25 mV), then the 97 words rv = nint(4096 / s(Vgs)) at Vgs = ix * 15.625 mV (deck psp103_idpa_sf.cir, blocks lam_n and r_n). pub const SF_LG_N : [4851]u32 = [ 4294967295, 318348, 316126, 315941, 317555, 320678, 324648, 328929, 333218, 337435, 341508, 345414, 349148, 352714, 356119, 359371, 362462, 365434, 368281, 371009, 373627, 376141, 378558, 380884, 383126, 385302, 387388, 389405, @@ -6854,7 +6854,7 @@ pub const SF_LG_N : [4851]u32 = [ 5633, 5541, 5451, 5365, 5281, 5200, 5121, 5045, 4971, 4899, 4829, 4761, 4695, 4631, 4568, 4508, 4448, 4391, 4334, 4280, 4226 ]; -/// PMOS log-domain current table, corner mos_sf, IHP-Open-PDK 21133f21, L 0.45 um, 27 C: the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (Vgs = ix * 15.625 mV, Vds = iy * 31.25 mV), then the 97 words rv = nint(4096 / s(Vgs)) at Vgs = ix * 15.625 mV (deck psp103_idpa_sf.cir, blocks lam_p and r_p). +/// PMOS (sg13_lv_pmos W 3.0 um) log-domain current table, corner mos_sf, IHP-Open-PDK 21133f21, L 0.45 um, 27 C: the tag word (4294967295), then the 4753 words ix * 49 + iy of log2(Id / F) in 1/65536 octave over 2^-8 of a linear-table word (Vgs = ix * 15.625 mV, Vds = iy * 31.25 mV), then the 97 words rv = nint(4096 / s(Vgs)) at Vgs = ix * 15.625 mV (deck psp103_idpa_sf.cir, blocks lam_p and r_p). pub const SF_LG_P : [4851]u32 = [ 4294967295, 298104, 295075, 292421, 290880, 290425, 290601, 291032, 291544, 292094, 292612, 293134, 293658, 294188, 294725, 295270, 295827, 296396, 296978, 297575, 298188, 298817, 299464, 300129, 300813, 301517, 302240, 302984, From c465530d2b0e5bb0c626d7bdbf45f8c54c557f2f Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 20 Oct 2026 10:08:37 +0700 Subject: [PATCH 3/3] analog M3c-4: log-domain PSP103 current tables for ss, ff, fs and sf, each corner within 0.74 percent of its own ngspice run, 500 fF inverter delays within 0.032 percent (Closes #11211) Merge of master plus sealing, gates run on the merged tree with t27c from master: tests clean with vacuous passes 0, seal --verify MATCH, tri types ratchet CLEAN, dupe_scan failure set a subset of master's. Co-Authored-By: Claude Sonnet 5.5 --- .trinity/seals/analog_AnalogMosPsp103.json | 18 +++++++++--------- .trinity/seals/analog_AnalogMosPsp103Data.json | 16 ++++++++-------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/.trinity/seals/analog_AnalogMosPsp103.json b/.trinity/seals/analog_AnalogMosPsp103.json index c5a6a554b5..d8dd810252 100644 --- a/.trinity/seals/analog_AnalogMosPsp103.json +++ b/.trinity/seals/analog_AnalogMosPsp103.json @@ -7,7 +7,7 @@ }, { "spec": "specs/analog/mos_psp103_data.t27", - "spec_hash": "sha256:d233143ed2fa30d3bd0ff9546a2df008d568e4a4d9c7e0ef69ffedee2e92a5d6" + "spec_hash": "sha256:c4d59c5d87b03810373bfabb9024f4e1051184f3abab9a613e02ab0ae54848d9" }, { "spec": "specs/analog/mos_table.t27", @@ -19,23 +19,23 @@ } ], "config": "gen=c,rust,verilog,zig;tests=zig", - "gen_hash_c": "sha256:3e5e50bdd2f832394e41c7fc942ee2b98b9553db46d1988c37721c08b6847fbb", - "gen_hash_rust": "sha256:a88d4dacaeaf61bda5deb575152a70c098241e617a292cb4d74df64e4214a3df", - "gen_hash_verilog": "sha256:7c29cf75695e6734bfd23fed2f64db8fe522506e0cb1b4bf3a94dd1f266bfaf3", - "gen_hash_zig": "sha256:5e470893c4dc6c81ad93b2af02b9d8a981eb3678a82ea86c2c1ba7ecaf81b4d5", + "gen_hash_c": "sha256:4446826415b9ebd392d8914d179402c3a3f9e47d763d2dcae36adae658718a51", + "gen_hash_rust": "sha256:fe23e4b6d1eba2e93cee13f82a7cd28affadd606ec8c1c3c7af01a40e39ffe18", + "gen_hash_verilog": "sha256:df799ffacdb77c27ef750561e79c146db3f7c2727ebfac2719205581a23ef8af", + "gen_hash_zig": "sha256:ee71152bbc3668896c1d5e42bed445515a696a74cdbb6e6e9159d5c0146b6ffc", "module": "AnalogMosPsp103", "ring": 12, "seal_schema": 2, - "sealed_at": "2026-10-19T19:25:21Z", + "sealed_at": "2026-10-20T03:08:06Z", "sealed_by": "t27c-bootstrap@0.5.2", - "spec_hash": "sha256:3edf0828e56e30977b96c2e943d203aac805fd197800d37a57fb4fc61c7152d8", + "spec_hash": "sha256:e04b69e5c43188a3d46a4c0949cfc727f239721de73fb46e92c8a845bbbbc98e", "spec_path": "specs/analog/mos_psp103.t27", "tests": { "failed": 0, "failing": [], "forced": false, - "passed": 35, - "total": 35, + "passed": 40, + "total": 40, "vacuous": 0 }, "toolchain": { diff --git a/.trinity/seals/analog_AnalogMosPsp103Data.json b/.trinity/seals/analog_AnalogMosPsp103Data.json index b5f926452d..36ff7cbdba 100644 --- a/.trinity/seals/analog_AnalogMosPsp103Data.json +++ b/.trinity/seals/analog_AnalogMosPsp103Data.json @@ -7,23 +7,23 @@ } ], "config": "gen=c,rust,verilog,zig;tests=zig", - "gen_hash_c": "sha256:a02b76251db8d7a64d65c32aad434a1847ac703ad6a71f16e4c1b970e0ea74b5", - "gen_hash_rust": "sha256:395c8a715aade1101e29f187926bfa9a985f6134ba5777dcf467ead14fc9732b", - "gen_hash_verilog": "sha256:dc49c09d8a3a13829b2cb9fba5450faa1f9d50da2611d75e06f2562e0d2cab13", - "gen_hash_zig": "sha256:8b372dfd2e05f42a44f713738843f75750e9a4c21d2f55c35dcac0db763bea8d", + "gen_hash_c": "sha256:b54bb70dcdaad8eac3180a3a51ee5d30d340b951edd734d4e817c161c1081f94", + "gen_hash_rust": "sha256:22cfdd782fe043555e0aa880bf922c2de502545f50aa5c92fb3e27fb0231fd2a", + "gen_hash_verilog": "sha256:f0e9948d7d18bf642dceae55962767fd570aea0a3c5dd0590d315566afc3509a", + "gen_hash_zig": "sha256:c9e11b43a265e022f096562ce39f6963dea17aa55489c83ccf2fc953ba1c186e", "module": "AnalogMosPsp103Data", "ring": 12, "seal_schema": 2, - "sealed_at": "2026-10-19T19:25:27Z", + "sealed_at": "2026-10-20T03:08:15Z", "sealed_by": "t27c-bootstrap@0.5.2", - "spec_hash": "sha256:d233143ed2fa30d3bd0ff9546a2df008d568e4a4d9c7e0ef69ffedee2e92a5d6", + "spec_hash": "sha256:c4d59c5d87b03810373bfabb9024f4e1051184f3abab9a613e02ab0ae54848d9", "spec_path": "specs/analog/mos_psp103_data.t27", "tests": { "failed": 0, "failing": [], "forced": false, - "passed": 10, - "total": 10, + "passed": 11, + "total": 11, "vacuous": 0 }, "toolchain": {