<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<ndbx formatVersion="21" type="file" uuid="b9000219-08c3-448f-b4e8-5d5da3847b96">
    <property name="canvasHeight" value="1000"/>
    <property name="canvasWidth" value="1000"/>
    <property name="canvasX" value="0"/>
    <property name="canvasY" value="0"/>
    <node name="root" prototype="core.network" renderedChild="item_counts">
        <node name="import_csv1" position="2.00,-5.00" prototype="data.import_csv">
            <port name="file" type="string" value="fruit.csv"/>
        </node>
        <node name="item_counts" position="2.00,-2.00" prototype="core.network" renderedChild="reverse1">
            <node name="combine1" position="-6.00,3.00" prototype="list.combine"/>
            <node name="distinct1" position="4.00,-4.00" prototype="list.distinct"/>
            <node name="getCounts" prototype="core.network" renderedChild="switch1">
                <node name="add1" position="3.00,7.00" prototype="math.add">
                    <port name="value2" type="float" value="1.0"/>
                </node>
                <node name="combine1" position="5.00,10.00" prototype="list.combine"/>
                <node name="compare1" position="0.00,7.00" prototype="math.compare">
                    <port name="comparator" type="string" value="&gt;"/>
                </node>
                <node name="count1" position="3.00,-4.00" prototype="list.count"/>
                <node name="count2" position="0.00,6.00" prototype="list.count"/>
                <node name="first1" position="3.00,6.00" prototype="list.first"/>
                <node name="inflections" position="6.00,0.00" prototype="core.network" renderedChild="switch1">
                    <node name="equals1" position="9.00,9.00" prototype="string.equals">
                        <port name="case_sensitive" type="boolean" value="true"/>
                    </node>
                    <node name="integer1" position="3.00,7.00" prototype="math.integer"/>
                    <node name="string4" position="6.00,7.00" prototype="string.string"/>
                    <node name="string5" position="9.00,7.00" prototype="string.string"/>
                    <node name="switch1" position="7.00,11.00" prototype="list.switch"/>
                    <port childReference="integer1.value" description="" label="" name="value" range="value" type="int" value="0" widget="int"/>
                    <port childReference="string4.value" description="" label="" name="list0" range="value" type="string" value="" widget="string"/>
                    <port childReference="string5.value" description="" label="" name="list1" range="value" type="string" value="" widget="string"/>
                    <conn input="switch1.index" output="equals1"/>
                    <conn input="switch1.input1" output="integer1"/>
                    <conn input="equals1.string" output="string4"/>
                    <conn input="equals1.equals" output="string5"/>
                </node>
                <node name="integer1" position="5.00,11.00" prototype="math.integer"/>
                <node name="lookup1" position="6.00,-7.00" prototype="data.lookup"/>
                <node name="range1" position="3.00,-2.00" prototype="math.range">
                    <port name="end" type="float" value="2000.0"/>
                </node>
                <node name="rest1" position="6.00,7.00" prototype="list.rest"/>
                <node name="shift1" position="7.00,-4.00" prototype="list.shift"/>
                <node name="shift2" position="7.00,2.00" prototype="list.shift"/>
                <node name="shift3" position="6.00,6.00" prototype="list.shift">
                    <port name="amount" type="int" value="-1"/>
                </node>
                <node name="subtract1" position="6.00,5.00" prototype="math.subtract"/>
                <node name="switch1" position="-5.00,15.00" prototype="list.switch"/>
                <port childReference="lookup1.list" description="The input value." label="" name="list" range="list" type="list" widget="none"/>
                <port childReference="lookup1.key" description="The key to lookup." label="" name="key" range="value" type="string" value="x" widget="string"/>
                <conn input="inflections.value" output="range1"/>
                <conn input="inflections.list1" output="shift1"/>
                <conn input="shift2.list" output="inflections"/>
                <conn input="subtract1.value1" output="shift2"/>
                <conn input="subtract1.value2" output="inflections"/>
                <conn input="range1.end" output="count1"/>
                <conn input="shift3.list" output="subtract1"/>
                <conn input="rest1.list" output="shift3"/>
                <conn input="first1.list" output="inflections"/>
                <conn input="add1.value1" output="first1"/>
                <conn input="combine1.list1" output="add1"/>
                <conn input="combine1.list2" output="rest1"/>
                <conn input="integer1.value" output="combine1"/>
                <conn input="count1.list" output="lookup1"/>
                <conn input="inflections.list0" output="lookup1"/>
                <conn input="shift1.list" output="lookup1"/>
                <conn input="count2.list" output="inflections"/>
                <conn input="compare1.value1" output="count2"/>
                <conn input="switch1.index" output="compare1"/>
                <conn input="switch1.input2" output="integer1"/>
                <conn input="switch1.input1" output="count1"/>
            </node>
            <node name="lookup1" position="4.00,0.00" prototype="data.lookup">
                <port name="key" type="string" value="Fruit"/>
            </node>
            <node name="make_table" position="-1.00,6.00" prototype="core.network" renderedChild="zip_map1">
                <node name="combine2" position="-4.00,2.00" prototype="list.combine"/>
                <node name="zip_map1" position="-4.00,6.00" prototype="list.zip_map"/>
                <port childReference="zip_map1.keys" description="A list of keys." label="" name="keys" range="list" type="string" value="" widget="string"/>
                <port childReference="combine2.list1" description="The first list." label="" name="list1" range="value" type="list" widget="none"/>
                <port childReference="combine2.list2" description="The second list." label="" name="list2" range="value" type="list" widget="none"/>
                <conn input="zip_map1.values" output="combine2"/>
            </node>
            <node name="null1" position="-1.00,-9.00" prototype="corevector.null"/>
            <node name="null2" position="3.00,-9.00" prototype="corevector.null"/>
            <node name="reverse1" position="-2.00,9.00" prototype="list.reverse"/>
            <node name="sort1" position="-2.00,8.00" prototype="list.sort"/>
            <node name="sort2" position="4.00,-6.00" prototype="list.sort"/>
            <node name="string1" position="-3.00,0.00" prototype="string.string">
                <port name="value" type="string" value="Count"/>
            </node>
            <port childReference="null2.shape" description="The input shape." label="" name="data" range="list" type="geometry" widget="none"/>
            <port childReference="null1.shape" description="The input shape." label="" name="key" range="value" type="geometry" widget="none"/>
            <conn input="lookup1.list" output="distinct1"/>
            <conn input="distinct1.key" output="null1"/>
            <conn input="lookup1.key" output="null1"/>
            <conn input="combine1.list1" output="null1"/>
            <conn input="combine1.list2" output="string1"/>
            <conn input="make_table.keys" output="combine1"/>
            <conn input="sort1.list" output="make_table"/>
            <conn input="sort1.key" output="string1"/>
            <conn input="reverse1.list" output="sort1"/>
            <conn input="make_table.list1" output="lookup1"/>
            <conn input="getCounts.key" output="null1"/>
            <conn input="make_table.list2" output="getCounts"/>
            <conn input="sort2.list" output="null2"/>
            <conn input="sort2.key" output="null1"/>
            <conn input="distinct1.list" output="sort2"/>
            <conn input="getCounts.list" output="sort2"/>
        </node>
        <node name="string1" position="5.00,-5.00" prototype="string.string">
            <port name="value" type="string" value="Fruit"/>
        </node>
        <conn input="item_counts.data" output="import_csv1"/>
        <conn input="item_counts.key" output="string1"/>
    </node>
</ndbx>
