{ name0 := surface( list( parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ), parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ) ), list( list( pt( 1.4, 2.25, 0.0 ), pt( 1.3375, 2.38125, 0.0 ), pt( 1.4375, 2.38125, 0.0 ), pt( 1.5, 2.25, 0.0 ) ), list( pt( 1.4, 2.25, 0.784 ), pt( 1.3375, 2.38125, 0.749 ), pt( 1.4375, 2.38125, 0.805 ), pt( 1.5, 2.25, 0.84 ) ), list( pt( 0.784, 2.25, 1.4 ), pt( 0.749, 2.38125, 1.3375 ), pt( 0.805, 2.38125, 1.4375 ), pt( 0.84, 2.25, 1.5 ) ), list( pt( 0.0, 2.25, 1.4 ), pt( 0.0, 2.38125, 1.3375 ), pt( 0.0, 2.38125, 1.4375 ), pt( 0.0, 2.25, 1.5 ) ) ) )$ setAttr( name0, 'name, "name0" )$ name1 := surface( list( parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ), parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ) ), list( list( pt( 0.0, 2.25, 1.4 ), pt( 0.0, 2.38125, 1.3375 ), pt( 0.0, 2.38125, 1.4375 ), pt( 0.0, 2.25, 1.5 ) ), list( pt( -0.784, 2.25, 1.4 ), pt( -0.749, 2.38125, 1.3375 ), pt( -0.805, 2.38125, 1.4375 ), pt( -0.84, 2.25, 1.5 ) ), list( pt( -1.4, 2.25, 0.784 ), pt( -1.3375, 2.38125, 0.749 ), pt( -1.4375, 2.38125, 0.805 ), pt( -1.5, 2.25, 0.84 ) ), list( pt( -1.4, 2.25, 0.0 ), pt( -1.3375, 2.38125, 0.0 ), pt( -1.4375, 2.38125, 0.0 ), pt( -1.5, 2.25, 0.0 ) ) ) )$ setAttr( name1, 'name, "name1" )$ name2 := surface( list( parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ), parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ) ), list( list( pt( -1.4, 2.25, 0.0 ), pt( -1.3375, 2.38125, 0.0 ), pt( -1.4375, 2.38125, 0.0 ), pt( -1.5, 2.25, 0.0 ) ), list( pt( -1.4, 2.25, -0.784 ), pt( -1.3375, 2.38125, -0.749 ), pt( -1.4375, 2.38125, -0.805 ), pt( -1.5, 2.25, -0.84 ) ), list( pt( -0.784, 2.25, -1.4 ), pt( -0.749, 2.38125, -1.3375 ), pt( -0.805, 2.38125, -1.4375 ), pt( -0.84, 2.25, -1.5 ) ), list( pt( 0.0, 2.25, -1.4 ), pt( 0.0, 2.38125, -1.3375 ), pt( 0.0, 2.38125, -1.4375 ), pt( 0.0, 2.25, -1.5 ) ) ) )$ setAttr( name2, 'name, "name2" )$ name3 := surface( list( parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ), parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ) ), list( list( pt( 0.0, 2.25, -1.4 ), pt( 0.0, 2.38125, -1.3375 ), pt( 0.0, 2.38125, -1.4375 ), pt( 0.0, 2.25, -1.5 ) ), list( pt( 0.784, 2.25, -1.4 ), pt( 0.749, 2.38125, -1.3375 ), pt( 0.805, 2.38125, -1.4375 ), pt( 0.84, 2.25, -1.5 ) ), list( pt( 1.4, 2.25, -0.784 ), pt( 1.3375, 2.38125, -0.749 ), pt( 1.4375, 2.38125, -0.805 ), pt( 1.5, 2.25, -0.84 ) ), list( pt( 1.4, 2.25, 0.0 ), pt( 1.3375, 2.38125, 0.0 ), pt( 1.4375, 2.38125, 0.0 ), pt( 1.5, 2.25, 0.0 ) ) ) )$ setAttr( name3, 'name, "name3" )$ name4 := surface( list( parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ), parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ) ), list( list( pt( 1.5, 2.25, 0.0 ), pt( 1.75, 1.725, 0.0 ), pt( 2, 1.2, 0.0 ), pt( 2, 0.75, 0.0 ) ), list( pt( 1.5, 2.25, 0.84 ), pt( 1.75, 1.725, 0.98 ), pt( 2, 1.2, 1.12 ), pt( 2, 0.75, 1.12 ) ), list( pt( 0.84, 2.25, 1.5 ), pt( 0.98, 1.725, 1.75 ), pt( 1.12, 1.2, 2 ), pt( 1.12, 0.75, 2 ) ), list( pt( 0.0, 2.25, 1.5 ), pt( 0.0, 1.725, 1.75 ), pt( 0.0, 1.2, 2 ), pt( 0.0, 0.75, 2 ) ) ) )$ setAttr( name4, 'name, "name4" )$ name5 := surface( list( parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ), parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ) ), list( list( pt( 0.0, 2.25, 1.5 ), pt( 0.0, 1.725, 1.75 ), pt( 0.0, 1.2, 2 ), pt( 0.0, 0.75, 2 ) ), list( pt( -0.84, 2.25, 1.5 ), pt( -0.98, 1.725, 1.75 ), pt( -1.12, 1.2, 2 ), pt( -1.12, 0.75, 2 ) ), list( pt( -1.5, 2.25, 0.84 ), pt( -1.75, 1.725, 0.98 ), pt( -2, 1.2, 1.12 ), pt( -2, 0.75, 1.12 ) ), list( pt( -1.5, 2.25, 0.0 ), pt( -1.75, 1.725, 0.0 ), pt( -2, 1.2, 0.0 ), pt( -2, 0.75, 0.0 ) ) ) )$ setAttr( name5, 'name, "name5" )$ name6 := surface( list( parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ), parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ) ), list( list( pt( -1.5, 2.25, 0.0 ), pt( -1.75, 1.725, 0.0 ), pt( -2, 1.2, 0.0 ), pt( -2, 0.75, 0.0 ) ), list( pt( -1.5, 2.25, -0.84 ), pt( -1.75, 1.725, -0.98 ), pt( -2, 1.2, -1.12 ), pt( -2, 0.75, -1.12 ) ), list( pt( -0.84, 2.25, -1.5 ), pt( -0.98, 1.725, -1.75 ), pt( -1.12, 1.2, -2 ), pt( -1.12, 0.75, -2 ) ), list( pt( 0.0, 2.25, -1.5 ), pt( 0.0, 1.725, -1.75 ), pt( 0.0, 1.2, -2 ), pt( 0.0, 0.75, -2 ) ) ) )$ setAttr( name6, 'name, "name6" )$ name7 := surface( list( parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ), parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ) ), list( list( pt( 0.0, 2.25, -1.5 ), pt( 0.0, 1.725, -1.75 ), pt( 0.0, 1.2, -2 ), pt( 0.0, 0.75, -2 ) ), list( pt( 0.84, 2.25, -1.5 ), pt( 0.98, 1.725, -1.75 ), pt( 1.12, 1.2, -2 ), pt( 1.12, 0.75, -2 ) ), list( pt( 1.5, 2.25, -0.84 ), pt( 1.75, 1.725, -0.98 ), pt( 2, 1.2, -1.12 ), pt( 2, 0.75, -1.12 ) ), list( pt( 1.5, 2.25, 0.0 ), pt( 1.75, 1.725, 0.0 ), pt( 2, 1.2, 0.0 ), pt( 2, 0.75, 0.0 ) ) ) )$ setAttr( name7, 'name, "name7" )$ name8 := surface( list( parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ), parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ) ), list( list( pt( 2, 0.75, 0.0 ), pt( 2, 0.3, 0.0 ), pt( 1.5, 0.075, 0.0 ), pt( 1.5, 0.0, 0.0 ) ), list( pt( 2, 0.75, 1.12 ), pt( 2, 0.3, 1.12 ), pt( 1.5, 0.075, 0.84 ), pt( 1.5, 0.0, 0.84 ) ), list( pt( 1.12, 0.75, 2 ), pt( 1.12, 0.3, 2 ), pt( 0.84, 0.075, 1.5 ), pt( 0.84, 0.0, 1.5 ) ), list( pt( 0.0, 0.75, 2 ), pt( 0.0, 0.3, 2 ), pt( 0.0, 0.075, 1.5 ), pt( 0.0, 0.0, 1.5 ) ) ) )$ setAttr( name8, 'name, "name8" )$ name9 := surface( list( parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ), parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ) ), list( list( pt( 0.0, 0.75, 2 ), pt( 0.0, 0.3, 2 ), pt( 0.0, 0.075, 1.5 ), pt( 0.0, 0.0, 1.5 ) ), list( pt( -1.12, 0.75, 2 ), pt( -1.12, 0.3, 2 ), pt( -0.84, 0.075, 1.5 ), pt( -0.84, 0.0, 1.5 ) ), list( pt( -2, 0.75, 1.12 ), pt( -2, 0.3, 1.12 ), pt( -1.5, 0.075, 0.84 ), pt( -1.5, 0.0, 0.84 ) ), list( pt( -2, 0.75, 0.0 ), pt( -2, 0.3, 0.0 ), pt( -1.5, 0.075, 0.0 ), pt( -1.5, 0.0, 0.0 ) ) ) )$ setAttr( name9, 'name, "name9" )$ name10 := surface( list( parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ), parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ) ), list( list( pt( -2, 0.75, 0.0 ), pt( -2, 0.3, 0.0 ), pt( -1.5, 0.075, 0.0 ), pt( -1.5, 0.0, 0.0 ) ), list( pt( -2, 0.75, -1.12 ), pt( -2, 0.3, -1.12 ), pt( -1.5, 0.075, -0.84 ), pt( -1.5, 0.0, -0.84 ) ), list( pt( -1.12, 0.75, -2 ), pt( -1.12, 0.3, -2 ), pt( -0.84, 0.075, -1.5 ), pt( -0.84, 0.0, -1.5 ) ), list( pt( 0.0, 0.75, -2 ), pt( 0.0, 0.3, -2 ), pt( 0.0, 0.075, -1.5 ), pt( 0.0, 0.0, -1.5 ) ) ) )$ setAttr( name10, 'name, "name10" )$ name11 := surface( list( parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ), parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ) ), list( list( pt( 0.0, 0.75, -2 ), pt( 0.0, 0.3, -2 ), pt( 0.0, 0.075, -1.5 ), pt( 0.0, 0.0, -1.5 ) ), list( pt( 1.12, 0.75, -2 ), pt( 1.12, 0.3, -2 ), pt( 0.84, 0.075, -1.5 ), pt( 0.84, 0.0, -1.5 ) ), list( pt( 2, 0.75, -1.12 ), pt( 2, 0.3, -1.12 ), pt( 1.5, 0.075, -0.84 ), pt( 1.5, 0.0, -0.84 ) ), list( pt( 2, 0.75, 0.0 ), pt( 2, 0.3, 0.0 ), pt( 1.5, 0.075, 0.0 ), pt( 1.5, 0.0, 0.0 ) ) ) )$ setAttr( name11, 'name, "name11" )$ name12 := surface( list( parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ), parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ) ), list( list( pt( -1.6, 1.875, 0.0 ), pt( -2.3, 1.875, 0.0 ), pt( -2.7, 1.875, 0.0 ), pt( -2.7, 1.65, 0.0 ) ), list( pt( -1.6, 1.875, 0.3 ), pt( -2.3, 1.875, 0.3 ), pt( -2.7, 1.875, 0.3 ), pt( -2.7, 1.65, 0.3 ) ), list( pt( -1.5, 2.1, 0.3 ), pt( -2.5, 2.1, 0.3 ), pt( -3, 2.1, 0.3 ), pt( -3, 1.65, 0.3 ) ), list( pt( -1.5, 2.1, 0.0 ), pt( -2.5, 2.1, 0.0 ), pt( -3, 2.1, 0.0 ), pt( -3, 1.65, 0.0 ) ) ) )$ setAttr( name12, 'name, "name12" )$ name13 := surface( list( parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ), parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ) ), list( list( pt( -1.5, 2.1, 0.0 ), pt( -2.5, 2.1, 0.0 ), pt( -3, 2.1, 0.0 ), pt( -3, 1.65, 0.0 ) ), list( pt( -1.5, 2.1, -0.3 ), pt( -2.5, 2.1, -0.3 ), pt( -3, 2.1, -0.3 ), pt( -3, 1.65, -0.3 ) ), list( pt( -1.6, 1.875, -0.3 ), pt( -2.3, 1.875, -0.3 ), pt( -2.7, 1.875, -0.3 ), pt( -2.7, 1.65, -0.3 ) ), list( pt( -1.6, 1.875, 0.0 ), pt( -2.3, 1.875, 0.0 ), pt( -2.7, 1.875, 0.0 ), pt( -2.7, 1.65, 0.0 ) ) ) )$ setAttr( name13, 'name, "name13" )$ name14 := surface( list( parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ), parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ) ), list( list( pt( -2.7, 1.65, 0.0 ), pt( -2.7, 1.425, 0.0 ), pt( -2.5, 0.975, 0.0 ), pt( -2, 0.75, 0.0 ) ), list( pt( -2.7, 1.65, 0.3 ), pt( -2.7, 1.425, 0.3 ), pt( -2.5, 0.975, 0.3 ), pt( -2, 0.75, 0.3 ) ), list( pt( -3, 1.65, 0.3 ), pt( -3, 1.2, 0.3 ), pt( -2.65, 0.7875, 0.3 ), pt( -1.9, 0.45, 0.3 ) ), list( pt( -3, 1.65, 0.0 ), pt( -3, 1.2, 0.0 ), pt( -2.65, 0.7875, 0.0 ), pt( -1.9, 0.45, 0.0 ) ) ) )$ setAttr( name14, 'name, "name14" )$ name15 := surface( list( parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ), parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ) ), list( list( pt( -3, 1.65, 0.0 ), pt( -3, 1.2, 0.0 ), pt( -2.65, 0.7875, 0.0 ), pt( -1.9, 0.45, 0.0 ) ), list( pt( -3, 1.65, -0.3 ), pt( -3, 1.2, -0.3 ), pt( -2.65, 0.7875, -0.3 ), pt( -1.9, 0.45, -0.3 ) ), list( pt( -2.7, 1.65, -0.3 ), pt( -2.7, 1.425, -0.3 ), pt( -2.5, 0.975, -0.3 ), pt( -2, 0.75, -0.3 ) ), list( pt( -2.7, 1.65, 0.0 ), pt( -2.7, 1.425, 0.0 ), pt( -2.5, 0.975, 0.0 ), pt( -2, 0.75, 0.0 ) ) ) )$ setAttr( name15, 'name, "name15" )$ name16 := surface( list( parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ), parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ) ), list( list( pt( 1.7, 1.275, 0.0 ), pt( 2.6, 1.275, 0.0 ), pt( 2.3, 1.95, 0.0 ), pt( 2.7, 2.25, 0.0 ) ), list( pt( 1.7, 1.275, 0.66 ), pt( 2.6, 1.275, 0.66 ), pt( 2.3, 1.95, 0.25 ), pt( 2.7, 2.25, 0.25 ) ), list( pt( 1.7, 0.45, 0.66 ), pt( 3.1, 0.675, 0.66 ), pt( 2.4, 1.875, 0.25 ), pt( 3.3, 2.25, 0.25 ) ), list( pt( 1.7, 0.45, 0.0 ), pt( 3.1, 0.675, 0.0 ), pt( 2.4, 1.875, 0.0 ), pt( 3.3, 2.25, 0.0 ) ) ) )$ setAttr( name16, 'name, "name16" )$ name17 := surface( list( parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ), parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ) ), list( list( pt( 1.7, 0.45, 0.0 ), pt( 3.1, 0.675, 0.0 ), pt( 2.4, 1.875, 0.0 ), pt( 3.3, 2.25, 0.0 ) ), list( pt( 1.7, 0.45, -0.66 ), pt( 3.1, 0.675, -0.66 ), pt( 2.4, 1.875, -0.25 ), pt( 3.3, 2.25, -0.25 ) ), list( pt( 1.7, 1.275, -0.66 ), pt( 2.6, 1.275, -0.66 ), pt( 2.3, 1.95, -0.25 ), pt( 2.7, 2.25, -0.25 ) ), list( pt( 1.7, 1.275, 0.0 ), pt( 2.6, 1.275, 0.0 ), pt( 2.3, 1.95, 0.0 ), pt( 2.7, 2.25, 0.0 ) ) ) )$ setAttr( name17, 'name, "name17" )$ name18 := surface( list( parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ), parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ) ), list( list( pt( 2.7, 2.25, 0.0 ), pt( 2.8, 2.325, 0.0 ), pt( 2.9, 2.325, 0.0 ), pt( 2.8, 2.25, 0.0 ) ), list( pt( 2.7, 2.25, 0.25 ), pt( 2.8, 2.325, 0.25 ), pt( 2.9, 2.325, 0.15 ), pt( 2.8, 2.25, 0.15 ) ), list( pt( 3.3, 2.25, 0.25 ), pt( 3.525, 2.34375, 0.25 ), pt( 3.45, 2.3625, 0.15 ), pt( 3.2, 2.25, 0.15 ) ), list( pt( 3.3, 2.25, 0.0 ), pt( 3.525, 2.34375, 0.0 ), pt( 3.45, 2.3625, 0.0 ), pt( 3.2, 2.25, 0.0 ) ) ) )$ setAttr( name18, 'name, "name18" )$ name19 := surface( list( parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ), parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ) ), list( list( pt( 3.3, 2.25, 0.0 ), pt( 3.525, 2.34375, 0.0 ), pt( 3.45, 2.3625, 0.0 ), pt( 3.2, 2.25, 0.0 ) ), list( pt( 3.3, 2.25, -0.25 ), pt( 3.525, 2.34375, -0.25 ), pt( 3.45, 2.3625, -0.15 ), pt( 3.2, 2.25, -0.15 ) ), list( pt( 2.7, 2.25, -0.25 ), pt( 2.8, 2.325, -0.25 ), pt( 2.9, 2.325, -0.15 ), pt( 2.8, 2.25, -0.15 ) ), list( pt( 2.7, 2.25, 0.0 ), pt( 2.8, 2.325, 0.0 ), pt( 2.9, 2.325, 0.0 ), pt( 2.8, 2.25, 0.0 ) ) ) )$ setAttr( name19, 'name, "name19" )$ name20 := surface( list( parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ), parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ) ), list( list( pt( 0.01, 3, 0.0 ), pt( 0.8, 3, 0.0 ), pt( 0.0, 2.7, 0.0 ), pt( 0.2, 2.55, 0.0 ) ), list( pt( 0.0, 3, 0.01 ), pt( 0.8, 3, 0.45 ), pt( 0.0, 2.7, 0.0 ), pt( 0.2, 2.55, 0.112 ) ), list( pt( 0.01, 3, 0.0 ), pt( 0.45, 3, 0.8 ), pt( 0.0, 2.7, 0.0 ), pt( 0.112, 2.55, 0.2 ) ), list( pt( 0.0, 3, 0.01 ), pt( 0.0, 3, 0.8 ), pt( 0.0, 2.7, 0.0 ), pt( 0.0, 2.55, 0.2 ) ) ) )$ setAttr( name20, 'name, "name20" )$ name21 := surface( list( parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ), parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ) ), list( list( pt( 0.0, 3, 0.01 ), pt( 0.0, 3, 0.8 ), pt( 0.0, 2.7, 0.0 ), pt( 0.0, 2.55, 0.2 ) ), list( pt( -0.01, 3, 0.0 ), pt( -0.45, 3, 0.8 ), pt( 0.0, 2.7, 0.0 ), pt( -0.112, 2.55, 0.2 ) ), list( pt( 0.0, 3, 0.01 ), pt( -0.8, 3, 0.45 ), pt( 0.0, 2.7, 0.0 ), pt( -0.2, 2.55, 0.112 ) ), list( pt( -0.01, 3, 0.0 ), pt( -0.8, 3, 0.0 ), pt( 0.0, 2.7, 0.0 ), pt( -0.2, 2.55, 0.0 ) ) ) )$ setAttr( name21, 'name, "name21" )$ name22 := surface( list( parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ), parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ) ), list( list( pt( -0.01, 3, 0.0 ), pt( -0.8, 3, 0.0 ), pt( 0.0, 2.7, 0.0 ), pt( -0.2, 2.55, 0.0 ) ), list( pt( 0.0, 3, -0.01 ), pt( -0.8, 3, -0.45 ), pt( 0.0, 2.7, 0.0 ), pt( -0.2, 2.55, -0.112 ) ), list( pt( -0.01, 3, 0.0 ), pt( -0.45, 3, -0.8 ), pt( 0.0, 2.7, 0.0 ), pt( -0.112, 2.55, -0.2 ) ), list( pt( 0.0, 3, -0.01 ), pt( 0.0, 3, -0.8 ), pt( 0.0, 2.7, 0.0 ), pt( 0.0, 2.55, -0.2 ) ) ) )$ setAttr( name22, 'name, "name22" )$ name23 := surface( list( parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ), parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ) ), list( list( pt( 0.0, 3, -0.01 ), pt( 0.0, 3, -0.8 ), pt( 0.0, 2.7, 0.0 ), pt( 0.0, 2.55, -0.2 ) ), list( pt( 0.01, 3, 0.0 ), pt( 0.45, 3, -0.8 ), pt( 0.0, 2.7, 0.0 ), pt( 0.112, 2.55, -0.2 ) ), list( pt( 0.0, 3, -0.01 ), pt( 0.8, 3, -0.45 ), pt( 0.0, 2.7, 0.0 ), pt( 0.2, 2.55, -0.112 ) ), list( pt( 0.01, 3, 0.0 ), pt( 0.8, 3, 0.0 ), pt( 0.0, 2.7, 0.0 ), pt( 0.2, 2.55, 0.0 ) ) ) )$ setAttr( name23, 'name, "name23" )$ name24 := surface( list( parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ), parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ) ), list( list( pt( 0.2, 2.55, 0.0 ), pt( 0.4, 2.4, 0.0 ), pt( 1.3, 2.4, 0.0 ), pt( 1.3, 2.25, 0.0 ) ), list( pt( 0.2, 2.55, 0.112 ), pt( 0.4, 2.4, 0.224 ), pt( 1.3, 2.4, 0.728 ), pt( 1.3, 2.25, 0.728 ) ), list( pt( 0.112, 2.55, 0.2 ), pt( 0.224, 2.4, 0.4 ), pt( 0.728, 2.4, 1.3 ), pt( 0.728, 2.25, 1.3 ) ), list( pt( 0.0, 2.55, 0.2 ), pt( 0.0, 2.4, 0.4 ), pt( 0.0, 2.4, 1.3 ), pt( 0.0, 2.25, 1.3 ) ) ) )$ setAttr( name24, 'name, "name24" )$ name25 := surface( list( parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ), parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ) ), list( list( pt( 0.0, 2.55, 0.2 ), pt( 0.0, 2.4, 0.4 ), pt( 0.0, 2.4, 1.3 ), pt( 0.0, 2.25, 1.3 ) ), list( pt( -0.112, 2.55, 0.2 ), pt( -0.224, 2.4, 0.4 ), pt( -0.728, 2.4, 1.3 ), pt( -0.728, 2.25, 1.3 ) ), list( pt( -0.2, 2.55, 0.112 ), pt( -0.4, 2.4, 0.224 ), pt( -1.3, 2.4, 0.728 ), pt( -1.3, 2.25, 0.728 ) ), list( pt( -0.2, 2.55, 0.0 ), pt( -0.4, 2.4, 0.0 ), pt( -1.3, 2.4, 0.0 ), pt( -1.3, 2.25, 0.0 ) ) ) )$ setAttr( name25, 'name, "name25" )$ name26 := surface( list( parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ), parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ) ), list( list( pt( -0.2, 2.55, 0.0 ), pt( -0.4, 2.4, 0.0 ), pt( -1.3, 2.4, 0.0 ), pt( -1.3, 2.25, 0.0 ) ), list( pt( -0.2, 2.55, -0.112 ), pt( -0.4, 2.4, -0.224 ), pt( -1.3, 2.4, -0.728 ), pt( -1.3, 2.25, -0.728 ) ), list( pt( -0.112, 2.55, -0.2 ), pt( -0.224, 2.4, -0.4 ), pt( -0.728, 2.4, -1.3 ), pt( -0.728, 2.25, -1.3 ) ), list( pt( 0.0, 2.55, -0.2 ), pt( 0.0, 2.4, -0.4 ), pt( 0.0, 2.4, -1.3 ), pt( 0.0, 2.25, -1.3 ) ) ) )$ setAttr( name26, 'name, "name26" )$ name27 := surface( list( parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ), parminfo( 4, ec_open, list( 0.0, 0.0, 0.0, 0.0, 1, 1, 1, 1 ) ) ), list( list( pt( 0.0, 2.55, -0.2 ), pt( 0.0, 2.4, -0.4 ), pt( 0.0, 2.4, -1.3 ), pt( 0.0, 2.25, -1.3 ) ), list( pt( 0.112, 2.55, -0.2 ), pt( 0.224, 2.4, -0.4 ), pt( 0.728, 2.4, -1.3 ), pt( 0.728, 2.25, -1.3 ) ), list( pt( 0.2, 2.55, -0.112 ), pt( 0.4, 2.4, -0.224 ), pt( 1.3, 2.4, -0.728 ), pt( 1.3, 2.25, -0.728 ) ), list( pt( 0.2, 2.55, 0.0 ), pt( 0.4, 2.4, 0.0 ), pt( 1.3, 2.4, 0.0 ), pt( 1.3, 2.25, 0.0 ) ) ) )$ setAttr( name27, 'name, "name27" )$ }$ newknotsu := list( 0.2, 0.4, 0.6, 0.8 ); newknotsv := list( 0.2, 0.4, 0.6, 0.8 ); { new0 := sRefine( name0, ROW, newknotsu, T )$ new0a := sRefine( new0, COL, newknotsv, T )$ new1 := sRefine( name1, ROW, newknotsu, T )$ new1a := sRefine( new1, COL, newknotsv, T )$ new2 := sRefine( name2, ROW, newknotsu, T )$ new2a := sRefine( new2, COL, newknotsv, T )$ new3 := sRefine( name3, ROW, newknotsu, T )$ new3a := sRefine( new3, COL, newknotsv, T )$ new4 := sRefine( name4, ROW, newknotsu, T )$ new4a := sRefine( new4, COL, newknotsv, T )$ new5 := sRefine( name5, ROW, newknotsu, T )$ new5a := sRefine( new5, COL, newknotsv, T )$ new6 := sRefine( name6, ROW, newknotsu, T )$ new6a := sRefine( new6, COL, newknotsv, T )$ new7 := sRefine( name7, ROW, newknotsu, T )$ new7a := sRefine( new7, COL, newknotsv, T )$ new8 := sRefine( name8, ROW, newknotsu, T )$ new8a := sRefine( new8, COL, newknotsv, T )$ new9 := sRefine( name9, ROW, newknotsu, T )$ new9a := sRefine( new9, COL, newknotsv, T )$ new10 := sRefine( name10, ROW, newknotsu, T )$ new10a := sRefine( new10, COL, newknotsv, T )$ new11 := sRefine( name11, ROW, newknotsu, T )$ new11a := sRefine( new11, COL, newknotsv, T )$ new12 := sRefine( name12, ROW, newknotsu, T )$ new12a := sRefine( new12, COL, newknotsv, T )$ new13 := sRefine( name13, ROW, newknotsu, T )$ new13a := sRefine( new13, COL, newknotsv, T )$ new14 := sRefine( name14, ROW, newknotsu, T )$ new14a := sRefine( new14, COL, newknotsv, T )$ new15 := sRefine( name15, ROW, newknotsu, T )$ new15a := sRefine( new15, COL, newknotsv, T )$ new16 := sRefine( name16, ROW, newknotsu, T )$ new16a := sRefine( new16, COL, newknotsv, T )$ new17 := sRefine( name17, ROW, newknotsu, T )$ new17a := sRefine( new17, COL, newknotsv, T )$ new18 := sRefine( name18, ROW, newknotsu, T )$ new18a := sRefine( new18, COL, newknotsv, T )$ new19 := sRefine( name19, ROW, newknotsu, T )$ new19a := sRefine( new19, COL, newknotsv, T )$ new20 := sRefine( name20, ROW, newknotsu, T )$ new20a := sRefine( new20, COL, newknotsv, T )$ new21 := sRefine( name21, ROW, newknotsu, T )$ new21a := sRefine( new21, COL, newknotsv, T )$ new22 := sRefine( name22, ROW, newknotsu, T )$ new22a := sRefine( new22, COL, newknotsv, T )$ new23 := sRefine( name23, ROW, newknotsu, T )$ new23a := sRefine( new23, COL, newknotsv, T )$ new24 := sRefine( name24, ROW, newknotsu, T )$ new24a := sRefine( new24, COL, newknotsv, T )$ new25 := sRefine( name25, ROW, newknotsu, T )$ new25a := sRefine( new25, COL, newknotsv, T )$ new26 := sRefine( name26, ROW, newknotsu, T )$ new26a := sRefine( new26, COL, newknotsv, T )$ new27 := sRefine( name27, ROW, newknotsu, T )$ new27a := sRefine( new27, COL, newknotsv, T )$ }$ dumpa1file( list( new0a, new1a, new2a, new3a, new4a, new5a, new6a, new7a, new8a, new9a, new10a, new11a, new12a, new13a, new14a, new15a, new16a, new17a, new18a, new19a, new20a, new21a, new22a, new23a, new24a, new25a, new26a, new27a ), "teapot.refined.a1.Z" )$ { procrv0 := profile( crvInSrf( name0, ROW, 0.0 ), crvInSrf( name4, ROW, 0.0 ), crvInSrf( name8, ROW, 0.0 ) )$ procrv1 := reverseCrv( curve( parmInfo( cubic, ec_open, kv_uniform ), list( pt( 1.4, 2.25, 0 ), pt( 1.3, 2.25, 0 ), pt( 1.1, 2.25, 0 ), pt( 1.4, 2.2, 0 ), pt( 2.1, 0.5, 0 ), pt( 1.4, 0.2, 0 ), pt( 1.3, 0.15, 0 ), pt( 1.1, 0.15, 0 ) ) ) )$ procrv0b := cReduce( profile( procrv1, procrv0 ), 0.001 )$ teapot_out := srfOfRevolution( YAxis, procrv0b, T, T )$ procrv2 := profile( crvInSrf( name20, ROW, 0.0 ), crvInSrf( name24, ROW, 0.0 ) )$ procrv3 := curve( parmInfo( cubic, ec_open, kv_uniform ), list( pt( 1.3, 2.25, 0 ), pt( 1.2, 2.25, 0 ), pt( 1.18, 2.25, 0 ), pt( 1.15, 2.15, 0 ), pt( 1.1, 2.2, 0 ), pt( 1.0, 2.32, 0 ), pt( 0.5, 2.35, 0 ), pt( 0.0, 2.45, 0 ), pt( 0.1, 2.8, 0 ) ) )$ procrv1b := cReduce( profile( procrv2, procrv3 ), 0.001 )$ teapot_lid := srfOfRevolution( YAxis, procrv1b, T, T )$ cap12 := shell( name12 )$ addSrfToShell( name13, cap12 )$ addSrfToShell( name14, cap12 )$ addSrfToShell( name15, cap12 )$ mkAdjacentFull( name12, 'TOP, name13, 'BOTTOM )$ mkAdjacentFull( name12, 'BOTTOM, name13, 'TOP )$ mkAdjacentFull( name12, 'RIGHT, name14, 'LEFT )$ mkAdjacentFull( name13, 'RIGHT, name15, 'LEFT )$ mkAdjacentFull( name14, 'TOP, name15, 'BOTTOM )$ mkAdjacentFull( name14, 'BOTTOM, name15, 'TOP )$ teapot1 := combineShells( teapot_out, '+, cap12 )$ dumpA1File( teapot1, "teapot1.a1.Z" )$ dumpA1File( teapot_lid, "tp2.a1.Z" )$ spoutsrf1 := ruledSrf( getBoundary( new16a, 'LEFT ), reverseCrv( getBoundary( new17a, 'LEFT ) ), nil, nil )$ spoutsrf2 := ruledSrf( reverseCrv( getBoundary( new16a, 'RIGHT ) ), getBoundary( new17a, 'RIGHT ), nil, nil )$ spout1 := shell( new16a )$ addSrfToShell( new17a, spout1 )$ addSrfToShell( spoutsrf1, spout1 )$ addSrfToShell( spoutsrf2, spout1 )$ spout1a := autoMkAdjacentShell( spout1 )$ dumpA1File( spout1a, "teapot2.a1.Z" )$ spoutsrf3 := ruledSrf( getBoundary( new18a, 'LEFT ), getBoundary( new18a, 'RIGHT ), nil, nil )$ spoutsrf4 := ruledSrf( getBoundary( new19a, 'LEFT ), getBoundary( new19a, 'RIGHT ), nil, nil )$ spout2 := shell( new18a )$ addSrfToShell( new19a, spout2 )$ addSrfToShell( spoutsrf3, spout2 )$ addSrfToShell( spoutsrf4, spout2 )$ mkAdjacentFull( new18a, 'BOTTOM, new19a, 'TOP )$ mkAdjacentFull( new18a, 'TOP, new19a, 'BOTTOM )$ mkAdjacentFull( new18a, 'LEFT, spoutsrf3, 'TOP )$ mkAdjacentFull( new18a, 'RIGHT, spoutsrf3, 'BOTTOM )$ mkAdjacentFull( new19a, 'LEFT, spoutsrf4, 'TOP )$ mkAdjacentFull( new19a, 'RIGHT, spoutsrf4, 'BOTTOM )$ mkAdjacentFull( spoutsrf3, 'LEFT, spoutsrf4, 'RIGHT )$ mkAdjacentFull( spoutsrf3, 'RIGHT, spoutsrf4, 'LEFT )$ dumpA1File( objTransform( spout2, ty( -0.0001 ) ), "teapot3.a1.Z" )$ lcrv2 := curve( parmInfo( cubic, ec_open, kv_uniform ), list( pt( 3.5, 2.5, 0 ), pt( 3.15, 2.4, 0 ), pt( 2.82, 2.1, 0 ), pt( 2.7, 2.0, 0 ), pt( 2.57, 1.5, 0 ), pt( 2.4, 1.2, 0 ), pt( 2.12, 0.85, 0 ), pt( 1.5, 0.88, 0 ) ) )$ lcross0 := objTransform( crvFromCircle( circleCtrRad( pt( 0, 0, 0 ), 0.11 ) ), sy( 1 ) )$ lcross1 := objTransform( crvFromCircle( circleCtrRad( pt( 0, 0, 0 ), 0.12 ) ), sy( 1.2 ) )$ lcross2 := objTransform( crvFromCircle( circleCtrRad( pt( 0, 0, 0 ), 0.39 ) ), sy( 1.3 ) )$ lcross3 := objTransform( crvFromCircle( circleCtrRad( pt( 0, 0, 0 ), 0.52 ) ), sy( 1.3 ) )$ hole := generalSweep( lcrv2, list( list( lcross0, 0 ), list( lcross1, 4.6 ), list( lcross2, 4.8 ), list( lcross3, 4.85 ) ), nil, nil, nil, T, T )$ dumpA1File( hole, "teapot4.a1.Z" )$ }$ #run set_op teapot1 + teapot2 + teapot3 - teapot4... #set triangular approx ON!!!