<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<ndbx formatVersion="21" type="file" uuid="ce5055fd-562b-49a2-ad77-23d441cb902c">
    <property name="canvasHeight" value="2280"/>
    <property name="canvasWidth" value="3040"/>
    <property name="canvasX" value="0"/>
    <property name="canvasY" value="0"/>
    <node name="root" prototype="core.network" renderedChild="scale1">
        <node name="add_column" position="5.00,15.00" prototype="core.network" renderedChild="zip_map1">
            <node name="combine1" position="9.00,6.00" prototype="list.combine"/>
            <node name="combine2" position="20.00,9.00" prototype="list.combine"/>
            <node name="keys2" position="12.00,3.00" prototype="list.keys"/>
            <node name="lookup2" position="16.00,7.00" prototype="data.lookup">
                <port name="key" type="string" value="STATE_OR_REGION"/>
            </node>
            <node name="null1" position="16.00,0.00" prototype="corevector.null"/>
            <node name="zip_map1" outputRange="list" position="12.00,12.00" prototype="list.zip_map"/>
            <port childReference="null1.shape" description="The input shape." label="" name="csv_file" range="value" type="geometry" widget="none"/>
            <port childReference="combine1.list2" description="The second list." label="" name="New Key" range="list" type="list" widget="none"/>
            <port childReference="combine2.list2" description="The second list." label="" name="New Value" range="value" type="list" widget="none"/>
            <conn input="keys2.maps" output="null1"/>
            <conn input="lookup2.list" output="null1"/>
            <conn input="lookup2.key" output="keys2"/>
            <conn input="combine1.list1" output="keys2"/>
            <conn input="combine2.list1" output="lookup2"/>
            <conn input="zip_map1.values" output="combine2"/>
            <conn input="zip_map1.keys" output="combine1"/>
        </node>
        <node name="combine1" position="-5.00,28.00" prototype="list.combine"/>
        <node comment="mode: 0 = A not B, 1 = B not A, 2 = both (default, returns list A)" name="diff" position="5.00,7.00" prototype="core.network" renderedChild="switch1">
            <node name="combine2" position="-6.00,10.00" prototype="list.combine"/>
            <node name="compare1" position="-13.00,21.00" prototype="math.compare">
                <port name="value2" type="float" value="1.0"/>
                <port name="comparator" type="string" value="=="/>
            </node>
            <node name="compare2" position="-10.00,21.00" prototype="math.compare">
                <port name="value2" type="float" value="2.0"/>
                <port name="comparator" type="string" value="=="/>
            </node>
            <node name="compare3" position="-7.00,21.00" prototype="math.compare">
                <port name="value2" type="float" value="3.0"/>
                <port name="comparator" type="string" value="=="/>
            </node>
            <node comment="A not B" name="cull1" position="-1.00,27.00" prototype="list.cull"/>
            <node comment="B not A" name="cull2" position="-4.00,27.00" prototype="list.cull"/>
            <node comment="Both" name="cull3" position="2.00,27.00" prototype="list.cull"/>
            <node comment="1 = in B not A, 2 = in A not B, 3 = in both" name="diff_count" position="-10.00,18.00" prototype="core.network" renderedChild="count1">
                <node name="count1" position="-20.00,-16.00" prototype="list.count"/>
                <node name="filter_data1" position="-20.00,-17.00" prototype="data.filter_data">
                    <port name="key" type="string" value="USER ID"/>
                    <port name="value" type="string" value="Zu, Xuan"/>
                </node>
                <port childReference="filter_data1.data" description="" label="" name="data" range="list" type="data" widget="none"/>
                <port childReference="filter_data1.value" description="" label="" name="value" range="value" type="string" value="Zu, Xuan" widget="string"/>
                <port childReference="filter_data1.key" description="" label="" name="key" range="value" type="string" value="USER ID" widget="string"/>
                <conn input="count1.list" output="filter_data1"/>
            </node>
            <node name="distinct1" position="-1.00,13.00" prototype="list.distinct">
                <port name="key" type="string" value="Name"/>
            </node>
            <node name="lookup1" position="-6.00,16.00" prototype="data.lookup">
                <port name="key" type="string" value=""/>
            </node>
            <node name="null1" position="-10.00,8.00" prototype="corevector.null"/>
            <node name="number1" position="6.00,27.00" prototype="math.number">
                <port name="value" type="float" value="2.0"/>
            </node>
            <node name="string1" position="0.00,9.00" prototype="string.string"/>
            <node name="switch1" position="-1.00,36.00" prototype="list.switch"/>
            <port childReference="null1.shape" description="The input shape." label="" name="listA" range="list" type="geometry" widget="none"/>
            <port childReference="combine2.list3" description="The third list." label="" name="listB" range="list" type="list" widget="none"/>
            <port childReference="string1.value" description="" label="" name="key" range="value" type="string" value="" widget="string"/>
            <port childReference="number1.value" description="" label="" name="mode" range="value" type="float" value="2.0" widget="float"/>
            <conn input="distinct1.list" output="combine2"/>
            <conn input="lookup1.list" output="distinct1"/>
            <conn input="diff_count.data" output="combine2"/>
            <conn input="diff_count.value" output="lookup1"/>
            <conn input="compare1.value1" output="diff_count"/>
            <conn input="cull1.list" output="distinct1"/>
            <conn input="cull1.booleans" output="compare1"/>
            <conn input="cull2.list" output="distinct1"/>
            <conn input="compare2.value1" output="diff_count"/>
            <conn input="cull2.booleans" output="compare2"/>
            <conn input="combine2.list1" output="null1"/>
            <conn input="combine2.list2" output="null1"/>
            <conn input="compare3.value1" output="diff_count"/>
            <conn input="cull3.list" output="distinct1"/>
            <conn input="cull3.booleans" output="compare3"/>
            <conn input="switch1.input1" output="cull2"/>
            <conn input="switch1.input2" output="cull1"/>
            <conn input="switch1.input3" output="cull3"/>
            <conn input="switch1.index" output="number1"/>
            <conn input="lookup1.key" output="string1"/>
            <conn input="distinct1.key" output="string1"/>
            <conn input="diff_count.key" output="string1"/>
        </node>
        <node comment="mode: 0 = A not B, 1 = B not A, 2 = both (default, returns list A)" name="diff1" position="-12.00,9.00" prototype="core.network" renderedChild="switch1">
            <node name="combine2" position="-6.00,10.00" prototype="list.combine"/>
            <node name="compare1" position="-13.00,21.00" prototype="math.compare">
                <port name="value2" type="float" value="1.0"/>
                <port name="comparator" type="string" value="=="/>
            </node>
            <node name="compare2" position="-10.00,21.00" prototype="math.compare">
                <port name="value2" type="float" value="2.0"/>
                <port name="comparator" type="string" value="=="/>
            </node>
            <node name="compare3" position="-7.00,21.00" prototype="math.compare">
                <port name="value2" type="float" value="3.0"/>
                <port name="comparator" type="string" value="=="/>
            </node>
            <node comment="A not B" name="cull1" position="-1.00,27.00" prototype="list.cull"/>
            <node comment="B not A" name="cull2" position="-4.00,27.00" prototype="list.cull"/>
            <node comment="Both" name="cull3" position="2.00,27.00" prototype="list.cull"/>
            <node comment="1 = in B not A, 2 = in A not B, 3 = in both" name="diff_count" position="-10.00,18.00" prototype="core.network" renderedChild="count1">
                <node name="count1" position="-20.00,-16.00" prototype="list.count"/>
                <node name="filter_data1" position="-20.00,-17.00" prototype="data.filter_data">
                    <port name="key" type="string" value="USER ID"/>
                    <port name="value" type="string" value="Zu, Xuan"/>
                </node>
                <port childReference="filter_data1.data" description="" label="" name="data" range="list" type="data" widget="none"/>
                <port childReference="filter_data1.value" description="" label="" name="value" range="value" type="string" value="Zu, Xuan" widget="string"/>
                <port childReference="filter_data1.key" description="" label="" name="key" range="value" type="string" value="USER ID" widget="string"/>
                <conn input="count1.list" output="filter_data1"/>
            </node>
            <node name="distinct1" position="-1.00,13.00" prototype="list.distinct">
                <port name="key" type="string" value="Name"/>
            </node>
            <node name="lookup1" position="-6.00,16.00" prototype="data.lookup">
                <port name="key" type="string" value=""/>
            </node>
            <node name="null1" position="-10.00,8.00" prototype="corevector.null"/>
            <node name="number1" position="6.00,27.00" prototype="math.number">
                <port name="value" type="float" value="2.0"/>
            </node>
            <node name="string1" position="0.00,9.00" prototype="string.string"/>
            <node name="switch1" position="-1.00,36.00" prototype="list.switch"/>
            <port childReference="null1.shape" description="The input shape." label="" name="listA" range="list" type="geometry" widget="none"/>
            <port childReference="combine2.list3" description="The third list." label="" name="listB" range="list" type="list" widget="none"/>
            <port childReference="string1.value" description="" label="" name="key" range="value" type="string" value="" widget="string"/>
            <port childReference="number1.value" description="" label="" name="mode" range="value" type="float" value="2.0" widget="float"/>
            <conn input="distinct1.list" output="combine2"/>
            <conn input="lookup1.list" output="distinct1"/>
            <conn input="diff_count.data" output="combine2"/>
            <conn input="diff_count.value" output="lookup1"/>
            <conn input="compare1.value1" output="diff_count"/>
            <conn input="cull1.list" output="distinct1"/>
            <conn input="cull1.booleans" output="compare1"/>
            <conn input="cull2.list" output="distinct1"/>
            <conn input="compare2.value1" output="diff_count"/>
            <conn input="cull2.booleans" output="compare2"/>
            <conn input="combine2.list1" output="null1"/>
            <conn input="combine2.list2" output="null1"/>
            <conn input="compare3.value1" output="diff_count"/>
            <conn input="cull3.list" output="distinct1"/>
            <conn input="cull3.booleans" output="compare3"/>
            <conn input="switch1.input1" output="cull2"/>
            <conn input="switch1.input2" output="cull1"/>
            <conn input="switch1.input3" output="cull3"/>
            <conn input="switch1.index" output="number1"/>
            <conn input="lookup1.key" output="string1"/>
            <conn input="distinct1.key" output="string1"/>
            <conn input="diff_count.key" output="string1"/>
        </node>
        <node comment="mode: 0 = A not B, 1 = B not A, 2 = both (default, returns list A)" name="diff2" position="-4.00,9.00" prototype="core.network" renderedChild="switch1">
            <node name="combine2" position="-6.00,10.00" prototype="list.combine"/>
            <node name="compare1" position="-13.00,21.00" prototype="math.compare">
                <port name="value2" type="float" value="1.0"/>
                <port name="comparator" type="string" value="=="/>
            </node>
            <node name="compare2" position="-10.00,21.00" prototype="math.compare">
                <port name="value2" type="float" value="2.0"/>
                <port name="comparator" type="string" value="=="/>
            </node>
            <node name="compare3" position="-7.00,21.00" prototype="math.compare">
                <port name="value2" type="float" value="3.0"/>
                <port name="comparator" type="string" value="=="/>
            </node>
            <node comment="A not B" name="cull1" position="-1.00,27.00" prototype="list.cull"/>
            <node comment="B not A" name="cull2" position="-4.00,27.00" prototype="list.cull"/>
            <node comment="Both" name="cull3" position="2.00,27.00" prototype="list.cull"/>
            <node comment="1 = in B not A, 2 = in A not B, 3 = in both" name="diff_count" position="-10.00,18.00" prototype="core.network" renderedChild="count1">
                <node name="count1" position="-20.00,-16.00" prototype="list.count"/>
                <node name="filter_data1" position="-20.00,-17.00" prototype="data.filter_data">
                    <port name="key" type="string" value="USER ID"/>
                    <port name="value" type="string" value="Zu, Xuan"/>
                </node>
                <port childReference="filter_data1.data" description="" label="" name="data" range="list" type="data" widget="none"/>
                <port childReference="filter_data1.value" description="" label="" name="value" range="value" type="string" value="Zu, Xuan" widget="string"/>
                <port childReference="filter_data1.key" description="" label="" name="key" range="value" type="string" value="USER ID" widget="string"/>
                <conn input="count1.list" output="filter_data1"/>
            </node>
            <node name="distinct1" position="-1.00,13.00" prototype="list.distinct">
                <port name="key" type="string" value="Name"/>
            </node>
            <node name="lookup1" position="-6.00,16.00" prototype="data.lookup">
                <port name="key" type="string" value=""/>
            </node>
            <node name="null1" position="-10.00,8.00" prototype="corevector.null"/>
            <node name="number1" position="6.00,27.00" prototype="math.number">
                <port name="value" type="float" value="2.0"/>
            </node>
            <node name="string1" position="0.00,9.00" prototype="string.string"/>
            <node name="switch1" position="-1.00,36.00" prototype="list.switch"/>
            <port childReference="null1.shape" description="The input shape." label="" name="listA" range="list" type="geometry" widget="none"/>
            <port childReference="combine2.list3" description="The third list." label="" name="listB" range="list" type="list" widget="none"/>
            <port childReference="string1.value" description="" label="" name="key" range="value" type="string" value="" widget="string"/>
            <port childReference="number1.value" description="" label="" name="mode" range="value" type="float" value="2.0" widget="float"/>
            <conn input="distinct1.list" output="combine2"/>
            <conn input="lookup1.list" output="distinct1"/>
            <conn input="diff_count.data" output="combine2"/>
            <conn input="diff_count.value" output="lookup1"/>
            <conn input="compare1.value1" output="diff_count"/>
            <conn input="cull1.list" output="distinct1"/>
            <conn input="cull1.booleans" output="compare1"/>
            <conn input="cull2.list" output="distinct1"/>
            <conn input="compare2.value1" output="diff_count"/>
            <conn input="cull2.booleans" output="compare2"/>
            <conn input="combine2.list1" output="null1"/>
            <conn input="combine2.list2" output="null1"/>
            <conn input="compare3.value1" output="diff_count"/>
            <conn input="cull3.list" output="distinct1"/>
            <conn input="cull3.booleans" output="compare3"/>
            <conn input="switch1.input1" output="cull2"/>
            <conn input="switch1.input2" output="cull1"/>
            <conn input="switch1.input3" output="cull3"/>
            <conn input="switch1.index" output="number1"/>
            <conn input="lookup1.key" output="string1"/>
            <conn input="distinct1.key" output="string1"/>
            <conn input="diff_count.key" output="string1"/>
        </node>
        <node name="film_list" position="-12.00,14.00" prototype="core.network" renderedChild="stack1">
            <node name="colorize1" position="-16.00,17.00" prototype="corevector.colorize">
                <port name="fill" type="color" value="#141414ff"/>
            </node>
            <node name="colorize2" position="-29.00,12.00" prototype="corevector.colorize">
                <port name="fill" type="color" value="#454545ff"/>
            </node>
            <node name="combine1" position="-20.00,20.00" prototype="list.combine"/>
            <node name="concatenate1" position="-17.00,12.00" prototype="string.concatenate">
                <port name="string2" type="string" value=", "/>
            </node>
            <node name="count1" position="-12.00,10.00" prototype="list.count"/>
            <node name="grid2" position="-11.00,12.00" prototype="corevector.grid">
                <port name="columns" type="int" value="1"/>
                <port name="width" type="float" value="0.0"/>
                <port name="height" type="float" value="790.0"/>
            </node>
            <node name="group1" position="-16.00,18.00" prototype="corevector.group"/>
            <node name="group2" position="-29.00,13.00" prototype="corevector.group"/>
            <node name="group3" position="-25.00,12.00" prototype="corevector.group"/>
            <node name="integer1" position="-16.00,10.00" prototype="math.integer"/>
            <node name="lookup1" position="-16.00,9.00" prototype="data.lookup">
                <port name="key" type="string" value="Year"/>
            </node>
            <node name="lookup3" position="-19.00,9.00" prototype="data.lookup">
                <port name="key" type="string" value="Film"/>
            </node>
            <node name="null1" position="-16.00,6.00" prototype="corevector.null"/>
            <node name="oscar_color" position="-22.00,10.00" prototype="core.network" renderedChild="switch1">
                <node name="color3" position="-16.00,16.00" prototype="color.color">
                    <port name="color" type="color" value="#ff0000ff"/>
                </node>
                <node name="color4" position="-13.00,16.00" prototype="color.color">
                    <port name="color" type="color" value="#363636ff"/>
                </node>
                <node name="compare1" position="-9.00,18.00" prototype="math.compare">
                    <port name="comparator" type="string" value="=="/>
                </node>
                <node name="length1" position="-9.00,16.00" prototype="string.length"/>
                <node name="lookup2" position="-9.00,15.00" prototype="data.lookup">
                    <port name="key" type="string" value="Oscar"/>
                </node>
                <node name="number1" position="-9.00,17.00" prototype="math.number"/>
                <node name="switch1" position="-12.00,20.00" prototype="list.switch"/>
                <port childReference="lookup2.list" description="The input value." label="" name="list" range="list" type="list" widget="none"/>
                <conn input="length1.string" output="lookup2"/>
                <conn input="number1.value" output="length1"/>
                <conn input="compare1.value1" output="number1"/>
                <conn input="switch1.index" output="compare1"/>
                <conn input="switch1.input1" output="color3"/>
                <conn input="switch1.input2" output="color4"/>
            </node>
            <node name="oscar_counts" position="-25.00,10.00" prototype="core.network" renderedChild="combine1">
                <node name="add1" position="-27.00,14.00" prototype="math.add"/>
                <node name="align1" position="-29.00,26.00" prototype="corevector.align">
                    <port name="halign" type="string" value="left"/>
                </node>
                <node name="align2" position="-32.00,26.00" prototype="corevector.align">
                    <port name="halign" type="string" value="left"/>
                </node>
                <node name="align3" position="-26.00,26.00" prototype="corevector.align">
                    <port name="halign" type="string" value="left"/>
                </node>
                <node name="colorize1" position="-29.00,25.00" prototype="corevector.colorize">
                    <port name="fill" type="color" value="#00000003"/>
                    <port name="stroke" type="color" value="#353535ff"/>
                    <port name="strokeWidth" type="float" value="0.5"/>
                </node>
                <node name="colorize2" position="-32.00,25.00" prototype="corevector.colorize">
                    <port name="fill" type="color" value="#ff0000ff"/>
                    <port name="stroke" type="color" value="#353535ff"/>
                </node>
                <node name="colorize3" position="-26.00,25.00" prototype="corevector.colorize">
                    <port name="fill" type="color" value="#ffffffff"/>
                    <port name="stroke" type="color" value="#353535ff"/>
                </node>
                <node name="combine1" position="-29.00,31.00" prototype="list.combine"/>
                <node name="concatenate1" position="-26.00,23.00" prototype="string.concatenate">
                    <port name="string2" type="string" value="%"/>
                </node>
                <node name="count1" position="-26.00,12.00" prototype="list.count"/>
                <node name="count2" position="-29.00,11.00" prototype="list.count"/>
                <node name="count3" position="-23.00,12.00" prototype="list.count"/>
                <node name="divide1" position="-27.00,16.00" prototype="math.divide"/>
                <node name="filter_data1" position="-26.00,11.00" prototype="data.filter_data">
                    <port name="key" type="string" value="Oscar"/>
                    <port name="value" type="string" value="Best"/>
                </node>
                <node name="filter_data2" position="-23.00,11.00" prototype="data.filter_data">
                    <port name="key" type="string" value="Oscar"/>
                    <port name="value" type="string" value="Nominated"/>
                </node>
                <node name="integer1" position="-26.00,22.00" prototype="math.integer"/>
                <node name="multiply1" position="-27.00,17.00" prototype="math.multiply">
                    <port name="value2" type="float" value="100.0"/>
                </node>
                <node name="null2" position="-29.00,8.00" prototype="corevector.null"/>
                <node name="rect1" position="-29.00,24.00" prototype="corevector.rect">
                    <port name="height" type="float" value="5.0"/>
                </node>
                <node name="rect2" position="-32.00,24.00" prototype="corevector.rect">
                    <port name="height" type="float" value="5.0"/>
                </node>
                <node name="textpath1" position="-26.00,24.00" prototype="corevector.textpath">
                    <port name="font_size" type="float" value="3.0"/>
                </node>
                <node name="translate1" position="-26.00,27.00" prototype="corevector.translate">
                    <port name="translate" type="point" value="1.00,0.00"/>
                </node>
                <port childReference="null2.shape" description="The input shape." label="" name="shape" range="list" type="geometry" widget="none"/>
                <conn input="filter_data1.data" output="null2"/>
                <conn input="count1.list" output="filter_data1"/>
                <conn input="count2.list" output="null2"/>
                <conn input="divide1.value2" output="count2"/>
                <conn input="filter_data2.data" output="null2"/>
                <conn input="count3.list" output="filter_data2"/>
                <conn input="add1.value1" output="count1"/>
                <conn input="add1.value2" output="count3"/>
                <conn input="divide1.value1" output="add1"/>
                <conn input="multiply1.value1" output="divide1"/>
                <conn input="integer1.value" output="multiply1"/>
                <conn input="textpath1.text" output="concatenate1"/>
                <conn input="colorize1.shape" output="rect1"/>
                <conn input="colorize2.shape" output="rect2"/>
                <conn input="rect2.width" output="multiply1"/>
                <conn input="align1.shape" output="colorize1"/>
                <conn input="align2.shape" output="colorize2"/>
                <conn input="combine1.list3" output="align1"/>
                <conn input="combine1.list1" output="align2"/>
                <conn input="align3.shape" output="colorize3"/>
                <conn input="colorize3.shape" output="textpath1"/>
                <conn input="concatenate1.string1" output="integer1"/>
                <conn input="translate1.shape" output="align3"/>
                <conn input="combine1.list5" output="translate1"/>
            </node>
            <node name="stack1" position="-20.00,21.00" prototype="corevector.stack">
                <port name="direction" type="string" value="s"/>
                <port name="margin" type="float" value="8.0"/>
            </node>
            <node name="string1" position="-29.00,10.00" prototype="string.string"/>
            <node name="textpath1" position="-14.00,14.00" prototype="corevector.textpath">
                <port name="font_size" type="float" value="4.0"/>
                <port name="align" type="string" value="LEFT"/>
            </node>
            <node name="textpath2" position="-29.00,11.00" prototype="corevector.textpath">
                <port name="font_name" type="string" value="Verdana-Bold"/>
                <port name="font_size" type="float" value="10.0"/>
                <port name="align" type="string" value="LEFT"/>
            </node>
            <port childReference="null1.shape" description="The input shape." label="" name="shape" range="list" type="geometry" widget="none"/>
            <port childReference="string1.value" description="" label="" name="title" range="value" type="string" value="" widget="string"/>
            <conn input="grid2.rows" output="count1"/>
            <conn input="textpath1.position" output="grid2"/>
            <conn input="colorize1.shape" output="textpath1"/>
            <conn input="count1.list" output="null1"/>
            <conn input="lookup3.list" output="null1"/>
            <conn input="colorize2.shape" output="textpath2"/>
            <conn input="textpath2.text" output="string1"/>
            <conn input="group1.shapes" output="colorize1"/>
            <conn input="combine1.list1" output="group2"/>
            <conn input="group2.shapes" output="colorize2"/>
            <conn input="stack1.shapes" output="combine1"/>
            <conn input="lookup1.list" output="null1"/>
            <conn input="concatenate1.string1" output="lookup3"/>
            <conn input="textpath1.text" output="concatenate1"/>
            <conn input="integer1.value" output="lookup1"/>
            <conn input="concatenate1.string3" output="integer1"/>
            <conn input="oscar_color.list" output="null1"/>
            <conn input="colorize1.fill" output="oscar_color"/>
            <conn input="combine1.list7" output="group1"/>
            <conn input="oscar_counts.shape" output="null1"/>
            <conn input="combine1.list2" output="group3"/>
            <conn input="group3.shapes" output="oscar_counts"/>
        </node>
        <node name="film_list1" position="-4.00,14.00" prototype="core.network" renderedChild="stack1">
            <node name="colorize1" position="-16.00,17.00" prototype="corevector.colorize">
                <port name="fill" type="color" value="#141414ff"/>
            </node>
            <node name="colorize2" position="-30.00,15.00" prototype="corevector.colorize">
                <port name="fill" type="color" value="#454545ff"/>
            </node>
            <node name="combine1" position="-20.00,20.00" prototype="list.combine"/>
            <node name="concatenate1" position="-17.00,12.00" prototype="string.concatenate">
                <port name="string2" type="string" value=", "/>
            </node>
            <node name="count1" position="-12.00,10.00" prototype="list.count"/>
            <node name="grid2" position="-11.00,12.00" prototype="corevector.grid">
                <port name="columns" type="int" value="1"/>
                <port name="width" type="float" value="0.0"/>
                <port name="height" type="float" value="790.0"/>
            </node>
            <node name="group1" position="-16.00,18.00" prototype="corevector.group"/>
            <node name="group2" position="-30.00,16.00" prototype="corevector.group"/>
            <node name="group3" position="-25.00,12.00" prototype="corevector.group"/>
            <node name="integer1" position="-16.00,10.00" prototype="math.integer"/>
            <node name="lookup1" position="-16.00,9.00" prototype="data.lookup">
                <port name="key" type="string" value="Year"/>
            </node>
            <node name="lookup3" position="-19.00,9.00" prototype="data.lookup">
                <port name="key" type="string" value="Film"/>
            </node>
            <node name="null1" position="-16.00,6.00" prototype="corevector.null"/>
            <node name="oscar_color" position="-22.00,10.00" prototype="core.network" renderedChild="switch1">
                <node name="color3" position="-16.00,16.00" prototype="color.color">
                    <port name="color" type="color" value="#ff0000ff"/>
                </node>
                <node name="color4" position="-13.00,16.00" prototype="color.color">
                    <port name="color" type="color" value="#363636ff"/>
                </node>
                <node name="compare1" position="-9.00,18.00" prototype="math.compare">
                    <port name="comparator" type="string" value="=="/>
                </node>
                <node name="length1" position="-9.00,16.00" prototype="string.length"/>
                <node name="lookup2" position="-9.00,15.00" prototype="data.lookup">
                    <port name="key" type="string" value="Oscar"/>
                </node>
                <node name="number1" position="-9.00,17.00" prototype="math.number"/>
                <node name="switch1" position="-12.00,20.00" prototype="list.switch"/>
                <port childReference="lookup2.list" description="The input value." label="" name="list" range="list" type="list" widget="none"/>
                <conn input="length1.string" output="lookup2"/>
                <conn input="number1.value" output="length1"/>
                <conn input="compare1.value1" output="number1"/>
                <conn input="switch1.index" output="compare1"/>
                <conn input="switch1.input1" output="color3"/>
                <conn input="switch1.input2" output="color4"/>
            </node>
            <node name="oscar_counts" position="-25.00,10.00" prototype="core.network" renderedChild="combine1">
                <node name="add1" position="-27.00,14.00" prototype="math.add"/>
                <node name="align1" position="-29.00,26.00" prototype="corevector.align">
                    <port name="halign" type="string" value="left"/>
                </node>
                <node name="align2" position="-32.00,26.00" prototype="corevector.align">
                    <port name="halign" type="string" value="left"/>
                </node>
                <node name="align3" position="-26.00,26.00" prototype="corevector.align">
                    <port name="halign" type="string" value="left"/>
                </node>
                <node name="colorize1" position="-29.00,25.00" prototype="corevector.colorize">
                    <port name="fill" type="color" value="#00000003"/>
                    <port name="stroke" type="color" value="#353535ff"/>
                    <port name="strokeWidth" type="float" value="0.5"/>
                </node>
                <node name="colorize2" position="-32.00,25.00" prototype="corevector.colorize">
                    <port name="fill" type="color" value="#ff0000ff"/>
                    <port name="stroke" type="color" value="#353535ff"/>
                </node>
                <node name="colorize3" position="-26.00,25.00" prototype="corevector.colorize">
                    <port name="fill" type="color" value="#ffffffff"/>
                    <port name="stroke" type="color" value="#353535ff"/>
                </node>
                <node name="combine1" position="-29.00,31.00" prototype="list.combine"/>
                <node name="concatenate1" position="-26.00,23.00" prototype="string.concatenate">
                    <port name="string2" type="string" value="%"/>
                </node>
                <node name="count1" position="-26.00,12.00" prototype="list.count"/>
                <node name="count2" position="-29.00,11.00" prototype="list.count"/>
                <node name="count3" position="-23.00,12.00" prototype="list.count"/>
                <node name="divide1" position="-27.00,16.00" prototype="math.divide"/>
                <node name="filter_data1" position="-26.00,11.00" prototype="data.filter_data">
                    <port name="key" type="string" value="Oscar"/>
                    <port name="value" type="string" value="Best"/>
                </node>
                <node name="filter_data2" position="-23.00,11.00" prototype="data.filter_data">
                    <port name="key" type="string" value="Oscar"/>
                    <port name="value" type="string" value="Nominated"/>
                </node>
                <node name="integer1" position="-26.00,22.00" prototype="math.integer"/>
                <node name="multiply1" position="-27.00,17.00" prototype="math.multiply">
                    <port name="value2" type="float" value="100.0"/>
                </node>
                <node name="null2" position="-29.00,8.00" prototype="corevector.null"/>
                <node name="rect1" position="-29.00,24.00" prototype="corevector.rect">
                    <port name="height" type="float" value="5.0"/>
                </node>
                <node name="rect2" position="-32.00,24.00" prototype="corevector.rect">
                    <port name="height" type="float" value="5.0"/>
                </node>
                <node name="textpath1" position="-26.00,24.00" prototype="corevector.textpath">
                    <port name="font_size" type="float" value="3.0"/>
                </node>
                <node name="translate1" position="-26.00,27.00" prototype="corevector.translate">
                    <port name="translate" type="point" value="1.00,0.00"/>
                </node>
                <port childReference="null2.shape" description="The input shape." label="" name="shape" range="list" type="geometry" widget="none"/>
                <conn input="filter_data1.data" output="null2"/>
                <conn input="count1.list" output="filter_data1"/>
                <conn input="count2.list" output="null2"/>
                <conn input="divide1.value2" output="count2"/>
                <conn input="filter_data2.data" output="null2"/>
                <conn input="count3.list" output="filter_data2"/>
                <conn input="add1.value1" output="count1"/>
                <conn input="add1.value2" output="count3"/>
                <conn input="divide1.value1" output="add1"/>
                <conn input="multiply1.value1" output="divide1"/>
                <conn input="integer1.value" output="multiply1"/>
                <conn input="textpath1.text" output="concatenate1"/>
                <conn input="colorize1.shape" output="rect1"/>
                <conn input="colorize2.shape" output="rect2"/>
                <conn input="rect2.width" output="multiply1"/>
                <conn input="align1.shape" output="colorize1"/>
                <conn input="align2.shape" output="colorize2"/>
                <conn input="combine1.list3" output="align1"/>
                <conn input="combine1.list1" output="align2"/>
                <conn input="align3.shape" output="colorize3"/>
                <conn input="colorize3.shape" output="textpath1"/>
                <conn input="concatenate1.string1" output="integer1"/>
                <conn input="translate1.shape" output="align3"/>
                <conn input="combine1.list5" output="translate1"/>
            </node>
            <node name="stack1" position="-20.00,21.00" prototype="corevector.stack">
                <port name="direction" type="string" value="s"/>
                <port name="margin" type="float" value="8.0"/>
            </node>
            <node name="string1" position="-30.00,12.00" prototype="string.string"/>
            <node name="textpath1" position="-14.00,14.00" prototype="corevector.textpath">
                <port name="font_size" type="float" value="4.0"/>
                <port name="align" type="string" value="LEFT"/>
            </node>
            <node name="textpath2" position="-30.00,14.00" prototype="corevector.textpath">
                <port name="font_name" type="string" value="Verdana-Bold"/>
                <port name="font_size" type="float" value="10.0"/>
                <port name="align" type="string" value="LEFT"/>
            </node>
            <port childReference="null1.shape" description="The input shape." label="" name="shape" range="list" type="geometry" widget="none"/>
            <port childReference="string1.value" description="" label="" name="title" range="value" type="string" value="" widget="string"/>
            <conn input="grid2.rows" output="count1"/>
            <conn input="textpath1.position" output="grid2"/>
            <conn input="colorize1.shape" output="textpath1"/>
            <conn input="count1.list" output="null1"/>
            <conn input="lookup3.list" output="null1"/>
            <conn input="colorize2.shape" output="textpath2"/>
            <conn input="textpath2.text" output="string1"/>
            <conn input="group1.shapes" output="colorize1"/>
            <conn input="combine1.list1" output="group2"/>
            <conn input="group2.shapes" output="colorize2"/>
            <conn input="stack1.shapes" output="combine1"/>
            <conn input="lookup1.list" output="null1"/>
            <conn input="concatenate1.string1" output="lookup3"/>
            <conn input="textpath1.text" output="concatenate1"/>
            <conn input="integer1.value" output="lookup1"/>
            <conn input="concatenate1.string3" output="integer1"/>
            <conn input="oscar_color.list" output="null1"/>
            <conn input="colorize1.fill" output="oscar_color"/>
            <conn input="combine1.list7" output="group1"/>
            <conn input="oscar_counts.shape" output="null1"/>
            <conn input="combine1.list2" output="group3"/>
            <conn input="group3.shapes" output="oscar_counts"/>
        </node>
        <node name="filter_data1" position="-5.00,0.00" prototype="data.filter_data">
            <port name="key" type="string" value="Reviewer"/>
            <port name="value" type="string" value="Siskel"/>
        </node>
        <node name="filter_data2" position="-2.00,0.00" prototype="data.filter_data">
            <port name="key" type="string" value="Reviewer"/>
            <port name="value" type="string" value="Ebert"/>
        </node>
        <node name="filter_data3" position="11.00,11.00" prototype="data.filter_data">
            <port name="key" type="string" value="Film"/>
        </node>
        <node name="grid1" position="9.00,19.00" prototype="corevector.grid">
            <port name="columns" type="int" value="6"/>
            <port name="rows" type="int" value="5"/>
            <port name="width" type="float" value="840.0"/>
            <port name="height" type="float" value="684.0"/>
            <port name="position" type="point" value="0.00,87.00"/>
        </node>
        <node name="import_csv1" position="-2.00,-3.00" prototype="data.import_csv">
            <port name="file" type="string" value="Siskel_Ebert.csv"/>
        </node>
        <node comment="Films in Common" name="lookup1" position="7.00,9.00" prototype="data.lookup">
            <port name="key" type="string" value="Film"/>
        </node>
        <node comment="Ebert Ranks" name="lookup2" position="11.00,12.00" prototype="data.lookup">
            <port name="key" type="string" value="Rank"/>
        </node>
        <node name="make_grid" position="5.00,19.00" prototype="core.network" renderedChild="group1">
            <node name="colorize2" position="2.00,32.00" prototype="corevector.colorize">
                <port name="fill" type="color" value="#363636ff"/>
            </node>
            <node name="colorize3" position="6.00,30.00" prototype="corevector.colorize">
                <port name="fill" type="color" value="#ffffffff"/>
            </node>
            <node name="colorize4" position="12.00,38.00" prototype="corevector.colorize">
                <port name="fill" type="color" value="#575757ff"/>
            </node>
            <node name="combine1" position="2.00,43.00" prototype="list.combine"/>
            <node name="divide1" position="7.00,33.00" prototype="math.divide">
                <port name="value2" type="float" value="-5.0"/>
            </node>
            <node name="ellipse1" position="2.00,29.00" prototype="corevector.ellipse">
                <port name="width" type="float" value="8.0"/>
                <port name="height" type="float" value="8.0"/>
            </node>
            <node name="filter_data4" position="3.00,17.00" prototype="data.filter_data">
                <port name="key" type="string" value="Year"/>
                <port name="value" type="string" value="1969"/>
            </node>
            <node name="group1" position="2.00,44.00" prototype="corevector.group"/>
            <node name="integer1" position="12.00,13.00" prototype="math.integer">
                <port name="value" type="int" value="27"/>
            </node>
            <node name="integer2" position="7.00,34.00" prototype="math.integer"/>
            <node name="lookup1" position="7.00,32.00" prototype="data.lookup">
                <port name="key" type="string" value="bounds.height"/>
            </node>
            <node name="lookup3" position="4.00,21.00" prototype="data.lookup">
                <port name="key" type="string" value="Rank"/>
            </node>
            <node name="lookup4" position="0.00,21.00" prototype="data.lookup">
                <port name="key" type="string" value="Ebert"/>
            </node>
            <node name="lookup5" position="8.00,21.00" prototype="data.lookup">
                <port name="key" type="string" value="Film"/>
            </node>
            <node name="make_point1" position="2.00,26.00" prototype="corevector.make_point"/>
            <node name="make_point2" position="7.00,35.00" prototype="corevector.make_point"/>
            <node name="movie_grid" position="-5.00,38.00" prototype="core.network" renderedChild="combine1">
                <node name="colorize1" position="-6.00,28.00" prototype="corevector.colorize">
                    <port name="fill" type="color" value="#00000000"/>
                    <port name="stroke" type="color" value="#a1a1a1ff"/>
                    <port name="strokeWidth" type="float" value="0.4"/>
                </node>
                <node name="colorize2" position="-3.00,30.00" prototype="corevector.colorize">
                    <port name="fill" type="color" value="#585858ff"/>
                </node>
                <node name="colorize3" position="1.00,30.00" prototype="corevector.colorize">
                    <port name="fill" type="color" value="#585858ff"/>
                </node>
                <node name="combine1" position="0.00,37.00" prototype="list.combine"/>
                <node name="grid1" position="-6.00,25.00" prototype="corevector.grid">
                    <port name="width" type="float" value="90.0"/>
                    <port name="height" type="float" value="90.0"/>
                </node>
                <node name="grid2" position="1.00,25.00" prototype="corevector.grid">
                    <port name="columns" type="int" value="1"/>
                    <port name="width" type="float" value="0.0"/>
                    <port name="height" type="float" value="90.0"/>
                    <port name="position" type="point" value="-52.00,1.00"/>
                </node>
                <node name="grid3" position="4.00,25.00" prototype="corevector.grid">
                    <port name="rows" type="int" value="1"/>
                    <port name="width" type="float" value="90.0"/>
                    <port name="height" type="float" value="0.0"/>
                    <port name="position" type="point" value="0.00,54.00"/>
                </node>
                <node name="integer1" position="-3.00,26.00" prototype="math.integer"/>
                <node name="range1" position="-3.00,25.00" prototype="math.range">
                    <port name="start" type="float" value="1.0"/>
                    <port name="end" type="float" value="11.0"/>
                </node>
                <node name="rect1" position="-6.00,27.00" prototype="corevector.rect">
                    <port name="width" type="float" value="10.0"/>
                    <port name="height" type="float" value="10.0"/>
                </node>
                <node name="reverse1" position="4.00,26.00" prototype="list.reverse"/>
                <node name="reviewer" position="4.00,30.00" prototype="core.network" renderedChild="combine2">
                    <node name="arrow" position="4.00,28.00" prototype="core.network" renderedChild="colorize5">
                        <node name="colorize5" position="4.00,32.00" prototype="corevector.colorize">
                            <port name="fill" type="color" value="#bcbcbcff"/>
                        </node>
                        <node name="combine2" position="4.00,31.00" prototype="list.combine"/>
                        <node name="polygon1" position="5.00,28.00" prototype="corevector.polygon">
                            <port name="radius" type="float" value="4.0"/>
                        </node>
                        <node name="rect2" position="6.00,29.00" prototype="corevector.rect">
                            <port name="position" type="point" value="-13.00,0.00"/>
                            <port name="width" type="float" value="24.0"/>
                            <port name="height" type="float" value="2.0"/>
                        </node>
                        <conn input="colorize5.shape" output="combine2"/>
                        <conn input="combine2.list1" output="polygon1"/>
                        <conn input="combine2.list2" output="rect2"/>
                    </node>
                    <node name="colorize4" position="7.00,29.00" prototype="corevector.colorize">
                        <port name="fill" type="color" value="#8f8f8fff"/>
                    </node>
                    <node name="combine2" position="4.00,31.00" prototype="list.combine"/>
                    <node name="textpath3" position="7.00,28.00" prototype="corevector.textpath">
                        <port name="font_name" type="string" value="Verdana-Italic"/>
                        <port name="font_size" type="float" value="6.0"/>
                        <port name="align" type="string" value="RIGHT"/>
                        <port name="position" type="point" value="-27.00,1.50"/>
                    </node>
                    <port childReference="textpath3.text" description="The input text." label="" name="text" range="value" type="string" value="hello" widget="string"/>
                    <conn input="colorize4.shape" output="textpath3"/>
                    <conn input="combine2.list2" output="colorize4"/>
                    <conn input="combine2.list1" output="arrow"/>
                </node>
                <node name="reviewer1" position="7.00,30.00" prototype="core.network" renderedChild="combine2">
                    <node name="arrow" position="4.00,28.00" prototype="core.network" renderedChild="colorize5">
                        <node name="colorize5" position="4.00,32.00" prototype="corevector.colorize">
                            <port name="fill" type="color" value="#bcbcbcff"/>
                        </node>
                        <node name="combine2" position="4.00,31.00" prototype="list.combine"/>
                        <node name="polygon1" position="5.00,28.00" prototype="corevector.polygon">
                            <port name="radius" type="float" value="4.0"/>
                        </node>
                        <node name="rect2" position="6.00,29.00" prototype="corevector.rect">
                            <port name="position" type="point" value="-13.00,0.00"/>
                            <port name="width" type="float" value="24.0"/>
                            <port name="height" type="float" value="2.0"/>
                        </node>
                        <conn input="colorize5.shape" output="combine2"/>
                        <conn input="combine2.list1" output="polygon1"/>
                        <conn input="combine2.list2" output="rect2"/>
                    </node>
                    <node name="colorize4" position="7.00,29.00" prototype="corevector.colorize">
                        <port name="fill" type="color" value="#8f8f8fff"/>
                    </node>
                    <node name="combine2" position="4.00,31.00" prototype="list.combine"/>
                    <node name="textpath3" position="7.00,28.00" prototype="corevector.textpath">
                        <port name="font_name" type="string" value="Verdana-Italic"/>
                        <port name="font_size" type="float" value="6.0"/>
                        <port name="align" type="string" value="RIGHT"/>
                        <port name="position" type="point" value="-27.00,1.50"/>
                    </node>
                    <port childReference="textpath3.text" description="The input text." label="" name="text" range="value" type="string" value="hello" widget="string"/>
                    <conn input="colorize4.shape" output="textpath3"/>
                    <conn input="combine2.list2" output="colorize4"/>
                    <conn input="combine2.list1" output="arrow"/>
                </node>
                <node name="rotate1" position="7.00,31.00" prototype="corevector.rotate">
                    <port name="angle" type="float" value="-90.0"/>
                </node>
                <node name="string1" position="4.00,29.00" prototype="string.string">
                    <port name="value" type="string" value="Ebert"/>
                </node>
                <node name="string2" position="7.00,29.00" prototype="string.string">
                    <port name="value" type="string" value="Siskel"/>
                </node>
                <node name="textpath1" position="-3.00,29.00" prototype="corevector.textpath">
                    <port name="font_size" type="float" value="3.0"/>
                    <port name="align" type="string" value="RIGHT"/>
                </node>
                <node name="textpath2" position="1.00,29.00" prototype="corevector.textpath">
                    <port name="font_size" type="float" value="3.0"/>
                </node>
                <node name="translate1" position="4.00,31.00" prototype="corevector.translate">
                    <port name="translate" type="point" value="36.00,60.00"/>
                </node>
                <node name="translate2" position="7.00,32.00" prototype="corevector.translate">
                    <port name="translate" type="point" value="-59.00,-34.00"/>
                </node>
                <conn input="colorize1.shape" output="rect1"/>
                <conn input="rect1.position" output="grid1"/>
                <conn input="combine1.list1" output="colorize1"/>
                <conn input="integer1.value" output="range1"/>
                <conn input="colorize2.shape" output="textpath1"/>
                <conn input="textpath1.text" output="integer1"/>
                <conn input="combine1.list2" output="colorize2"/>
                <conn input="colorize3.shape" output="textpath2"/>
                <conn input="textpath2.text" output="integer1"/>
                <conn input="textpath1.position" output="grid2"/>
                <conn input="combine1.list3" output="colorize3"/>
                <conn input="reverse1.list" output="grid3"/>
                <conn input="textpath2.position" output="reverse1"/>
                <conn input="reviewer.text" output="string1"/>
                <conn input="translate1.shape" output="reviewer"/>
                <conn input="combine1.list5" output="translate1"/>
                <conn input="translate2.shape" output="rotate1"/>
                <conn input="combine1.list6" output="translate2"/>
                <conn input="reviewer1.text" output="string2"/>
                <conn input="rotate1.shape" output="reviewer1"/>
            </node>
            <node name="multiply1" position="4.00,22.00" prototype="math.multiply">
                <port name="value2" type="float" value="10.0"/>
            </node>
            <node name="multiply2" position="0.00,22.00" prototype="math.multiply">
                <port name="value2" type="float" value="10.0"/>
            </node>
            <node name="oscar_color" position="-4.00,21.00" prototype="core.network" renderedChild="switch1">
                <node name="color1" position="-16.00,16.00" prototype="color.color">
                    <port name="color" type="color" value="#ff0000ff"/>
                </node>
                <node name="color2" position="-13.00,16.00" prototype="color.color">
                    <port name="color" type="color" value="#363636ff"/>
                </node>
                <node name="compare1" position="-9.00,18.00" prototype="math.compare">
                    <port name="comparator" type="string" value="=="/>
                </node>
                <node name="length1" position="-9.00,16.00" prototype="string.length"/>
                <node name="lookup2" position="-9.00,15.00" prototype="data.lookup">
                    <port name="key" type="string" value="Oscar"/>
                </node>
                <node name="number1" position="-9.00,17.00" prototype="math.number"/>
                <node name="switch1" position="-12.00,20.00" prototype="list.switch"/>
                <port childReference="lookup2.list" description="The input value." label="" name="list" range="list" type="list" widget="none"/>
                <conn input="length1.string" output="lookup2"/>
                <conn input="number1.value" output="length1"/>
                <conn input="compare1.value1" output="number1"/>
                <conn input="switch1.index" output="compare1"/>
                <conn input="switch1.input1" output="color1"/>
                <conn input="switch1.input2" output="color2"/>
            </node>
            <node name="oscar_star" position="-8.00,21.00" prototype="core.network" renderedChild="switch1">
                <node name="colorize1" position="-16.00,17.00" prototype="corevector.colorize">
                    <port name="fill" type="color" value="#00000000"/>
                </node>
                <node name="colorize2" position="-13.00,17.00" prototype="corevector.colorize">
                    <port name="fill" type="color" value="#ffffffff"/>
                </node>
                <node name="equals1" position="-9.00,17.00" prototype="string.equals">
                    <port name="equals" type="string" value="Best"/>
                </node>
                <node name="lookup2" position="-9.00,15.00" prototype="data.lookup">
                    <port name="key" type="string" value="Oscar"/>
                </node>
                <node name="rect1" position="-16.00,16.00" prototype="corevector.rect">
                    <port name="width" type="float" value="3.0"/>
                    <port name="height" type="float" value="3.0"/>
                </node>
                <node name="rotate1" position="-13.00,16.00" prototype="corevector.rotate">
                    <port name="angle" type="float" value="-35.0"/>
                </node>
                <node name="star1" position="-13.00,15.00" prototype="corevector.star">
                    <port name="points" type="int" value="5"/>
                    <port name="outer" type="float" value="2.5"/>
                    <port name="inner" type="float" value="1.0"/>
                </node>
                <node name="switch1" position="-12.00,20.00" prototype="list.switch"/>
                <port childReference="lookup2.list" description="The input value." label="" name="list" range="list" type="list" widget="none"/>
                <conn input="equals1.string" output="lookup2"/>
                <conn input="switch1.index" output="equals1"/>
                <conn input="colorize1.shape" output="rect1"/>
                <conn input="switch1.input1" output="colorize1"/>
                <conn input="rotate1.shape" output="star1"/>
                <conn input="colorize2.shape" output="rotate1"/>
                <conn input="switch1.input2" output="colorize2"/>
            </node>
            <node name="subtract1" position="4.00,23.00" prototype="math.subtract">
                <port name="value2" type="float" value="55.0"/>
            </node>
            <node name="subtract2" position="0.00,23.00" prototype="math.subtract">
                <port name="value1" type="float" value="55.0"/>
                <port name="value2" type="float" value="45.0"/>
            </node>
            <node name="textpath1" position="6.00,29.00" prototype="corevector.textpath">
                <port name="text" type="string" value="The Unbearable Lightness of Being"/>
                <port name="font_size" type="float" value="1.0"/>
                <port name="position" type="point" value="5.00,-6.00"/>
                <port name="width" type="float" value="7.0"/>
            </node>
            <node name="textpath2" position="12.00,37.00" prototype="corevector.textpath">
                <port name="position" type="point" value="0.00,-57.00"/>
            </node>
            <node name="translate1" position="6.00,37.00" prototype="corevector.translate"/>
            <node name="translate2" position="-5.00,29.00" prototype="corevector.translate"/>
            <node name="translate3" position="-5.00,32.00" prototype="corevector.translate">
                <port name="translate" type="point" value="0.00,-2.25"/>
            </node>
            <port childReference="filter_data4.data" description="" label="" name="data" range="list" type="data" widget="none"/>
            <port childReference="integer1.value" description="" label="" name="year" range="value" type="int" value="27" widget="int"/>
            <conn input="colorize2.shape" output="ellipse1"/>
            <conn input="colorize3.shape" output="textpath1"/>
            <conn input="multiply1.value1" output="lookup3"/>
            <conn input="subtract1.value1" output="multiply1"/>
            <conn input="multiply2.value1" output="lookup4"/>
            <conn input="make_point1.y" output="subtract1"/>
            <conn input="make_point1.x" output="subtract2"/>
            <conn input="ellipse1.position" output="make_point1"/>
            <conn input="combine1.list2" output="colorize2"/>
            <conn input="subtract2.value2" output="multiply2"/>
            <conn input="textpath1.text" output="lookup5"/>
            <conn input="textpath1.position" output="make_point1"/>
            <conn input="lookup4.list" output="filter_data4"/>
            <conn input="lookup3.list" output="filter_data4"/>
            <conn input="lookup5.list" output="filter_data4"/>
            <conn input="filter_data4.value" output="integer1"/>
            <conn input="textpath2.text" output="integer1"/>
            <conn input="colorize4.shape" output="textpath2"/>
            <conn input="combine1.list6" output="colorize4"/>
            <conn input="combine1.list1" output="movie_grid"/>
            <conn input="group1.shapes" output="combine1"/>
            <conn input="lookup1.list" output="colorize3"/>
            <conn input="combine1.list4" output="translate1"/>
            <conn input="translate1.translate" output="make_point2"/>
            <conn input="translate1.shape" output="colorize3"/>
            <conn input="divide1.value1" output="lookup1"/>
            <conn input="integer2.value" output="divide1"/>
            <conn input="make_point2.y" output="integer2"/>
            <conn input="colorize2.fill" output="oscar_color"/>
            <conn input="oscar_color.list" output="filter_data4"/>
            <conn input="oscar_star.list" output="filter_data4"/>
            <conn input="translate2.translate" output="make_point1"/>
            <conn input="translate2.shape" output="oscar_star"/>
            <conn input="translate3.shape" output="translate2"/>
            <conn input="combine1.list3" output="translate3"/>
        </node>
        <node name="number1" position="-9.00,7.00" prototype="math.number"/>
        <node name="number2" position="-1.00,7.00" prototype="math.number">
            <port name="value" type="float" value="1.0"/>
        </node>
        <node name="oscar_star" position="-15.00,14.00" prototype="core.network" renderedChild="translate4">
            <node name="colorize1" position="-16.00,17.00" prototype="corevector.colorize">
                <port name="fill" type="color" value="#00000000"/>
            </node>
            <node name="colorize2" position="-13.00,17.00" prototype="corevector.colorize">
                <port name="fill" type="color" value="#ff0000ff"/>
            </node>
            <node name="count1" position="-5.00,17.00" prototype="list.count"/>
            <node name="equals1" position="-9.00,17.00" prototype="string.equals">
                <port name="equals" type="string" value="Best"/>
            </node>
            <node name="grid2" position="-5.00,18.00" prototype="corevector.grid">
                <port name="columns" type="int" value="1"/>
                <port name="width" type="float" value="0.0"/>
                <port name="height" type="float" value="790.0"/>
            </node>
            <node name="lookup2" position="-9.00,15.00" prototype="data.lookup">
                <port name="key" type="string" value="Oscar"/>
            </node>
            <node name="rect1" position="-16.00,16.00" prototype="corevector.rect">
                <port name="width" type="float" value="3.0"/>
                <port name="height" type="float" value="3.0"/>
            </node>
            <node name="rotate1" position="-13.00,16.00" prototype="corevector.rotate">
                <port name="angle" type="float" value="-35.0"/>
            </node>
            <node name="star1" position="-13.00,15.00" prototype="corevector.star">
                <port name="points" type="int" value="5"/>
                <port name="outer" type="float" value="3.75"/>
                <port name="inner" type="float" value="1.5"/>
            </node>
            <node name="switch1" position="-12.00,20.00" prototype="list.switch"/>
            <node name="translate4" position="-10.00,24.00" prototype="corevector.translate"/>
            <port childReference="lookup2.list" description="The input value." label="" name="list" range="list" type="list" widget="none"/>
            <conn input="equals1.string" output="lookup2"/>
            <conn input="switch1.index" output="equals1"/>
            <conn input="colorize1.shape" output="rect1"/>
            <conn input="switch1.input1" output="colorize1"/>
            <conn input="rotate1.shape" output="star1"/>
            <conn input="colorize2.shape" output="rotate1"/>
            <conn input="switch1.input2" output="colorize2"/>
            <conn input="translate4.translate" output="grid2"/>
            <conn input="grid2.rows" output="count1"/>
            <conn input="count1.list" output="lookup2"/>
            <conn input="translate4.shape" output="switch1"/>
        </node>
        <node name="oscar_star1" position="-7.00,14.00" prototype="core.network" renderedChild="translate4">
            <node name="colorize1" position="-16.00,17.00" prototype="corevector.colorize">
                <port name="fill" type="color" value="#00000000"/>
            </node>
            <node name="colorize2" position="-13.00,17.00" prototype="corevector.colorize">
                <port name="fill" type="color" value="#ff0000ff"/>
            </node>
            <node name="count1" position="-5.00,17.00" prototype="list.count"/>
            <node name="equals1" position="-9.00,17.00" prototype="string.equals">
                <port name="equals" type="string" value="Best"/>
            </node>
            <node name="grid2" position="-5.00,18.00" prototype="corevector.grid">
                <port name="columns" type="int" value="1"/>
                <port name="width" type="float" value="0.0"/>
                <port name="height" type="float" value="790.0"/>
            </node>
            <node name="lookup2" position="-9.00,15.00" prototype="data.lookup">
                <port name="key" type="string" value="Oscar"/>
            </node>
            <node name="rect1" position="-16.00,16.00" prototype="corevector.rect">
                <port name="width" type="float" value="3.0"/>
                <port name="height" type="float" value="3.0"/>
            </node>
            <node name="rotate1" position="-13.00,16.00" prototype="corevector.rotate">
                <port name="angle" type="float" value="-35.0"/>
            </node>
            <node name="star1" position="-13.00,15.00" prototype="corevector.star">
                <port name="points" type="int" value="5"/>
                <port name="outer" type="float" value="3.75"/>
                <port name="inner" type="float" value="1.5"/>
            </node>
            <node name="switch1" position="-12.00,20.00" prototype="list.switch"/>
            <node name="translate4" position="-10.00,24.00" prototype="corevector.translate"/>
            <port childReference="lookup2.list" description="The input value." label="" name="list" range="list" type="list" widget="none"/>
            <conn input="equals1.string" output="lookup2"/>
            <conn input="switch1.index" output="equals1"/>
            <conn input="colorize1.shape" output="rect1"/>
            <conn input="switch1.input1" output="colorize1"/>
            <conn input="rotate1.shape" output="star1"/>
            <conn input="colorize2.shape" output="rotate1"/>
            <conn input="switch1.input2" output="colorize2"/>
            <conn input="translate4.translate" output="grid2"/>
            <conn input="grid2.rows" output="count1"/>
            <conn input="count1.list" output="lookup2"/>
            <conn input="translate4.shape" output="switch1"/>
        </node>
        <node name="range1" position="6.00,17.00" prototype="math.range">
            <port name="start" type="float" value="1969.0"/>
            <port name="end" type="float" value="1999.0"/>
        </node>
        <node name="scale1" position="-5.00,29.00" prototype="corevector.scale">
            <port name="scale" type="point" value="200.00,200.00"/>
        </node>
        <node name="string1" position="1.00,0.00" prototype="string.string">
            <port name="value" type="string" value="Film"/>
        </node>
        <node name="string2" position="6.00,12.00" prototype="string.string">
            <port name="value" type="string" value="Ebert"/>
        </node>
        <node name="string3" position="-10.00,12.00" prototype="string.string">
            <port name="value" type="string" value="Chosen Only by Siskel"/>
        </node>
        <node name="string4" position="-2.00,12.00" prototype="string.string">
            <port name="value" type="string" value="Chosen Only by Ebert"/>
        </node>
        <node name="titles" position="-12.00,24.00" prototype="core.network" renderedChild="combine1">
            <node name="colorize1" position="-15.00,16.00" prototype="corevector.colorize">
                <port name="fill" type="color" value="#4c4c4cff"/>
            </node>
            <node name="colorize2" position="-12.00,16.00" prototype="corevector.colorize">
                <port name="fill" type="color" value="#4c4c4cff"/>
            </node>
            <node name="colorize3" position="3.00,16.00" prototype="corevector.colorize">
                <port name="fill" type="color" value="#4c4c4cff"/>
            </node>
            <node name="colorize4" position="0.00,16.00" prototype="corevector.colorize">
                <port name="fill" type="color" value="#4c4c4cff"/>
            </node>
            <node name="colorize5" position="-20.00,16.00" prototype="corevector.colorize">
                <port name="fill" type="color" value="#ffffffff"/>
            </node>
            <node name="combine1" position="-7.00,25.00" prototype="list.combine"/>
            <node name="legend" position="-6.00,16.00" prototype="core.network" renderedChild="combine3">
                <node name="centroid1" position="-14.00,12.00" prototype="corevector.centroid"/>
                <node name="color7" position="-15.00,-2.00" prototype="color.color">
                    <port name="color" type="color" value="#363636ff"/>
                </node>
                <node name="color8" position="-12.00,-2.00" prototype="color.color">
                    <port name="color" type="color" value="#ff0000ff"/>
                </node>
                <node name="colorize2" position="-9.00,9.00" prototype="corevector.colorize">
                    <port name="fill" type="color" value="#ffffffff"/>
                </node>
                <node name="colorize6" position="1.00,-2.00" prototype="corevector.colorize"/>
                <node name="colorize7" position="-16.00,2.00" prototype="corevector.colorize"/>
                <node name="combine2" position="-13.00,0.00" prototype="list.combine"/>
                <node name="combine3" position="-12.00,21.00" prototype="list.combine"/>
                <node name="ellipse1" position="-16.00,0.00" prototype="corevector.ellipse">
                    <port name="width" type="float" value="8.0"/>
                    <port name="height" type="float" value="8.0"/>
                </node>
                <node name="last2" position="-14.00,11.00" prototype="list.last"/>
                <node name="lookup1" position="-11.00,4.00" prototype="data.lookup">
                    <port name="key" type="string" value="bounds.x"/>
                </node>
                <node name="lookup2" position="-8.00,4.00" prototype="data.lookup">
                    <port name="key" type="string" value="bounds.y"/>
                </node>
                <node name="make_point1" position="-14.00,6.00" prototype="corevector.make_point"/>
                <node name="make_strings1" position="1.00,-4.00" prototype="string.make_strings">
                    <port name="string" type="string" value="Chosen by Both,Chosen and Nominated for Best Picture,Chosen and Awared Best Picture"/>
                    <port name="separator" type="string" value=","/>
                </node>
                <node name="rotate1" position="-9.00,8.00" prototype="corevector.rotate">
                    <port name="angle" type="float" value="-35.0"/>
                </node>
                <node name="stack1" position="1.00,-1.00" prototype="corevector.stack">
                    <port name="margin" type="float" value="65.0"/>
                </node>
                <node name="star1" position="-9.00,7.00" prototype="corevector.star">
                    <port name="points" type="int" value="5"/>
                    <port name="outer" type="float" value="5.0"/>
                    <port name="inner" type="float" value="2.0"/>
                </node>
                <node name="textpath5" position="1.00,-3.00" prototype="corevector.textpath">
                    <port name="font_size" type="float" value="11.0"/>
                    <port name="align" type="string" value="LEFT"/>
                </node>
                <node name="translate1" position="1.00,0.00" prototype="corevector.translate">
                    <port name="translate" type="point" value="-259.00,-369.00"/>
                </node>
                <node name="translate2" position="-16.00,8.00" prototype="corevector.translate"/>
                <node name="translate3" position="-16.00,9.00" prototype="corevector.translate">
                    <port name="translate" type="point" value="-8.00,4.00"/>
                </node>
                <node name="translate5" position="-11.00,15.00" prototype="corevector.translate">
                    <port name="translate" type="point" value="-8.00,3.00"/>
                </node>
                <conn input="textpath5.text" output="make_strings1"/>
                <conn input="colorize6.shape" output="textpath5"/>
                <conn input="translate1.shape" output="stack1"/>
                <conn input="colorize7.shape" output="ellipse1"/>
                <conn input="combine2.list1" output="color7"/>
                <conn input="combine2.list2" output="color8"/>
                <conn input="combine2.list3" output="color8"/>
                <conn input="colorize7.fill" output="combine2"/>
                <conn input="stack1.shapes" output="colorize6"/>
                <conn input="lookup1.list" output="translate1"/>
                <conn input="lookup2.list" output="translate1"/>
                <conn input="make_point1.x" output="lookup1"/>
                <conn input="make_point1.y" output="lookup2"/>
                <conn input="translate2.shape" output="colorize7"/>
                <conn input="translate2.translate" output="make_point1"/>
                <conn input="translate3.shape" output="translate2"/>
                <conn input="combine3.list1" output="translate3"/>
                <conn input="combine3.list7" output="translate1"/>
                <conn input="rotate1.shape" output="star1"/>
                <conn input="colorize2.shape" output="rotate1"/>
                <conn input="combine3.list2" output="translate5"/>
                <conn input="last2.list" output="translate3"/>
                <conn input="centroid1.shape" output="last2"/>
                <conn input="translate5.translate" output="centroid1"/>
                <conn input="translate5.shape" output="colorize2"/>
            </node>
            <node name="rect1" position="-20.00,15.00" prototype="corevector.rect">
                <port name="width" type="float" value="1520.0"/>
                <port name="height" type="float" value="1140.0"/>
            </node>
            <node name="textpath1" position="-15.00,15.00" prototype="corevector.textpath">
                <port name="text" type="string" value="Siskel &amp; Ebert's Top Ten Lists"/>
                <port name="font_size" type="float" value="74.0"/>
                <port name="position" type="point" value="0.00,-465.00"/>
            </node>
            <node name="textpath2" position="-12.00,15.00" prototype="corevector.textpath">
                <port name="text" type="string" value="Films Chosen by Both, 1969 - 1998"/>
                <port name="font_size" type="float" value="40.0"/>
                <port name="position" type="point" value="0.00,-407.00"/>
            </node>
            <node name="textpath3" position="3.00,15.00" prototype="corevector.textpath">
                <port name="text" type="string" value="Sources: http://www.innermind.com/misc/s_e_top.htm, https://en.wikipedia.org/wiki/Academy_Award_for_Best_Picture"/>
                <port name="font_size" type="float" value="9.0"/>
                <port name="align" type="string" value="RIGHT"/>
                <port name="position" type="point" value="728.00,545.00"/>
            </node>
            <node name="textpath4" position="0.00,15.00" prototype="corevector.textpath">
                <port name="text" type="string" value="Chart by John Cartan using NodeBox.  Some films were reviewed the year after they were nominated."/>
                <port name="font_size" type="float" value="9.0"/>
                <port name="align" type="string" value="LEFT"/>
                <port name="position" type="point" value="-728.00,545.00"/>
            </node>
            <conn input="colorize1.shape" output="textpath1"/>
            <conn input="colorize2.shape" output="textpath2"/>
            <conn input="colorize3.shape" output="textpath3"/>
            <conn input="combine1.list3" output="colorize2"/>
            <conn input="combine1.list2" output="colorize1"/>
            <conn input="colorize4.shape" output="textpath4"/>
            <conn input="colorize5.shape" output="rect1"/>
            <conn input="combine1.list1" output="colorize5"/>
            <conn input="combine1.list7" output="colorize3"/>
            <conn input="combine1.list6" output="colorize4"/>
            <conn input="combine1.list4" output="legend"/>
        </node>
        <node name="translate1" position="5.00,21.00" prototype="corevector.translate"/>
        <node name="translate2" position="-12.00,15.00" prototype="corevector.translate">
            <port name="translate" type="point" value="-684.00,-323.00"/>
        </node>
        <node name="translate3" position="-4.00,15.00" prototype="corevector.translate">
            <port name="translate" type="point" value="578.00,-323.00"/>
        </node>
        <node name="translate4" position="-15.00,15.00" prototype="corevector.translate">
            <port name="translate" type="point" value="-687.00,99.50"/>
        </node>
        <node name="translate5" position="-7.00,15.00" prototype="corevector.translate">
            <port name="translate" type="point" value="575.00,99.50"/>
        </node>
        <conn input="filter_data1.data" output="import_csv1"/>
        <conn input="filter_data2.data" output="import_csv1"/>
        <conn input="diff.listA" output="filter_data1"/>
        <conn input="diff.listB" output="filter_data2"/>
        <conn input="diff.key" output="string1"/>
        <conn input="lookup1.list" output="diff"/>
        <conn input="filter_data3.data" output="filter_data2"/>
        <conn input="filter_data3.value" output="lookup1"/>
        <conn input="lookup2.list" output="filter_data3"/>
        <conn input="add_column.csv_file" output="diff"/>
        <conn input="add_column.New Key" output="string2"/>
        <conn input="add_column.New Value" output="lookup2"/>
        <conn input="translate1.shape" output="make_grid"/>
        <conn input="translate1.translate" output="grid1"/>
        <conn input="combine1.list1" output="titles"/>
        <conn input="diff1.listA" output="filter_data1"/>
        <conn input="diff1.listB" output="filter_data2"/>
        <conn input="diff1.key" output="string1"/>
        <conn input="diff2.listA" output="filter_data1"/>
        <conn input="diff2.listB" output="filter_data2"/>
        <conn input="diff2.key" output="string1"/>
        <conn input="diff1.mode" output="number1"/>
        <conn input="diff2.mode" output="number2"/>
        <conn input="film_list.shape" output="diff1"/>
        <conn input="translate2.shape" output="film_list"/>
        <conn input="film_list.title" output="string3"/>
        <conn input="make_grid.data" output="add_column"/>
        <conn input="make_grid.year" output="range1"/>
        <conn input="translate3.shape" output="film_list1"/>
        <conn input="film_list1.shape" output="diff2"/>
        <conn input="film_list1.title" output="string4"/>
        <conn input="oscar_star.list" output="diff1"/>
        <conn input="translate4.shape" output="oscar_star"/>
        <conn input="combine1.list7" output="translate1"/>
        <conn input="combine1.list6" output="translate3"/>
        <conn input="combine1.list2" output="translate4"/>
        <conn input="combine1.list3" output="translate2"/>
        <conn input="translate5.shape" output="oscar_star1"/>
        <conn input="oscar_star1.list" output="diff2"/>
        <conn input="combine1.list5" output="translate5"/>
        <conn input="scale1.shape" output="combine1"/>
    </node>
</ndbx>
