Browse Source

Add Logic.

tags/v2.3.0
Andrew Belt 1 year ago
parent
commit
b68f843a52
6 changed files with 1394 additions and 0 deletions
  1. +9
    -0
      plugin.json
  2. +645
    -0
      res/Compare.svg
  3. +598
    -0
      res/Logic.svg
  4. +131
    -0
      src/Logic.cpp
  5. +1
    -0
      src/plugin.cpp
  6. +10
    -0
      src/plugin.hpp

+ 9
- 0
plugin.json View File

@@ -311,6 +311,15 @@
"Utility",
"Polyphonic"
]
},
{
"slug": "Logic",
"name": "Logic",
"description": "Gate logic processor",
"tags": [
"Logic",
"Polyphonic"
]
}
]
}

+ 645
- 0
res/Compare.svg View File

@@ -0,0 +1,645 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="75"
height="380"
viewBox="0 0 75 380"
version="1.1"
id="svg208"
sodipodi:docname="COMPARE.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<metadata
id="metadata212">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1017"
id="namedview210"
showgrid="false"
inkscape:zoom="1.7566021"
inkscape:cx="-38.246552"
inkscape:cy="209.86956"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg208" />
<defs
id="defs9">
<style
id="style2">
.uuid-8bc125a1-53a1-4f6e-9f1a-1b700f610a9c {
fill: #f0f0f0;
}

.uuid-dbae7bf9-a603-4a96-be35-5b529165fe7b {
fill: url(#uuid-5112180e-190e-4627-ac41-eaa36b1b9e46);
}

.uuid-5dfdb24d-0075-4be5-bc6e-60bb6834ef61 {
fill: blue;
}

.uuid-711f269d-792e-4fc9-bed6-b920948d14d2 {
fill: lime;
}

.uuid-daec3b97-c7a7-41de-baff-4d7eb3fee13e {
isolation: isolate;
opacity: .69;
}

.uuid-daec3b97-c7a7-41de-baff-4d7eb3fee13e, .uuid-35a4ea1a-fafb-4650-81f7-b0707c03bbc4, .uuid-2383b8c0-1654-45b7-babd-a190c611ef5f {
fill: none;
}

.uuid-4e457beb-5c87-4e3b-bd5c-729196ba50b5 {
fill: #f0f;
}

.uuid-2383b8c0-1654-45b7-babd-a190c611ef5f {
stroke: #1f1f1f;
stroke-linecap: round;
stroke-miterlimit: 10;
stroke-width: .8px;
}

.uuid-e8037bd4-505c-4ecd-a2de-b480693117ed {
fill: #1f1f1f;
}

.uuid-3da9cd90-ffe8-41f3-8072-9e4869bc5546 {
fill: red;
}
</style>
<linearGradient
id="uuid-5112180e-190e-4627-ac41-eaa36b1b9e46"
x1="37.5"
y1="0"
x2="37.5"
y2="380"
gradientTransform="matrix(1, 0, 0, 1, 0, 0)"
gradientUnits="userSpaceOnUse">
<stop
offset="0"
stop-color="#ebebeb"
id="stop4" />
<stop
offset="1"
stop-color="#e1e1e1"
id="stop6" />
</linearGradient>
</defs>
<g
id="uuid-18798777-79b1-43e8-ab8f-da537a162783"
data-name="FND BG">
<rect
width="75"
height="380"
style="fill: url(#uuid-5112180e-190e-4627-ac41-eaa36b1b9e46);"
id="rect11" />
</g>
<g
id="uuid-2f3da14c-4f81-4534-9c1e-f45e792f5d76"
data-name="FND GRAPH">
<g
id="g18">
<rect
x="7.22416"
y="174.74294"
width="28.55155"
height="39.15691"
rx="2.83465"
ry="2.83465"
style="fill: #1f1f1f;"
id="rect14" />
<rect
x="18.07571"
y="196.25383"
width="6.86765"
height="6.64999"
style="fill: #1f1f1f;"
id="rect16" />
</g>
<g
id="g24">
<rect
x="39.22429"
y="174.74294"
width="28.55155"
height="39.15691"
rx="2.83465"
ry="2.83465"
style="fill: #1f1f1f;"
id="rect20" />
<rect
x="50.07584"
y="196.25383"
width="6.86765"
height="6.64999"
style="fill: #1f1f1f;"
id="rect22" />
</g>
<g
id="g30">
<rect
x="7.22416"
y="219.63044"
width="28.55155"
height="39.15691"
rx="2.83465"
ry="2.83465"
style="fill: #1f1f1f;"
id="rect26" />
<rect
x="18.07571"
y="241.14133"
width="6.86765"
height="6.64999"
style="fill: #1f1f1f;"
id="rect28" />
</g>
<g
id="g36">
<rect
x="39.22429"
y="219.63044"
width="28.55155"
height="39.15691"
rx="2.83465"
ry="2.83465"
style="fill: #1f1f1f;"
id="rect32" />
<rect
x="50.07584"
y="241.14133"
width="6.86765"
height="6.64999"
style="fill: #1f1f1f;"
id="rect34" />
</g>
<g
id="g42">
<rect
x="7.22416"
y="264.48514"
width="28.55155"
height="39.15691"
rx="2.83465"
ry="2.83465"
style="fill: #1f1f1f;"
id="rect38" />
<rect
x="18.07571"
y="285.99603"
width="6.86765"
height="6.64999"
style="fill: #1f1f1f;"
id="rect40" />
</g>
<g
id="g48">
<rect
x="39.22429"
y="264.48514"
width="28.55155"
height="39.15691"
rx="2.83465"
ry="2.83465"
style="fill: #1f1f1f;"
id="rect44" />
<rect
x="50.07584"
y="285.99603"
width="6.86765"
height="6.64999"
style="fill: #1f1f1f;"
id="rect46" />
</g>
<g
id="g54">
<rect
x="7.22416"
y="309.05634"
width="28.55155"
height="39.15691"
rx="2.83465"
ry="2.83465"
style="fill: #1f1f1f;"
id="rect50" />
<rect
x="18.07571"
y="330.56723"
width="6.86765"
height="6.64999"
style="fill: #1f1f1f;"
id="rect52" />
</g>
<g
id="g60">
<rect
x="39.22429"
y="309.05634"
width="28.55155"
height="39.15691"
rx="2.83465"
ry="2.83465"
style="fill: #1f1f1f;"
id="rect56" />
<rect
x="50.07584"
y="330.56723"
width="6.86765"
height="6.64999"
style="fill: #1f1f1f;"
id="rect58" />
</g>
<path
d="M53.87317,129.56246l1.65796-2.87167c.14313-.24791-.03578-.55779-.32204-.55779h-3.31592c-.28626,0-.46517,.30989-.32204,.55779l1.65796,2.87167c.14313,.24791,.50096,.24791,.64409,0Z"
style="fill: #1f1f1f;"
id="path62" />
<g
id="g76">
<circle
cx="37.5"
cy="78.9999"
r="26.48818"
style="fill: none; isolation: isolate; opacity: .69;"
id="circle64" />
<g
id="g70">
<path
d="M48.29822,97.10256c6.2955-3.78272,10.15833-10.61025,10.15833-17.95479,0-11.491-9.45566-20.94666-20.94666-20.94666s-20.94666,9.45566-20.94666,20.94666c0,7.39639,3.91756,14.2646,10.28394,18.02967"
style="fill: none; stroke: #1f1f1f; stroke-linecap: round; stroke-miterlimit: 10; stroke-width: .8px;"
id="path66" />
<g
id="g68" />
</g>
<line
x1="48.29822"
y1="97.10256"
x2="37.5"
y2="78.9999"
style="fill: none;"
id="line72" />
<line
x1="37.5099"
y1="58.20111"
x2="37.5099"
y2="71.62269"
style="fill: none; stroke: #1f1f1f; stroke-linecap: round; stroke-miterlimit: 10; stroke-width: .8px;"
id="line74" />
</g>
<g
id="g86">
<circle
cx="38.00165"
cy="356.2678"
r="1.18571"
style="fill: #1f1f1f;"
id="circle78" />
<path
d="M29.35927,360.18977c-.34551,0-.66126-.1952-.8158-.50419l-2.96428-5.92856c-.22526-.45057-.04266-.99844,.40794-1.2237,.45008-.22535,.99831-.04271,1.22366,.4079l2.14848,4.29696,2.14848-4.29696c.22526-.45057,.77314-.63325,1.22366-.4079,.45061,.22526,.63321,.77314,.40794,1.2237l-2.96428,5.92856c-.15454,.30899-.47029,.50419-.8158,.50419Z"
style="fill: #1f1f1f;"
id="path80" />
<path
d="M45.64073,360.18977c-.34551,0-.66126-.1952-.8158-.50419l-2.96428-5.92856c-.22526-.45057-.04266-.99844,.40794-1.2237,.45016-.22535,.9984-.04271,1.22366,.4079l2.14848,4.29696,2.14848-4.29696c.22526-.45057,.77305-.63325,1.22366-.4079,.45061,.22526,.63321,.77314,.40794,1.2237l-2.96428,5.92856c-.15454,.30899-.47029,.50419-.8158,.50419Z"
style="fill: #1f1f1f;"
id="path82" />
<path
d="M37.94242,360.18977c-2.13744,0-3.87637-1.73893-3.87637-3.87637s1.73893-3.87637,3.87637-3.87637c.84653,0,1.65102,.26819,2.32653,.77554,.40278,.30253,.48401,.87428,.18153,1.27705-.30248,.40273-.87432,.48401-1.2771,.18148-.357-.26815-.78267-.4099-1.23096-.4099-1.13156,0-2.05219,.92059-2.05219,2.05219s.92064,2.05219,2.05219,2.05219c.44829,0,.87396-.14176,1.23096-.4099,.40269-.30271,.97444-.22125,1.2771,.18148,.30248,.40278,.22125,.97453-.18153,1.27705-.67551,.50735-1.48,.77554-2.32653,.77554Z"
style="fill: #1f1f1f;"
id="path84" />
</g>
</g>
<g
id="uuid-21dcfba5-b07d-4793-b6a3-49d223d70841"
data-name="FND TXT">
<g
id="g95">
<path
d="M13.93555,180.37451c0-.2915,.23047-.52197,.52148-.52197h.11523c.22461,0,.37988,.11523,.47461,.27148l1.25977,2.05273,1.26758-2.05957c.10742-.17627,.25781-.26465,.4668-.26465h.11523c.29102,0,.52148,.23047,.52148,.52197v3.76709c0,.29102-.23047,.52148-.52148,.52148-.28418,0-.51465-.2373-.51465-.52148v-2.36475l-.91504,1.40918c-.10742,.1626-.24414,.26416-.43359,.26416s-.32422-.10156-.43359-.26416l-.90039-1.38916v2.35791c0,.28467-.23047,.5083-.51562,.5083-.28418,0-.50781-.22363-.50781-.5083v-3.78027Z"
style="fill: #f0f0f0;"
id="path89" />
<path
d="M19.68164,183.95166l1.65234-3.73291c.11523-.25781,.32617-.41309,.61035-.41309h.06152c.2832,0,.48633,.15527,.60156,.41309l1.6543,3.73291c.0332,.07471,.05371,.14209,.05371,.20996,0,.27783-.2168,.50146-.49512,.50146-.24414,0-.40625-.14258-.50098-.35938l-.31836-.74512h-2.08691l-.33203,.7793c-.08789,.20312-.26367,.3252-.48047,.3252-.27148,0-.48047-.2168-.48047-.48779,0-.07471,.02637-.14893,.06055-.22363Zm2.93359-1.31445l-.6582-1.56494-.65625,1.56494h1.31445Z"
style="fill: #f0f0f0;"
id="path91" />
<path
d="M25.27734,183.78223l1.28027-1.57178-1.20605-1.47021c-.08203-.10156-.15625-.2373-.15625-.38623,0-.2915,.2168-.51465,.51562-.51465,.22266,0,.35156,.08789,.48047,.25732l1.03711,1.38184,1.0293-1.35449c.14258-.18311,.27734-.28467,.50781-.28467s.47461,.18311,.47461,.48096c0,.14893-.05469,.271-.15625,.39941l-1.20508,1.47705,1.27344,1.56494c.08105,.10156,.15625,.2373,.15625,.38623,0,.2915-.2168,.51514-.51562,.51514-.22266,0-.35156-.08789-.48047-.25781l-1.11133-1.45605-1.09766,1.4292c-.14258,.18311-.27734,.28467-.50781,.28467s-.47461-.18311-.47461-.48145c0-.14844,.05469-.27051,.15625-.39941Z"
style="fill: #f0f0f0;"
id="path93" />
</g>
<g
id="g103">
<path
d="M47.08008,180.37451c0-.2915,.22949-.52197,.52148-.52197h.11523c.22266,0,.37891,.11523,.47363,.27148l1.26074,2.05273,1.26562-2.05957c.10938-.17627,.25781-.26465,.46875-.26465h.11523c.29102,0,.52148,.23047,.52148,.52197v3.76709c0,.29102-.23047,.52148-.52148,.52148-.28516,0-.51562-.2373-.51562-.52148v-2.36475l-.91406,1.40918c-.10938,.1626-.24414,.26416-.43359,.26416s-.32617-.10156-.43359-.26416l-.90137-1.38916v2.35791c0,.28467-.23047,.5083-.51465,.5083-.28516,0-.50781-.22363-.50781-.5083v-3.78027Z"
style="fill: #f0f0f0;"
id="path97" />
<path
d="M53.24414,180.36084c0-.2915,.23047-.52148,.52148-.52148s.52148,.22998,.52148,.52148v3.78076c0,.29102-.23047,.52148-.52148,.52148s-.52148-.23047-.52148-.52148v-3.78076Z"
style="fill: #f0f0f0;"
id="path99" />
<path
d="M55.69336,180.37451c0-.2915,.23047-.52197,.52148-.52197h.1084c.25098,0,.39941,.12207,.54199,.30518l2.01172,2.64209v-2.4458c0-.28467,.23047-.51465,.51562-.51465,.28418,0,.51465,.22998,.51465,.51465v3.77393c0,.29102-.23047,.52148-.52246,.52148h-.0332c-.25,0-.40039-.12207-.54199-.30469l-2.08691-2.7373v2.54053c0,.28467-.23047,.51514-.51465,.51514s-.51465-.23047-.51465-.51514v-3.77344Z"
style="fill: #f0f0f0;"
id="path101" />
</g>
<g
id="g113">
<path
d="M13.57422,227.15186v-.01367c0-1.34814,1.01562-2.45264,2.47266-2.45264,.71094,0,1.19238,.18994,1.58594,.48145,.10742,.08105,.20312,.23047,.20312,.41309,0,.28467-.23047,.50781-.51562,.50781-.14258,0-.23633-.05371-.31152-.10156-.29199-.2168-.59668-.33838-.96875-.33838-.7998,0-1.37598,.66357-1.37598,1.47705v.01318c0,.81299,.5625,1.49072,1.37598,1.49072,.44043,0,.73145-.13574,1.03027-.37305,.08008-.06738,.18945-.11475,.31055-.11475,.26465,0,.48828,.2168,.48828,.48096,0,.1626-.08105,.29102-.17578,.37256-.42773,.37256-.92773,.59619-1.6875,.59619-1.39551,0-2.43164-1.07715-2.43164-2.43896Z"
style="fill: #f0f0f0;"
id="path105" />
<path
d="M18.99219,225.24805c0-.29102,.23047-.52148,.52148-.52148s.52148,.23047,.52148,.52148v3.31299h1.93164c.26367,0,.47363,.20996,.47363,.47412,0,.26465-.20996,.47461-.47363,.47461h-2.45312c-.29102,0-.52148-.23047-.52148-.52197v-3.73975Z"
style="fill: #f0f0f0;"
id="path107" />
<path
d="M23.36719,225.24805c0-.29102,.22949-.52148,.52148-.52148,.29102,0,.52148,.23047,.52148,.52148v3.78027c0,.2915-.23047,.52197-.52148,.52197-.29199,0-.52148-.23047-.52148-.52197v-3.78027Z"
style="fill: #f0f0f0;"
id="path109" />
<path
d="M25.81641,225.28906c0-.2915,.22949-.52197,.52148-.52197h1.41602c1.13086,0,1.81445,.67041,1.81445,1.63965v.01318c0,1.09766-.85352,1.66699-1.91602,1.66699h-.79297v.94141c0,.2915-.23047,.52197-.52148,.52197-.29199,0-.52148-.23047-.52148-.52197v-3.73926Zm1.86914,1.86963c.52148,0,.82617-.31201,.82617-.71826v-.01367c0-.46729-.32422-.71777-.84668-.71777h-.80566v1.44971h.82617Z"
style="fill: #f0f0f0;"
id="path111" />
</g>
<g
id="g121">
<path
d="M47.70898,225.24805c0-.29102,.23047-.52148,.52246-.52148s.52148,.23047,.52148,.52148v3.31299h1.93066c.26465,0,.47461,.20996,.47461,.47412,0,.26465-.20996,.47461-.47461,.47461h-2.45215c-.29199,0-.52246-.23047-.52246-.52197v-3.73975Z"
style="fill: #f0f0f0;"
id="path115" />
<path
d="M52.08496,225.24805c0-.29102,.22949-.52148,.52148-.52148s.52148,.23047,.52148,.52148v3.78027c0,.2915-.22949,.52197-.52148,.52197s-.52148-.23047-.52148-.52197v-3.78027Z"
style="fill: #f0f0f0;"
id="path117" />
<path
d="M54.5332,225.26172c0-.2915,.23047-.52148,.52246-.52148h.11523c.22363,0,.37988,.11523,.47363,.27051l1.26074,2.05273,1.2666-2.05957c.1084-.17578,.25781-.26367,.46777-.26367h.11523c.29102,0,.52148,.22998,.52148,.52148v3.7666c0,.2915-.23047,.52197-.52148,.52197-.28418,0-.51465-.2373-.51465-.52197v-2.36426l-.91504,1.40918c-.1084,.1626-.24316,.26416-.43359,.26416s-.3252-.10156-.43359-.26416l-.90137-1.38867v2.35742c0,.28467-.23047,.5083-.51465,.5083s-.50879-.22363-.50879-.5083v-3.78027Z"
style="fill: #f0f0f0;"
id="path119" />
</g>
<g
id="g131">
<path
d="M13.57422,272.00635v-.01367c0-1.34814,1.01562-2.45264,2.47266-2.45264,.71094,0,1.19238,.18994,1.58594,.48145,.10742,.08105,.20312,.23047,.20312,.41309,0,.28467-.23047,.50781-.51562,.50781-.14258,0-.23633-.05371-.31152-.10156-.29199-.2168-.59668-.33838-.96875-.33838-.7998,0-1.37598,.66357-1.37598,1.47705v.01318c0,.81299,.5625,1.49072,1.37598,1.49072,.44043,0,.73145-.13574,1.03027-.37305,.08008-.06738,.18945-.11475,.31055-.11475,.26465,0,.48828,.2168,.48828,.48096,0,.1626-.08105,.29102-.17578,.37256-.42773,.37256-.92773,.59619-1.6875,.59619-1.39551,0-2.43164-1.07715-2.43164-2.43896Z"
style="fill: #f0f0f0;"
id="path123" />
<path
d="M18.99219,270.10254c0-.29102,.23047-.52148,.52148-.52148s.52148,.23047,.52148,.52148v3.31299h1.93164c.26367,0,.47363,.20996,.47363,.47412,0,.26465-.20996,.47461-.47363,.47461h-2.45312c-.29102,0-.52148-.23047-.52148-.52197v-3.73975Z"
style="fill: #f0f0f0;"
id="path125" />
<path
d="M23.36719,270.10254c0-.29102,.22949-.52148,.52148-.52148,.29102,0,.52148,.23047,.52148,.52148v3.78027c0,.2915-.23047,.52197-.52148,.52197-.29199,0-.52148-.23047-.52148-.52197v-3.78027Z"
style="fill: #f0f0f0;"
id="path127" />
<path
d="M25.81641,270.14355c0-.2915,.22949-.52197,.52148-.52197h1.41602c1.13086,0,1.81445,.67041,1.81445,1.63965v.01318c0,1.09766-.85352,1.66699-1.91602,1.66699h-.79297v.94141c0,.2915-.23047,.52197-.52148,.52197-.29199,0-.52148-.23047-.52148-.52197v-3.73926Zm1.86914,1.86963c.52148,0,.82617-.31201,.82617-.71826v-.01367c0-.46729-.32422-.71777-.84668-.71777h-.80566v1.44971h.82617Z"
style="fill: #f0f0f0;"
id="path129" />
</g>
<g
id="g139">
<path
d="M47.70898,270.10254c0-.29102,.23047-.52148,.52246-.52148s.52148,.23047,.52148,.52148v3.31299h1.93066c.26465,0,.47461,.20996,.47461,.47412,0,.26465-.20996,.47461-.47461,.47461h-2.45215c-.29199,0-.52246-.23047-.52246-.52197v-3.73975Z"
style="fill: #f0f0f0;"
id="path133" />
<path
d="M52.08496,270.10254c0-.29102,.22949-.52148,.52148-.52148s.52148,.23047,.52148,.52148v3.78027c0,.2915-.22949,.52197-.52148,.52197s-.52148-.23047-.52148-.52197v-3.78027Z"
style="fill: #f0f0f0;"
id="path135" />
<path
d="M54.5332,270.11621c0-.2915,.23047-.52148,.52246-.52148h.11523c.22363,0,.37988,.11523,.47363,.27051l1.26074,2.05273,1.2666-2.05957c.1084-.17578,.25781-.26367,.46777-.26367h.11523c.29102,0,.52148,.22998,.52148,.52148v3.7666c0,.2915-.23047,.52197-.52148,.52197-.28418,0-.51465-.2373-.51465-.52197v-2.36426l-.91504,1.40918c-.1084,.1626-.24316,.26416-.43359,.26416s-.3252-.10156-.43359-.26416l-.90137-1.38867v2.35742c0,.28467-.23047,.5083-.51465,.5083s-.50879-.22363-.50879-.5083v-3.78027Z"
style="fill: #f0f0f0;"
id="path137" />
</g>
<g
id="g147">
<path
d="M14.49512,318.23877l1.65332-3.73291c.11523-.25781,.3252-.41309,.60938-.41309h.06055c.28516,0,.48828,.15527,.60352,.41309l1.65332,3.73291c.03418,.07471,.05371,.14209,.05371,.20996,0,.27783-.2168,.50146-.49414,.50146-.24414,0-.40625-.14258-.50195-.35938l-.31836-.74512h-2.08594l-.33203,.7793c-.08789,.20312-.26367,.3252-.48047,.3252-.27148,0-.48242-.2168-.48242-.48779,0-.07471,.02734-.14893,.06152-.22363Zm2.93359-1.31445l-.65723-1.56494-.65625,1.56494h1.31348Z"
style="fill: #f0f0f0;"
id="path141" />
<path
d="M20.67578,314.83105l2.2832,1.08398c.25781,.12207,.41309,.31152,.41309,.57568v.06787c0,.26416-.15527,.4541-.41309,.57568l-2.2832,1.08398c-.08203,.04053-.15625,.06787-.25098,.06787-.2168,.00684-.41309-.18262-.41309-.42676,0-.19629,.1084-.33203,.28516-.41309l2.04492-.91504-2.04492-.91455c-.17676-.08105-.28516-.23682-.28516-.42676,0-.25049,.19629-.42676,.44727-.41992,.07422,0,.14844,.02686,.2168,.06104Z"
style="fill: #f0f0f0;"
id="path143" />
<path
d="M24.47461,314.68848c0-.29102,.22949-.52148,.52148-.52148h1.67969c.54199,0,.96875,.14893,1.24023,.41992,.2168,.2168,.32422,.48145,.32422,.80664v.01318c0,.53516-.28418,.8335-.62305,1.02295,.54883,.20996,.8877,.52832,.8877,1.16553v.01318c0,.86719-.7041,1.30078-1.77441,1.30078h-1.73438c-.29199,0-.52148-.22998-.52148-.52148v-3.69922Zm1.97754,1.39551c.45996,0,.75195-.14844,.75195-.50098v-.01367c0-.31152-.24316-.48779-.68457-.48779h-1.0293v1.00244h.96191Zm.27832,1.91113c.45996,0,.73828-.16309,.73828-.51514v-.01367c0-.31836-.2373-.51514-.77344-.51514h-1.20508v1.04395h1.24023Z"
style="fill: #f0f0f0;"
id="path145" />
</g>
<g
id="g155">
<path
d="M46.58398,318.23877l1.6543-3.73291c.11523-.25781,.32422-.41309,.60938-.41309h.06055c.28516,0,.48828,.15527,.60352,.41309l1.65234,3.73291c.03418,.07471,.05469,.14209,.05469,.20996,0,.27783-.2168,.50146-.49414,.50146-.24414,0-.40625-.14258-.50195-.35938l-.31836-.74512h-2.08594l-.33203,.7793c-.08887,.20312-.26465,.3252-.48145,.3252-.27051,0-.48145-.2168-.48145-.48779,0-.07471,.02734-.14893,.06055-.22363Zm2.93359-1.31445l-.65625-1.56494-.6582,1.56494h1.31445Z"
style="fill: #f0f0f0;"
id="path149" />
<path
d="M54.46289,318.21826l-2.2832-1.08398c-.25781-.12158-.41309-.31152-.41309-.57568v-.06787c0-.26416,.15527-.45361,.41309-.57568l2.2832-1.08398c.08203-.04102,.15625-.06787,.25098-.06787,.2168-.00684,.41309,.18311,.41309,.42676,0,.19678-.1084,.33203-.28516,.41357l-2.04492,.91406,2.04492,.91504c.17676,.08105,.28516,.2373,.28516,.42676,0,.25049-.19629,.42676-.44727,.41992-.07422,0-.14844-.02734-.2168-.06104Z"
style="fill: #f0f0f0;"
id="path151" />
<path
d="M56.38477,314.68848c0-.29102,.23047-.52148,.52148-.52148h1.68066c.54199,0,.96875,.14893,1.23926,.41992,.2168,.2168,.32617,.48145,.32617,.80664v.01318c0,.53516-.28516,.8335-.62305,1.02295,.54785,.20996,.88672,.52832,.88672,1.16553v.01318c0,.86719-.70508,1.30078-1.77539,1.30078h-1.73438c-.29102,0-.52148-.22998-.52148-.52148v-3.69922Zm1.97852,1.39551c.46094,0,.75195-.14844,.75195-.50098v-.01367c0-.31152-.24414-.48779-.68359-.48779h-1.03027v1.00244h.96191Zm.27734,1.91113c.46094,0,.73828-.16309,.73828-.51514v-.01367c0-.31836-.23633-.51514-.77148-.51514h-1.20605v1.04395h1.23926Z"
style="fill: #f0f0f0;"
id="path153" />
</g>
<path
d="M19.26953,139.13867l1.76172-3.9292c.09375-.20996,.26367-.33887,.50098-.33887h.04004c.2373,0,.40039,.12891,.49512,.33887l1.76074,3.9292c.03418,.06152,.04785,.12207,.04785,.17627,0,.22363-.16895,.3999-.39258,.3999-.19629,0-.33203-.11523-.40723-.2915l-.38574-.88721h-2.30371l-.39941,.91455c-.06738,.16943-.20996,.26416-.38574,.26416-.2168,0-.38672-.16943-.38672-.38623,0-.06104,.02051-.12207,.05469-.18994Zm3.10254-1.34131l-.83301-1.91748-.83398,1.91748h1.66699Z"
style="fill: #1f1f1f;"
id="path157" />
<path
d="M51.71289,135.3584c0-.2373,.18359-.41992,.41992-.41992h1.70703c.54297,0,.96875,.14893,1.24023,.41992,.20996,.20996,.31836,.46777,.31836,.78613v.01367c0,.56885-.3252,.87402-.67773,1.05664,.55566,.18945,.94238,.50781,.94238,1.15186v.01318c0,.84717-.69824,1.30078-1.75488,1.30078h-1.77539c-.23633,0-.41992-.18262-.41992-.41992v-3.90234Zm1.95801,1.57861c.53516,0,.89453-.20996,.89453-.64355v-.01367c0-.37256-.29785-.60303-.83301-.60303h-1.19922v1.26025h1.1377Zm.24414,2.00537c.56934,0,.91504-.22363,.91504-.65039v-.01367c0-.39941-.31934-.63672-.97656-.63672h-1.32031v1.30078h1.38184Z"
style="fill: #1f1f1f;"
id="path159" />
<path
d="M34.94629,45.78613c0-.29199,.22559-.51758,.5166-.51758h2.10352c.66797,0,1.19434,.18359,1.52734,.51758,.25977,.25879,.39258,.57568,.39258,.96777v.01709c0,.70068-.40039,1.07666-.83398,1.30225,.68359,.2334,1.16016,.62598,1.16016,1.41895v.0166c0,1.04297-.86035,1.60254-2.16211,1.60254h-2.1875c-.29102,0-.5166-.22559-.5166-.51758v-4.80762Zm2.41211,1.94434c.65918,0,1.10156-.25879,1.10156-.79297v-.0166c0-.45898-.36719-.74268-1.02637-.74268h-1.47754v1.55225h1.40234Zm.2998,2.4707c.70117,0,1.12695-.27539,1.12695-.80078v-.01709c0-.49268-.39258-.78467-1.20117-.78467h-1.62793v1.60254h1.70215Z"
style="fill: #1f1f1f;"
id="path161" />
<path
d="M27.81641,49.46582c0-.26367,.2168-.47949,.47266-.47949h1.50293c.25586,0,.47168,.21582,.47168,.47949,0,.25586-.21582,.47168-.47168,.47168h-1.50293c-.25586,0-.47266-.21582-.47266-.47168Z"
style="fill: #1f1f1f;"
id="path163" />
<path
d="M44.85156,49.92676h-1.13672c-.23926,0-.43945-.19141-.43945-.43945,0-.23975,.2002-.43945,.43945-.43945h1.13672v-1.11182c0-.25586,.19922-.45557,.45508-.45557,.24805,0,.45508,.19971,.45508,.45557v1.11182h1.13672c.23926,0,.43945,.19971,.43945,.43945,0,.24805-.2002,.43945-.43945,.43945h-1.13672v1.11182c0,.25586-.20703,.45557-.45508,.45557-.25586,0-.45508-.19971-.45508-.45557v-1.11182Z"
style="fill: #1f1f1f;"
id="path165" />
<g
id="g181">
<path
d="M5.26953,23.93262v-.02539c0-2.48975,1.87695-4.5293,4.56641-4.5293,1.31445,0,2.20215,.35059,2.92773,.88867,.20117,.1499,.375,.4248,.375,.7627,0,.52588-.4248,.93848-.9502,.93848-.2627,0-.43848-.09961-.5752-.1875-.53906-.40039-1.10156-.62549-1.78906-.62549-1.47656,0-2.54102,1.22607-2.54102,2.72754v.0249c0,1.50146,1.03906,2.75293,2.54102,2.75293,.8125,0,1.35059-.25049,1.90137-.68848,.14941-.125,.35059-.2124,.5752-.2124,.48828,0,.90039,.40039,.90039,.88818,0,.30029-.14941,.53809-.32422,.68848-.78906,.68799-1.71484,1.10059-3.11523,1.10059-2.57812,0-4.49219-1.98926-4.49219-4.50391Z"
style="fill: #1f1f1f;"
id="path167" />
<path
d="M14.34863,23.93262v-.02539c0-2.48975,1.96387-4.5293,4.66699-4.5293s4.64258,2.01465,4.64258,4.50439v.0249c0,2.49023-1.96484,4.5293-4.66797,4.5293-2.70215,0-4.6416-2.01416-4.6416-4.50391Zm7.29395,0v-.02539c0-1.50146-1.09961-2.75244-2.65234-2.75244-1.55078,0-2.62695,1.22607-2.62695,2.72754v.0249c0,1.50146,1.10156,2.75293,2.65234,2.75293,1.55176,0,2.62695-1.22656,2.62695-2.72754Z"
style="fill: #1f1f1f;"
id="path169" />
<path
d="M25.4668,20.44141c0-.53809,.42578-.96338,.96484-.96338h.21191c.41309,0,.7002,.2124,.87598,.50049l2.32715,3.79102,2.33984-3.80371c.2002-.3252,.47559-.48779,.86328-.48779h.21289c.53809,0,.96387,.42529,.96387,.96338v6.95703c0,.53809-.42578,.96338-.96387,.96338-.52539,0-.95117-.43799-.95117-.96338v-4.36719l-1.68848,2.60254c-.20117,.30078-.45117,.48828-.80078,.48828-.35156,0-.60156-.1875-.80078-.48828l-1.66406-2.56445v4.354c0,.52539-.42578,.93848-.95117,.93848s-.93945-.41309-.93945-.93848v-6.98193Z"
style="fill: #1f1f1f;"
id="path171" />
<path
d="M36.50391,20.49121c0-.5376,.4248-.96289,.96289-.96289h2.61523c2.08984,0,3.35352,1.23828,3.35352,3.02783v.0249c0,2.02686-1.57715,3.07812-3.54102,3.07812h-1.46484v1.73926c0,.53809-.42578,.96338-.96289,.96338-.53809,0-.96289-.42529-.96289-.96338v-6.90723Zm3.45312,3.45361c.96289,0,1.52539-.57568,1.52539-1.32617v-.0249c0-.86328-.59961-1.32617-1.56348-1.32617h-1.48926v2.67725h1.52734Z"
style="fill: #1f1f1f;"
id="path173" />
<path
d="M43.85547,27.04785l3.05273-6.89404c.21289-.47559,.60156-.76318,1.12695-.76318h.11133c.52637,0,.90234,.2876,1.11426,.76318l3.05371,6.89404c.0625,.1377,.09961,.2627,.09961,.3877,0,.51318-.40039,.92627-.91406,.92627-.44922,0-.75-.26318-.92578-.66357l-.58789-1.37598h-3.85352l-.61328,1.43896c-.16211,.37549-.48828,.60059-.88867,.60059-.5,0-.88867-.40039-.88867-.90088,0-.1377,.05078-.27539,.11328-.41309Zm5.41797-2.42725l-1.21387-2.89014-1.21387,2.89014h2.42773Z"
style="fill: #1f1f1f;"
id="path175" />
<path
d="M53.83594,20.49121c0-.5376,.4248-.96289,.96289-.96289h3.04102c1.11328,0,1.97656,.3125,2.55176,.88818,.4873,.48779,.75098,1.17627,.75098,2.00195v.0249c0,1.37646-.68848,2.22754-1.75195,2.66504l1.33887,1.62695c.1875,.2373,.31348,.4375,.31348,.73828,0,.5376-.45117,.88818-.91406,.88818-.4375,0-.72559-.21289-.95117-.50049l-1.87695-2.37744h-1.53906v1.91455c0,.53809-.42578,.96338-.96289,.96338-.53809,0-.96289-.42529-.96289-.96338v-6.90723Zm3.87793,3.29102c.93848,0,1.47656-.50049,1.47656-1.23877v-.0249c0-.82617-.5752-1.25098-1.51465-1.25098h-1.91406v2.51465h1.95215Z"
style="fill: #1f1f1f;"
id="path177" />
<path
d="M63.05273,27.32324v-6.83203c0-.5376,.42578-.96289,.96289-.96289h4.85547c.47461,0,.86328,.3877,.86328,.86328s-.38867,.85059-.86328,.85059h-3.9043v1.77686h3.34082c.47559,0,.86328,.3877,.86328,.86328s-.3877,.85107-.86328,.85107h-3.34082v1.83887h3.9668c.47461,0,.86328,.38818,.86328,.86328,0,.47559-.38867,.85107-.86328,.85107h-4.91797c-.53711,0-.96289-.42529-.96289-.96338Z"
style="fill: #1f1f1f;"
id="path179" />
</g>
<g
id="g189">
<path
d="M48.36523,118.69043l-.48828,.14941c-.04688,.01367-.10742,.02051-.14844,.02051-.19727,0-.36621-.16309-.36621-.35254,0-.17627,.1084-.31152,.27832-.35938l.71777-.22998c.16309-.04736,.28418-.07471,.40625-.07471h.01367c.2373,0,.41309,.18311,.41309,.41309v4.01074c0,.23047-.18262,.41357-.41309,.41357-.22363,0-.41309-.18311-.41309-.41357v-3.57715Z"
style="fill: #1f1f1f;"
id="path183" />
<path
d="M50.43555,120.28955v-.01367c0-1.35498,.82715-2.45264,2.07422-2.45264,1.23926,0,2.05859,1.08398,2.05859,2.43945v.01318c0,1.35498-.82617,2.45264-2.07227,2.45264-1.24707,0-2.06055-1.08398-2.06055-2.43896Zm3.27344,0v-.01367c0-.93506-.48242-1.70068-1.21289-1.70068-.73242,0-1.19922,.74561-1.19922,1.6875v.01318c0,.93506,.47363,1.70068,1.21289,1.70068,.73828,0,1.19922-.75879,1.19922-1.68701Z"
style="fill: #1f1f1f;"
id="path185" />
<path
d="M56.95801,122.37598l-1.65918-3.90234c-.02734-.06055-.04785-.12158-.04785-.19629,0-.22363,.18262-.40625,.41992-.40625,.2168,0,.3584,.12207,.42676,.29785l1.36914,3.42139,1.38867-3.44873c.05371-.14209,.20312-.27051,.39941-.27051,.23047,0,.41309,.17578,.41309,.39941,0,.06104-.01953,.12891-.04102,.17627l-1.66602,3.9292c-.08789,.20996-.24414,.33887-.48047,.33887h-.04785c-.23047,0-.38574-.12891-.47461-.33887Z"
style="fill: #1f1f1f;"
id="path187" />
</g>
</g>
<g
id="uuid-bdb8c598-5a59-48f7-9dd4-0b3cf9c17e75"
data-name="components"
style="display:none"
inkscape:groupmode="layer">
<circle
id="uuid-c9024c66-e0f8-4d01-a89a-36deef8cbe7f"
data-name="Bknob#RoundLargeBlackKnob"
cx="37.33955"
cy="78.999962"
r="5"
style="fill:#ff0000" />
<circle
id="uuid-1b467dfd-fa96-4dae-a99b-46a82fa39252"
data-name="Clip#TinyLight"
cx="32.5597"
cy="278.24713"
r="1.5"
style="fill:#ff00ff" />
<circle
id="uuid-e65191cd-d901-4951-8175-0b048fc9fbce"
data-name="Lim#TinyLight"
cx="64.559898"
cy="278.2471"
r="1.5"
style="fill:#ff00ff" />
<circle
id="uuid-d9037cea-9f85-4b9f-a5a2-39bf48651722"
data-name="AhtB#TinyLight"
cx="32.559719"
cy="323.01172"
r="1.5"
style="fill:#ff00ff" />
<circle
id="uuid-93d0f93a-082c-472b-9862-04ff284adc9a"
data-name="AltB#TinyLight"
cx="64.559853"
cy="323.01172"
r="1.5"
style="fill:#ff00ff" />
<circle
id="uuid-b50fcdd2-29a6-4de2-b88c-bea208a933a8"
data-name="A#PJ301MPort"
cx="21.551001"
cy="154.45821"
r="5"
style="fill:#00ff00" />
<circle
id="uuid-17bfa44d-8c45-4933-95bd-1331af2076ed"
data-name="B#PJ301MPort"
cx="53.551128"
cy="154.45821"
r="5"
style="fill:#00ff00" />
<circle
id="uuid-2ec5f664-718f-4641-8460-cd8c5b9b078a"
data-name="Max#PJ301MPort"
cx="21.545441"
cy="199.39957"
r="5"
style="fill:#0000ff" />
<circle
id="uuid-3bb71e84-fe48-42ec-95c7-590c03a13aa1"
data-name="Min#PJ301MPort"
cx="53.54557"
cy="199.39957"
r="5"
style="fill:#0000ff" />
<circle
id="uuid-3d336169-acd8-4d1a-913f-e6abfd58d4e3"
data-name="ClipCV#PJ301MPort"
cx="21.545441"
cy="244.28706"
r="5"
style="fill:#0000ff" />
<circle
id="uuid-38dc734f-de4b-4a47-9857-580c1e502767"
data-name="LimCV#PJ301MPort"
cx="53.54557"
cy="244.28706"
r="5"
style="fill:#0000ff" />
<circle
id="uuid-57a2d5c3-879b-4801-b513-2f9042640fcc"
data-name="ClipGate#PJ301MPort"
cx="21.545441"
cy="289.2471"
r="5"
style="fill:#0000ff" />
<circle
id="uuid-71dd4202-4035-4a82-b925-5cba27837c3e"
data-name="LimGate#PJ301MPort"
cx="53.54557"
cy="289.2471"
r="5"
style="fill:#0000ff" />
<circle
id="uuid-83fd565c-02bd-452e-983c-ca595dcfd5d1"
data-name="AhtB#PJ301MPort"
cx="21.545441"
cy="334"
r="5"
style="fill:#0000ff" />
<circle
id="uuid-95f59cc1-d8c3-4135-93a6-614e0ca87ff7"
data-name="AltB#PJ301MPort"
cx="53.54557"
cy="334"
r="5"
style="fill:#0000ff" />
</g>
</svg>

+ 598
- 0
res/Logic.svg View File

@@ -0,0 +1,598 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="75"
height="380"
viewBox="0 0 75 380"
version="1.1"
id="svg184"
sodipodi:docname="LOGIC.svg"
inkscape:version="0.92.3 (2405546, 2018-03-11)">
<metadata
id="metadata188">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1017"
id="namedview186"
showgrid="false"
inkscape:zoom="1.7566021"
inkscape:cx="6.8846065"
inkscape:cy="228.3692"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="svg184" />
<defs
id="defs9">
<style
id="style2">
.uuid-54c86ba3-2906-4d9f-ac08-45e63dc44ffa {
fill: #f0f0f0;
}

.uuid-c31ed62d-52f8-4f3f-bf44-31c6195ed6b5 {
fill: blue;
}

.uuid-7c0da0f2-9489-4436-a353-c93289aacd03 {
fill: lime;
}

.uuid-51e53010-b73f-4087-8082-f1cc270ce110 {
fill: url(#uuid-2b0b3a86-7721-4ce0-93bf-d7a02d8b10dd);
}

.uuid-d55a1475-ce1d-4530-a06b-d079f19ee33f {
fill: #f0f;
}

.uuid-ba0796a7-f879-4ad3-9d27-0c9624a0fa44 {
fill: #1f1f1f;
}

.uuid-5cd98ec6-c938-4c2e-ae9c-5b53cb1d9197 {
fill: red;
}
</style>
<linearGradient
id="uuid-2b0b3a86-7721-4ce0-93bf-d7a02d8b10dd"
x1="37.5"
y1="0"
x2="37.5"
y2="380"
gradientTransform="matrix(1, 0, 0, 1, 0, 0)"
gradientUnits="userSpaceOnUse">
<stop
offset="0"
stop-color="#ebebeb"
id="stop4" />
<stop
offset="1"
stop-color="#e1e1e1"
id="stop6" />
</linearGradient>
</defs>
<g
id="uuid-5c20975c-c59d-493e-a958-f8e4ae38d2f5"
data-name="FND BG">
<rect
width="75"
height="380"
style="fill: url(#uuid-2b0b3a86-7721-4ce0-93bf-d7a02d8b10dd);"
id="rect11" />
</g>
<g
id="uuid-f171a82c-1c0c-41cc-8945-b0074f613537"
data-name="FND GRAPH">
<path
d="M53.82211,129.56246l1.65796-2.87167c.14313-.24791-.03578-.55779-.32204-.55779h-3.31592c-.28626,0-.46517,.30989-.32204,.55779l1.65796,2.87167c.14313,.24791,.50096,.24791,.64409,0Z"
style="fill: #1f1f1f;"
id="path14" />
<g
id="g20">
<rect
x="7.22416"
y="174.74294"
width="28.55155"
height="39.15691"
rx="2.83465"
ry="2.83465"
style="fill: #1f1f1f;"
id="rect16" />
<rect
x="18.07571"
y="196.25383"
width="6.86765"
height="6.64999"
style="fill: #1f1f1f;"
id="rect18" />
</g>
<g
id="g26">
<rect
x="39.22429"
y="174.74294"
width="28.55155"
height="39.15691"
rx="2.83465"
ry="2.83465"
style="fill: #1f1f1f;"
id="rect22" />
<rect
x="50.07584"
y="196.25383"
width="6.86765"
height="6.64999"
style="fill: #1f1f1f;"
id="rect24" />
</g>
<g
id="g32">
<rect
x="7.22416"
y="219.63044"
width="28.55155"
height="39.15691"
rx="2.83465"
ry="2.83465"
style="fill: #1f1f1f;"
id="rect28" />
<rect
x="18.07571"
y="241.14133"
width="6.86765"
height="6.64999"
style="fill: #1f1f1f;"
id="rect30" />
</g>
<g
id="g38">
<rect
x="39.22429"
y="219.63044"
width="28.55155"
height="39.15691"
rx="2.83465"
ry="2.83465"
style="fill: #1f1f1f;"
id="rect34" />
<rect
x="50.07584"
y="241.14133"
width="6.86765"
height="6.64999"
style="fill: #1f1f1f;"
id="rect36" />
</g>
<g
id="g44">
<rect
x="7.22416"
y="264.48514"
width="28.55155"
height="39.15691"
rx="2.83465"
ry="2.83465"
style="fill: #1f1f1f;"
id="rect40" />
<rect
x="18.07571"
y="285.99603"
width="6.86765"
height="6.64999"
style="fill: #1f1f1f;"
id="rect42" />
</g>
<g
id="g50">
<rect
x="39.22429"
y="264.59049"
width="28.55155"
height="39.15691"
rx="2.83465"
ry="2.83465"
style="fill: #1f1f1f;"
id="rect46" />
<rect
x="50.07584"
y="286.10137"
width="6.86765"
height="6.64999"
style="fill: #1f1f1f;"
id="rect48" />
</g>
<g
id="g56">
<rect
x="7.22416"
y="309.05634"
width="28.55155"
height="39.15691"
rx="2.83465"
ry="2.83465"
style="fill: #1f1f1f;"
id="rect52" />
<rect
x="18.07571"
y="330.56723"
width="6.86765"
height="6.64999"
style="fill: #1f1f1f;"
id="rect54" />
</g>
<g
id="g62">
<rect
x="39.22429"
y="309.05634"
width="28.55155"
height="39.15691"
rx="2.83465"
ry="2.83465"
style="fill: #1f1f1f;"
id="rect58" />
<rect
x="50.07584"
y="330.56723"
width="6.86765"
height="6.64999"
style="fill: #1f1f1f;"
id="rect60" />
</g>
<g
id="g72">
<circle
cx="38.00165"
cy="356.2678"
r="1.18571"
style="fill: #1f1f1f;"
id="circle64" />
<path
d="M29.35927,360.18977c-.34551,0-.66126-.1952-.8158-.50419l-2.96428-5.92856c-.22526-.45057-.04266-.99844,.40794-1.2237,.45008-.22535,.99831-.04271,1.22366,.4079l2.14848,4.29696,2.14848-4.29696c.22526-.45057,.77314-.63325,1.22366-.4079,.45061,.22526,.63321,.77314,.40794,1.2237l-2.96428,5.92856c-.15454,.30899-.47029,.50419-.8158,.50419Z"
style="fill: #1f1f1f;"
id="path66" />
<path
d="M45.64073,360.18977c-.34551,0-.66126-.1952-.8158-.50419l-2.96428-5.92856c-.22526-.45057-.04266-.99844,.40794-1.2237,.45016-.22535,.9984-.04271,1.22366,.4079l2.14848,4.29696,2.14848-4.29696c.22526-.45057,.77305-.63325,1.22366-.4079,.45061,.22526,.63321,.77314,.40794,1.2237l-2.96428,5.92856c-.15454,.30899-.47029,.50419-.8158,.50419Z"
style="fill: #1f1f1f;"
id="path68" />
<path
d="M37.94242,360.18977c-2.13744,0-3.87637-1.73893-3.87637-3.87637s1.73893-3.87637,3.87637-3.87637c.84653,0,1.65102,.26819,2.32653,.77554,.40278,.30253,.48401,.87428,.18153,1.27705-.30248,.40273-.87432,.48401-1.2771,.18148-.357-.26815-.78267-.4099-1.23096-.4099-1.13156,0-2.05219,.92059-2.05219,2.05219s.92064,2.05219,2.05219,2.05219c.44829,0,.87396-.14176,1.23096-.4099,.40269-.30271,.97444-.22125,1.2771,.18148,.30248,.40278,.22125,.97453-.18153,1.27705-.67551,.50735-1.48,.77554-2.32653,.77554Z"
style="fill: #1f1f1f;"
id="path70" />
</g>
</g>
<g
id="uuid-b724c837-0d98-4a13-942e-d0edfc5f8ba4"
data-name="FND TXT">
<g
id="g83">
<path
d="M10.59766,180.37402c0-.2915,.22949-.52148,.52148-.52148h.10742c.25098,0,.40039,.12158,.54297,.30469l2.01172,2.64209v-2.4458c0-.28418,.23047-.51465,.51465-.51465s.51465,.23047,.51465,.51465v3.77344c0,.2915-.23047,.52197-.52148,.52197h-.0332c-.25098,0-.40039-.12207-.54297-.30518l-2.08594-2.73682v2.54053c0,.28467-.23047,.51514-.51562,.51514-.28418,0-.51367-.23047-.51367-.51514v-3.77344Z"
style="fill: #f0f0f0;"
id="path75" />
<path
d="M15.9541,182.26416v-.01367c0-1.34814,1.06348-2.45264,2.52734-2.45264s2.5127,1.09082,2.5127,2.43945v.01318c0,1.34814-1.0625,2.45264-2.52637,2.45264s-2.51367-1.09082-2.51367-2.43896Zm3.9502,0v-.01367c0-.81299-.5957-1.49023-1.43652-1.49023s-1.42285,.66357-1.42285,1.47705v.01318c0,.81299,.5957,1.49072,1.43652,1.49072,.83984,0,1.42285-.66406,1.42285-1.47705Z"
style="fill: #f0f0f0;"
id="path77" />
<path
d="M23.01367,180.84131h-1.00195c-.26562,0-.48242-.2168-.48242-.48096s.2168-.48096,.48242-.48096h3.04785c.26465,0,.48145,.2168,.48145,.48096s-.2168,.48096-.48145,.48096h-1.00293v3.29932c0,.2915-.23047,.52197-.52148,.52197s-.52148-.23047-.52148-.52197v-3.29932Z"
style="fill: #f0f0f0;"
id="path79" />
<path
d="M28.07324,183.95117l1.65332-3.73291c.11523-.25732,.3252-.41357,.60938-.41357h.06055c.28516,0,.48828,.15625,.60352,.41357l1.65332,3.73291c.03418,.07422,.05371,.14209,.05371,.20996,0,.27783-.2168,.50146-.49414,.50146-.24414,0-.40625-.14209-.50195-.35889l-.31836-.74561h-2.08594l-.33203,.7793c-.08789,.20312-.26367,.3252-.48047,.3252-.27148,0-.48242-.2168-.48242-.48779,0-.07471,.02734-.14941,.06152-.22363Zm2.93359-1.31445l-.65723-1.56494-.65625,1.56494h1.31348Z"
style="fill: #f0f0f0;"
id="path81" />
</g>
<g
id="g93">
<path
d="M42.74609,180.37402c0-.2915,.23047-.52148,.52148-.52148h.10938c.25,0,.39844,.12158,.54102,.30469l2.0127,2.64209v-2.4458c0-.28418,.22949-.51465,.51465-.51465s.51562,.23047,.51562,.51465v3.77344c0,.2915-.23047,.52197-.52246,.52197h-.03418c-.25,0-.39941-.12207-.54102-.30518l-2.08789-2.73682v2.54053c0,.28467-.22949,.51514-.51367,.51514-.28516,0-.51562-.23047-.51562-.51514v-3.77344Z"
style="fill: #f0f0f0;"
id="path85" />
<path
d="M48.10352,182.26416v-.01367c0-1.34814,1.06445-2.45264,2.52734-2.45264s2.51367,1.09082,2.51367,2.43945v.01318c0,1.34814-1.06445,2.45264-2.52734,2.45264s-2.51367-1.09082-2.51367-2.43896Zm3.94922,0v-.01367c0-.81299-.5957-1.49023-1.43555-1.49023s-1.42285,.66357-1.42285,1.47705v.01318c0,.81299,.59668,1.49072,1.43652,1.49072s1.42188-.66406,1.42188-1.47705Z"
style="fill: #f0f0f0;"
id="path87" />
<path
d="M55.16309,180.84131h-1.00293c-.26367,0-.48047-.2168-.48047-.48096s.2168-.48096,.48047-.48096h3.04883c.26367,0,.48047,.2168,.48047,.48096s-.2168,.48096-.48047,.48096h-1.00195v3.29932c0,.2915-.23047,.52197-.52148,.52197-.29199,0-.52246-.23047-.52246-.52197v-3.29932Z"
style="fill: #f0f0f0;"
id="path89" />
<path
d="M60.48633,180.40137c0-.2915,.23047-.52197,.52246-.52197h1.68066c.54102,0,.96875,.14893,1.23926,.41992,.2168,.2168,.3252,.48096,.3252,.80615v.01367c0,.53516-.28516,.8335-.62305,1.02295,.54883,.21045,.88672,.52881,.88672,1.16553v.01367c0,.86719-.7041,1.30078-1.77441,1.30078h-1.73438c-.29199,0-.52246-.23047-.52246-.52197v-3.69873Zm1.97852,1.39551c.46094,0,.75195-.14941,.75195-.50146v-.01367c0-.31152-.24316-.48779-.68359-.48779h-1.0293v1.00293h.96094Zm.27832,1.91016c.45996,0,.73828-.16211,.73828-.51465v-.01367c0-.31836-.2373-.51465-.77246-.51465h-1.20508v1.04297h1.23926Z"
style="fill: #f0f0f0;"
id="path91" />
</g>
<g
id="g99">
<path
d="M16.41406,227.15137v-.01367c0-1.34814,1.06445-2.45215,2.52734-2.45215,1.46387,0,2.51367,1.09082,2.51367,2.43848v.01367c0,1.34863-1.06348,2.45264-2.52734,2.45264-1.46289,0-2.51367-1.09082-2.51367-2.43896Zm3.95117,0v-.01367c0-.81299-.59766-1.49023-1.4375-1.49023s-1.42188,.66406-1.42188,1.47656v.01367c0,.81299,.5957,1.49072,1.43555,1.49072s1.42383-.66406,1.42383-1.47705Z"
style="fill: #f0f0f0;"
id="path95" />
<path
d="M22.60156,225.28809c0-.29102,.23047-.52148,.52148-.52148h1.64648c.60352,0,1.07031,.16943,1.38281,.48096,.26367,.26416,.40625,.63721,.40625,1.08398v.01367c0,.74512-.37305,1.20557-.94922,1.44287l.72559,.88086c.10156,.12891,.16895,.2373,.16895,.39941,0,.2915-.24414,.48145-.49414,.48145-.2373,0-.39258-.11523-.51562-.271l-1.01562-1.2876h-.83398v1.03711c0,.29102-.23047,.52148-.52148,.52148s-.52148-.23047-.52148-.52148v-3.74023Zm2.10059,1.78223c.50781,0,.7998-.27148,.7998-.6709v-.01367c0-.44727-.3125-.67773-.82031-.67773h-1.03711v1.3623h1.05762Z"
style="fill: #f0f0f0;"
id="path97" />
</g>
<g
id="g107">
<path
d="M45.84375,225.26123c0-.2915,.22949-.52197,.52148-.52197h.10742c.25098,0,.40039,.12207,.54297,.30518l2.01172,2.64209v-2.4458c0-.28467,.23047-.51465,.51465-.51465s.51465,.22998,.51465,.51465v3.77393c0,.29102-.23047,.52148-.52148,.52148h-.0332c-.25098,0-.40039-.12207-.54297-.30469l-2.08594-2.7373v2.54053c0,.28467-.23047,.51514-.51562,.51514-.28418,0-.51367-.23047-.51367-.51514v-3.77344Z"
style="fill: #f0f0f0;"
id="path101" />
<path
d="M51.2002,227.15137v-.01367c0-1.34814,1.06348-2.45215,2.52734-2.45215s2.5127,1.09082,2.5127,2.43848v.01367c0,1.34863-1.0625,2.45264-2.52637,2.45264s-2.51367-1.09082-2.51367-2.43896Zm3.9502,0v-.01367c0-.81299-.5957-1.49023-1.43652-1.49023s-1.42285,.66406-1.42285,1.47656v.01367c0,.81299,.5957,1.49072,1.43652,1.49072,.83984,0,1.42285-.66406,1.42285-1.47705Z"
style="fill: #f0f0f0;"
id="path103" />
<path
d="M57.38477,225.28809c0-.29102,.22949-.52148,.52148-.52148h1.64648c.60156,0,1.07031,.16943,1.38086,.48096,.26465,.26416,.40625,.63721,.40625,1.08398v.01367c0,.74512-.37207,1.20557-.94727,1.44287l.72461,.88086c.10156,.12891,.16992,.2373,.16992,.39941,0,.2915-.24414,.48145-.49512,.48145-.2373,0-.39355-.11523-.51465-.271l-1.0166-1.2876h-.83301v1.03711c0,.29102-.23047,.52148-.52148,.52148-.29199,0-.52148-.23047-.52148-.52148v-3.74023Zm2.09961,1.78223c.50781,0,.79883-.27148,.79883-.6709v-.01367c0-.44727-.31055-.67773-.81934-.67773h-1.03613v1.3623h1.05664Z"
style="fill: #f0f0f0;"
id="path105" />
</g>
<g
id="g115">
<path
d="M13.68945,273.69287l1.65234-3.73291c.11523-.25781,.32617-.41309,.61035-.41309h.06152c.2832,0,.48633,.15527,.60156,.41309l1.6543,3.73291c.0332,.07471,.05371,.14209,.05371,.20996,0,.27783-.2168,.50146-.49512,.50146-.24414,0-.40625-.14258-.50098-.35938l-.31836-.74512h-2.08691l-.33203,.7793c-.08789,.20312-.26367,.3252-.48047,.3252-.27148,0-.48047-.2168-.48047-.48779,0-.07471,.02637-.14893,.06055-.22363Zm2.93359-1.31445l-.6582-1.56494-.65625,1.56494h1.31445Z"
style="fill: #f0f0f0;"
id="path109" />
<path
d="M19.26758,270.11572c0-.2915,.23047-.52197,.52246-.52197h.1084c.25,0,.40039,.12207,.54199,.30518l2.0127,2.64209v-2.4458c0-.28467,.23047-.51465,.51367-.51465,.28516,0,.51562,.22998,.51562,.51465v3.77393c0,.29102-.23047,.52148-.52148,.52148h-.03418c-.25098,0-.39941-.12207-.54199-.30469l-2.08594-2.7373v2.54053c0,.28467-.23047,.51514-.51562,.51514s-.51562-.23047-.51562-.51514v-3.77344Z"
style="fill: #f0f0f0;"
id="path111" />
<path
d="M24.87305,270.14258c0-.29102,.23047-.52148,.52148-.52148h1.32812c1.49023,0,2.52051,1.02295,2.52051,2.35742v.01367c0,1.33496-1.03027,2.37109-2.52051,2.37109h-1.32812c-.29102,0-.52148-.22998-.52148-.52148v-3.69922Zm1.84961,3.2793c.85352,0,1.42969-.57617,1.42969-1.41602v-.01367c0-.83984-.57617-1.42969-1.42969-1.42969h-.80664v2.85938h.80664Z"
style="fill: #f0f0f0;"
id="path113" />
</g>
<g
id="g125">
<path
d="M43.21484,270.11572c0-.2915,.23047-.52197,.52148-.52197h.1084c.25098,0,.39941,.12207,.54199,.30518l2.01172,2.64209v-2.4458c0-.28467,.23047-.51465,.51562-.51465,.28418,0,.51465,.22998,.51465,.51465v3.77393c0,.29102-.23047,.52148-.52246,.52148h-.0332c-.25,0-.40039-.12207-.54199-.30469l-2.08691-2.7373v2.54053c0,.28467-.23047,.51514-.51465,.51514s-.51465-.23047-.51465-.51514v-3.77344Z"
style="fill: #f0f0f0;"
id="path117" />
<path
d="M48.42773,273.69287l1.65332-3.73291c.11523-.25781,.3252-.41309,.61035-.41309h.06055c.28418,0,.48828,.15527,.60254,.41309l1.65332,3.73291c.0332,.07471,.05469,.14209,.05469,.20996,0,.27783-.2168,.50146-.49512,.50146-.24316,0-.40723-.14258-.50098-.35938l-.31836-.74512h-2.08691l-.33203,.7793c-.08887,.20312-.26465,.3252-.48145,.3252-.27051,0-.48047-.2168-.48047-.48779,0-.07471,.02734-.14893,.06055-.22363Zm2.93359-1.31445l-.65723-1.56494-.65723,1.56494h1.31445Z"
style="fill: #f0f0f0;"
id="path119" />
<path
d="M54.00781,270.11572c0-.2915,.22949-.52197,.52148-.52197h.10742c.25098,0,.40039,.12207,.54297,.30518l2.01172,2.64209v-2.4458c0-.28467,.23047-.51465,.51465-.51465s.51465,.22998,.51465,.51465v3.77393c0,.29102-.23047,.52148-.52148,.52148h-.0332c-.25098,0-.40039-.12207-.54297-.30469l-2.08594-2.7373v2.54053c0,.28467-.23047,.51514-.51562,.51514-.28418,0-.51367-.23047-.51367-.51514v-3.77344Z"
style="fill: #f0f0f0;"
id="path121" />
<path
d="M59.61328,270.14258c0-.29102,.22949-.52148,.52148-.52148h1.32715c1.49121,0,2.52051,1.02295,2.52051,2.35742v.01367c0,1.33496-1.0293,2.37109-2.52051,2.37109h-1.32715c-.29199,0-.52148-.22998-.52148-.52148v-3.69922Zm1.84863,3.2793c.85449,0,1.42969-.57617,1.42969-1.41602v-.01367c0-.83984-.5752-1.42969-1.42969-1.42969h-.80566v2.85938h.80566Z"
style="fill: #f0f0f0;"
id="path123" />
</g>
<g
id="g133">
<path
d="M14.0957,318.30469l1.28125-1.57178-1.20703-1.47021c-.08008-.10156-.15527-.2373-.15527-.38623,0-.2915,.2168-.51465,.51465-.51465,.22363,0,.35254,.08789,.48047,.25732l1.03711,1.38184,1.0293-1.35449c.14258-.18311,.27832-.28467,.50879-.28467s.47363,.18311,.47363,.48096c0,.14893-.05371,.271-.15527,.39941l-1.20605,1.47705,1.27344,1.56494c.08203,.10156,.15625,.2373,.15625,.38623,0,.2915-.2168,.51514-.51562,.51514-.22266,0-.35156-.08789-.48047-.25781l-1.11133-1.45605-1.09766,1.4292c-.1416,.18311-.27734,.28467-.50781,.28467s-.47461-.18311-.47461-.48145c0-.14844,.05469-.27051,.15625-.39941Z"
style="fill: #f0f0f0;"
id="path127" />
<path
d="M18.8418,316.78711v-.01367c0-1.34814,1.06445-2.45215,2.52734-2.45215s2.51367,1.09082,2.51367,2.43848v.01367c0,1.34863-1.06445,2.45264-2.52734,2.45264s-2.51367-1.09082-2.51367-2.43896Zm3.94922,0v-.01367c0-.81299-.5957-1.49023-1.43555-1.49023s-1.42285,.66406-1.42285,1.47656v.01367c0,.81299,.59668,1.49072,1.43652,1.49072s1.42188-.66406,1.42188-1.47705Z"
style="fill: #f0f0f0;"
id="path129" />
<path
d="M25.0293,314.92383c0-.29102,.23047-.52148,.52148-.52148h1.64648c.60254,0,1.07031,.16943,1.38184,.48096,.26465,.26416,.40723,.63721,.40723,1.08398v.01367c0,.74512-.37305,1.20557-.94922,1.44287l.72461,.88086c.10156,.12891,.16992,.2373,.16992,.39941,0,.2915-.24414,.48145-.49414,.48145-.23828,0-.39355-.11523-.51562-.271l-1.01562-1.2876h-.83398v1.03711c0,.29102-.23047,.52148-.52148,.52148s-.52148-.23047-.52148-.52148v-3.74023Zm2.09961,1.78223c.50781,0,.7998-.27148,.7998-.6709v-.01367c0-.44727-.31152-.67773-.81934-.67773h-1.03711v1.3623h1.05664Z"
style="fill: #f0f0f0;"
id="path131" />
</g>
<g
id="g143">
<path
d="M43.24609,318.06885l1.28125-1.57178-1.20703-1.47021c-.08008-.10156-.15527-.23682-.15527-.38623,0-.29102,.2168-.51465,.51465-.51465,.22363,0,.35254,.08789,.48047,.25732l1.03711,1.38232,1.0293-1.35547c.14258-.18262,.27832-.28418,.50879-.28418s.47363,.18262,.47363,.48096c0,.14893-.05371,.271-.15527,.3999l-1.20605,1.47656,1.27344,1.56543c.08203,.10156,.15625,.23682,.15625,.38574,0,.2915-.2168,.51514-.51562,.51514-.22266,0-.35156-.08838-.48047-.25732l-1.11133-1.45703-1.09766,1.42969c-.1416,.18262-.27734,.28467-.50781,.28467s-.47461-.18311-.47461-.48096c0-.14941,.05469-.27148,.15625-.3999Z"
style="fill: #f0f0f0;"
id="path135" />
<path
d="M48.33789,314.66113c0-.2915,.22949-.52148,.52148-.52148h.10742c.25098,0,.40039,.12158,.54297,.30469l2.01172,2.64209v-2.4458c0-.28418,.23047-.51465,.51465-.51465s.51465,.23047,.51465,.51465v3.77344c0,.2915-.23047,.52197-.52148,.52197h-.0332c-.25098,0-.40039-.12207-.54297-.30518l-2.08594-2.73682v2.54053c0,.28467-.23047,.51514-.51562,.51514-.28418,0-.51367-.23047-.51367-.51514v-3.77344Z"
style="fill: #f0f0f0;"
id="path137" />
<path
d="M53.69434,316.55127v-.01367c0-1.34814,1.06348-2.45264,2.52734-2.45264s2.5127,1.09082,2.5127,2.43945v.01318c0,1.34814-1.0625,2.45264-2.52637,2.45264s-2.51367-1.09082-2.51367-2.43896Zm3.9502,0v-.01367c0-.81299-.5957-1.49023-1.43652-1.49023s-1.42285,.66357-1.42285,1.47705v.01318c0,.81299,.5957,1.49072,1.43652,1.49072,.83984,0,1.42285-.66406,1.42285-1.47705Z"
style="fill: #f0f0f0;"
id="path139" />
<path
d="M59.87891,314.68848c0-.2915,.22949-.52197,.52148-.52197h1.64648c.60156,0,1.07031,.16943,1.38086,.48096,.26465,.26416,.40625,.63672,.40625,1.08398v.01367c0,.74512-.37207,1.20605-.94727,1.44287l.72461,.88086c.10156,.12842,.16992,.23682,.16992,.3999,0,.29102-.24414,.48096-.49512,.48096-.2373,0-.39355-.11523-.51465-.271l-1.0166-1.28711h-.83301v1.03613c0,.2915-.23047,.52197-.52148,.52197-.29199,0-.52148-.23047-.52148-.52197v-3.73926Zm2.09961,1.78125c.50781,0,.79883-.27051,.79883-.67041v-.01367c0-.44678-.31055-.67725-.81934-.67725h-1.03613v1.36133h1.05664Z"
style="fill: #f0f0f0;"
id="path141" />
</g>
<path
d="M19.26758,139.13867l1.76172-3.92969c.0957-.20996,.26465-.33887,.50195-.33887h.04102c.23633,0,.39941,.12891,.49414,.33887l1.76172,3.92969c.0332,.06055,.04688,.12158,.04688,.17578,0,.22363-.16895,.3999-.39258,.3999-.19727,0-.33203-.11523-.40625-.2915l-.38672-.8877h-2.30371l-.39941,.91504c-.06836,.16895-.20996,.26416-.38672,.26416-.2168,0-.38574-.16943-.38574-.38623,0-.06104,.02051-.12207,.05371-.18945Zm3.10352-1.3418l-.83301-1.91699-.83301,1.91699h1.66602Z"
style="fill: #1f1f1f;"
id="path145" />
<path
d="M51.71191,135.35791c0-.23682,.18262-.41992,.41992-.41992h1.70801c.54102,0,.96875,.14893,1.23926,.41992,.20996,.21045,.31836,.46729,.31836,.78613v.01318c0,.56934-.3252,.87402-.67676,1.05713,.55469,.18994,.94141,.5083,.94141,1.15186v.01367c0,.84668-.69824,1.30078-1.75488,1.30078h-1.77539c-.2373,0-.41992-.18311-.41992-.42041v-3.90234Zm1.95801,1.57861c.53516,0,.89453-.20996,.89453-.64355v-.01367c0-.37256-.29883-.60254-.83398-.60254h-1.19922v1.25977h1.13867Zm.24414,2.00537c.56836,0,.91406-.22363,.91406-.65039v-.01318c0-.3999-.31836-.63721-.97461-.63721h-1.32227v1.30078h1.38281Z"
style="fill: #1f1f1f;"
id="path147" />
<path
d="M35.23828,45.78516c0-.29199,.22461-.51709,.51758-.51709h2.10352c.66699,0,1.19336,.18359,1.52734,.51709,.25781,.25879,.3916,.57617,.3916,.96875v.0166c0,.70117-.40039,1.07666-.83496,1.30176,.68555,.23389,1.16016,.62598,1.16016,1.41895v.0166c0,1.04346-.85938,1.60254-2.16113,1.60254h-2.18652c-.29297,0-.51758-.2251-.51758-.51758v-4.80762Zm2.41211,1.94531c.65918,0,1.10156-.25879,1.10156-.79297v-.0166c0-.45898-.36719-.74316-1.02637-.74316h-1.47754v1.55273h1.40234Zm.30078,2.4707c.70117,0,1.12598-.27588,1.12598-.80176v-.0166c0-.49219-.3916-.78418-1.20215-.78418h-1.62695v1.60254h1.70312Z"
style="fill: #1f1f1f;"
id="path149" />
<g
id="g161">
<path
d="M17.82617,20.41602c0-.53809,.42578-.96338,.96387-.96338s.96387,.42529,.96387,.96338v6.11816h3.56543c.4873,0,.87598,.38818,.87598,.87598,0,.48828-.38867,.87598-.87598,.87598h-4.5293c-.53809,0-.96387-.42529-.96387-.96338v-6.90674Z"
style="fill: #1f1f1f;"
id="path151" />
<path
d="M24.81445,23.93164v-.0249c0-2.48975,1.96484-4.5293,4.66699-4.5293s4.6416,2.01416,4.6416,4.50439v.0249c0,2.48975-1.96387,4.52979-4.66602,4.52979-2.70312,0-4.64258-2.01465-4.64258-4.50488Zm7.29492,0v-.0249c0-1.50146-1.10156-2.75244-2.65234-2.75244-1.55273,0-2.62793,1.22607-2.62793,2.72754v.0249c0,1.50146,1.10059,2.75293,2.65234,2.75293s2.62793-1.22607,2.62793-2.72803Z"
style="fill: #1f1f1f;"
id="path153" />
<path
d="M35.48926,23.93164v-.0249c0-2.48975,1.93945-4.5293,4.59277-4.5293,1.32617,0,2.20117,.30029,2.99023,.85107,.1875,.1377,.40039,.40039,.40039,.77539,0,.52539-.42578,.95117-.95117,.95117-.27539,0-.45117-.1001-.58789-.2002-.52539-.37549-1.08887-.60059-1.91504-.60059-1.40137,0-2.51465,1.23828-2.51465,2.72754v.0249c0,1.60156,1.10156,2.77783,2.65234,2.77783,.70117,0,1.32617-.17529,1.81445-.52539v-1.25146h-1.30078c-.46289,0-.83887-.36279-.83887-.82568s.37598-.83838,.83887-.83838h2.20117c.53906,0,.96387,.42529,.96387,.96338v2.12695c0,.56348-.21289,.95117-.67578,1.22656-.71289,.4375-1.75098,.87598-3.06543,.87598-2.72754,0-4.60449-1.91455-4.60449-4.50488Z"
style="fill: #1f1f1f;"
id="path155" />
<path
d="M45.89258,20.41602c0-.53809,.4248-.96338,.96289-.96338s.96289,.42529,.96289,.96338v6.98145c0,.53809-.4248,.96387-.96289,.96387s-.96289-.42578-.96289-.96387v-6.98145Z"
style="fill: #1f1f1f;"
id="path157" />
<path
d="M49.64453,23.93164v-.0249c0-2.48975,1.87695-4.5293,4.56641-4.5293,1.31445,0,2.20215,.3501,2.92773,.88818,.20117,.15039,.375,.42578,.375,.76367,0,.52539-.4248,.93848-.9502,.93848-.2627,0-.43848-.10059-.5752-.18799-.53906-.40039-1.10156-.62549-1.78906-.62549-1.47656,0-2.54102,1.22607-2.54102,2.72754v.0249c0,1.50146,1.03906,2.75293,2.54102,2.75293,.8125,0,1.35059-.25049,1.90137-.68799,.14941-.12549,.35059-.21289,.5752-.21289,.48828,0,.90039,.40039,.90039,.88818,0,.30029-.14941,.53809-.32422,.68799-.78906,.68848-1.71484,1.10156-3.11523,1.10156-2.57812,0-4.49219-1.98975-4.49219-4.50488Z"
style="fill: #1f1f1f;"
id="path159" />
</g>
</g>
<g
id="uuid-29896d28-8dcb-4052-b9f9-99f535b2ea20"
data-name="components"
style="display:none"
inkscape:groupmode="layer">
<circle
id="uuid-e30b78dd-1537-4725-8c0a-55dc9028f9d3"
data-name="NotA#TinyLight"
cx="32.5597"
cy="188.39954"
r="1.5"
style="fill:#ff00ff" />
<circle
id="uuid-682c2d89-f220-481f-a3ad-391a298f4ec3"
data-name="NotB#TinyLight"
cx="64.559898"
cy="188.39951"
r="1.5"
style="fill:#ff00ff" />
<circle
id="uuid-f9ccdd06-0ca8-4843-be90-8ad3095bd3e7"
data-name="Or#TinyLight"
cx="32.5597"
cy="233.28703"
r="1.5"
style="fill:#ff00ff" />
<circle
id="uuid-606f019a-b435-4538-8b42-0c7c8ed7170f"
data-name="Nor#TinyLight"
cx="64.559898"
cy="233.287"
r="1.5"
style="fill:#ff00ff" />
<circle
id="uuid-24a7704d-cf3e-4bb5-8b29-6926a7ef348e"
data-name="And#TinyLight"
cx="32.5597"
cy="278.24713"
r="1.5"
style="fill:#ff00ff" />
<circle
id="uuid-92699a5b-b6c0-43ab-9cbd-400912c220fc"
data-name="Nand#TinyLight"
cx="64.559898"
cy="278.2471"
r="1.5"
style="fill:#ff00ff" />
<circle
id="uuid-97a7237a-037f-4961-bedb-f394b4187c8e"
data-name="Xor#TinyLight"
cx="32.559719"
cy="323.01172"
r="1.5"
style="fill:#ff00ff" />
<circle
id="uuid-bd827f8b-078c-462b-a7a6-6f98f4ed0e91"
data-name="Xnor#TinyLight"
cx="64.559853"
cy="323.01172"
r="1.5"
style="fill:#ff00ff" />
<circle
id="uuid-169fb04b-cbf8-46e5-adc0-123b6989c1d4"
data-name="B#PJ301MPort"
cx="21.551001"
cy="154.45821"
r="5"
style="fill:#00ff00" />
<circle
id="uuid-90c2aa7f-9d8a-4085-a8c2-9fe4ceae9555"
data-name="B#PJ301MPort"
cx="53.551128"
cy="154.45821"
r="5"
style="fill:#00ff00" />
<circle
id="uuid-60028fec-37cf-4236-9b3c-bed26865130f"
data-name="NotA#PJ301MPort"
cx="21.545441"
cy="199.39957"
r="5"
style="fill:#0000ff" />
<circle
id="uuid-6382ba04-654b-46a5-b604-1e1f998ada39"
data-name="NotB#PJ301MPort"
cx="53.54557"
cy="199.39957"
r="5"
style="fill:#0000ff" />
<circle
id="uuid-4ca3619c-cab5-4c68-be44-6ebae129fc84"
data-name="Or#PJ301MPort"
cx="21.545441"
cy="244.28706"
r="5"
style="fill:#0000ff" />
<circle
id="uuid-fae16444-0dc6-496c-a42c-087f86c62bef"
data-name="Nor#PJ301MPort"
cx="53.54557"
cy="244.28706"
r="5"
style="fill:#0000ff" />
<circle
id="uuid-6c5355e4-2d05-47a4-a68e-f9cb54ee2b56"
data-name="And#PJ301MPort"
cx="21.545441"
cy="289.2471"
r="5"
style="fill:#0000ff" />
<circle
id="uuid-fd4c1602-9c00-4fe5-8c84-793893ef9154"
data-name="Nand#PJ301MPort"
cx="53.54557"
cy="289.2471"
r="5"
style="fill:#0000ff" />
<circle
id="uuid-19394ad2-8002-458e-b137-d089fcb0f699"
data-name="Xor#PJ301MPort"
cx="21.545441"
cy="334"
r="5"
style="fill:#0000ff" />
<circle
id="uuid-9e85b74c-a409-4487-9aff-a39d2dc87541"
data-name="Xnor#PJ301MPort"
cx="53.54557"
cy="334"
r="5"
style="fill:#0000ff" />
<circle
id="uuid-1153fb6c-7f5f-4bff-ad0b-3afb1f4fc8e1"
data-name="Bpush#LargeLEDLightBezel"
cx="37.5"
cy="78.999901"
r="5"
style="fill:#ff0000" />
</g>
</svg>

+ 131
- 0
src/Logic.cpp View File

@@ -0,0 +1,131 @@
#include "plugin.hpp"


struct Logic : Module {
enum ParamId {
B_PARAM,
PARAMS_LEN
};
enum InputId {
A_INPUT,
B_INPUT,
INPUTS_LEN
};
enum OutputId {
NOTA_OUTPUT,
NOTB_OUTPUT,
OR_OUTPUT,
NOR_OUTPUT,
AND_OUTPUT,
NAND_OUTPUT,
XOR_OUTPUT,
XNOR_OUTPUT,
OUTPUTS_LEN
};
enum LightId {
B_BUTTON_LIGHT,
ENUMS(NOTA_LIGHT, 2),
ENUMS(NOTB_LIGHT, 2),
ENUMS(OR_LIGHT, 2),
ENUMS(NOR_LIGHT, 2),
ENUMS(AND_LIGHT, 2),
ENUMS(NAND_LIGHT, 2),
ENUMS(XOR_LIGHT, 2),
ENUMS(XNOR_LIGHT, 2),
LIGHTS_LEN
};

Logic() {
config(PARAMS_LEN, INPUTS_LEN, OUTPUTS_LEN, LIGHTS_LEN);
configButton(B_PARAM, "B");
configInput(A_INPUT, "A");
configInput(B_INPUT, "B");
configOutput(NOTA_OUTPUT, "NOT A");
configOutput(NOTB_OUTPUT, "NOT B");
configOutput(OR_OUTPUT, "OR");
configOutput(NOR_OUTPUT, "NOR");
configOutput(AND_OUTPUT, "AND");
configOutput(NAND_OUTPUT, "NAND");
configOutput(XOR_OUTPUT, "XOR");
configOutput(XNOR_OUTPUT, "XNOR");
}

void process(const ProcessArgs& args) override {
int channels = std::max(inputs[A_INPUT].getChannels(), inputs[B_INPUT].getChannels());

bool bPush = params[B_PARAM].getValue() > 0.f;
bool anyState[8] = {};

for (int c = 0; c < channels; c++) {
bool a = inputs[A_INPUT].getPolyVoltage(c) > 1.f;
bool b = bPush || inputs[B_INPUT].getPolyVoltage(c) > 1.f;

bool states[8] = {
!a, // NOTA
!b, // NOTB
a || b, // OR
!(a || b), // NOR
a && b, // AND
!(a && b), // NAND
a != b, // XOR
a == b, // XNOR
};

for (int i = 0; i < 8; i++) {
outputs[NOTA_OUTPUT + i].setVoltage(states[i] ? 10.f : 0.f);
if (states[i])
anyState[i] = true;
}
}

for (int i = 0; i < 8; i++) {
outputs[NOTA_OUTPUT + i].setChannels(channels);
}

// Set lights
lights[B_BUTTON_LIGHT].setBrightness(bPush);
for (int i = 0; i < 8; i++) {
lights[NOTA_LIGHT + 2 * i + 0].setBrightness(anyState[i] && channels == 1);
lights[NOTA_LIGHT + 2 * i + 1].setBrightness(anyState[i] && channels > 1);
}
}
};


struct LogicWidget : ModuleWidget {
LogicWidget(Logic* module) {
setModule(module);
setPanel(createPanel(asset::plugin(pluginInstance, "res/Logic.svg")));

addChild(createWidget<ScrewSilver>(Vec(RACK_GRID_WIDTH, 0)));
addChild(createWidget<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, 0)));
addChild(createWidget<ScrewSilver>(Vec(RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH)));
addChild(createWidget<ScrewSilver>(Vec(box.size.x - 2 * RACK_GRID_WIDTH, RACK_GRID_HEIGHT - RACK_GRID_WIDTH)));

addParam(createLightParamCentered<VCVLightBezel<>>(mm2px(Vec(12.7, 26.755)), module, Logic::B_PARAM, Logic::B_BUTTON_LIGHT));

addInput(createInputCentered<PJ301MPort>(mm2px(Vec(7.299, 52.31)), module, Logic::A_INPUT));
addInput(createInputCentered<PJ301MPort>(mm2px(Vec(18.136, 52.31)), module, Logic::B_INPUT));

addOutput(createOutputCentered<PJ301MPort>(mm2px(Vec(7.297, 67.53)), module, Logic::NOTA_OUTPUT));
addOutput(createOutputCentered<PJ301MPort>(mm2px(Vec(18.134, 67.53)), module, Logic::NOTB_OUTPUT));
addOutput(createOutputCentered<PJ301MPort>(mm2px(Vec(7.297, 82.732)), module, Logic::OR_OUTPUT));
addOutput(createOutputCentered<PJ301MPort>(mm2px(Vec(18.134, 82.732)), module, Logic::NOR_OUTPUT));
addOutput(createOutputCentered<PJ301MPort>(mm2px(Vec(7.297, 97.958)), module, Logic::AND_OUTPUT));
addOutput(createOutputCentered<PJ301MPort>(mm2px(Vec(18.134, 97.958)), module, Logic::NAND_OUTPUT));
addOutput(createOutputCentered<PJ301MPort>(mm2px(Vec(7.297, 113.115)), module, Logic::XOR_OUTPUT));
addOutput(createOutputCentered<PJ301MPort>(mm2px(Vec(18.134, 113.115)), module, Logic::XNOR_OUTPUT));

addChild(createLightCentered<TinyLight<YellowBlueLight<>>>(mm2px(Vec(11.027, 63.805)), module, Logic::NOTA_LIGHT));
addChild(createLightCentered<TinyLight<YellowBlueLight<>>>(mm2px(Vec(21.864, 63.805)), module, Logic::NOTB_LIGHT));
addChild(createLightCentered<TinyLight<YellowBlueLight<>>>(mm2px(Vec(11.027, 79.007)), module, Logic::OR_LIGHT));
addChild(createLightCentered<TinyLight<YellowBlueLight<>>>(mm2px(Vec(21.864, 79.007)), module, Logic::NOR_LIGHT));
addChild(createLightCentered<TinyLight<YellowBlueLight<>>>(mm2px(Vec(11.027, 94.233)), module, Logic::AND_LIGHT));
addChild(createLightCentered<TinyLight<YellowBlueLight<>>>(mm2px(Vec(21.864, 94.233)), module, Logic::NAND_LIGHT));
addChild(createLightCentered<TinyLight<YellowBlueLight<>>>(mm2px(Vec(11.027, 109.393)), module, Logic::XOR_LIGHT));
addChild(createLightCentered<TinyLight<YellowBlueLight<>>>(mm2px(Vec(21.864, 109.393)), module, Logic::XNOR_LIGHT));
}
};


Model* modelLogic = createModel<Logic, LogicWidget>("Logic");

+ 1
- 0
src/plugin.cpp View File

@@ -36,4 +36,5 @@ void init(Plugin* p) {
p->addModel(modelRandom);
p->addModel(modelCVMix);
p->addModel(modelFade);
p->addModel(modelLogic);
}

+ 10
- 0
src/plugin.hpp View File

@@ -36,6 +36,7 @@ extern Model* modelNoise;
extern Model* modelRandom;
extern Model* modelCVMix;
extern Model* modelFade;
extern Model* modelLogic;


struct DigitalDisplay : Widget {
@@ -102,3 +103,12 @@ struct YellowRedLight : TBase {
this->addBaseColor(SCHEME_RED);
}
};


template <typename TBase = GrayModuleLightWidget>
struct YellowBlueLight : TBase {
YellowBlueLight() {
this->addBaseColor(SCHEME_YELLOW);
this->addBaseColor(SCHEME_BLUE);
}
};

Loading…
Cancel
Save