
(object Petal
    version    	50
    _written   	"Rose 8.3.0407.2800"
    charSet    	0)

(object Class_Category "moduleCore"
    is_unit    	TRUE
    is_loaded  	TRUE
    attributes 	(list Attribute_Set
	(object Attribute
	    tool       	"Ecore"
	    name       	"basePackage"
	    value      	(value Text "org.eclipse.wst.common"))
	(object Attribute
	    tool       	"Ecore"
	    name       	"prefix"
	    value      	(value Text "ModuleCore"))
	(object Attribute
	    tool       	"Ecore"
	    name       	"nsURI"
	    value      	(value Text "modulecore.xmi")))
    quid       	"3A0DB68B0046"
    visible_categories 	(list visibility_relationship_list
	(object Visibility_Relationship
	    quid       	"3F2E8236025A"
	    supplier   	"Logical View::ejbext"
	    quidu      	"39AA86660190")
	(object Visibility_Relationship
	    quid       	"3F2E8236025B"
	    supplier   	"Logical View::webappext"
	    quidu      	"39B534FD024C")
	(object Visibility_Relationship
	    quid       	"3F2E8236025C"
	    supplier   	"Logical View::ejbbnd"
	    quidu      	"39B960FC03CA")
	(object Visibility_Relationship
	    quid       	"3F2E82360264"
	    supplier   	"Logical View::webappbnd"
	    quidu      	"39B961060107")
	(object Visibility_Relationship
	    quid       	"3F2E82360265"
	    supplier   	"Logical View::clientbnd"
	    quidu      	"39B9614F031F")
	(object Visibility_Relationship
	    quid       	"3F2E82360266"
	    supplier   	"Logical View::applicationext"
	    quidu      	"3A22E6080303")
	(object Visibility_Relationship
	    quid       	"3F2E82360267"
	    supplier   	"Logical View::applicationbnd"
	    quidu      	"39B9611502A4")
	(object Visibility_Relationship
	    quid       	"3F2E82360268"
	    supplier   	"Logical View::j2cbnd"
	    quidu      	"39B9632E038C"))
    exportControl 	"Public"
    logical_models 	(list unit_reference_list
	(object Class "DeployScheme"
	    quid       	"41E3DF4E0318"
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "type"
		    quid       	"41E3DF790053"
		    type       	"String"
		    exportControl 	"Public")
		(object ClassAttribute "serverTarget"
		    quid       	"41E3DF820313"
		    type       	"String"
		    exportControl 	"Public")))
	(object Class "WorkbenchModule"
	    quid       	"41E3DF5801FA"
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "handle"
		    quid       	"41EC1D71015D"
		    type       	"URI"
		    quidu      	"41EC26DA027A"
		    exportControl 	"Public")
		(object ClassAttribute "deployedPath"
		    quid       	"41F6C5530120"
		    type       	"URI"
		    quidu      	"41EC26DA027A"
		    exportControl 	"Public")))
	(object Class "WorkbenchModuleResource"
	    quid       	"41E3DF670039"
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "sourcePath"
		    quid       	"41E3DF970128"
		    type       	"URI"
		    quidu      	"41EC26DA027A"
		    exportControl 	"Public")
		(object ClassAttribute "deployedPath"
		    quid       	"41EEC640025B"
		    type       	"URI"
		    quidu      	"41EC26DA027A"
		    exportControl 	"Public")
		(object ClassAttribute "exclusions"
		    quid       	"41E3DF9E011E"
		    stereotype 	"0..*"
		    type       	"URI"
		    quidu      	"41EC26DA027A"
		    exportControl 	"Public")))
	(object Class "WorkbenchApplication"
	    quid       	"41E3E40B0272"
	    superclasses 	(list inheritance_relationship_list
		(object Inheritance_Relationship
		    quid       	"41F7C768026B"
		    supplier   	"Logical View::moduleCore::WorkbenchModule"
		    quidu      	"41E3DF5801FA")))
	(object Class "IModuleType"
	    quid       	"41EC1D5103E2"
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "root"
		    quid       	"41EC1DCE00A3"
		    stereotype 	"0..1"
		    type       	"URI"
		    quidu      	"41EC26DA027A"
		    exportControl 	"Public")
		(object ClassAttribute "metadataResources"
		    quid       	"41EC1DF0021E"
		    stereotype 	"0..*"
		    type       	"URI"
		    quidu      	"41EC26DA027A"
		    exportControl 	"Public")
		(object ClassAttribute "typeName"
		    quid       	"41EC21340357"
		    type       	"String"
		    exportControl 	"Public")))
	(object Class "URI"
	    quid       	"41EC26DA027A"
	    stereotype 	"datatype"
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "org.eclipse.emf.common.util.URI"
		    quid       	"41EC270803AC"
		    stereotype 	"javaclass"
		    exportControl 	"Public")))
	(object Class "ProjectModules"
	    quid       	"41F566DB0251"
	    class_attributes 	(list class_attribute_list
		(object ClassAttribute "projectName"
		    quid       	"41F567FD023A"
		    type       	"String"
		    exportControl 	"Public")))
	(object Class "DeployedModule"
	    quid       	"41F6C24B023D")
	(object Association "$UNNAMED$0"
	    quid       	"41E3E10203BF"
	    roles      	(list role_list
		(object Role "modules"
		    quid       	"41E3E10602D5"
		    label      	"modules"
		    supplier   	"Logical View::moduleCore::WorkbenchModule"
		    quidu      	"41E3DF5801FA"
		    client_cardinality 	(value cardinality "0..*")
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$1"
		    quid       	"41E3E10602D7"
		    supplier   	"Logical View::moduleCore::WorkbenchModule"
		    quidu      	"41E3DF5801FA"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$2"
	    quid       	"41E3E14B01E3"
	    roles      	(list role_list
		(object Role "resources"
		    quid       	"41E3E14D031D"
		    label      	"resources"
		    supplier   	"Logical View::moduleCore::WorkbenchModuleResource"
		    quidu      	"41E3DF670039"
		    client_cardinality 	(value cardinality "0..*")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "module"
		    quid       	"41E3E14D031F"
		    label      	"module"
		    supplier   	"Logical View::moduleCore::WorkbenchModule"
		    quidu      	"41E3DF5801FA"
		    client_cardinality 	(value cardinality "1")
		    is_navigable 	TRUE
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$3"
	    quid       	"41EC1D9802C2"
	    roles      	(list role_list
		(object Role "moduleType"
		    quid       	"41EC1D990241"
		    label      	"moduleType"
		    supplier   	"Logical View::moduleCore::IModuleType"
		    quidu      	"41EC1D5103E2"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$4"
		    quid       	"41EC1D990243"
		    supplier   	"Logical View::moduleCore::WorkbenchModule"
		    quidu      	"41E3DF5801FA")))
	(object Association "$UNNAMED$5"
	    quid       	"41F5670A02BD"
	    roles      	(list role_list
		(object Role "workbenchApplications"
		    quid       	"41F5670C00A3"
		    label      	"workbenchApplications"
		    supplier   	"Logical View::moduleCore::WorkbenchApplication"
		    quidu      	"41E3E40B0272"
		    client_cardinality 	(value cardinality "0..*")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$6"
		    quid       	"41F5670C00A5"
		    supplier   	"Logical View::moduleCore::ProjectModules"
		    quidu      	"41F566DB0251"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$7"
	    quid       	"41F5672000E8"
	    roles      	(list role_list
		(object Role "workbenchModules"
		    quid       	"41F567210111"
		    label      	"workbenchModules"
		    supplier   	"Logical View::moduleCore::WorkbenchModule"
		    quidu      	"41E3DF5801FA"
		    client_cardinality 	(value cardinality "0..*")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$8"
		    quid       	"41F567210113"
		    supplier   	"Logical View::moduleCore::ProjectModules"
		    quidu      	"41F566DB0251"
		    Containment 	"By Reference"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$9"
	    quid       	"41F7C5C602EC"
	    roles      	(list role_list
		(object Role "deployScheme"
		    quid       	"41F7C5C7018F"
		    label      	"deployScheme"
		    supplier   	"Logical View::moduleCore::DeployScheme"
		    quidu      	"41E3DF4E0318"
		    client_cardinality 	(value cardinality "1")
		    Containment 	"By Reference"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$10"
		    quid       	"41F7C5C70199"
		    supplier   	"Logical View::moduleCore::WorkbenchApplication"
		    quidu      	"41E3E40B0272"
		    is_aggregate 	TRUE)))
	(object Association "$UNNAMED$11"
	    quid       	"41F7EFE2005A"
	    roles      	(list role_list
		(object Role "deploymentSchemes"
		    quid       	"41F7EFE203A3"
		    label      	"deploymentSchemes"
		    supplier   	"Logical View::moduleCore::DeployScheme"
		    quidu      	"41E3DF4E0318"
		    client_cardinality 	(value cardinality "0..*")
		    Containment 	"By Value"
		    is_navigable 	TRUE)
		(object Role "$UNNAMED$12"
		    quid       	"41F7EFE203A5"
		    supplier   	"Logical View::moduleCore::ProjectModules"
		    quidu      	"41F566DB0251"
		    is_aggregate 	TRUE))))
    logical_presentations 	(list unit_reference_list
	(object ClassDiagram "Main"
	    quid       	"41E3DF060210"
	    title      	"Main"
	    zoom       	100
	    max_height 	28350
	    max_width  	21600
	    origin_x   	0
	    origin_y   	1369
	    items      	(list diagram_item_list
		(object ClassView "Class" "Logical View::moduleCore::URI" @1
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(1904, 1984)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@1
			location   	(1444, 1925)
			fill_color 	13434879
			nlines     	1
			max_width  	920
			justify    	0
			label      	"URI")
		    stereotype 	(object ItemLabel
			Parent_View 	@1
			location   	(1444, 1875)
			fill_color 	13434879
			anchor     	10
			nlines     	1
			max_width  	920
			justify    	0
			label      	"<<datatype>>")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"41EC26DA027A"
		    compartment 	(object Compartment
			Parent_View 	@1
			location   	(1444, 1986)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	2
			max_width  	925)
		    width      	938
		    height     	242
		    annotation 	8
		    autoResize 	TRUE)
		(object NoteView @2
		    location   	(1120, 208)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@2
			location   	(832, 80)
			fill_color 	13434879
			nlines     	5
			max_width  	540
			label      	"Because these are contained relationships, we are assuming modules can't be defined in other projects")
		    line_color 	3342489
		    fill_color 	13434879
		    width      	600
		    height     	269)
		(object NoteView @3
		    location   	(1888, 1104)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@3
			location   	(1485, 982)
			fill_color 	13434879
			nlines     	4
			max_width  	771
			label      	
|Depending on ModuleType, the semantics of "modules" will change.  "Application" type will assume contained modules, while all others will assume dependencies.
			)
		    line_color 	3342489
		    fill_color 	13434879
		    width      	831
		    height     	256)
		(object NoteView @4
		    location   	(320, 1664)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@4
			location   	(60, 1530)
			fill_color 	13434879
			nlines     	5
			max_width  	484
			label      	
|The module "handle" URI will contain the special Module protocol, project name, and module identifier
			)
		    line_color 	3342489
		    fill_color 	13434879
		    width      	544
		    height     	281)
		(object ClassView "Class" "Logical View::moduleCore::WorkbenchModuleResource" @5
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(992, 1888)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@5
			location   	(714, 1757)
			fill_color 	13434879
			nlines     	1
			max_width  	556
			justify    	0
			label      	"WorkbenchModuleResource")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"41E3DF670039"
		    compartment 	(object Compartment
			Parent_View 	@5
			location   	(714, 1818)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	4
			max_width  	531)
		    width      	574
		    height     	286
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::moduleCore::IModuleType" @6
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(2304, 1600)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@6
			location   	(1957, 1469)
			fill_color 	13434879
			nlines     	1
			max_width  	694
			justify    	0
			label      	"IModuleType")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"41EC1D5103E2"
		    compartment 	(object Compartment
			Parent_View 	@6
			location   	(1957, 1530)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	13434879
			anchor     	2
			nlines     	4
			max_width  	700)
		    width      	712
		    height     	286
		    annotation 	8
		    autoResize 	TRUE)
		(object ClassView "Class" "Logical View::moduleCore::WorkbenchModule" @7
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(928, 1344)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@7
			location   	(727, 1238)
			fill_color 	13434879
			nlines     	1
			max_width  	402
			justify    	0
			label      	"WorkbenchModule")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"41E3DF5801FA"
		    compartment 	(object Compartment
			Parent_View 	@7
			location   	(727, 1299)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	3
			max_width  	409)
		    width      	420
		    height     	236
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "$UNNAMED$0" @8
		    location   	(1327, 1266)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"41E3E10203BF"
		    roleview_list 	(list RoleViews
			(object RoleView "modules" @9
			    Parent_View 	@8
			    location   	(847, 386)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @10
				Parent_View 	@9
				location   	(1447, 1281)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	180
				justify    	0
				label      	"+modules"
				pctDist    	0.061538
				height     	120
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41E3E10602D5"
			    client     	@8
			    supplier   	@7
			    vertices   	(list Points
				(1327, 1266)
				(1327, 1337)
				(1138, 1337))
			    line_style 	3
			    origin_attachment 	(1327, 1266)
			    terminal_attachment 	(1138, 1337)
			    label      	(object SegLabel @11
				Parent_View 	@9
				location   	(1245, 1294)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"0..*"
				pctDist    	0.593407
				height     	44
				orientation 	1))
			(object RoleView "$UNNAMED$1" @12
			    Parent_View 	@8
			    location   	(847, 386)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41E3E10602D7"
			    client     	@8
			    supplier   	@7
			    vertices   	(list Points
				(1327, 1266)
				(1327, 1206)
				(1121, 1206)
				(1121, 1226))
			    line_style 	3
			    origin_attachment 	(1327, 1266)
			    terminal_attachment 	(1121, 1226))))
		(object AttachView "" @13
		    stereotype 	TRUE
		    line_color 	3342489
		    client     	@3
		    supplier   	@8
		    vertices   	(list Points
			(1472, 1222)
			(1327, 1266))
		    line_style 	0)
		(object AssociationViewNew "$UNNAMED$2" @14
		    location   	(929, 1603)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"41E3E14B01E3"
		    roleview_list 	(list RoleViews
			(object RoleView "resources" @15
			    Parent_View 	@14
			    location   	(449, 723)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @16
				Parent_View 	@15
				location   	(1064, 1688)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	216
				justify    	0
				label      	"+resources"
				pctDist    	0.598592
				height     	135
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41E3E14D031D"
			    client     	@14
			    supplier   	@5
			    vertices   	(list Points
				(929, 1603)
				(929, 1745))
			    line_style 	3
			    origin_attachment 	(929, 1603)
			    terminal_attachment 	(929, 1745)
			    label      	(object SegLabel @17
				Parent_View 	@15
				location   	(866, 1686)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"0..*"
				pctDist    	0.584507
				height     	64
				orientation 	1))
			(object RoleView "module" @18
			    Parent_View 	@14
			    location   	(449, 723)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @19
				Parent_View 	@18
				location   	(1016, 1555)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	172
				justify    	0
				label      	"+module"
				pctDist    	0.347518
				height     	87
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41E3E14D031F"
			    client     	@14
			    supplier   	@7
			    vertices   	(list Points
				(929, 1603)
				(929, 1462))
			    line_style 	3
			    origin_attachment 	(929, 1603)
			    terminal_attachment 	(929, 1462)
			    label      	(object SegLabel @20
				Parent_View 	@18
				location   	(855, 1523)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"1"
				pctDist    	0.567376
				height     	74
				orientation 	0))))
		(object AssociationViewNew "$UNNAMED$3" @21
		    location   	(1495, 1525)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"41EC1D9802C2"
		    roleview_list 	(list RoleViews
			(object RoleView "moduleType" @22
			    Parent_View 	@21
			    location   	(1159, 597)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @23
				Parent_View 	@22
				location   	(1807, 1464)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	260
				justify    	0
				label      	"+moduleType"
				pctDist    	0.690182
				height     	62
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41EC1D990241"
			    client     	@21
			    supplier   	@6
			    vertices   	(list Points
				(1495, 1525)
				(1948, 1525))
			    line_style 	3
			    origin_attachment 	(1495, 1525)
			    terminal_attachment 	(1948, 1525))
			(object RoleView "$UNNAMED$4" @24
			    Parent_View 	@21
			    location   	(1159, 597)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41EC1D990243"
			    client     	@21
			    supplier   	@7
			    vertices   	(list Points
				(1495, 1525)
				(1104, 1525)
				(1104, 1462))
			    line_style 	3
			    origin_attachment 	(1495, 1525)
			    terminal_attachment 	(1104, 1462))))
		(object AttachView "" @25
		    stereotype 	TRUE
		    line_color 	3342489
		    client     	@4
		    supplier   	@7
		    vertices   	(list Points
			(587, 1523)
			(717, 1454))
		    line_style 	0)
		(object ClassView "Class" "Logical View::moduleCore::WorkbenchApplication" @26
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(928, 800)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@26
			location   	(708, 749)
			fill_color 	13434879
			nlines     	1
			max_width  	440
			justify    	0
			label      	"WorkbenchApplication")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"41E3E40B0272"
		    width      	458
		    height     	126
		    annotation 	8
		    autoResize 	TRUE)
		(object InheritView "" @27
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"41F7C768026B"
		    client     	@26
		    supplier   	@7
		    vertices   	(list Points
			(928, 863)
			(928, 1225))
		    line_style 	0)
		(object ClassView "Class" "Logical View::moduleCore::DeployScheme" @28
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(1920, 640)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@28
			location   	(1713, 534)
			fill_color 	13434879
			nlines     	1
			max_width  	414
			justify    	0
			label      	"DeployScheme")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"41E3DF4E0318"
		    compartment 	(object Compartment
			Parent_View 	@28
			location   	(1713, 595)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	16777215
			anchor     	2
			nlines     	3
			max_width  	421)
		    width      	432
		    height     	236
		    annotation 	8
		    autoResize 	TRUE)
		(object AssociationViewNew "$UNNAMED$9" @29
		    location   	(1430, 718)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"41F7C5C602EC"
		    roleview_list 	(list RoleViews
			(object RoleView "deployScheme" @30
			    Parent_View 	@29
			    location   	(486, -82)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @31
				Parent_View 	@30
				location   	(1513, 629)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	294
				justify    	0
				label      	"+deployScheme"
				pctDist    	0.343764
				height     	76
				orientation 	0)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41F7C5C7018F"
			    client     	@29
			    supplier   	@28
			    vertices   	(list Points
				(1430, 718)
				(1703, 675))
			    line_style 	0
			    label      	(object SegLabel @32
				Parent_View 	@30
				location   	(1650, 733)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"1"
				pctDist    	0.782045
				height     	49
				orientation 	1))
			(object RoleView "$UNNAMED$10" @33
			    Parent_View 	@29
			    location   	(486, -82)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41F7C5C70199"
			    client     	@29
			    supplier   	@26
			    vertices   	(list Points
				(1430, 718)
				(1157, 762))
			    line_style 	0)))
		(object ClassView "Class" "Logical View::moduleCore::ProjectModules" @34
		    ShowCompartmentStereotypes 	TRUE
		    IncludeAttribute 	TRUE
		    IncludeOperation 	TRUE
		    location   	(416, 368)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    label      	(object ItemLabel
			Parent_View 	@34
			location   	(204, 287)
			fill_color 	13434879
			nlines     	1
			max_width  	424
			justify    	0
			label      	"ProjectModules")
		    icon_style 	"Icon"
		    line_color 	3342489
		    fill_color 	13434879
		    quidu      	"41F566DB0251"
		    compartment 	(object Compartment
			Parent_View 	@34
			location   	(204, 348)
			font       	(object Font
			    size       	10
			    face       	"Arial"
			    bold       	FALSE
			    italics    	FALSE
			    underline  	FALSE
			    strike     	FALSE
			    color      	0
			    default_color 	TRUE)
			icon_style 	"Icon"
			fill_color 	13434879
			anchor     	2
			nlines     	2
			max_width  	431)
		    width      	442
		    height     	186
		    annotation 	8
		    autoResize 	TRUE)
		(object AttachView "" @35
		    stereotype 	TRUE
		    line_color 	3342489
		    client     	@34
		    supplier   	@2
		    vertices   	(list Points
			(637, 317)
			(819, 275))
		    line_style 	0)
		(object AssociationViewNew "$UNNAMED$7" @36
		    location   	(325, 1079)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"41F5672000E8"
		    roleview_list 	(list RoleViews
			(object RoleView "workbenchModules" @37
			    Parent_View 	@36
			    location   	(-107, 791)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @38
				Parent_View 	@37
				location   	(484, 1359)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	373
				justify    	0
				label      	"+workbenchModules"
				pctDist    	0.622642
				height     	56
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41F567210111"
			    client     	@36
			    supplier   	@7
			    vertices   	(list Points
				(325, 1079)
				(325, 1303)
				(718, 1303))
			    line_style 	3
			    origin_attachment 	(325, 1079)
			    terminal_attachment 	(718, 1303)
			    label      	(object SegLabel @39
				Parent_View 	@37
				location   	(656, 1244)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"0..*"
				pctDist    	0.899371
				height     	60
				orientation 	0))
			(object RoleView "$UNNAMED$8" @40
			    Parent_View 	@36
			    location   	(-107, 791)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41F567210113"
			    client     	@36
			    supplier   	@34
			    vertices   	(list Points
				(325, 1079)
				(325, 460))
			    line_style 	3
			    origin_attachment 	(325, 1079)
			    terminal_attachment 	(325, 460))))
		(object AssociationViewNew "$UNNAMED$5" @41
		    location   	(465, 755)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"41F5670A02BD"
		    roleview_list 	(list RoleViews
			(object RoleView "workbenchApplications" @42
			    Parent_View 	@41
			    location   	(-47, 451)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @43
				Parent_View 	@42
				location   	(653, 887)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	444
				justify    	0
				label      	"+workbenchApplications"
				pctDist    	0.843537
				height     	71
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41F5670C00A3"
			    client     	@41
			    supplier   	@26
			    vertices   	(list Points
				(465, 755)
				(465, 816)
				(699, 816))
			    line_style 	3
			    origin_attachment 	(465, 755)
			    terminal_attachment 	(699, 816)
			    label      	(object SegLabel @44
				Parent_View 	@42
				location   	(641, 758)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"0..*"
				pctDist    	0.801749
				height     	59
				orientation 	0))
			(object RoleView "$UNNAMED$6" @45
			    Parent_View 	@41
			    location   	(-47, 451)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41F5670C00A5"
			    client     	@41
			    supplier   	@34
			    vertices   	(list Points
				(465, 755)
				(465, 461))
			    line_style 	3
			    origin_attachment 	(465, 755)
			    terminal_attachment 	(465, 461))))
		(object AssociationViewNew "$UNNAMED$11" @46
		    location   	(1287, 416)
		    font       	(object Font
			size       	10
			face       	"Arial"
			bold       	FALSE
			italics    	FALSE
			underline  	FALSE
			strike     	FALSE
			color      	0
			default_color 	TRUE)
		    stereotype 	TRUE
		    line_color 	3342489
		    quidu      	"41F7EFE2005A"
		    roleview_list 	(list RoleViews
			(object RoleView "deploymentSchemes" @47
			    Parent_View 	@46
			    location   	(871, 48)
			    font       	(object Font
				size       	10
				face       	"Arial"
				bold       	FALSE
				italics    	FALSE
				underline  	FALSE
				strike     	FALSE
				color      	0
				default_color 	TRUE)
			    label      	(object SegLabel @48
				Parent_View 	@47
				location   	(2058, 351)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	1
				anchor_loc 	1
				nlines     	1
				max_width  	415
				justify    	0
				label      	"+deploymentSchemes"
				pctDist    	1.417279
				height     	65
				orientation 	1)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41F7EFE203A3"
			    client     	@46
			    supplier   	@28
			    vertices   	(list Points
				(1287, 416)
				(1831, 416)
				(1831, 522))
			    line_style 	3
			    origin_attachment 	(1287, 416)
			    terminal_attachment 	(1831, 522)
			    label      	(object SegLabel @49
				Parent_View 	@47
				location   	(1778, 456)
				font       	(object Font
				    size       	10
				    face       	"Arial"
				    bold       	FALSE
				    italics    	FALSE
				    underline  	FALSE
				    strike     	FALSE
				    color      	0
				    default_color 	TRUE)
				anchor     	2
				anchor_loc 	1
				nlines     	1
				max_width  	15
				justify    	0
				label      	"0..*"
				pctDist    	0.900000
				height     	54
				orientation 	1))
			(object RoleView "$UNNAMED$12" @50
			    Parent_View 	@46
			    location   	(871, 48)
			    stereotype 	TRUE
			    line_color 	3342489
			    quidu      	"41F7EFE203A5"
			    client     	@46
			    supplier   	@34
			    vertices   	(list Points
				(1287, 416)
				(637, 416))
			    line_style 	3
			    origin_attachment 	(1287, 416)
			    terminal_attachment 	(637, 416))))))))
